Repository: Laravel-Backpack/BackupManager Branch: main Commit: a283240b0864 Files: 42 Total size: 95.8 KB Directory structure: gitextract_m4vsmepw/ ├── .editorconfig ├── .github/ │ ├── config.yml │ ├── dependabot.yml │ ├── issue_template.md │ ├── pull_request_template.md │ ├── release-drafter.yml │ ├── stale.yml │ ├── support.yml │ └── workflows/ │ └── add-to-project.yml ├── .gitignore ├── .scrutinizer.yml ├── .travis.yml ├── CHANGELOG.md ├── CONTRIBUTING.md ├── LICENSE.md ├── README.md ├── UPGRADE_GUIDES.md ├── composer.json ├── issue_template.md └── src/ ├── BackupManagerServiceProvider.php ├── app/ │ └── Http/ │ └── Controllers/ │ └── BackupController.php ├── config/ │ └── backupmanager.php ├── resources/ │ ├── lang/ │ │ ├── ar/ │ │ │ └── backup.php │ │ ├── en/ │ │ │ └── backup.php │ │ ├── es/ │ │ │ └── backup.php │ │ ├── fa/ │ │ │ └── backup.php │ │ ├── fr/ │ │ │ └── backup.php │ │ ├── gr/ │ │ │ └── backup.php │ │ ├── id/ │ │ │ └── backup.php │ │ ├── it/ │ │ │ └── backup.php │ │ ├── nl/ │ │ │ └── backup.php │ │ ├── pt/ │ │ │ └── backup.php │ │ ├── pt_br/ │ │ │ └── backup.php │ │ ├── ro/ │ │ │ └── backup.php │ │ ├── ru/ │ │ │ └── backup.php │ │ ├── se/ │ │ │ └── backup.php │ │ ├── tr/ │ │ │ └── backup.php │ │ ├── uk/ │ │ │ └── backup.php │ │ ├── vi/ │ │ │ └── backup.php │ │ └── zh/ │ │ └── backup.php │ └── views/ │ └── backup.blade.php └── routes/ └── backpack/ └── backupmanager.php ================================================ FILE CONTENTS ================================================ ================================================ FILE: .editorconfig ================================================ ; This file is for unifying the coding style for different editors and IDEs. ; More information at http://editorconfig.org root = true [*] charset = utf-8 indent_size = 4 indent_style = space end_of_line = lf insert_final_newline = true trim_trailing_whitespace = true [*.md] trim_trailing_whitespace = false ================================================ FILE: .github/config.yml ================================================ # Configuration for welcome - https://github.com/behaviorbot/welcome # Configuration for new-issue-welcome - https://github.com/behaviorbot/new-issue-welcome # Comment to be posted to on first time issues newIssueWelcomeComment: > Hello there! Thanks for opening your first issue on this repo! Just a heads-up: **Here at Backpack we use Github Issues only for tracking bugs**. Talk about new features is also acceptable. This helps _a lot_ in keeping our focus on improving Backpack. **If you issue is not a bug/feature, please help us out by closing the issue yourself and posting in the appropriate medium (see below)**. If you're not sure where it fits, it's ok, a community member will probably reply to help you with that. Backpack communication mediums: - Bug Reports, Feature Requests - Github Issues (here); - Quick help (_How do I do X_) - [Gitter Chatroom](gitter.im/BackpackForLaravel/Lobby); - Long questions (_I have done X and Y and it won't do Z wtf_) - [Stackoverflow](https://stackoverflow.com/questions/tagged/backpack-for-laravel), using the ```backpack-for-laravel``` tag; Please keep in mind Backpack offers no official / paid support. Whatever help you receive here, on Gitter, Slack or Stackoverflow is thanks to our awesome _awesome_ community members, who give up some of their time to help their peers. If you want to join our community, just start pitching in. We take pride in being a welcoming bunch. Thank you! -- Justin Case The Backpack Robot # Configuration for new-pr-welcome - https://github.com/behaviorbot/new-pr-welcome # Comment to be posted to on PRs from first time contributors in your repository newPRWelcomeComment: > BOOM! Your first PR with us, thank you so much! Someone will take a look at it shortly. Please keep in mind that: - **if this constitutes a breaking change, it might take quite a while for this to get merged**; we try to emulate the Laravel release cycle as much as possible, so developers can upgrade both software once; this means a new big release every ~6 months; - **even if it's a non-breaking change, it might take a few days/weeks for the PR to get merged**; unless it's a no-brainer, **we like to have some community feedback on new features, before we merge them**; this leads to higher-quality code, in the end; we learnt this the hard way :-) - **not all PRs get merged**; sometimes we just have to hold out new features, to keep the packages lean; sometimes we don't include features that only apply to niche use cases; - **we're not perfect**; if you think we're wrong, call us out on it; but in a kind way :-) we all make mistakes, best we learn from them and build better software together; Thank you! -- Justin Case The Backpack Robot # Configuration for first-pr-merge - https://github.com/behaviorbot/first-pr-merge # Comment to be posted to on pull requests merged by a first time user firstPRMergeComment: > WHOOP-WHOOP! Congrats, your first PR on this repo has officialy been merged. ![party](https://media1.giphy.com/media/3KC2jD2QcBOSc/giphy.gif "Party!!!") If you want to help out the community in other ways, you can: - **give your opinion on other Github Issues & PRs**; - **chat with others** in the [Gitter Chatroom](gitter.im/BackpackForLaravel/Lobby) (usually for quick help: _How do I do X_); - **answer Backpack questions on [Stackoverflow](https://stackoverflow.com/questions/tagged/backpack-for-laravel)**; you get points, people get help; you can subscribe to the ```backpack-for-laravel``` tag by [adding a new filter](https://stackexchange.com/filters/256210/my-filter-3); that will send you emails when new questions come up with our tag; Again. Thank you for the PR. You are a wonderful person. Keep 'em coming :-) Cheers! -- Justin Case The Backpack Robot P.S. **Help in the Backpack community is rewarded with free Backpack commercial licenses**. It's the least we can do. If you feel you've helped the community with PRs, help & other stuff, please [shoot Tabacitu an email](mailto:hello@tabacitu.ro) and ask him if you qualify for free licenses. You scratch my back, I scratch your back. Thank you! # It is recommend to include as many gifs and emojis as possible # # --------------------------------------------------------------------------------------------- # # Configuration for request-info - https://github.com/behaviorbot/request-info # *OPTIONAL* Comment to reply with # Can be either a string : requestInfoReplyComment: > Hi there! Could you please provide us with more info about this? Looks like you skipped the title/body. Thank you! -- Justin Case The Backpack Robot # Or an array: # requestInfoReplyComment: # - Ah no! young blade! That was a trifle short! # - Tell me more ! # - I am sure you can be more effusive # *OPTIONAL* default titles to check against for lack of descriptiveness # MUST BE ALL LOWERCASE requestInfoDefaultTitles: # - update readme.md - updates # *OPTIONAL* Label to be added to Issues and Pull Requests with insufficient information given requestInfoLabelToAdd: needs-more-info # *OPTIONAL* Only warn about insufficient information on these events type # Keys must be lowercase. Valid values are 'issue' and 'pullRequest' requestInfoOn: pullRequest: true issue: true # *OPTIONAL* Add a list of people whose Issues/PRs will not be commented on # keys must be GitHub usernames requestInfoUserstoExclude: - tabacitu # --------------------------------------------------------------------------------------------- # ================================================ FILE: .github/dependabot.yml ================================================ version: 2 updates: - package-ecosystem: composer directory: "/" schedule: interval: monthly open-pull-requests-limit: 10 ================================================ FILE: .github/issue_template.md ================================================ # Bug report ### What I did: ### What I expected to happen: ### What happened: ### What I've already tried to fix it: ### Backpack, Laravel, PHP, DB version: ================================================ FILE: .github/pull_request_template.md ================================================ ## WHY ### BEFORE - What was wrong? What was happening before this PR? ?? ### AFTER - What is happening after this PR? ?? ## HOW ### How did you achieve that, in technical terms? ?? ### Is it a breaking change or non-breaking change? ?? ### How can we test the before & after? ?? ================================================ FILE: .github/release-drafter.yml ================================================ name: Release Drafter on: push: # branches to consider in the event; optional, defaults to all branches: - master jobs: update_release_draft: runs-on: ubuntu-latest steps: # Drafts your next Release notes as Pull Requests are merged into "master" - uses: release-drafter/release-drafter@v5 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} name-template: 'v$NEXT_PATCH_VERSION 🌈' tag-template: 'v$NEXT_PATCH_VERSION' categories: - title: '🚀 Features' labels: - 'feature' - 'enhancement' - 'added' - title: '🐛 Bug Fixes' labels: - 'fix' - 'bugfix' - 'bug' - 'fixed' - title: '⚙️ Changes' labels: - 'changed' - 'dependencies' - title: '🧰 Removed' label: 'removed' change-template: '- $TITLE @$AUTHOR (#$NUMBER)' template: | ## Changes $CHANGES ================================================ FILE: .github/stale.yml ================================================ ##################################### # Github Stale Probot Configuration # # ################################### # https://probot.github.io/apps/stale/ # Number of days of inactivity before an issue becomes stale daysUntilStale: 60 # Number of days of inactivity before a stale issue is closed daysUntilClose: 14 # Issues with these labels will never be considered stale exemptLabels: - pinned - security - feature - urgent - ready - working on it - bug # Label to use when marking an issue as stale staleLabel: stale # Comment to post when marking an issue as stale. Set to `false` to disable markComment: > Hi there! **Is this still an issue?** No activity in 60 days. I'm going to mark it as stale for now, and close it in 14 days if no further activity occurs. I know you guys are all busy, but if this is important to you please reply or something, so I know not to close it. Thank you! -- Justin Case The Backpack Robot # Comment to post when closing a stale issue. Set to `false` to disable closeComment: true ================================================ FILE: .github/support.yml ================================================ # Configuration for support-requests - https://github.com/dessant/support-requests # Label used to mark issues as support requests supportLabel: Ask-It-On-Stack-Overflow # Comment to post on issues marked as support requests. Add a link # to a support page, or set to `false` to disable supportComment: > Oups! Looks like this is a support request, not a bug/feature. **Could you please [repost on StackOverflow](https://stackoverflow.com/questions/tagged/backpack-for-laravel), using the ```backpack-for-laravel``` tag**? Background: **Here at Backpack we use Github Issues only for tracking bugs and features**, not individual implementation issues. This helps _a lot_ in keeping our focus on improving Backpack. Thanks a lot for understanding! Here are all the Backpack communication mediums: - Long questions (_I have done X and Y and it won't do Z wtf_) - [Stackoverflow](https://stackoverflow.com/questions/tagged/backpack-for-laravel), using the ```backpack-for-laravel``` tag; this is recommended for most questions, since other developers can then find the answer on a simple Google search; also, people get points for answering - and who doesn't like StackOverflow points?! - Quick help (_How do I do X_) - [Gitter Chatroom](https://gitter.im/BackpackForLaravel/Lobby); - Bug Reports, Feature Requests - Github Issues (here); Please keep in mind Backpack offers no official / paid support. Whatever help you receive here, on Gitter, Slack or StackOverflow is thanks to our awesome _awesome_ community members, who give up some of their time to help their peers. If you want to join our community, just start pitching in. We take pride in being a welcoming bunch. Thank you! -- Justin Case The Backpack Robot PS. In case I mistakenly closed your issue, yell :-) I'm a robot, I make mistakes. # Whether to close issues marked as support requests close: true # Whether to lock issues marked as support requests lock: false ================================================ FILE: .github/workflows/add-to-project.yml ================================================ name: Add new bugs & PRs to This Week project on: issues: types: - opened - transferred pull_request: types: - opened jobs: add-to-project: name: Add new bugs and PRs to This Week project runs-on: ubuntu-latest steps: - uses: actions/add-to-project@main with: project-url: https://github.com/orgs/Laravel-Backpack/projects/13 github-token: ${{ secrets.ADD_TO_PROJECT_PAT }} ================================================ FILE: .gitignore ================================================ vendor/ .idea *.iml /composer.lock ================================================ FILE: .scrutinizer.yml ================================================ filter: paths: - 'app/*' - 'src/*' excluded_paths: - 'bootstrap/*' - 'config/*' - 'public/*' - 'resources/*' - 'vendor/*' - 'views/*' tools: php_analyzer: true php_mess_detector: true php_changetracking: true php_code_sniffer: config: standard: PSR2 php_loc: excluded_dirs: - vendor php_pdepend: excluded_dirs: - vendor - tests checks: php: code_rating: true duplication: true variable_existence: true useless_calls: true use_statement_alias_conflict: true unused_variables: true unused_properties: true unused_parameters: true unused_methods: true unreachable_code: true sql_injection_vulnerabilities: true security_vulnerabilities: true precedence_mistakes: true precedence_in_conditions: true parameter_non_unique: true no_property_on_interface: true no_non_implemented_abstract_methods: true deprecated_code_usage: true closure_use_not_conflicting: true closure_use_modifiable: true avoid_useless_overridden_methods: true avoid_conflicting_incrementers: true assignment_of_null_return: true verify_property_names: true verify_argument_usable_as_reference: true verify_access_scope_valid: true use_self_instead_of_fqcn: true too_many_arguments: true symfony_request_injection: true switch_fallthrough_commented: true spacing_of_function_arguments: true spacing_around_non_conditional_operators: true spacing_around_conditional_operators: true space_after_cast: true single_namespace_per_use: true simplify_boolean_return: true scope_indentation: spaces_per_level: '4' return_doc_comments: true require_scope_for_properties: true require_scope_for_methods: true require_php_tag_first: true require_braces_around_control_structures: true remove_trailing_whitespace: true remove_php_closing_tag: true remove_extra_empty_lines: true psr2_switch_declaration: true psr2_control_structure_declaration: true psr2_class_declaration: true property_assignments: true properties_in_camelcaps: true prefer_while_loop_over_for_loop: true phpunit_assertions: true php5_style_constructor: true parameters_in_camelcaps: true parameter_doc_comments: true return_doc_comment_if_not_inferrable: true param_doc_comment_if_not_inferrable: true overriding_private_members: true optional_parameters_at_the_end: true one_class_per_file: true non_commented_empty_catch_block: true no_unnecessary_if: true no_unnecessary_function_call_in_for_loop: true no_unnecessary_final_modifier: true no_underscore_prefix_in_properties: true no_underscore_prefix_in_methods: true no_trailing_whitespace: true no_space_inside_cast_operator: true no_space_before_semicolon: true no_space_around_object_operator: true no_goto: true no_global_keyword: true no_exit: true no_empty_statements: true no_else_if_statements: true no_duplicate_arguments: true no_debug_code: true no_commented_out_code: true newline_at_end_of_file: true naming_conventions: local_variable: '^[a-z][a-zA-Z0-9]*$' abstract_class_name: ^Abstract|Factory$ utility_class_name: 'Utils?$' constant_name: '^[A-Z][A-Z0-9]*(?:_[A-Z0-9]+)*$' property_name: '^[a-z][a-zA-Z0-9]*$' method_name: '^(?:[a-z]|__)[a-zA-Z0-9]*$' parameter_name: '^[a-z][a-zA-Z0-9]*$' interface_name: '^[A-Z][a-zA-Z0-9]*Interface$' type_name: '^[A-Z][a-zA-Z0-9]*$' exception_name: '^[A-Z][a-zA-Z0-9]*Exception$' isser_method_name: '^(?:is|has|should|may|supports|was)' lowercase_php_keywords: true more_specific_types_in_doc_comments: true missing_arguments: true method_calls_on_non_object: true line_length: max_length: '120' lowercase_basic_constants: true instanceof_class_exists: true function_in_camel_caps: true function_body_start_on_new_line: true fix_use_statements: remove_unused: true preserve_multiple: false preserve_blanklines: false order_alphabetically: true foreach_traversable: true foreach_usable_as_reference: true fix_php_opening_tag: true fix_line_ending: true fix_identation_4spaces: true fix_doc_comments: true ensure_lower_case_builtin_functions: true encourage_postdec_operator: true classes_in_camel_caps: true catch_class_exists: true blank_line_after_namespace_declaration: true avoid_usage_of_logical_operators: true avoid_unnecessary_concatenation: true avoid_tab_indentation: true avoid_superglobals: true avoid_perl_style_comments: true avoid_multiple_statements_on_same_line: true avoid_fixme_comments: true avoid_length_functions_in_loops: true avoid_entity_manager_injection: true avoid_duplicate_types: true avoid_corrupting_byteorder_marks: true argument_type_checks: true avoid_aliased_php_functions: true deadlock_detection_in_loops: true ================================================ FILE: .travis.yml ================================================ language: php php: - 7.2.5 - 7.3 - 7.4 - 8.0 - nightly matrix: allow_failures: - php: 8.0 - php: nightly sudo: false install: travis_retry composer install --no-interaction --prefer-source script: vendor/bin/phpunit --coverage-clover=coverage.clover after_script: - wget https://scrutinizer-ci.com/ocular.phar - php ocular.phar code-coverage:upload --format=php-clover coverage.clover ================================================ FILE: CHANGELOG.md ================================================ # Changelog All Notable changes to `backupmanager` will be documented in this file ---------- IMPORTANT ---------- We no longer use this file to track changes. Please see this repo's "Releases" tab, on Github: https://github.com/Laravel-Backpack/BackupManager/releases ---------- ## [3.0.0] - 2020-05-06 ### Added - support for Backpack 4.1; ### Removed - support for Backpack 4.0 (just because icons are now ```la la-download``` instead of ```fa fa-download```); ---------- ## [2.0.5] - 2020-04-20 ### Added - added names to routes @iMokhles (#80) ## [2.0.4] - 2020-03-05 ### Fixed - Upgraded PHPUnit; ## [2.0.3] - 2020-01-14 ### Added - Indonesian language file; ## [2.0.2] - 2019-12-19 ### Added - Farsi (Persian) language file; ## [2.0.1] - 2019-11-17 ### Fixed - merged #73 - notifications did not show; - merged #75 - properly log backup erors now; ## [2.0.0] - 2019-09-24 ### Added - support for Backpack v4; ### Removed - support for Backpack v3; ----------- ## [1.4.10] - 2019-09-01 ### Added - #70 - Russian language file; ## [1.4.9] - 2019-08-23 ### Fixed - changed config file to fit latest spatie/laravel-backup config file model; ## [1.4.8] - 2019-04-23 ### Fixed - merged #65 - using Artisan class instead of manually calling the same command line; this makes the AJAX wait for the answer, so the page reload will happen after the actual backup has been done; ## [1.4.7] - 2019-03-01 - better messages ## [1.4.6] - 2019-03-01 - added support for Base 1.1 and Laravel 5.8; - dropped support for everything else; ## [1.4.5] - 2018-11-22 - added support for Base 1.0.x ## [1.4.4] - 2018-10-15 ### Fixed - monitored backups now has the correct disk name; ## [1.4.3] - 2018-10-15 ### Fixed - custom views folder is only loaded when it exists; this fixes the conflicts in the ```php artisan view:cache``` command; ## [1.4.2] - 2018-06-19 ### Fixed - config file has ```backpack_flags``` as array; - config file has a ```temporary_directory``` defined; ## [1.4.0] - 2018-04-23 ### Added - Backpack\Base 0.9.x requirement; ### Removed - support for Backpack\Base pre-0.9.0; - notifications from being triggered, when the Create Backup button is pressed; new config option ```backpack_flags``` can overwrite this behaviour; ## [1.3.2] - 2017-12-02 ### Added - Turkish translation (thanks to [Yusuf Kaya](https://github.com/yusufkaya0)); ## [1.3.1] - 2017-12-02 ### Fixed - working default configuration file for the new spatie/backup; ## [1.3.0] - 2017-12-02 ### Fixed - upgraded to Spatie/Backup v5; breaking change: config file is now named ```config/backup.php```; ## [1.2.0] - 2017-08-30 ### Fixed - upgraded to Spatie/Backup v4; breaking change: dump variables are now named inside an array in config/database.php; ### Added - package auto-discovery; ## [1.1.18] - 2017-07-06 ### Added - overwritable routes file; ## [1.1.17] - 2017-07-05 ### Added - Portugese translation (thanks to [Toni Almeida](https://github.com/promatik)); - Portugese (Brasilian) translation (thanks to [Guilherme Augusto Henschel](https://github.com/cenoura)); ## [1.1.16] - 2017-04-05 ### Added - French translation; - Dutch translation (thanks to [Mark van Beek](https://github.com/chancezeus)); - fixed App namespace issue; ## [1.1.15] - 2017-01-21 ### Added - Ability to publish views; - Ability to overwrite views the same way you overwrite views in CRUD; ## [1.1.14] - 2017-01-08 ### Fixed - removed duplicate namespace in BackupController; ## [1.1.13] - 2016-12-22 ### Fixed - delete route filename conflict - thanks to [Vincenzo Raco](https://github.com/vincenzoraco); ## [1.1.12] - 2016-12-13 ### Added - Greek translation file, thanks to [Stamatis Katsaounis](https://github.com/skatsaounis); ## [1.1.11] - 2016-09-24 ### Fixed - Routes now follow base prefix - thanks to [Twaambo Haamucenje](https://github.com/twoSeats); ## 1.1.10 - 2016-08-17 ### Added - Spanish translation, thanks to [Rafael Ernesto Ferro González](https://github.com/rafix); ## 1.1.9 - 2016-07-30 ### Added - Bogus unit tests. At least we'be able to use travis-ci for requirements errors, until full unit tests are done. ## 1.1.8 - 2016-07-25 ### Fixed - Download button with subfolders. ## 1.1.7 - 2016-07-13 ### Added - Showing files from multiple disks. - Can delete files from other disks, other than local (tested Dropbox). ### Fixed - Download link is no longer dependant on the suggested backups storage disk. - Hidden download link if not using the Local filesystem. ### Removed - Subfolder listing and downloading. ## 1.1.6 - 2016-06-03 ### Fixed - Download and delete buttons now work too, for subfolders. ## 1.1.5 - 2016-06-03 ### Fixed - Showing zip files from subfolders, too, since laravel-backup stores them that way. ## 1.1.4 - 2016-03-16 ### Fixed - Added page title. ## 1.1.3 - 2016-03-16 ### Fixed - Eliminated console logs from backup js. - Added screenshot in README. ## 1.1.2 - 2016-03-16 ### Fixed - Made the backup button work. - Added another error type - the warning when something failed. - Logging the progress in the log files. - Showing the artisan command output in the ajax response. - Added the dump_command_path configuration. - Changed README to instruct on common misconfiguration issue. ## 1.1.1 - 2016-03-15 ### Fixed - Correct name in readme. Confirming packagist hook. ## 1.1 - 2016-03-15 ### Added - Updated to v3 of spatie's laravel-backup package. - Renamed everything to be part of Backpack instead of Dick. ================================================ FILE: CONTRIBUTING.md ================================================ # Contributing Contributions are **welcome** and will be fully **credited**. We accept contributions via Pull Requests on [Github](https://github.com/laravel-backpack/backupmanager). ## Bug Fixing & Enhancements We use the Github issue tracker for that. Here's the procedure we've settled upon so 2 people don't work on the same thing: - you find something that needs doing (say: unit tests for a certain package); - you check if there is already an issue for it (if there isn't, add one); - in that issue: - say you're working on it and it will be done in x hours or y days; - in that issue, assign the "working on it" label - assign yourself to the issue; - then comment/reference the issue in your pull request; ## Pull Requests - **[PSR-2 Coding Standard](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md)** - The easiest way to apply the conventions is to install [PHP Code Sniffer](http://pear.php.net/package/PHP_CodeSniffer). It's ok to push non-PSR-2 code, but know that [StyleCI](https://styleci.io/) will convert it after the merge. - **Document any change in behaviour** - Make sure the `README.md` is still up-to-date with your modifs. - **Consider our release cycle** - We try to follow [SemVer v2.0.0](http://semver.org/). Randomly breaking public APIs is not an option. - **One pull request per feature** - If you want to do more than one thing, send multiple pull requests. - **Send coherent history** - Make sure each individual commit in your pull request is meaningful. If you had to make multiple intermediate commits while developing, please [squash them](http://www.git-scm.com/book/en/v2/Git-Tools-Rewriting-History#Changing-Multiple-Commit-Messages) before submitting. ## Running Tests The project does NOT have working tests right now, but it really should. If you want to help out, that's one of the most important things you can help with. ``` bash $ composer test ``` **Happy coding**! ================================================ FILE: LICENSE.md ================================================ # YUMMY License **YoU make Money, I make MoneY.** The license holder is allowed to use the software for free, as long as he doesn't make money by using it. Copyright (c) 2015-2017 Cristian Tabacitu ## FREE for non-commercial use, PAID for commercial use > Permission is hereby granted to any person obtaining a copy of this software > and associated documentation files (the "Software"), to use the Software. > This includes the rights to use, copy, modify and/or merge the Sofware > or copies of the Software, and to permit persons to whom the Software is > furnished to do so, subject to the following conditions: > > **1. Should the Sofware be used for non-commercial purposes (personal use, not-profits, > testing, education), no financial reward is expected and the above rights are given FREE OF CHARGE.** > > **2. Should the Software be used for commercial purposes (the user of this Sofware, > its employer, employees or clients make money by using this Software), the user is > required to purchase a "Single Domain License" on [backpackforlaravel.com](https://backpackforlaravel.com), for each > domain name this sofware will be used on, before its usage in production. > Failure to do so will constitute as illegal commercial use.** > > **3. This license does not include the rights to publish or sublicense > this Sofware, its copies or any derivations, with or without the purpose of commercial profit. > For inclusion in commercial packages or SaaS products, an "Unlimited License" is required, which can be purchased on [backpackforlaravel.com](https://backpackforlaravel.com). For inclusion in free open-source packages, express permission is needed from .** > > **4. The above copyright notice and this permission notice shall be included in > all copies or substantial portions of the Software.** > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR > IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE > AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. ================================================ FILE: README.md ================================================ # Backpack\BackupManager [![Latest Version on Packagist](https://img.shields.io/packagist/v/backpack/backupmanager.svg?style=flat-square)](https://packagist.org/packages/backpack/backupmanager) [![Software License](https://img.shields.io/badge/license-dual-blue?style=flat-square)](LICENSE.md) [![Build Status](https://img.shields.io/travis/laravel-backpack/backupmanager/master.svg?style=flat-square)](https://travis-ci.org/laravel-backpack/backupmanager) [![Coverage Status](https://img.shields.io/scrutinizer/coverage/g/laravel-backpack/backupmanager.svg?style=flat-square)](https://scrutinizer-ci.com/g/laravel-backpack/backupmanager/code-structure) [![Quality Score](https://img.shields.io/scrutinizer/g/laravel-backpack/backupmanager.svg?style=flat-square)](https://scrutinizer-ci.com/g/laravel-backpack/backupmanager) [![Style CI](https://styleci.io/repos/53956594/shield)](https://styleci.io/repos/53956594) [![Total Downloads](https://img.shields.io/packagist/dt/backpack/backupmanager.svg?style=flat-square)](https://packagist.org/packages/backpack/backupmanager) An admin interface for [spatie/laravel-backup](https://github.com/spatie/laravel-backup). Allows the admin to easily manage backups (download and delete). Used in the Backpack package, on Laravel 5.2+ to 9. > ### Security updates and breaking changes > Please **[subscribe to the Backpack Newsletter](http://backpackforlaravel.com/newsletter)** so you can find out about any security updates, breaking changes or major features. We send an email 2 times/year, max. ![Backpack\BackupManager screenshot](https://user-images.githubusercontent.com/1032474/161931994-dc044bb2-a459-4863-9262-ed91f3e5e35b.gif) ## Install 1) In your terminal: ``` bash # Install the package composer require backpack/backupmanager # Publish the backup and backupmanager configs and lang files: php artisan vendor:publish --provider="Backpack\BackupManager\BackupManagerServiceProvider" --tag=backup-config --tag=lang # [optional] Add a menu item for it # For Backpack v6 php artisan backpack:add-menu-content "" # For Backpack v5 or v4 php artisan backpack:add-sidebar-content "" ``` 2) [optional] Instruct Laravel to run the backups automatically in your console kernel: ```php // app/Console/Kernel.php protected function schedule(Schedule $schedule) { // if you are not using notifications you should add the `--disable-notifications` flag to this commands $schedule->command('backup:clean')->daily()->at('04:00'); $schedule->command('backup:run')->daily()->at('05:00'); } ``` 3) Check that it works If the "unknown error" yellow bubble is thrown and you see the "_Backup failed because The dump process failed with exitcode 127 : Command not found._" error in the log file, either mysqldump / pg_dump is not installed or you need to specify its location. You can do that in your `config/database.php` file, where you define your database credentials, by adding the dump variables. Here's an example: ```php 'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', 'localhost'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, 'engine' => null, 'dump' => [ 'dump_binary_path' => '/path/to/directory/', // only the path, without `mysqldump` or `pg_dump` // 'dump_binary_path' => '/Applications/MAMP/Library/bin/', // works for MAMP on Mac OS // 'dump_binary_path' => '/opt/homebrew/bin/', // works for Laravel Valet on Mac OS 'use_single_transaction', 'timeout' => 60 * 5, // 5 minute timeout // 'exclude_tables' => ['table1', 'table2'], // 'add_extra_option' => '--optionname=optionvalue', ] ], ``` ## Usage This should be a point-and-click interface where you can create and download backups at any time. Try at **your-project-domain/admin/backup** ## Configuration & Troubleshooting For additional configuration (eg. notifications): - publish the spatie backup file `php artisan vendor:publish --provider="Spatie\Backup\BackupServiceProvider" --tag="backup-config"` - see the [spatie/laravel-backup documentation](https://spatie.be/docs/laravel-backup/v8/installation-and-setup) on how to configure your backup system in `config/backup.php`; **it is higly recommended that you at least [configure the notifications](https://spatie.be/docs/laravel-backup/v8/sending-notifications/overview)**; - see `config/backpack/backupmanager.php` for configurating how the backup is run from the interface; by default, it does `backup:run --disable-notifications`, but after you've configured notifications, you can remove that flag (or add others); **[TIP]** When you modify your options in `config/backup.php` or `config/backpack/backupmanager.php`, please run manually `php artisan backup:run` to make sure it's still working after your changes. **NOTE**: `php artisan optimize:clear` and/or `php artisan config:clear` might be needed before the `backup:run` command. ## Upgrading Please see the [upgrade guides](UPGRADE_GUIDES.md) to get: - from v3 to v4 (new!) - from v2 to v3 - from 1.2.x to 1.3.x - from 1.1.x to 1.2.x ## Change log Please see the [releases page](https://github.com/Laravel-Backpack/BackupManager/releases/) for more information what has changed recently. ## Testing ``` bash $ composer test ``` ## Contributing Please see [CONTRIBUTING](CONTRIBUTING.md) for details. ## Overwriting Functionality If you need to modify how this works in a project: - create a ```routes/backpack/backupmanager.php``` file; the package will see that, and load _your_ routes file, instead of the one in the package; - create controllers/models that extend the ones in the package, and use those in your new routes file; - modify anything you'd like in the new controllers/models; ## Security If you discover any security related issues, please email tabacitu@backpackforlaravel.com instead of using the issue tracker. Please **[subscribe to the Backpack Newsletter](http://backpackforlaravel.com/newsletter)** so you can find out about any security updates, breaking changes or major features. We send an email every 1-2 months. ## Credits - [Cristian Tabacitu](https://github.com/tabacitu) - [All Contributors](../../contributors) ## License The MIT License (MIT). Please see License File for more information. ## Hire us We've spend more than 10.000 hours creating, polishing and maintaining administration panels on Laravel. We've developed e-Commerce, e-Learning, ERPs, social networks, payment gateways and much more. We've worked on admin panels _so much_, that we've created one of the most popular software in its niche - just from making public what was repetitive in our projects. If you are looking for a developer/team to help you build an admin panel on Laravel, look no further. You'll have a difficult time finding someone with more experience & enthusiasm for this. This is _what we do_. [Contact us - let's see if we can work together](https://backpackforlaravel.com/need-freelancer-or-development-team). ================================================ FILE: UPGRADE_GUIDES.md ================================================ # Upgrade Guides ## Upgrading from 3.x to 4.x Change your required version to `"backpack/backupmanager": "^4.0"` and run `composer update backpack/backupmanager`. We removed the overrides of spatie config from our package publishing process, from now on you can do the regular spatie backup configuration in `config/backup.php` and the customized backpack configuration in `config/backpack/backupmanager`. **1)** Publish the new config file `php artisan vendor:publish --provider="Backpack\BackupManager\BackupManagerServiceProvider" --tag="backup-config"`. This will generate the `config/backpack/backupmanager.php` file. By default backpack uses `--disable-notifications` flag, remove it if you are using notifications. **2)** If you have configured `backpack_flags` in `config/backup` you should now move them to the new config, under the key: `artisan_command_on_button_click`. ```php // This command will be run when user click on the "Create a new backup" button // You can add flags to this like --only-db --only-files --only-to-disk=name-of-disk --disable-notifications // Details here: https://spatie.be/docs/laravel-backup/v8/taking-backups/overview 'artisan_command_on_button_click' => 'backup:run --disable-notifications', ``` **3)** If you didn't do anymore configs you can now safely remove the `config/backup.php` file and there is no need to re-publish the spatie config, **jump to step 5**. **4)** If you are customizing other options in `config/backup.php` file make sure that your changes are compatible with the new config (it should be), otherwise save your config file in some other place, force publish the v8 spatie configuration file with `php artisan vendor:publish --force --provider="Spatie\Backup\BackupServiceProvider" --tag="backup-config"` and then re-configure what you need. **5)** You may need to clear the cache with `php artisan optimize:clear` and/or `php artisan config:clear`. **6)** Manually run from console the `backup:run` command to make sure it's working, use `backup:run --disable-notifications` if you are not using notifications. **7)** If you are **scheduling your backup jobs** make sure to also use the apropriate synthax in the commands. In previous backup versions the notification exceptions would **not be reported** and your scripts would run fine even if an exception was thrown. Now **they report**, so to avoid the exceptions halting your scripts in the notification part, **you need to explicitly tell the backup script that you don't want notifications** if you didn't configure them: ```php // app/Console/Kernel.php protected function schedule(Schedule $schedule) { // this would work previously even if you didn't configured notifications, // it would throw an exception but it was not reported, so script is not halted. $schedule->command('backup:clean')->daily()->at('04:00'); // now if you don't use notifications you should explicitly tell that to backup // otherwise the same exception will be thrown, but this time reported, // halting the script execution. $schedule->command('backup:clean --disable-notifications')->daily()->at('04:00'); } ``` ## Upgrading from 2.x to 3.x Change your required version to ```"backpack/backupmanager": "^3.0",``` and run ```composer update```. There are no breaking changes just icons that are show using ```la la-icon``` instead of ```fa fa-icon```. ## Upgrading from 1.2.x to 1.3.x 1) change your required version to ```"backpack/backupmanager": "^1.3",``` and run ```composer update```; 2) delete the old config file (too many changes, including namechange): ```rm config/laravel-backup.php``` 3) republish the config files: ```php artisan vendor:publish --provider="Backpack\BackupManager\BackupManagerServiceProvider"``` 4) change your db configuration in ```config/database.php``` to use the new dump configuration (all options in one array; the example below is for MAMP on MacOS): ```php 'dump' => [ 'dump_binary_path' => '/Applications/MAMP/Library/bin/', // only the path, so without `mysqldump` or `pg_dump` 'use_single_transaction', 'timeout' => 60 * 5, // 5 minute timeout // 'exclude_tables' => ['table1', 'table2'], // 'add_extra_option' => '--optionname=optionvalue', ] ``` 5) Create a backup in the interface to test it works. If it doesn't try ```php artisan backup:run``` to see what the problem is. ## Upgrading from 1.1.x to 1.2.x 1) change your required version to ```"backpack/backupmanager": "^1.2",```; 2) the only breaking change is that the ```config/database.php``` dump variables are now inside an array. Please see the step 8 above, copy-paste the ```dump``` array from there and customize; ================================================ FILE: composer.json ================================================ { "name": "backpack/backupmanager", "description": "Admin interface for managing backups in Backpack, on Laravel 5.2+", "keywords": [ "backpack", "updivision", "backup", "backupmanager", "tabacitu", "laravel" ], "homepage": "https://github.com/laravel-backpack/BackupManager", "license": "proprietary", "authors": [ { "name": "Cristian Tabacitu", "email": "tabacitu@backpackforlaravel.com", "homepage": "https://backpackforlaravel.com", "role": "Chief Architect & Web Developer" } ], "minimum-stability": "dev", "prefer-stable": true, "require": { "backpack/crud": "^6.0|^7.0", "spatie/laravel-backup": "^8.0|^9.0|^10.0" }, "require-dev": { "scrutinizer/ocular": "~1.7|~1.1" }, "autoload": { "psr-4": { "Backpack\\BackupManager\\": "src" } }, "extra": { "laravel": { "providers": [ "Backpack\\BackupManager\\BackupManagerServiceProvider" ] } } } ================================================ FILE: issue_template.md ================================================ # Bug report ### What I did: ### What I expected to happen: ### What happened: ### What I've already tried to fix it: ### Backpack, Laravel, PHP, DB version: ================================================ FILE: src/BackupManagerServiceProvider.php ================================================ loadViewsFrom($customViewsFolder, 'backupmanager'); } // - then the stock views that come with the package, in case a published view might be missing $this->loadViewsFrom(realpath(__DIR__.'/resources/views'), 'backupmanager'); // publish config file $this->publishes([__DIR__.'/config/backupmanager.php' => config_path('backpack/backupmanager.php')], 'backup-config'); // publish lang files $this->publishes([__DIR__.'/resources/lang' => app()->langPath().'/vendor/backpack'], 'lang'); // publish the views $this->publishes([__DIR__.'/resources/views' => resource_path('views/vendor/backpack/backupmanager')], 'views'); } /** * Define the routes for the application. * * @param \Illuminate\Routing\Router $router * * @return void */ public function setupRoutes(Router $router) { // by default, use the routes file provided in vendor $routeFilePathInUse = __DIR__.$this->routeFilePath; // but if there's a file with the same name in routes/backpack, use that one if (file_exists(base_path().$this->routeFilePath)) { $routeFilePathInUse = base_path().$this->routeFilePath; } $this->loadRoutesFrom($routeFilePathInUse); } /** * Register any package services. * * @return void */ public function register() { $this->setupRoutes($this->app->router); } } ================================================ FILE: src/app/Http/Controllers/BackupController.php ================================================ data['backups'] = []; foreach (config('backup.backup.destination.disks') as $diskName) { $disk = Storage::disk($diskName); $files = $disk->allFiles(); // make an array of backup files, with their filesize and creation date foreach ($files as $file) { // remove diskname from filename $fileName = str_replace('backups/', '', $file); $downloadLink = route('backup.download', ['file_name' => $fileName, 'disk' => $diskName]); $deleteLink = route('backup.destroy', ['file_name' => $fileName, 'disk' => $diskName]); // only take the zip files into account if (substr($file, -4) == '.zip' && $disk->exists($file)) { $this->data['backups'][] = (object) [ 'filePath' => $file, 'fileName' => $fileName, 'fileSize' => round((int) $disk->size($file) / 1048576, 2), 'lastModified' => Carbon::createFromTimeStamp($disk->lastModified($file), config('app.timezone'))->isoFormat('DD MMMM YYYY, HH:mm'), 'diskName' => $diskName, 'downloadLink' => is_a($disk->getAdapter(), LocalFilesystemAdapter::class, true) ? $downloadLink : null, 'deleteLink' => $deleteLink, ]; } } } // reverse the backups, so the newest one would be on top $this->data['backups'] = array_reverse($this->data['backups']); $this->data['title'] = trans('backpack::backup.backups'); return view('backupmanager::backup', $this->data); } public function create() { $command = config('backpack.backupmanager.artisan_command_on_button_click') ?? 'backup:run'; try { foreach (config('backpack.backupmanager.ini_settings', []) as $setting => $value) { ini_set($setting, $value); } Log::info('Backpack\BackupManager -- Called backup:run from admin interface'); Artisan::call($command); $output = Artisan::output(); if (strpos($output, 'Backup failed because')) { preg_match('/Backup failed because(.*?)$/ms', $output, $match); $message = "Backpack\BackupManager -- backup process failed because ".($match[1] ?? ''); Log::error($message.PHP_EOL.$output); return response($message, 500); } } catch (Exception $e) { Log::error($e); return response($e->getMessage(), 500); } return true; } /** * Downloads a backup zip file. */ public function download() { $diskName = Request::input('disk'); $fileName = Request::input('file_name'); $disk = Storage::disk($diskName); if (!$this->isBackupDisk($diskName)) { abort(500, trans('backpack::backup.unknown_disk')); } if (!is_a($disk->getAdapter(), LocalFilesystemAdapter::class, true)) { abort(404, trans('backpack::backup.only_local_downloads_supported')); } if (!$disk->exists($fileName)) { abort(404, trans('backpack::backup.backup_doesnt_exist')); } return $disk->download($fileName); } /** * Deletes a backup file. */ public function delete() { $diskName = Request::input('disk'); $fileName = Request::input('file_name'); if (!$this->isBackupDisk($diskName)) { return response(trans('backpack::backup.unknown_disk'), 500); } $disk = Storage::disk($diskName); if (!$disk->exists($fileName)) { return response(trans('backpack::backup.backup_doesnt_exist'), 404); } return $disk->delete($fileName); } /** * Check if disk is a backup disk. * * @param string $diskName * * @return bool */ private function isBackupDisk(string $diskName) { return in_array($diskName, config('backup.backup.destination.disks')); } } ================================================ FILE: src/config/backupmanager.php ================================================ 'backup:run --disable-notifications', // here you can configure your php settings that will apply before starting the backup operation // one of the things that Backpack does by default is increasing the `max_execution_time` for // php scripts, as listing all files for backup could take some time to execute. 'ini_settings' => [ 'max_execution_time' => 600, ], ]; ================================================ FILE: src/resources/lang/ar/backup.php ================================================ 'نسخة احتياطية', 'create_a_new_backup' => 'إنشاء نسخة احتياطية جديدة', 'existing_backups' => 'النسخ الاحتياطية الموجودة', 'date' => 'التاريخ', 'file_size' => 'حجم الملف', 'actions' => 'اجراءات', 'download' => 'تحميل', 'delete' => 'حذف', 'delete_confirm' => 'هل انت متأكد من حذف النسخة الاحتياطية؟', 'delete_confirmation_title' => 'تم بالنجاح', 'delete_confirmation_message' => 'تم حذف ملف النسخة الاحتياطية', 'delete_error_title' => 'هناك خطأ', 'delete_error_message' => 'ملف النسخة الاحتياطية لم يتم حذفه.', 'delete_cancel_title' => 'كل شيئ على مايرام.', 'delete_cancel_message' => 'ملف النسخة الاحتياطية لم يتم حذفه.', 'create_confirmation_title' => 'تم عمل النسخ الاحتياطية بالنجاح', 'create_confirmation_message' => 'سيتم اعادة اعادة تحميل الصفحة خلال 3 ثواني.', 'create_error_title' => 'هناك خطأ في النسخة الاحتياطية', 'create_error_message' => 'لا يمكن إنشاء ملف النسخة الاحتياطية.', 'create_warning_title' => 'هناك خطأ غير معروف', 'create_warning_message' => 'ربما لم يتم إنشاء النسخة الاحتياطية. يرجى التحقق من ملفات السجل للحصول على التفاصيل.', 'location' => 'الموقع', 'no_disks_configured' => 'لايوجد أقراص تم تحددها في ملف config/backup.php', 'backup_doesnt_exist' => 'ملف النسخ الاحتياطي غير موجود.', 'only_local_downloads_supported' => 'لايمكن تحميل النسخة الاحتياطية الا من القرص المحلي.', ]; ================================================ FILE: src/resources/lang/en/backup.php ================================================ 'Backup', 'backups' => 'Backups', 'create_a_new_backup' => 'Create a new backup', 'existing_backups' => 'Existing backups', 'date' => 'Date', 'file_size' => 'File size', 'actions' => 'Actions', 'download' => 'Download', 'delete' => 'Delete', 'delete_confirm' => 'Are you sure you want to delete this backup file?', 'delete_confirmation_title' => 'Done', 'delete_confirmation_message' => 'The backup file was deleted.', 'delete_error_title' => 'Error', 'delete_error_message' => 'The backup file has NOT been deleted.', 'delete_cancel_title' => "It's ok", 'delete_cancel_message' => 'The backup file has NOT been deleted.', 'create_confirmation_title' => 'Backup process started.', 'create_error_title' => 'Backup error', 'create_error_message' => 'The backup file could NOT be created.', 'create_warning_title' => 'Unknown error', 'create_warning_message' => 'Your backup may NOT have been created. Please check log files for details.', 'location' => 'Location', 'no_disks_configured' => 'No backup disks configured in config/backup.php', 'backup_doesnt_exist' => "The backup file doesn't exist.", 'only_local_downloads_supported' => 'Only downloads from the Local filesystem are supported.', 'unknown_disk' => 'Unknown disk.', 'create_started_message' => 'Please wait a few minutes for it to complete.', 'create_completed_title' => 'Your backup is complete.', 'download_confirmation_title' => 'Download process started.', 'download_error_title' => 'Download error', ]; ================================================ FILE: src/resources/lang/es/backup.php ================================================ 'Copia de seguridad', 'backups' => 'Copias de seguridad', 'create_a_new_backup' => 'Crear una copia de seguridad', 'existing_backups' => 'Copias de seguridad existentes', 'date' => 'Fecha', 'file_size' => 'Tamaño del fichero', 'actions' => 'Acciones', 'download' => 'Descargar', 'delete' => 'Eliminar', 'delete_confirm' => '¿Estás seguro que quieres borrar esta copia de seguridad?', 'delete_confirmation_title' => 'Confirmado', 'delete_confirmation_message' => 'La copia de seguridad fue eliminada.', 'delete_error_title' => 'Ups, ha ocurrido un error', 'delete_error_message' => 'La copia de seguridad NO se pudo eliminar.', 'delete_cancel_title' => 'La operación ha sido cancelada', 'delete_cancel_message' => 'La copia de seguridad NO se pudo eliminar.', 'create_confirmation_title' => 'Se ha completado la copia de seguridad', 'create_confirmation_message' => 'Recargando la página en 3 segundos.', 'create_error_title' => 'Error al realizar la copia de seguridad', 'create_error_message' => 'La copia de seguridad NO se pudo crear.', 'create_warning_title' => 'Estamos presentando problemas', 'create_warning_message' => 'La copia de seguridad puede que no se haya realizado. Por favor verifica los logs para más detalles.', 'location' => 'Ubicación', 'no_disks_configured' => 'No existe ningún disco configurado config/backup.php', 'backup_doesnt_exist' => 'La copia de seguridad no existe.', 'only_local_downloads_supported' => 'Solo se permiten descargas del sistema de archivos local.', ]; ================================================ FILE: src/resources/lang/fa/backup.php ================================================ 'پشتیبان', 'create_a_new_backup' => 'ایجاد پشتیبان جدید', 'existing_backups' => 'پشتیبان‌های موجود', 'date' => 'تاریخ', 'file_size' => 'سایز پرونده', 'actions' => 'عملیات', 'download' => 'بارگیری', 'delete' => 'حذف', 'delete_confirm' => 'آیا شما از حذف این پرونده پشتیبان اطمینان دارید؟', 'delete_confirmation_title' => 'انجام شد', 'delete_confirmation_message' => 'پرونده پشتیبان با موفقیت حذف شد.', 'delete_error_title' => 'خطا', 'delete_error_message' => 'پرونده پشتیبان حذف نشده است.', 'delete_cancel_title' => 'مشکلی نیست', 'delete_cancel_message' => 'پرونده پشتیبان حذف نشده است.', 'create_confirmation_title' => 'فرآیند پشتیبان‌گیری شروع شد.', 'create_confirmation_message' => 'لطفا چند دقیقه صبر کنید تا کامل شود ، سپس صفحه را تازه کنید.', 'create_error_title' => 'خطا پشتیبان', 'create_error_message' => 'فایل پشتیبان نمی‌تواند ساخته شود.', 'create_warning_title' => 'خطای نا مشخص', 'create_warning_message' => 'نسخه پشتیبان شما ممکن است ایجاد نشده باشد. لطفاً پرونده ها را برای جزئیات بیشتر بررسی کنید.', 'location' => 'محل', 'no_disks_configured' => 'دیسک پشتیبانی در config/backup.php تنظیم نشده است.', 'backup_doesnt_exist' => 'پرونده پشتیبان وجود ندارد.', 'only_local_downloads_supported' => 'تنها دانلود از سیستم‌فایل محلی پشتیبانی می‌شود', ]; ================================================ FILE: src/resources/lang/fr/backup.php ================================================ 'Sauvegarde', 'backups' => 'Sauvegardes', 'create_a_new_backup' => 'Créer une nouvelle sauvegarde', 'existing_backups' => 'Sauvegardes existantes', 'date' => 'Date', 'file_size' => 'Taille de fichier', 'actions' => 'Actions', 'download' => 'Télécharger', 'delete' => 'Supprimer', 'delete_confirm' => 'Etes-vous certain de vouloir supprimer ce fichier ?', 'delete_confirmation_title' => 'Fait', 'delete_confirmation_message' => 'Le fichier de sauvegarde a été supprimmé.', 'delete_error_title' => 'Erreur', 'delete_error_message' => 'Le fichier de sauvegarde n\'a PAS été supprimmé.', 'delete_cancel_title' => "C'est ok", 'delete_cancel_message' => 'Le fichier de sauvegarde n\'a PAS été supprimmé.', 'create_confirmation_title' => 'Sauvegarde terminée', 'create_confirmation_message' => 'Rechargement de cette page dans 3 secondes.', 'create_error_title' => 'Erreur de sauvegarde', 'create_error_message' => 'Le fichier de sauvegarde n\'a PAS pu être créer.', 'create_warning_title' => 'Erreur inconnue', 'create_warning_message' => 'Votre fichier de sauvegarde n\'a sans doute pas pu être créé. Regardez les logs pour plus de details.', 'location' => 'Emplacement', 'no_disks_configured' => 'Aucun "backup disks" de configuré dans config/backup.php', 'backup_doesnt_exist' => "Le fichier de sauvegarde n'existe pas.", 'only_local_downloads_supported' => 'Seuls les téléchargments à partir du système de fichier local sont supportés.', ]; ================================================ FILE: src/resources/lang/gr/backup.php ================================================ 'Αντίγραφο ασφαλείας', 'backups' => 'Αντίγραφα ασφαλείας', // Added plural 'create_a_new_backup' => 'Δημιουργία νέου αντιγράφου ασφαλείας', 'existing_backups' => 'Υπάρχοντα αντίγραφα ασφαλείας', 'date' => 'Ημερομηνία', 'file_size' => 'Μέγεθος Αρχείου', 'actions' => 'Ενέργειες', 'download' => 'Λήψη', 'delete' => 'Διαγραφή', 'delete_confirm' => 'Είστε σίγουρος/η πως θέλετε να διαγράψετε αυτό το αντίγραφο ασφαλείας?', 'delete_confirmation_title' => 'Η ενέργεια πραγματοποιήθηκε', 'delete_confirmation_message' => 'Το αντίγραφο ασφαλείας διαγράφηκε.', 'delete_error_title' => 'Σφάλμα', 'delete_error_message' => 'Το αντίγραφο ασφαλείας ΔΕΝ έχει διαγραφεί.', 'delete_cancel_title' => 'Να πραγματοποιηθεί η διαγραφή', 'delete_cancel_message' => 'Το αντίγραφο ασφαλείας ΔΕΝ έχει διαγραφεί.', 'create_confirmation_title' => 'Η δημιουργία αντιγράφου ασφαλείας έχει ολοκληρωθεί', 'create_confirmation_message' => 'Επαναφόρτωση της σελίδας σε 3 δευτερόλεπτα.', 'create_error_title' => 'Σφάλμα αντιγράφου ασφαλείας', 'create_error_message' => 'Το αντίγραφο ασφαλείας ΔΕΝ μπόρεσε να δημιουργηθεί.', 'create_warning_title' => 'Άγνωστο σφάλμα', 'create_warning_message' => 'Το αντίγραφο ασφαλείας μπορεί να μην έχει δημιουργηθεί. Παρακαλώ ελέγξτε τα αρχεία καταγραφής για λεπτομέρειες.', 'location' => 'Τοποθεσία', 'no_disks_configured' => 'Δεν έχει οριστεί κανένας δίσκος για αντίγραφα ασφαλείας στο config/backup.php', 'backup_doesnt_exist' => 'Το αντίγραφο ασφαλείας δεν υφίσταται.', 'only_local_downloads_supported' => 'Υποστηρίζονται λήψεις μόνο από το τοπικό σύστημα αρχείων.', ]; ================================================ FILE: src/resources/lang/id/backup.php ================================================ 'Cadangkan', 'create_a_new_backup' => 'Buat cadangan baru', 'existing_backups' => 'Backup yang ada', 'date' => 'Tanggal', 'file_size' => 'Ukuran file', 'actions' => 'Aksi', 'download' => 'Unduh', 'delete' => 'Hapus', 'delete_confirm' => 'Anda yakin ingin menghapus file cadangan ini?', 'delete_confirmation_title' => 'Selesai', 'delete_confirmation_message' => 'File cadangan telah dihapus.', 'delete_error_title' => 'Terjadi kesalahan', 'delete_error_message' => 'File cadangan TIDAK dihapus.', 'delete_cancel_title' => 'Tidak apa-apa', 'delete_cancel_message' => 'File cadangan TIDAK dihapus.', 'create_confirmation_title' => 'Proses pencadangan dimulai', 'create_confirmation_message' => 'Harap tunggu beberapa menit hingga selesai, lalu segarkan laman.', 'create_error_title' => 'Kesalahan cadangan', 'create_error_message' => 'File cadangan TIDAK dapat dibuat.', 'create_warning_title' => 'Kesalahan yang tidak diketahui', 'create_warning_message' => 'Cadangan Anda TIDAK dapat dibuat. Silakan periksa file log untuk detailnya.', 'location' => 'Lokasi', 'no_disks_configured' => 'Tidak ada disk cadangan yang dikonfigurasi di config/backup.php', 'backup_doesnt_exist' => 'File cadangan tidak ada.', 'only_local_downloads_supported' => 'Hanya unduhan dari sistem file Lokal yang didukung.', ]; ================================================ FILE: src/resources/lang/it/backup.php ================================================ 'Backup', 'backups' => 'Backups', 'create_a_new_backup' => 'Crea un nuovo backup', 'existing_backups' => 'Backups esistenti', 'date' => 'Data', 'file_size' => 'Dimensione file', 'actions' => 'Azioni', 'download' => 'Download', 'delete' => 'Elimina', 'delete_confirm' => 'Sei sicuro di voler eliminare questo file di backup?', 'delete_confirmation_title' => 'Fatto', 'delete_confirmation_message' => 'Il file di backup è stato eliminato.', 'delete_error_title' => 'Errore', 'delete_error_message' => 'Il file di backup NON è stato eliminato.', 'delete_cancel_title' => 'Tutto a posto', 'delete_cancel_message' => 'Il file di backup NON è stato eliminato.', 'create_confirmation_title' => 'Processo di backup avviato.', 'create_error_title' => 'Errore backup', 'create_error_message' => 'Non è stato possibile creare il file di backup.', 'create_warning_title' => 'Errore sconosciuto', 'create_warning_message' => 'Il backup potrebbe NON essere stato creato. Per favore controlla i log file per dettagli.', 'location' => 'Posizione', 'no_disks_configured' => 'Nessun disco per il backup configurato in config/backup.php', 'backup_doesnt_exist' => 'Il file di backup non esiste.', 'only_local_downloads_supported' => 'Sono supportati solo i download dal file system locale.', 'unknown_disk' => 'Disco sconosciuto.', 'create_started_message' => 'Per favore attendi alcuni minuti per il completamento.', 'create_completed_title' => 'Il backup è completato.', 'download_confirmation_title' => 'Processo di download avviato.', 'download_error_title' => 'Errore download', ]; ================================================ FILE: src/resources/lang/nl/backup.php ================================================ 'Backup', 'create_a_new_backup' => 'Maak een nieuwe backup', 'existing_backups' => 'Bestaande backups', 'date' => 'Datum', 'file_size' => 'Bestandsgrootte', 'actions' => 'Acties', 'download' => 'Download', 'delete' => 'Verwijder', 'delete_confirm' => 'Weet je zeker dat je dit backup bestand wilt verwijderen?', 'delete_confirmation_title' => 'Klaar', 'delete_confirmation_message' => 'Het backup bestand is verwijderd.', 'delete_error_title' => 'Fout', 'delete_error_message' => 'Het backup bestand is NIET verwijderd.', 'delete_cancel_title' => 'Alles veilig', 'delete_cancel_message' => 'Het backup bestand is NIET verwijderd.', 'create_confirmation_title' => 'Backup voltooid', 'create_confirmation_message' => 'De pagina wordt opnieuw geladen in 3 seconden.', 'create_error_title' => 'Backup fout', 'create_error_message' => 'Het backup bestand kon NIET worden gemaakt.', 'create_warning_title' => 'Onbekende fout', 'create_warning_message' => 'Het kan zijn dat je backup niet gemaakt is. Controleer de log bestanden voor meer informatie.', 'location' => 'Locatie', 'no_disks_configured' => 'Geen backup locaties geconfigureerd in config/wbackup.php', 'backup_doesnt_exist' => 'Het backup bestand bestaat niet.', 'only_local_downloads_supported' => 'Enkel downloads van het lokale bestandssysteem worden ondersteund.', ]; ================================================ FILE: src/resources/lang/pt/backup.php ================================================ 'Backup', 'backups' => 'Backups', 'create_a_new_backup' => 'Criar um novo backup', 'existing_backups' => 'Backups existentes', 'date' => 'Data', 'file_size' => 'Tamanho do ficheiro', 'actions' => 'Ações', 'download' => 'Transferir', 'delete' => 'Apagar', 'delete_confirm' => 'Tem a certeza que quer apagar este backup?', 'delete_confirmation_title' => 'Concluído', 'delete_confirmation_message' => 'O backup foi apagado.', 'delete_error_title' => 'Erro', 'delete_error_message' => 'O backup NÃO foi apagado.', 'delete_cancel_title' => 'Está tudo bem!', 'delete_cancel_message' => 'O backup NÃO foi apagado.', 'create_confirmation_title' => 'Backup iniciado.', 'create_error_title' => 'Erro ao fazer o backup', 'create_error_message' => 'O backup não foi criado.', 'create_warning_title' => 'Erro desconhecido', 'create_warning_message' => 'O backup pode NÃO ter sido criado. Por favor verifique o registo para obter mais detalhes.', 'location' => 'Localização', 'no_disks_configured' => 'Não foi configurado nenhum disco de backups em config/backup.php', 'backup_doesnt_exist' => 'O backup não existe', 'only_local_downloads_supported' => 'Apenas são permitidas transferências do sistema de ficheiros local.', 'unknown_disk' => 'Disco de backup desconhecido.', 'create_started_message' => 'Por favor aguarde alguns minutos pela conclusão do backup.', 'create_completed_title' => 'O backup está concluído.', 'download_confirmation_title' => 'Download iniciado.', 'download_error_title' => 'Erro ao fazer o download', ]; ================================================ FILE: src/resources/lang/pt_br/backup.php ================================================ 'Backup', 'backups' => 'Backups', 'create_a_new_backup' => 'Criar um novo backup', 'existing_backups' => 'Backups existentes', 'date' => 'Data', 'file_size' => 'Tamanho do Arquivo', 'actions' => 'Ações', 'download' => 'Baixar', 'delete' => 'Excluir', 'delete_confirm' => 'Tem certeza que deseja excluir este backup?', 'delete_confirmation_title' => 'Pronto', 'delete_confirmation_message' => 'Backup excluído com sucesso.', 'delete_error_title' => 'Erro', 'delete_error_message' => 'Não foi possível excluir o backup.', 'delete_cancel_title' => 'Sem problema', 'delete_cancel_message' => 'O backup não foi excluído.', 'create_confirmation_title' => 'Backup iniciado.', 'create_error_title' => 'Erro de backup', 'create_error_message' => 'Não foi possível criar o Backup.', 'create_warning_title' => 'Erro desconhecido', 'create_warning_message' => 'O backup solicitado pode não ter sido criado. Por favor, verifique o arquivo de log para mais informações.', 'location' => 'Localização', 'no_disks_configured' => 'Não existe configuração de local de backup no arquivo config/backup.php', 'backup_doesnt_exist' => 'O arquivo de backup não existe.', 'only_local_downloads_supported' => 'Somente são suportados downloads do sistema de arquivos local.', 'unknown_disk' => 'Disco de backup desconhecido.', 'create_started_message' => 'Por favor aguarde alguns minutos pela conclusão do backup.', 'create_completed_title' => 'O backup está concluído.', 'download_confirmation_title' => 'Download iniciado.', 'download_error_title' => 'Erro ao fazer o download', ]; ================================================ FILE: src/resources/lang/ro/backup.php ================================================ 'Copie de siguranță', 'backups' => 'Copii de siguranță', 'create_a_new_backup' => 'Creează o nouă copie de siguranță', 'existing_backups' => 'Copii existente', 'date' => 'Data', 'file_size' => 'Mărimea fișierului', 'actions' => 'Acțiuni', 'download' => 'Descarcă', 'delete' => 'Șterge', 'delete_confirm' => 'Ești sigur că vrei să ștergi copia de siguranță?', 'delete_confirmation_title' => 'Operațiune reușită', 'delete_confirmation_message' => 'Copia de siguranță a fost ștearsă.', 'delete_error_title' => 'Eroare', 'delete_error_message' => 'Copia de siguranță NU a fost ștearsă.', 'delete_cancel_title' => 'Este în regulă', 'delete_cancel_message' => 'Copia de siguranță NU a fost ștearsă.', 'create_confirmation_title' => 'Am început procesul de creare copie de siguranță', 'create_confirmation_message' => 'Vă rugăm așteptați câteva minute, apoi reîncărcați pagina.', 'create_error_title' => 'Eroare', 'create_error_message' => 'Copia de siguranță NU a putut fi creată.', 'create_warning_title' => 'Eroare necunoscută', 'create_warning_message' => 'Copia de siguranță e posibil să NU fi fost creată. Verificați fișierele de log pentru detalii.', 'location' => 'Locație', 'no_disks_configured' => 'Nu există niciun disc in config/backups.php', 'backup_doesnt_exist' => 'Fișierul de backup nu există.', 'only_local_downloads_supported' => 'Doar descarcările din sistemul de fișiere local sunt suportate.', ]; ================================================ FILE: src/resources/lang/ru/backup.php ================================================ 'Резервирование', 'create_a_new_backup' => 'Создать новую копию', 'existing_backups' => 'Существующие копии', 'date' => 'Дата', 'file_size' => 'Размер файла', 'actions' => 'Действия', 'download' => 'Выгрузить', 'delete' => 'Удалить', 'delete_confirm' => 'Удалить эту резервную копию?', 'delete_confirmation_title' => 'Успешно', 'delete_confirmation_message' => 'Резервная копия удалена.', 'delete_error_title' => 'Ошибка', 'delete_error_message' => 'Резервная копия не удалена.', 'delete_cancel_title' => 'Без ошибок', 'delete_cancel_message' => 'Резервная копия не удалена.', 'create_confirmation_title' => 'Процесс резервирования запущен', 'create_confirmation_message' => 'Пожалуйста, подождите несколько минут до его завершения, затем обновите страницу.', 'create_error_title' => 'Ошибка резервирования', 'create_error_message' => 'Не удалось создать резервную копию.', 'create_warning_title' => 'Неизвестная ошибка', 'create_warning_message' => 'Возможно резервная копия не создана. Пожалуйста, проверьте лог-файлы для подтверждения.', 'location' => 'Назначение', 'no_disks_configured' => 'Настройте диск в конфигурационном файле config/backup.php', 'backup_doesnt_exist' => 'Резервная копия не существует.', 'only_local_downloads_supported' => 'Выгрузка поддерживается только для локальных файловых систем.', ]; ================================================ FILE: src/resources/lang/se/backup.php ================================================ 'Säkerhetskopiering', 'backups' => 'Säkerhetskopieringor', 'create_a_new_backup' => 'Skapa en ny säkerhetskopia', 'existing_backups' => 'Befintliga säkerhetskopior', 'date' => 'Datum', 'file_size' => 'Filstorlek', 'actions' => 'Åtgärder', 'download' => 'Ladda ner', 'delete' => 'Radera', 'delete_confirm' => 'Är du säker på att du vill ta bort denna säkerhetskopia?', 'delete_confirmation_title' => 'Klar', 'delete_confirmation_message' => 'Säkerhetskopieringsfilen togs bort.', 'delete_error_title' => 'Fel', 'delete_error_message' => 'Säkerhetskopieringsfilen har INTE tagits bort.', 'delete_cancel_title' => 'Det är okej', 'delete_cancel_message' => 'Säkerhetskopieringsfilen har INTE tagits bort.', 'create_confirmation_title' => 'Säkerhetskopiering har påbörjats.', 'create_error_title' => 'Säkerhetskopieringsfel', 'create_error_message' => 'Säkerhetskopieringsfilen kunde INTE skapas.', 'create_warning_title' => 'Okänt fel', 'create_warning_message' => 'Din säkerhetskopia kanske INTE har skapats. Kontrollera loggfilerna för detaljer.', 'location' => 'Plats', 'no_disks_configured' => 'Inga backup-diskar konfigurerade i config/backup.php', 'backup_doesnt_exist' => 'Säkerhetskopieringsfilen finns inte.', 'only_local_downloads_supported' => 'Endast nedladdningar från det lokala filsystemet stöds.', 'unknown_disk' => 'Okänd disk.', 'create_started_message' => 'Vänta några minuter tills det är klart.', 'create_completed_title' => 'Din säkerhetskopiering är klar.', 'download_confirmation_title' => 'Nedladdningsprocessen har påbörjats.', 'download_error_title' => 'Nedladdningsfel', ]; ================================================ FILE: src/resources/lang/tr/backup.php ================================================ 'Yedekler', 'create_a_new_backup' => 'Yeni bir yedek oluştur', 'existing_backups' => 'Yedekleme mevcut', 'date' => 'Tarih', 'file_size' => 'Dosya Boyutu', 'actions' => 'Olaylar', 'download' => 'İndir', 'delete' => 'Sil', 'delete_confirm' => 'Bu yedek dosyasını silmek istediğinize emin misiniz?', 'delete_confirmation_title' => 'Tamam', 'delete_confirmation_message' => 'Yedek dosyası silindi.', 'delete_error_title' => 'Hata', 'delete_error_message' => 'Yedek dosyası silinemedi.', 'delete_cancel_title' => 'İşlem Sonucu', 'delete_cancel_message' => 'Yedek dosyası silinemedi.', 'create_confirmation_title' => 'Yedekleme tamamlandı', 'create_confirmation_message' => 'Sayfa 3 saniye içerisinde yenilenecektir.', 'create_error_title' => 'Yedekleme hatası', 'create_error_message' => 'Yedek dosyası oluşturulamadı.', 'create_warning_title' => 'Bilinmeyen hata', 'create_warning_message' => 'Yedekleme işlemi oluşturulmamış olabilir. Lütfen log dosyasını inceleyiniz .', 'location' => 'Konum', 'no_disks_configured' => 'Yedekleme disk ismi config/backup.php dosyasında tanımlanmamış', 'backup_doesnt_exist' => 'Yedek dosyası mevcut değil.', 'only_local_downloads_supported' => 'İndirme işlemi sadece local sunucuda bulunan dosyalar için geçerlidir.', ]; ================================================ FILE: src/resources/lang/uk/backup.php ================================================ | */ 'backup' => 'Резервне копіювання', 'create_a_new_backup' => 'Створити нову резервну копію', 'existing_backups' => 'Існуючі резервні копії', 'date' => 'Дата', 'file_size' => 'Розмір файлу', 'actions' => 'Дії', 'download' => 'Завантажити', 'delete' => 'Видалити', 'delete_confirm' => 'Ви впевнені, що хочете видалити цей файл резервної копії?', 'delete_confirmation_title' => 'Готово', 'delete_confirmation_message' => 'Файл резервної копії видалено.', 'delete_error_title' => 'Помилка', 'delete_error_message' => 'Файл резервної копії НЕ видалявся.', 'delete_cancel_title' => 'Все добре', 'delete_cancel_message' => 'Файл резервної копії НЕ видалявся.', 'create_confirmation_title' => 'Розпочато процес резервного копіювання', 'create_confirmation_message' => 'Зачекайте кілька хвилин, поки він завершиться, а потім оновіть сторінку.', 'create_error_title' => 'Помилка резервного копіювання', 'create_error_message' => 'Файл резервної копії НЕ вдалося створити.', 'create_warning_title' => 'Невідома помилка', 'create_warning_message' => 'Можливо, ваша резервна копія НЕ була створена. Будь ласка, перевірте файли журналу для деталей.', 'location' => 'Розташування', 'no_disks_configured' => 'Резервні диски не налаштовано у config/backup.php', 'backup_doesnt_exist' => 'Файл резервної копії не існує.', 'only_local_downloads_supported' => 'Завантаження підтримуються лише з локальної файлової системи.', ]; ================================================ FILE: src/resources/lang/vi/backup.php ================================================ 'Sao lưu', 'backups' => 'Các bản sao lưu', 'create_a_new_backup' => 'Tạo bản sao lưu mới', 'existing_backups' => 'Các bản sao lưu hiện có', 'date' => 'Ngày', 'file_size' => 'Dung lượng', 'actions' => 'Thao tác', 'download' => 'Tải xuống', 'delete' => 'Xóa', 'delete_confirm' => 'Bạn có chắc chắn muốn xóa tập tin sao lưu này không?', 'delete_confirmation_title' => 'Hoàn tất', 'delete_confirmation_message' => 'Tập tin sao lưu đã được xóa.', 'delete_error_title' => 'Lỗi', 'delete_error_message' => 'Tập tin sao lưu chưa được xóa.', 'delete_cancel_title' => 'Không sao', 'delete_cancel_message' => 'Tập tin sao lưu chưa được xóa.', 'create_confirmation_title' => 'Quá trình sao lưu đã bắt đầu.', 'create_error_title' => 'Lỗi sao lưu', 'create_error_message' => 'Không thể tạo tập tin sao lưu.', 'create_warning_title' => 'Lỗi không xác định', 'create_warning_message' => 'Bản sao lưu của bạn có thể chưa được tạo. Vui lòng kiểm tra tập tin nhật ký (log) để biết chi tiết.', 'location' => 'Vị trí', 'no_disks_configured' => 'Chưa cấu hình đĩa sao lưu trong config/backup.php', 'backup_doesnt_exist' => 'Tập tin sao lưu không tồn tại.', 'only_local_downloads_supported' => 'Chỉ hỗ trợ tải xuống từ hệ thống tập tin cục bộ (Local).', 'unknown_disk' => 'Ổ đĩa không xác định.', 'create_started_message' => 'Vui lòng đợi vài phút để quá trình hoàn tất.', 'create_completed_title' => 'Sao lưu hoàn tất.', 'download_confirmation_title' => 'Quá trình tải xuống đã bắt đầu.', 'download_error_title' => 'Lỗi tải xuống', ]; ================================================ FILE: src/resources/lang/zh/backup.php ================================================ '備份', 'create_a_new_backup' => '建立新備份', 'existing_backups' => '存在的備份', 'date' => '日期', 'file_size' => '檔案大小', 'actions' => '執行', 'download' => '下載', 'delete' => '刪除', 'delete_confirm' => '你確定要刪除這個備份檔案?', 'delete_confirmation_title' => '完成', 'delete_confirmation_message' => '此備份已刪除', 'delete_error_title' => '錯誤', 'delete_error_message' => '此備份未被刪除', 'delete_cancel_title' => '沒問題', 'delete_cancel_message' => '此備份未被刪除', 'create_confirmation_title' => '備份完畢', 'create_confirmation_message' => '此頁面 3 秒後重新整理', 'create_error_title' => '備份錯誤', 'create_error_message' => '此備份無法被建立', 'create_warning_title' => '未知錯誤', 'create_warning_message' => '你的備份不允許建立,更多細節請查看 log 檔案', 'location' => '所在位置', 'no_disks_configured' => '在 config/backup.php 沒有備份 disks 設定', 'backup_doesnt_exist' => '此備份檔案不存在', 'only_local_downloads_supported' => '僅支援本地檔案系統才可以下載', ]; ================================================ FILE: src/resources/views/backup.blade.php ================================================ @extends(backpack_view('blank')) @php $breadcrumbs = [ trans('backpack::crud.admin') => backpack_url('dashboard'), trans('backpack::backup.backups') => false, ]; @endphp @section('header')

{{ trans('backpack::backup.backups') }}

@endsection @section('content') {{-- Default box --}}
@foreach ($backups as $key => $backup) @endforeach
# {{ trans('backpack::backup.location') }} {{ trans('backpack::backup.date') }} {{ trans('backpack::backup.file_size') }} {{ trans('backpack::backup.actions') }}
{{ $key + 1 }} {{ $backup->diskName }} {{ $backup->lastModified }} {{ $backup->fileSize }} MB @if ($backup->downloadLink) {{ trans('backpack::backup.download') }} @endif {{ trans('backpack::backup.delete') }}
@endsection @section('after_styles') @endsection @section('after_scripts') @endsection ================================================ FILE: src/routes/backpack/backupmanager.php ================================================ 'Backpack\BackupManager\app\Http\Controllers', 'prefix' => config('backpack.base.route_prefix', 'admin'), 'middleware' => ['web', config('backpack.base.middleware_key', 'admin')], ], function () { Route::get('backup', 'BackupController@index')->name('backup.index'); Route::put('backup/create', 'BackupController@create')->name('backup.store'); Route::get('backup/download/', 'BackupController@download')->name('backup.download'); Route::delete('backup/delete/', 'BackupController@delete')->name('backup.destroy'); });