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.

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 <hello@tabacitu.ro>
## 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 <hello@tabacitu.ro>.**
>
> **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
[](https://packagist.org/packages/backpack/backupmanager)
[](LICENSE.md)
[](https://travis-ci.org/laravel-backpack/backupmanager)
[](https://scrutinizer-ci.com/g/laravel-backpack/backupmanager/code-structure)
[](https://scrutinizer-ci.com/g/laravel-backpack/backupmanager)
[](https://styleci.io/repos/53956594)
[](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.

## 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 "<x-backpack::menu-item title='Backups' icon='la la-hdd-o' :link=\"backpack_url('backup')\" />"
# For Backpack v5 or v4
php artisan backpack:add-sidebar-content "<li class='nav-item'><a class='nav-link' href='{{ backpack_url('backup') }}'><i class='nav-icon la la-hdd-o'></i> Backups</a></li>"
```
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
================================================
<?php
namespace Backpack\BackupManager;
use Illuminate\Routing\Router;
use Illuminate\Support\ServiceProvider;
class BackupManagerServiceProvider extends ServiceProvider
{
/**
* Indicates if loading of the provider is deferred.
*
* @var bool
*/
protected $defer = false;
/**
* Where the route file lives, both inside the package and in the app (if overwritten).
*
* @var string
*/
public $routeFilePath = '/routes/backpack/backupmanager.php';
/**
* Perform post-registration booting of services.
*
* @return void
*/
public function boot()
{
// LOAD THE VIEWS
// - first the published/overwritten views (in case they have any changes)
$customViewsFolder = resource_path('views/vendor/backpack/backupmanager');
if (file_exists($customViewsFolder)) {
$this->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
================================================
<?php
namespace Backpack\BackupManager\app\Http\Controllers;
use Carbon\Carbon;
use Exception;
use Illuminate\Routing\Controller;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Request;
use Illuminate\Support\Facades\Storage;
use League\Flysystem\Local\LocalFilesystemAdapter;
class BackupController extends Controller
{
protected array $data;
public function index()
{
if (!count(config('backup.backup.destination.disks'))) {
abort(500, trans('backpack::backup.no_disks_configured'));
}
$this->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
================================================
<?php
return [
// What is being run when the admin clicks on the "Create a new backup" button
// You can add flags to this like --only-db --only-files --only-to-disk=name-of-disk
// Details here: https://spatie.be/docs/laravel-backup/v8/taking-backups/overview
'artisan_command_on_button_click' => '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
================================================
<?php
return [
/*
|--------------------------------------------------------------------------
| Backup Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are used by the backup system.
| You are free to change them to anything you want to customize your views to better match your application.
|
*/
'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' => 'سيتم اعادة اعادة تحميل الصفحة خلال 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
================================================
<?php
return [
/*
|--------------------------------------------------------------------------
| Backup Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are used by the backup system.
| You are free to change them to anything you want to customize your views to better match your application.
|
*/
'backup' => '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
================================================
<?php
return [
/*
|--------------------------------------------------------------------------
| Backup Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are used by the backup system.
| You are free to change them to anything you want to customize your views to better match your application.
|
*/
'backup' => '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
================================================
<?php
return [
/*
|--------------------------------------------------------------------------
| Backup Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are used by the backup system.
| You are free to change them to anything you want to customize your views to better match your application.
|
*/
'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/fr/backup.php
================================================
<?php
return [
/*
|--------------------------------------------------------------------------
| Backup Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are used by the backup system.
| You are free to change them to anything you want to customize your views to better match your application.
|
*/
'backup' => '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
================================================
<?php
return [
/*
|--------------------------------------------------------------------------
| Backup Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are used by the backup system.
| You are free to change them to anything you want to customize your views to better match your application.
|
*/
'backup' => 'Αντίγραφο ασφαλείας',
'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
================================================
<?php
return [
/*
|--------------------------------------------------------------------------
| Backup Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are used by the backup system.
| You are free to change them to anything you want to customize your views to better match your application.
|
*/
'backup' => '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
================================================
<?php
return [
/*
|--------------------------------------------------------------------------
| Backup Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are used by the backup system.
| You are free to change them to anything you want to customize your views to better match your application.
|
*/
'backup' => '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
================================================
<?php
return [
/*
|--------------------------------------------------------------------------
| Backup Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are used by the backup system.
| You are free to change them to anything you want to customize your views to better match your application.
|
*/
'backup' => '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
================================================
<?php
return [
/*
|--------------------------------------------------------------------------
| Backup Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are used by the backup system.
| You are free to change them to anything you want to customize your views to better match your application.
|
*/
'backup' => '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
================================================
<?php
return [
/*
|--------------------------------------------------------------------------
| Backup Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are used by the backup system.
| You are free to change them to anything you want to customize your views to better match your application.
|
*/
'backup' => '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
================================================
<?php
return [
/*
|--------------------------------------------------------------------------
| Backup Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are used by the backup system.
| You are free to change them to anything you want to customize your views to better match your application.
|
*/
'backup' => '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
================================================
<?php
return [
/*
|--------------------------------------------------------------------------
| Backup Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are used by the backup system.
| You are free to change them to anything you want to customize your views to better match your application.
|
*/
'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/se/backup.php
================================================
<?php
return [
/*
|--------------------------------------------------------------------------
| Backup Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are used by the backup system.
| You are free to change them to anything you want to customize your views to better match your application.
|
*/
'backup' => '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
================================================
<?php
return [
/*
|--------------------------------------------------------------------------
| Backup Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are used by the backup system.
| You are free to change them to anything you want to customize your views to better match your application.
|
*/
'backup' => '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
================================================
<?php
return [
/*
|--------------------------------------------------------------------------
| Backup Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are used by the backup system.
| You are free to change them to anything you want to customize your views to better match your application.
| Translated to Ukrainian: Pavel Tkachenko <kazantip@gmail.com>
|
*/
'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
================================================
<?php
return [
/*
|--------------------------------------------------------------------------
| Backup Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are used by the backup system.
| You are free to change them to anything you want to customize your views to better match your application.
|
*/
'backup' => '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
================================================
<?php
return [
/*
|--------------------------------------------------------------------------
| Backup Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are used by the backup system.
| You are free to change them to anything you want to customize your views to better match your application.
|
*/
'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' => '此頁面 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')
<section class="container-fluid" bp-section="page-header">
<h1 bp-section="page-heading" class="text-capitalize">{{ trans('backpack::backup.backups') }}</h1>
</section>
@endsection
@section('content')
{{-- Default box --}}
<button id="create-new-backup-button" href="{{ url(config('backpack.base.route_prefix', 'admin').'/backup/create') }}" bp-button="backup" class="btn btn-primary mb-2">
<i class="la la-spinner"></i>
<i class="la la-plus"></i>
<span>{{ trans('backpack::backup.create_a_new_backup') }}</span>
</button>
<div class="card">
<div class="card-body p-0">
<table class="table table-hover pb-0 mb-0">
<thead>
<tr>
<th>#</th>
<th>{{ trans('backpack::backup.location') }}</th>
<th>{{ trans('backpack::backup.date') }}</th>
<th class="text-right">{{ trans('backpack::backup.file_size') }}</th>
<th class="text-right">{{ trans('backpack::backup.actions') }}</th>
</tr>
</thead>
<tbody>
@foreach ($backups as $key => $backup)
<tr>
<td>{{ $key + 1 }}</td>
<td>{{ $backup->diskName }}</td>
<td>{{ $backup->lastModified }}</td>
<td class="text-right">{{ $backup->fileSize }} MB</td>
<td class="text-right">
@if ($backup->downloadLink)
<a class="btn btn-sm btn-link" data-button-type="download" bp-button="backup-download" href="{{ $backup->downloadLink }}">
<i class="la la-cloud-download"></i> <span> {{ trans('backpack::backup.download') }} </span>
</a>
@endif
<a class="btn btn-sm btn-link" data-button-type="delete" bp-button="backup-delete" href="{{ $backup->deleteLink }}">
<i class="la la-trash-o"></i> <span> {{ trans('backpack::backup.delete') }} </span>
</a>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
@endsection
@section('after_styles')
<style>
#create-new-backup-button.loading>.la-spinner {
display: inherit;
animation: rotation 1s steps(8, end) infinite;
}
#create-new-backup-button>.la-spinner,
#create-new-backup-button.loading>.la-plus {
display: none;
}
@keyframes rotation {
from {
transform: rotate(0deg);
}
to {
transform: rotate(359deg);
}
}
</style>
@endsection
@section('after_scripts')
<script>
document.addEventListener('DOMContentLoaded', () => {
const storageKey = 'backpack.backupmanager.created';
const createButton = document.querySelector('#create-new-backup-button');
const deleteButtons = document.querySelectorAll('[data-button-type=delete]');
const downloadButtons = document.querySelectorAll('[data-button-type=download]');
const defaultHeaders = {
'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]').content,
'Accept': 'application/json',
};
const trans = {
create_confirmation_title: "{{ trans('backpack::backup.create_confirmation_title') }}",
create_started_message: "{{ trans('backpack::backup.create_started_message') }}",
create_error_title: "{{ trans('backpack::backup.create_error_title') }}",
create_completed_title: "{{ trans('backpack::backup.create_completed_title') }}",
download_confirmation_title: "{{ trans('backpack::backup.download_confirmation_title') }}",
delete_error_title: "{{ trans('backpack::backup.delete_error_title') }}",
delete_confirm: "{{ trans('backpack::backup.delete_confirm') }}",
delete_cancel_title: "{{ trans('backpack::backup.delete_cancel_title') }}",
delete_cancel_message: "{{ trans('backpack::backup.delete_cancel_message') }}",
delete_confirmation_title: "{{ trans('backpack::backup.delete_confirmation_title') }}",
delete_confirmation_message: "{{ trans('backpack::backup.delete_confirmation_message') }}",
}
// Noty alert helper
const notyAlert = (title, message = '', type = 'success') => new Noty({text: `<strong>${title}</strong><br>${message}`, type}).show();
// Set button status helper
const setCreateButtonLoading = status => {
createButton.classList.toggle('loading', status);
createButton.toggleAttribute('disabled', status);
}
// capture the Create new backup button
createButton.onclick = async e => {
e.preventDefault();
setCreateButtonLoading(true);
notyAlert(trans.create_confirmation_title, trans.create_started_message);
// do the backup through ajax
try {
let response = await fetch(createButton.getAttribute('href'), {
method: 'PUT',
headers: defaultHeaders
});
let result = await response.text();
// Show an alert with the result
if(!response.ok || result.includes('failed')) {
throw new Error(result);
}
localStorage.setItem(storageKey, true);
location.reload();
}
catch (result) {
// Show an alert with the result
notyAlert(trans.create_error_title, result, 'warning');
}
setCreateButtonLoading(false);
}
// capture the delete button
deleteButtons.forEach(deleteButton => {
deleteButton.onclick = async e => {
e.preventDefault();
if (!confirm(trans.delete_confirm)) {
return notyAlert(trans.delete_cancel_title, trans.delete_cancel_message, 'info');
}
try {
let response = await fetch(deleteButton.getAttribute('href'), {
method: 'DELETE',
headers: defaultHeaders
});
let result = await response.text();
// Show an alert with the result
if(!response.ok) {
throw new Error(result);
}
notyAlert(trans.delete_confirmation_title, trans.delete_confirmation_message);
// delete the row from the table
deleteButton.closest('tr').remove();
}
catch (result) {
// Show an alert with the result
notyAlert(trans.delete_error_title, result, 'warning');
}
}
});
// capture the download button
downloadButtons.forEach(downloadButton => {
downloadButton.onclick = e => notyAlert(trans.download_confirmation_title);
});
// Show messages stored on session
if(localStorage.getItem(storageKey)) {
localStorage.removeItem(storageKey);
notyAlert(trans.create_completed_title);
}
});
</script>
@endsection
================================================
FILE: src/routes/backpack/backupmanager.php
================================================
<?php
/*
|--------------------------------------------------------------------------
| Backpack\BackupManager Routes
|--------------------------------------------------------------------------
|
| This file is where you may define all of the routes that are
| handled by the Backpack\BackupManager package.
|
*/
Route::group([
'namespace' => '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');
});
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
SYMBOL INDEX (10 symbols across 2 files)
FILE: src/BackupManagerServiceProvider.php
class BackupManagerServiceProvider (line 8) | class BackupManagerServiceProvider extends ServiceProvider
method boot (line 29) | public function boot()
method setupRoutes (line 57) | public function setupRoutes(Router $router)
method register (line 75) | public function register()
FILE: src/app/Http/Controllers/BackupController.php
class BackupController (line 14) | class BackupController extends Controller
method index (line 18) | public function index()
method create (line 59) | public function create()
method download (line 92) | public function download()
method delete (line 116) | public function delete()
method isBackupDisk (line 141) | private function isBackupDisk(string $diskName)
Condensed preview — 42 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (107K chars).
[
{
"path": ".editorconfig",
"chars": 312,
"preview": "; This file is for unifying the coding style for different editors and IDEs.\n; More information at http://editorconfig.o"
},
{
"path": ".github/config.yml",
"chars": 5592,
"preview": "# Configuration for welcome - https://github.com/behaviorbot/welcome\n\n# Configuration for new-issue-welcome - https://gi"
},
{
"path": ".github/dependabot.yml",
"chars": 132,
"preview": "version: 2\nupdates:\n- package-ecosystem: composer\n directory: \"/\"\n schedule:\n interval: monthly\n open-pull-request"
},
{
"path": ".github/issue_template.md",
"chars": 163,
"preview": "# Bug report\n\n### What I did:\n\n### What I expected to happen:\n\n### What happened:\n\n### What I've already tried to fix it"
},
{
"path": ".github/pull_request_template.md",
"chars": 295,
"preview": "## WHY\n\n### BEFORE - What was wrong? What was happening before this PR?\n\n??\n\n### AFTER - What is happening after this PR"
},
{
"path": ".github/release-drafter.yml",
"chars": 880,
"preview": "name: Release Drafter\n\non:\n push:\n # branches to consider in the event; optional, defaults to all\n branches:\n "
},
{
"path": ".github/stale.yml",
"chars": 1059,
"preview": "#####################################\n# Github Stale Probot Configuration #\n# ###################################\n# http"
},
{
"path": ".github/support.yml",
"chars": 1976,
"preview": "# Configuration for support-requests - https://github.com/dessant/support-requests\n\n# Label used to mark issues as suppo"
},
{
"path": ".github/workflows/add-to-project.yml",
"chars": 454,
"preview": "name: Add new bugs & PRs to This Week project\n\non:\n issues:\n types:\n - opened\n - transferred\n pull_reques"
},
{
"path": ".gitignore",
"chars": 35,
"preview": "vendor/\n.idea\n*.iml\n/composer.lock\n"
},
{
"path": ".scrutinizer.yml",
"chars": 5776,
"preview": "filter:\n paths:\n - 'app/*'\n - 'src/*'\n excluded_paths:\n - 'bootstrap/*'\n - 'config/*'\n"
},
{
"path": ".travis.yml",
"chars": 429,
"preview": "language: php\n\nphp:\n - 7.2.5\n - 7.3\n - 7.4\n - 8.0\n - nightly\n\nmatrix:\n allow_failures:\n - php: 8.0\n "
},
{
"path": "CHANGELOG.md",
"chars": 5547,
"preview": "# Changelog\n\nAll Notable changes to `backupmanager` will be documented in this file\n\n----------\nIMPORTANT\n----------\n\nWe"
},
{
"path": "CONTRIBUTING.md",
"chars": 1988,
"preview": "# Contributing\n\nContributions are **welcome** and will be fully **credited**.\n\nWe accept contributions via Pull Requests"
},
{
"path": "LICENSE.md",
"chars": 2343,
"preview": "# YUMMY License\n\n**YoU make Money, I make MoneY.** The license holder is allowed to use the software for free, as long a"
},
{
"path": "README.md",
"chars": 7522,
"preview": "# Backpack\\BackupManager\n\n[)\n\n@php\n$breadcrumbs = [\n trans('backpack::crud.admin') => backpack_url('dashboard'),\n"
},
{
"path": "src/routes/backpack/backupmanager.php",
"chars": 896,
"preview": "<?php\n\n/*\n|--------------------------------------------------------------------------\n| Backpack\\BackupManager Routes\n|-"
}
]
About this extraction
This page contains the full source code of the Laravel-Backpack/BackupManager GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 42 files (95.8 KB), approximately 24.1k tokens, and a symbol index with 10 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.