13 require_once
'../system/classes/backup.php';
15 if (!isset($backup) || (empty($backup)))
22 if (isset(
$_GET[
'deleteBackup']) ==
true)
24 if (isset(
$_GET[
'backupFolder']) && (!empty(
$_GET[
'backupFolder'])
25 && (isset(
$_GET[
'backupFile']) && (!empty(
$_GET[
'backupFile'])))))
28 if (is_dir(
$_GET[
'backupFolder']))
30 $file =
$_GET[
'backupFolder'].$_GET[
'backupFile'];
36 sys::setSyslog(
$db, 50, 3,
"deleted backup: $file", 0, 0, 0, 0);
37 alert::draw(
"success",
"$lang[BACKUP_DEL_SUCCESS]",
"$lang[DELETED]: $_GET[backupFile]",
"", 2600);
41 sys::setSyslog(
$db, 52, 2,
"failed to delete backup: $file", 0, 0, 0, 0);
42 alert::draw(
"danger",
"$lang[ERROR]",
"$lang[BACKUP_DEL_FAILED] $_GET[backupFile]",
"", 4200);
47 sys::setSyslog(
$db, 51, 1,
"unable to delete backup: $file - file not found", 0, 0, 0, 0);
48 alert::draw(
"warning",
"$lang[FILE_NOT_FOUND]",
"$_GET[backupFolder]$_GET[backupFile] $lang[NOT_FOUND] $lang[FILEMAN_FILE_DOES_NOT_EXIST]",
"", 6200);
53 sys::setSyslog(
$db, 51, 1,
"unable to delete backup: $_GET[backupFolder] - folder not found", 0, 0, 0, 0);
54 alert::draw(
"warning",
"$lang[DIR_NOT_FOUND]",
"$_GET[backupFolder] $lang[NOT_FOUND]",
"", 6200);
59 sys::setSyslog(
$db, 51, 1,
"failed to delete backup: file or folder not set or not valid", 0, 0, 0, 0);
60 alert::draw(
"warning",
"$lang[ERROR]",
"$lang[FILE_FOLDER_NOT_SET]",
"", 6200);
64 if (isset(
$_GET[
'deleteArchiveSubFolder']) ===
true)
66 if (isset(
$_GET[
'archiveSubFolder']) && (!empty(
$_GET[
'archiveSubFolder'])))
68 $backup->archiveBackupSubFolder =
$_GET[
'archiveSubFolder'];
70 if (is_dir($backup->archiveBackupSubFolder))
72 if (filemanager::recursiveRemoveDirectory($backup->archiveBackupSubFolder) ===
true)
74 sys::setSyslog(
$db, 50, 3,
"deleted complete archive: $backup->archiveBackupSubFolder", 0, 0, 0, 0);
75 alert::draw(
"success",
"$lang[DELETED]",
"$backup->archiveBackupSubFolder",
"", 3200);
80 sys::setSyslog(
$db, 52, 2,
"failed to delete archive: $backup->archiveBackupSubFolder", 0, 0, 0, 0);
81 alert::draw(
"warning",
"$lang[FOLDER_NOT_FOUND]",
"$_GET[backupFolder] $lang[NOT_FOUND]",
"", 6200);
86 sys::setSyslog(
$db, 51, 1,
"unable to delete archive - archive subfolder not set.", 0, 0, 0, 0);
87 alert::draw(
"warning",
"$lang[ERROR]",
"$lang[FILE_FOLDER_NOT_SET]",
"", 6200);
91 if (isset(
$_GET[
'downloadArchive']) ==
true)
93 if (isset(
$_GET[
'folder']) && (!empty(
$_GET[
'folder'])))
96 $backup->archiveBackupSubFolder = $backup->archiveBackupFolder.$_GET[
'folder'];
99 if (is_dir($backup->archiveBackupSubFolder))
101 if ($backup->zipFolder(
$db, $backup->archiveBackupSubFolder, $backup->downloadFolder.
"$_GET[folder].zip") ==
true)
103 sys::setSyslog(
$db, 50, 0,
"downloaded: $backup->downloadFolder$_GET[folder].zip", 0, 0, 0, 0);
104 alert::draw(
"success",
$lang[
'BACKUP_ZIP_CREATED'],
$lang[
'BACKUP_ZIP_CREATED_MSG'],
"", 6200);
108 sys::setSyslog(
$db, 51, 1,
"failed to zip $backup->downloadFolder$_GET[folder].zip for downloading", 0, 0, 0, 0);
109 alert::draw(
"danger",
"$lang[ERROR]",
"$_GET[folder] $lang[BACKUP_ZIP_CREATED_FAILED]",
"", 6200);
114 sys::setSyslog(
$db, 51, 0,
"failed to download: $backup->downloadFolder$_GET[folder].zip - $backup->archiveBackupSubFolder not found.", 0, 0, 0, 0);
115 alert::draw(
"warning",
"$lang[ERROR]",
"$_GET[backupFolder] $lang[NOT_FOUND]",
"", 6200);
120 sys::setSyslog(
$db, 51, 0,
"failed to zip download: folder or file not set", 0, 0, 0, 0);
121 alert::draw(
"warning",
"$lang[ERROR]",
"$lang[FILE_FOLDER_NOT_SET]",
"", 6200);
126 if (isset(
$_GET[
'restore']) && (
$_GET[
'restore'] ==
"true"))
128 if (isset(
$_GET[
'file']) && (!empty(
$_GET[
'file'])
129 && (isset(
$_GET[
'folder']) && (!empty(
$_GET[
'folder'])))))
132 $file = strip_tags(
$_GET[
'file']);
136 $restoreStatus = $backup->restore(
$db, $file,
$folder);
139 $totalElements = count($restoreStatus);
141 $successElements = 0;
146 $status =
"<br><br>";
155 foreach ($restoreStatus as
$value)
159 $status .=
"<i> ".$element.
" ";
164 if ($state ===
"true")
166 $icon =
"<i class=\"fa fa-check\"></i>";
167 $alertClass =
"success";
168 $alertText =
$lang[
'BACKUP_RESTORE_SUCCESS'];
173 $icon =
"<i class=\"fa fa-times\"></i>";
174 $alertClass =
"danger";
175 $alertText = $restoreStatus[
'ERROR'];
178 $status .= $icon.
"</i><br>";
184 if ($totalElements == $successElements)
186 sys::setSyslog(
$db, 50, 3,
"successfully restored $successElements of $totalElements from $_GET[folder]$file", 0, 0, 0, 0);
187 alert::draw(
"$alertClass",
"$lang[SUCCESS]",
"$file $alertText $status",
"", 6400);
191 sys::setSyslog(
$db, 50, 3,
"failed to restore $failedElements of $totalElements from $_GET[folder]$file", 0, 0, 0, 0);
192 alert::draw(
"$alertClass",
"$lang[ERROR]",
"$file $alertText $status",
"", 6400);
202 if (isset($_POST[
'action']))
204 switch ($_POST[
'action'])
211 if (isset($_POST[
'backupMethod']) && (!empty($_POST[
'backupMethod'])))
213 $backup->backupMethod = $_POST[
'backupMethod'];
217 if (isset($_POST[
'zipBackup']) && (!empty($_POST[
'zipBackup'])))
219 $backup->zipBackup = $_POST[
'zipBackup'];
226 $backup->zipBackup =
true;
230 if (isset($_POST[
'removeAfterZip']) && (!empty($_POST[
'removeAfterZip'])))
232 $backup->removeAfterZip = $_POST[
'removeAfterZip'];
236 $backup->removeAfterZip =
"false";
240 if (isset($_POST[
'overwriteBackup']) && (!empty($_POST[
'overwriteBackup'])))
242 if ($_POST[
'overwriteBackup'] ==
"true")
244 $backup->overwriteBackup = $_POST[
'overwriteBackup'];
248 $backup->overwriteBackup =
"false";
253 if ($backup->init(
$db) ===
true)
255 alert::draw(
"success",
$lang[
'BACKUP_SUCCESSFUL'],
$lang[
'BACKUP_SUCCESSFUL_TEXT'],
"", 2600);
259 alert::draw(
"danger",
$lang[
'BACKUP_FAILED'],
$lang[
'BACKUP_FAILED_TEXT'],
"", 6400);
269 if (isset($_POST[
'newFolder']) && (!empty($_POST[
'newFolder'])))
271 $_POST[
'newFolder'] = strip_tags($_POST[
'newFolder']);
273 $backup->restoreFolder =
"../system/backup/archive/".$_POST[
'newFolder'].
"/";
275 if (!mkdir($backup->restoreFolder))
277 sys::setSyslog(
$db, 51, 1,
"failed to upload - unable to create $backup->restoreFolder", 0, 0, 0, 0);
278 alert::draw(
"success",
$lang[
'ERROR'],
"$backup->restoreFolder $lang[WAS_NOT_CREATED]",
"", 2600);
283 else if (isset($_POST[
'selectFolder']) && (!empty($_POST[
'selectFolder'])))
285 $backup->restoreFolder = $_POST[
'selectFolder'];
289 sys::setSyslog(
$db, 51, 1,
"failed to upload - no folder was set", 0, 0, 0, 0);
290 alert::draw(
"danger", $_POST[
'file'],
$lang[
'BACKUP_NO_FOLDER_SELECTED'],
"", 6400);
294 if (!is_writeable(dirname($backup->restoreFolder)))
296 sys::setSyslog(
$db, 51, 1,
"failed to upload - restore folder $backup->restoreFolder is not writeable. Please check folder permissions", 0, 0, 0, 0);
297 alert::draw(
"danger",
$lang[
'BACKUP_FAILED'],
$lang[
'BACKUP_FAILED_WRITE_FOLDER'],
"", 6400);
301 $backup->restoreFile = $backup->restoreFolder . basename($_FILES[
'backupFile'][
'name']);
303 $postMaxSize = filemanager::getPostMaxSize();
306 if ($_FILES[
"backupFile"][
"size"] >
$maxFileSize || $postMaxSize)
309 $currentFileSize = filemanager::sizeFilter($_FILES[
"backupFile"][
"size"], 2);
311 sys::setSyslog(
$db, 51, 1,
"failed to upload - $backup->restoreFile ($currentFileSize) exceeeds post_max_size: $postMaxSize upload_max_filesize: $maxFileSize", 0, 0, 0, 0);
312 echo alert::draw(
"warning",
"$lang[ERROR]",
"$lang[FILE_UPLOAD_TOO_LARGE]",
"",
"4800");
316 if ($_FILES[
'backupFile'][
'type'] !==
'application/x-zip-compressed')
318 sys::setSyslog(
$db, 51, 1,
"failed to upload - $backup->restoreFile is not a zip - uploaded filetype: $_FILES[backupFile][type]", 0, 0, 0, 0);
319 alert::draw(
"danger",
$lang[
'BACKUP_FAILED'],
$lang[
'BACKUP_NOT_A_ZIP_FILE'],
"", 6400);
323 $fileType = pathinfo($backup->restoreFile,PATHINFO_EXTENSION);
324 if($fileType !=
"zip" && $fileType !=
"ZIP" && $fileType !=
"7z" && $fileType !=
"gzip")
326 sys::setSyslog(
$db, 51, 1,
"failed to upload file - extension $fileType seems not to be a zip file", 0, 0, 0, 0);
327 echo alert::draw(
"warning",
"$lang[ERROR]",
"$lang[UPLOAD_ONLY_ZIP_ALLOWED]",
"",
"4800");
331 if ($_FILES[
'backupFile'][
'error'] !== 0)
333 sys::setSyslog(
$db, 52, 2,
"failed to upload file - unknown error ($_FILES[backupFile][error]) processing file $_FILES[backupFile][name]", 0, 0, 0, 0);
334 echo alert::draw(
"warning",
"$lang[ERROR]",
"$lang[FILE_UPLOAD_FAILED]",
"",
"4800");
338 if (!move_uploaded_file($_FILES[
"backupFile"][
"tmp_name"], $backup->restoreFile))
340 sys::setSyslog(
$db, 52, 2,
"failed to move upload file $backup->restoreFile to folder $_FILES[backupFile][tmp_name]", 0, 0, 0, 0);
341 echo alert::draw(
"danger",
"$lang[ERROR]",
"$backup->restoreFile - $lang[FILE_UPLOAD_ERROR]",
"",
"4800");
346 if (is_file($backup->restoreFile))
350 sys::setSyslog(
$db, 50, 3,
"uploaded backup package $backup->restoreFile successfully", 0, 0, 0, 0);
351 echo alert::draw(
"success",
"$lang[UPLOAD_SUCCESSFUL]",
"$backup->restoreFile $lang[BACKUP_UPLOAD_SUCCESS]",
"",
"4800");
355 sys::setSyslog(
$db, 51, 2,
"failed to check uploaded file - $backup->restoreFile not found.", 0, 0, 0, 0);
356 echo alert::draw(
"danger",
"$lang[ERROR]",
"$backup->restoreFile - $lang[FILE_UPLOAD_ERROR]",
"",
"4800");
365 case "moveToArchive":
368 if (isset($_POST[
'file']) && (!empty($_POST[
'file'])))
371 if (isset($_POST[
'newFolder']) && (!empty($_POST[
'newFolder'])))
374 $backup->archiveBackupSubFolder = $backup->archiveBackupFolder.$_POST[
'newFolder'].
"/";
376 if (!is_dir(dirname($backup->archiveBackupSubFolder)))
378 if (mkdir($backup->archiveBackupSubFolder))
380 alert::draw(
"success", $_POST[
'file'],
"$backup->archiveBackupSubFolder $lang[CREATED]",
"", 2600);
384 sys::setSyslog(
$db, 51, 2,
"failed to create new archive subfolder $backup->archiveBackupSubFolder", 0, 0, 0, 0);
385 alert::draw(
"danger", $_POST[
'file'],
"$backup->archiveBackupSubFolder $lang[WAS_NOT_CREATED]",
"", 6400);
390 else if (isset($_POST[
'selectFolder']) && (!empty($_POST[
'selectFolder'])))
392 $backup->archiveBackupSubFolder = $backup->archiveBackupFolder.$_POST[
'selectFolder'].
"/";
396 sys::setSyslog(
$db, 50, 0,
"failed to move backup to archive folder: $backup->archiveBackupSubFolder - no folder was selected", 0, 0, 0, 0);
397 alert::draw(
"danger", $_POST[
'file'],
$lang[
'BACKUP_NO_FOLDER_SELECTED'],
"", 6400);
402 $backup->archiveBackupFile = $backup->currentBackupFolder.$_POST[
'file'];
404 $backup->archiveBackupNewFile = $backup->archiveBackupSubFolder.$_POST[
'file'];
406 if (file_exists($backup->archiveBackupFile)
407 && ((!file_exists($backup->archiveBackupNewFile)) || is_writable($backup->archiveBackupNewFile)))
409 if (rename($backup->archiveBackupFile, $backup->archiveBackupNewFile))
411 sys::setSyslog(
$db, 50, 0,
"archive backup: $backup->archiveBackupFile to $backup->archiveBackupNewFile successful", 0, 0, 0, 0);
412 alert::draw(
"success", $_POST[
'file'], $backup->archiveBackupNewFile,
"", 2600);
416 sys::setSyslog(
$db, 52, 2,
"failed to move backup to archive: $backup->archiveBackupFile to $backup->archiveBackupNewFile", 0, 0, 0, 0);
417 alert::draw(
"danger", $_POST[
'file'],
"$lang[BACKUP_FAILED_TO_MOVE] $backup->archiveBackupFile $lang[MOVE_TO] $backup->archiveBackupNewFile",
"", 6400);
422 sys::setSyslog(
$db, 52, 2,
"failed to move backup to archive because backup file is missing or not writeable $backup->archiveBackupNewFile", 0, 0, 0, 0);
423 alert::draw(
"warning", $_POST[
'file'],
"$lang[BACKUP_FAILED_TO_MOVE] $backup->archiveBackupNewFile $lang[BACKUP_FAILED_TO_MOVE_CHMOD]",
"", 6400);
429 sys::setSyslog(
$db, 52, 2,
"failed to move backup to archive: no file selected - this should not be possible.", 0, 0, 0, 0);
430 alert::draw(
"danger",
"$lang[BACKUP_NO_FILE_SELECTED]",
"$lang[BACKUP_NO_FILE_SELECTED]",
"", 6400);
438 <script
type=
"text/javascript">
439 $(document).
ready(
function()
442 $(
'[data-toggle="tooltip"]').tooltip();
445 function saveHotkey() {
448 if (!(
event.which === 115 && (navigator.platform.match(
"Mac") ?
event.metaKey :
event.ctrlKey)) && !(
event.which === 19))
return true;
449 event.preventDefault();
454 $(document).keydown(
function (
event) {
455 if (
event.which === 83 && (navigator.platform.match(
"Mac") ?
event.metaKey :
event.ctrlKey)) {
456 event.preventDefault();
457 $(
'#savebutton').click();
468 $(savebutton).click(
function() {
470 var savebutton = (
'#savebutton');
471 var savebuttonIcon = (
'#savebuttonIcon');
472 var savebuttonText = $(
'#savebuttonText');
473 var processingText = $(savebutton).attr(
"data-processingText");
474 var savebuttonTitle = $(savebutton).attr(
"data-processingTitle");
477 $(savebutton).removeClass(
'btn btn-success').addClass(
'btn btn-warning disabled').attr(
'title', savebuttonTitle);
478 $(savebuttonText).html(processingText);
479 $(savebuttonIcon).removeClass(
'fa fa-check').addClass(
'fa fa-spinner fa-spin fa-fw');
480 $(document.body).css(
'cursor',
'wait' );
489 $(
'#contentCheckAll').change(
function() {
491 $(
'.checkbox-group-content').each(
function() {
493 $(
this).find(
'input[type="checkbox"]').each(
function () { this.checked = !this.checked; });
498 $(
'#mediaCheckAll').change(
function() {
500 $(
'.checkbox-group-media').each(
function() {
502 $(
this).find(
'input[type="checkbox"]').each(
function () { this.checked = !this.checked; });
507 $(
'#systemFolderCheckAll').change(
function() {
509 $(
'.checkbox-group-system').each(
function() {
511 $(
this).find(
'input[type="checkbox"]').each(
function () { this.checked = !this.checked; });
516 $(
'#databaseCheckAll').change(
function() {
518 $(
'.checkbox-group-database').each(
function() {
520 $(
this).find(
'input[type="checkbox"]').each(
function () { this.checked = !this.checked; });
525 $(
'#overwriteBackup').
on(
'change',
function()
527 var overwriteBackupSwitch = $(
'#overwriteBackup');
528 var overwriteBackupLabel = $(
'#overwriteBackupLabel');
529 var overwriteLabelTextOn = $(overwriteBackupSwitch).attr(
"data-overwriteOn");
530 var overwriteLabelTextOff = $(overwriteBackupSwitch).attr(
"data-overwriteOff");
531 var newFolder = $(
'#newFolder');
532 var selectFolder = $(
'#selectFolder');
533 var backupHelpOngoingBox = $(
'#backupHelp-ongoing');
534 var backupHelpArchiveBox = $(
'#backupHelp-archive');
537 if ($(overwriteBackupSwitch).is(
':checked'))
539 $(overwriteBackupSwitch).val(
'true');
540 $(overwriteBackupLabel).text(overwriteLabelTextOn);
541 $(
'#archiveGroup').fadeOut();
544 $(backupHelpOngoingBox).removeClass(
'hidden').addClass(
'fadeIn');
545 $(backupHelpArchiveBox).addClass(
'hidden');
549 $(overwriteBackupSwitch).val(
'false');
550 $(overwriteBackupLabel).text(overwriteLabelTextOff);
551 $(
'#archiveGroup').fadeIn().removeClass(
'hidden');
552 $(backupHelpOngoingBox).removeClass(
'hidden').addClass(
'fadeIn');
555 $(backupHelpArchiveBox).removeClass(
'hidden').addClass(
'fadeIn');
556 $(backupHelpOngoingBox).addClass(
'hidden');
559 $(newFolder).focus(
function() {
561 $(selectFolder).prop(
"selectedIndex", 0);
565 $(selectFolder).
on(
'change',
function() {
567 $(newFolder).val(
'');
575 $(
"#backupMethod").
on(
'change',
function() {
577 var backupMethod = this.value;
579 var contentBox = $(
'#contentBox');
581 var mediaBox = $(
'#mediaBox');
583 var systemBox = $(
'#systemBox');
585 var databaseBox = $(
'#databaseBox');
587 var customSettings = $(
'#customSettings');
590 if (backupMethod ===
"complete")
593 $(contentBox).find(
'input, button').removeAttr(
"disabled");
594 $(mediaBox).find(
'input, button').removeAttr(
"disabled");
595 $(systemBox).find(
'input, button').removeAttr(
"disabled");
596 $(databaseBox).find(
'input, button').removeAttr(
"disabled");
599 $(contentBox).fadeIn();
600 $(mediaBox).fadeIn();
601 $(systemBox).fadeIn();
602 $(databaseBox).fadeIn();
604 $(customSettings).fadeIn().removeClass(
'hidden');
608 if (backupMethod ===
"database")
612 $(contentBox).find(
'input, button').attr(
'disabled',
'disabled');
613 $(mediaBox).find(
'input, button').attr(
'disabled',
'disabled');
614 $(systemBox).find(
'input, button').attr(
'disabled',
'disabled');
616 $(contentBox).hide();
621 $(databaseBox).find(
'input, button').removeAttr(
'disabled');
623 $(databaseBox).fadeIn();
625 $(customSettings).fadeIn().removeClass(
'hidden');
630 if (backupMethod ===
"mediaFolder")
634 $(contentBox).find(
'input, button').attr(
'disabled',
'disabled');
635 $(systemBox).find(
'input, button').attr(
'disabled',
'disabled');
636 $(databaseBox).find(
'input, button').attr(
'disabled',
'disabled');
639 $(contentBox).hide();
641 $(databaseBox).hide();
644 $(mediaBox).find(
'input, button').removeAttr(
'disabled');
646 $(mediaBox).fadeIn();
648 $(customSettings).fadeIn().removeClass(
'hidden');
652 if (backupMethod ===
"custom")
655 $(contentBox).find(
'input, button').removeAttr(
"disabled");
656 $(mediaBox).find(
'input, button').removeAttr(
"disabled");
657 $(systemBox).find(
'input, button').removeAttr(
"disabled");
658 $(databaseBox).find(
'input, button').removeAttr(
"disabled");
661 $(contentBox).fadeIn();
662 $(mediaBox).fadeIn();
663 $(systemBox).fadeIn();
664 $(databaseBox).fadeIn();
667 $(customSettings).fadeIn().removeClass(
'hidden');
674 $(
'#myModal').
on(
'show.bs.modal',
function(
e) {
676 var file =
e.relatedTarget.dataset.file;
677 var newFolderModal = $(
"#newFolderModal");
678 var selectFolderModal = $(
"#selectFolderModal");
680 $(
"#file").val(file);
683 $(newFolderModal).focus(
function() {
685 $(selectFolderModal).prop(
"selectedIndex", 0);
689 $(selectFolderModal).
on(
'change',
function() {
691 $(newFolderModal).val(
'');
698 $(
'#restoreModal').
on(
'show.bs.modal',
function(
e) {
700 var file =
e.relatedTarget.dataset.file;
701 var newFolderModal = $(
"#newFolderModal2");
702 var selectFolderModal = $(
"#selectFolderModal2");
704 $(
"#file").val(file);
707 $(newFolderModal).focus(
function() {
709 $(selectFolderModal).prop(
"selectedIndex", 0);
713 $(selectFolderModal).
on(
'change',
function() {
715 $(newFolderModal).val(
'');
723 <!-- Content Wrapper. Contains page content -->
724 <div class=\"content-wrapper\" id=\"content-FX\">
725 <!-- Content Header (Page header) -->
726 <section class=\"content-header\">";
728 echo backend::getTitle(
$lang[
'BACKUP'],
$lang[
'BACKUP_SUBTEXT']);
729 echo
"<ol class=\"breadcrumb\">
730 <li><a href=\"index.php\" title=\"$lang[DASHBOARD]\"><i class=\"fa fa-dashboard\"></i> $lang[DASHBOARD]</a></li>
731 <li class=\"active\"><a href=\"index.php?page=settings-backup\" title=\"$lang[BACKUP]\"> $lang[BACKUP]</a></li>
734 <!-- Main content -->
735 <section class=\"content\">";
738 <div
class=
"row" id=
"pageBody">
739 <div
class=
"col-md-6">
740 <form
name=
"backup" action=
"index.php?page=settings-backup&action=startBackup" method=
"POST">
742 <div
class=
"box-header">
743 <h3
class=
"box-title">
744 <?php echo
$lang[
'BACKUP_CREATE']; ?>
747 <div
class=
"box-body">
748 <input
type=
"hidden" name=
"action" value=
"startBackup">
749 <button
type=
"submit"
750 class=
"btn btn-success pull-right"
752 data-processingText=
"<?php echo $lang['BACKUP_PROCESSING']; ?>"
753 data-processingTitle=
"<?php echo $lang['BACKUP_PROCESSING_TITLE']; ?>"
754 data-restoreText=
"<?php echo $lang['BACKUP_RESTORE_TEXT']; ?>"
755 data-restoreTitle=
"<?php echo $lang['BACKUP_RESTORE_TITLE']; ?>">
756 <
i class=
"fa fa-check" id=
"savebuttonIcon"></
i> &
nbsp;
757 <span
id=
"savebuttonText"><?php echo
$lang[
'BACKUP_CREATE']; ?></span>
760 <label
for=
"backupMethod"><?php echo
$lang[
'BACKUP_WHAT_TO_BACKUP']; ?></label>
761 <select
name=
"backupMethod" id=
"backupMethod" class=
"form-control">
762 <optgroup label=
"<?php echo $lang['STANDARD']; ?>"></optgroup>
765 <option
name=
"mediaFolder" value=
"mediaFolder">&
nbsp;&
nbsp;&
nbsp;&
nbsp;<?php echo
$lang[
'BACKUP_FILES_ONLY']; ?></option>
766 <optgroup label=
"<?php echo $lang['CUSTOM']; ?>"></optgroup>
771 <div
class=
"col-md-6">
773 <input
type=
"hidden" class=
"hidden" name=
"overwriteBackup" id=
"overwriteBackupHidden" value=
"false">
774 <input
type=
"checkbox" data-
on=
"<i class='fa fa-refresh'>" data-off=
"<i class='fa fa-archive'>" data-overwriteOff=
"<?php echo $lang['BACKUP_OVERWRITE_OFF']; ?>" data-overwriteOn=
"<?php echo $lang['BACKUP_OVERWRITE_ON']; ?>" data-toggle=
"toggle" data-onstyle=
"success" data-offstyle=
"success" class=
"checkbox" name=
"overwriteBackup" id=
"overwriteBackup" value=
"true" checked>
775 &
nbsp;&
nbsp;<label
for=
"overwriteBackup" id=
"overwriteBackupLabel"><?php echo
$lang[
'BACKUP_OVERWRITE_ON']; ?>&
nbsp;&
nbsp;</label>
777 <div
id=
"archiveGroup" class=
"hidden">
780 $backup->archiveBackupSubFolders = filemanager::getSubfoldersToArray($backup->archiveBackupFolder);
782 if (count($backup->archiveBackupSubFolders) > 0)
785 <label for=\"selectFolder\">$lang[BACKUP_FOLDER_SELECT]</label>
786 <select class=\"form-control\" name=\"selectFolder\" id=\"selectFolder\">
787 <option label=\"$lang[BACKUP_PLEASE_SELECT]\"></option>";
788 foreach ($backup->archiveBackupSubFolders as $subFolder)
790 echo
"<option value=\"$subFolder\">$subFolder</option>";
794 <div class=\"text-center\"><br><i>$lang[OR]</i><br><br></div>";
798 <label
for=
"newFolder"><?php echo
$lang[
'BACKUP_FOLDER_NAME']; ?></label>
799 <input
type=
"text" id=
"newFolder" name=
"newFolder" class=
"form-control">
804 <div
class=
"col-md-6">
806 <div
id=
"backupHelp-ongoing">
807 <
b><?php echo
$lang[
'BACKUP_HELP_ONGOING_TITLE']; ?></
b><br>
808 <?php echo
$lang[
'BACKUP_HELP_ONGOING_TEXT']; ?>
810 <div
id=
"backupHelp-archive" class=
"hidden">
811 <
b><?php echo
$lang[
'BACKUP_HELP_ARCHIVE_TITLE']; ?></
b><br>
812 <?php echo
$lang[
'BACKUP_HELP_ARCHIVE_TEXT']; ?>
819 <div
class=
"box hidden" id=
"customSettings">
820 <div
class=
"box-header">
821 <h3
class=
"box-title">
822 <?php echo
$lang[
'EXTENDED_SETTINGS']; ?>
825 <div
class=
"box-body">
827 <div
id=
"contentBox">
829 <input
type=
"checkbox" data-
on=
"<i class='fa fa-file-o'></i>" data-off=
"<?php echo $lang['OFF_']; ?>" data-toggle=
"toggle" data-onstyle=
"success" data-offstyle=
"danger" class=
"checkbox" name=
"contentCheckAll" id=
"contentCheckAll" value=
"true" checked>
830 <label
for=
"contentCheckAll" id=
"contentCheckAllLabel"> <?php echo
$lang[
'PAGES']; ?></label>
832 <div
class=
"checkbox-group-content">
839 echo
"
840 <input type=\"checkbox\" data-name=\"$folder\" id=\"contentFolder-$folder\" name=\"contentFolder[]\" checked=\"checked\" value=\"$folder\">
841 <label id=\"contentFolderLabel-$folder\" for=\"contentFolder-$folder\">".ucfirst(
$folder).
"</label><br>";
848 <input
type=
"checkbox" data-
on=
"<i class='fa fa-folder-open-o'></i>" data-off=
"<?php echo $lang['OFF_']; ?>" data-toggle=
"toggle" data-onstyle=
"success" data-offstyle=
"danger" class=
"checkbox" name=
"mediaCheckAll" id=
"mediaCheckAll" value=
"true" checked>
849 <label
for=
"mediaCheckAll" id=
"mediaCheckAllLabel"> <?php echo
$lang[
'BACKUP_MEDIA_FOLDER']; ?></label>
851 <div
class=
"checkbox-group-media">
858 echo
"
859 <input type=\"checkbox\" data-name=\"$folder\" id=\"mediaFolder-$folder\" name=\"mediaFolder[]\" checked=\"checked\" value=\"$folder\">
860 <label id=\"mediaFolderLabel-$folder\" for=\"mediaFolder-$folder\">".ucfirst(
$folder).
"</label><br>";
867 <input
type=
"checkbox" data-
on=
"<i class='fa fa-gears'></i>" data-off=
"<?php echo $lang['OFF_']; ?>" data-toggle=
"toggle" data-onstyle=
"success" data-offstyle=
"danger" class=
"checkbox" name=
"systemFolderCheckAll" id=
"systemFolderCheckAll" value=
"true" checked=
"checked">
868 <label
for=
"systemFolderCheckAll" id=
"systemFolderCheckAllLabel"> <?php echo
$lang[
'SYSTEM']; ?></label>
870 <div
class=
"checkbox-group-system">
876 echo
"
877 <input type=\"checkbox\" id=\"systemFolder-$folder\" value=\"$folder\" name=\"systemFolder[]\" checked>
878 <label id=\"systemFolderLabel-$folder\" for=\"systemFolder-$folder\">".ucfirst(
$folder).
"</label><br>";
884 <div
id=
"databaseBox">
886 <input
type=
"checkbox" data-
on=
"<i class='fa fa-database'></i>" data-off=
"<?php echo $lang['OFF_']; ?>" data-toggle=
"toggle" data-onstyle=
"success" data-offstyle=
"danger" class=
"checkbox" name=
"databaseCheckAll" id=
"databaseCheckAll" value=
"true" checked=
"checked">
887 <label
for=
"databaseCheckAll" id=
"databaseCheckAllLabel"> <?php echo
$lang[
'DATABASE']; ?></label>
889 <div
class=
"checkbox-group-database">
895 echo
"
896 <input type=\"checkbox\" id=\"database-$table\" value=\"$table\" name=\"database[]\" checked>
897 <label id=\"databaseLabel-$table\" for=\"database-$table\">$table</label><br>";
908 <div
class=
"col-md-6">
910 <!-- CURRENT BACKUP BOX -->
912 <div
class=
"box-header">
913 <h3
class=
"box-title"><?php echo
$lang[
'BACKUP_ONGOING']; ?> <small>system/
backup/current/</small></h3>
915 <div
class=
"box-body">
916 <table
class=
"table table-striped table-hover table-responsive">
926 $currentFile =
"$backup->currentBackupFolder$file";
928 $currentFileDate =
date(
"F d Y H:i", filemtime($currentFile));
930 $month =
date(
"F", filemtime($currentFile));
932 $year =
date(
"Y", filemtime($currentFile));
934 $currentFileSize = filemanager::sizeFilter(filesize($currentFile), 0);
937 $ago = sys::time_ago($currentFileDate,
$lang);
943 <td style=\"10%;\" class=\"text-center\"><h4><i id=\"zipIcon$currentRestoreID\" class=\"fa fa-file-zip-o\"></i><br><small>$month<br>$year</small></h4></td>
944 <td style=\"51%;\" class=\"text-left\"><h4><a href=\"$backup->currentBackupFolder$file\">$file</a><br><small><b>$currentFileDate</b><br><i>($ago)</i></small></h4></td>
945 <td style=\"12%;\" class=\"text-right\"><br><small><b>$currentFileSize</b></small></td>
946 <td style=\"27%;\" class=\"text-right\">
949 <a href=\"$backup->currentBackupFolder$file\" title=\"$lang[TO_DOWNLOAD]\"><i class=\"fa fa-download\"></i></a>
950 <a title=\"$lang[BACKUP_RESTORE_QUESTION_TITLE]\" data-cancelBtnText=\"$lang[CANCEL]\" data-okBtnText=\"$lang[BACKUP_RESTORE]\" data-icon=\"fa fa-history\" data-title=\"$lang[BACKUP_RESTORE_QUESTION]\" id=\"restoreCurrent$currentRestoreID\" data-restoreID=\"$currentRestoreID\" data-location=\"archive\" href=\"index.php?page=settings-backup&restore=true&folder=$backup->currentBackupFolder&file=$file¤tRestoreID=$currentRestoreID\"><i id=\"restoreCurrentIcon$currentRestoreID\" class=\"fa fa-history\"></i></a>
951 <a href=\"#\" data-file=\"$file\" data-toggle=\"modal\" data-target=\"#myModal\" title=\"$lang[BACKUP_MOVE_TO_ARCHIVE]\"><i class=\"fa fa-archive\"></i></a>
952 <a class=\"fa fa-trash-o\" role=\"dialog\" data-confirm=\"$backup->currentBackupFolder$file ".$lang[
'DELETE'].
"? - $lang[BEWARE] $lang[UNDO_NOT_POSSIBLE]!\" title=\"$lang[ATTENTION] $lang[BACKUP] $lang[DELETE]\" href=\"index.php?page=settings-backup&deleteBackup=true&backupFolder=$backup->currentBackupFolder&backupFile=$file\"></a>
970 $(document).ready(function()
973 var selectLink = '#restoreCurrent$currentRestoreID';
974 var selector = '#restoreCurrentIcon$currentRestoreID';
975 var zipIcon = '#zipIcon$currentRestoreID'
976 var savebutton = ('#savebutton');
977 var savebuttonIcon = ('#savebuttonIcon');
978 var savebuttonText = $('#savebuttonText');
979 var processingText = $(savebutton).attr(\"data-restoreText\");
980 var savebuttonTitle = $(savebutton).attr(\"data-restoreTitle\");
982 // click event for each restore icon
983 $(selectLink).click(function() {
985 $(zipIcon).removeClass('fa fa-file-zip-o').addClass('fa fa-spinner fa-spin fa-fw');
986 $(selector).removeClass('fa fa-history').addClass('fa fa-spinner fa-spin fa-fw');
987 // add some animation and disable the button to prevent nervous user actions
988 $(savebutton).removeClass('btn btn-success').addClass('btn btn-warning disabled').attr('title', savebuttonTitle);
989 // add spinner icon to savebutton
990 $(savebuttonIcon).removeClass('fa fa-check').addClass('fa fa-spinner fa-spin fa-fw');
991 // change savebutton text to somewhat like: 'restore in process...'
992 $(savebuttonText).html(processingText);
993 // avoid double clicks and other nervous dumbclicks
994 $(selectLink).css( 'cursor', 'wait' ).attr('title', savebuttonTitle);
995 $(document.body).css( 'cursor', 'wait' );
996 // $(selectLink).preventDefault();
997 $(savebutton).preventDefault();
1008 <!-- ARCHIVE BACKUP BOX -->
1010 <div
class=
"box-header">
1011 <h3
class=
"box-title"><?php echo
$lang[
'BACKUP_ARCHIVE']; ?> <small>system/
backup/archive/</small></h3>
1013 <div
class=
"box-body">
1015 <table
class=
"table table-responsive">
1018 $backup->archiveBackupFiles = filemanager::ritit($backup->archiveBackupFolder);
1024 foreach ($backup->archiveBackupFiles as
$folder => $files)
1027 $backup->archiveBackupSubFolder =
"$backup->archiveBackupFolder$folder/";
1029 $month =
date(
"F", @filemtime($backup->archiveBackupSubFolder));
1031 $year =
date(
"Y", @filemtime($backup->archiveBackupSubFolder));
1033 $archiveFolderDate =
date(
"F d Y H:i", @filemtime($backup->archiveBackupSubFolder));
1034 $lastUpdate = sys::time_ago($archiveFolderDate,
$lang);
1040 <td style=\"10%;\" class=\"text-center\"><h4><i id=\"archiveIcon$archiveID\" class=\"fa fa-archive\"></i><br><small>$month<br>$year</small></h4></td>
1043 <table class=\"table table-striped table-hover table-responsive\">
1045 <h4><i class=\"fa fa-folder-open-o\"></i> $folder <small><small><i> ($lang[LAST_UPDATE] $lastUpdate)</i></small>
1046 <a class=\"fa fa-trash-o fa-2x text-gray pull-right\" role=\"dialog\" data-confirm=\"$folder ".$lang[
'DELETE'].
"? - $lang[BEWARE] $lang[UNDO_NOT_POSSIBLE]!\" title=\"$lang[ATTENTION] $lang[BACKUP_ARCHIVE] $lang[DELETE]\" href=\"index.php?page=settings-backup&deleteArchiveSubFolder=true&archiveSubFolder=$backup->archiveBackupSubFolder\"></a>
1047 <a class=\"fa fa-history fa-2x text-gray pull-right hidden\" role=\"dialog\" data-confirm=\"$folder ".
$lang[
'DELETE'].
"? - $lang[BEWARE] $lang[UNDO_NOT_POSSIBLE]!\" title=\"$lang[BACKUP_ARCHIVE_RESTORE]\" href=\"index.php?page=settings-backup&deleteArchiveSubFolder=true&archiveSubFolder=$backup->archiveBackupSubFolder\"></a>
1048 <a class=\"fa fa-download fa-2x text-gray pull-right\" id=\"archive-$archiveID\" title=\"$lang[BACKUP_ARCHIVE_DOWNLOAD]\" href=\"index.php?page=settings-backup&downloadArchive=true&folder=$folder&archiveID=$archiveID\" data-archiveBackupFolder=\"$backup->archiveBackupFolder\" data-downloadFolder=\"$backup->downloadFolder\" data-folder=\"$folder\"></a>
1054 foreach($files as $file =>
$value)
1057 $archiveFile = $backup->archiveBackupSubFolder.$value;
1059 $archiveFileDate =
date(
"F d Y H:i", filemtime($archiveFile));
1061 $archiveFileSize = filemanager::sizeFilter(filesize($archiveFile), 0);
1063 $ago = sys::time_ago($archiveFileDate,
$lang);
1070 <small><b><a href=\"$archiveFile\">$value</a><br>
1071 <small>$archiveFileDate</small></b><small> <i>($ago)</i></small>
1074 <div style=\"margin-top:-10px;\" class=\"text-right\">
1075 <br><small><b>$archiveFileSize</b></small>
1079 <td style=\"20%;\" class=\"text-right\">
1080 <div style=\"margin-top:-10px;\"><br>
1081 <a href=\"$archiveFile\" title=\"$lang[TO_DOWNLOAD]\"><i class=\"fa fa-download\"></i></a>
1082 <a id=\"restoreArchive$archiveRestoreID\" data-restoreID=\"$archiveRestoreID\" href=\"index.php?page=settings-backup&restore=true&folder=$backup->archiveBackupSubFolder&file=$value&archiveRestoreID=$archiveRestoreID\" title=\"$lang[BACKUP_RESTORE]\"><i id=\"restoreArchiveIcon$archiveRestoreID\" class=\"fa fa-history\"></i></a>
1083 <a class=\"fa fa-trash-o\" role=\"dialog\" data-confirm=\"$archiveFile ".$lang[
'DELETE'].
"? - $lang[BEWARE] $lang[UNDO_NOT_POSSIBLE]!\" title=\"$lang[ATTENTION] $lang[BACKUP] $lang[DELETE]\" href=\"index.php?page=settings-backup&deleteBackup=true&backupFolder=$backup->archiveBackupSubFolder&backupFile=$value\"></a>
1103 $(document).ready(function()
1106 var selectLink = '#restoreArchive$archiveRestoreID';
1107 var selector = '#restoreArchiveIcon$archiveRestoreID';
1108 var archiveIcon = '#archiveIcon$archiveID'
1109 var savebutton = ('#savebutton');
1110 var savebuttonIcon = ('#savebuttonIcon');
1111 var savebuttonText = $('#savebuttonText');
1112 var processingText = $(savebutton).attr(\"data-restoreText\");
1113 var savebuttonTitle = $(savebutton).attr(\"data-restoreTitle\");
1115 // click event for each restore icon
1116 $(selector).click(function() {
1118 $(archiveIcon).removeClass('fa fa-archive').addClass('fa fa-spinner fa-spin fa-fw');
1119 $(selector).removeClass('fa fa-history').addClass('fa fa-spinner fa-spin fa-fw');
1120 // add some animation and disable the button to prevent nervous user actions
1121 $(savebutton).removeClass('btn btn-success').addClass('btn btn-warning disabled').attr('title', savebuttonTitle);
1122 // add spinner icon to savebutton
1123 $(savebuttonIcon).removeClass('fa fa-check').addClass('fa fa-spinner fa-spin fa-fw');
1124 // change savebutton text to somewhat like: 'restore in process...'
1125 $(savebuttonText).html(processingText);
1126 // avoid double clicks and other nervous dumbclicks
1127 $(selectLink).css( 'cursor', 'wait' ).attr('title', savebuttonTitle);
1128 $(document.body).css( 'cursor', 'wait' );
1129 $(selectLink).preventDefault();
1130 $(savebutton).preventDefault();
1144 <!-- UPLOAD / RESTORE BACKUP -->
1146 <div
class=
"box-header">
1147 <h3
class=
"box-title">
1148 <?php echo
$lang[
'BACKUP_UPLOAD'].
" <small>".
$lang[
'BACKUP_UPLOAD_TO_FOLDER'].
"</small>"; ?>
1151 <div
class=
"box-body">
1152 <button
id=
"upload" data-toggle=
"modal" data-target=
"#restoreModal" class=
"btn btn-success"><
i class=
"fa fa-upload"></
i>&
nbsp;&
nbsp; <?php echo
$lang[
'BACKUP_UPLOAD']; ?></button>
1159 <!-- Modal --MOVE TO ARCHIVE-- -->
1160 <div
class=
"modal fade" id=
"myModal" tabindex=
"-1" role=
"dialog" aria-labelledby=
"myModal2Label" aria-hidden=
"true">
1161 <div
class=
"modal-dialog">
1162 <div
class=
"modal-content">
1163 <form enctype=
"multipart/form-data" action=
"index.php?page=settings-backup&moveToArchive=true" method=
"POST">
1164 <div
class=
"modal-header">
1165 <!-- modal header with close controls -->
1166 <button
type=
"button" class=
"close" data-dismiss=
"modal" aria-hidden=
"true"><
i class=
"fa fa-times"></
i> </button>
1168 <div
class=
"col-md-1"><h3
class=
"modal-title"><
i class=
"fa fa-archive"></
i></h3></div>
1169 <div
class=
"col-md-11"><h3
class=
"modal-title"><?php echo
$lang[
'BACKUP_MOVE_TO_ARCHIVE']; ?></h3></div>
1173 <div
class=
"modal-body">
1174 <!-- SELECT BACKUP ARCHIVE SUB FOLDER -->
1176 <h4><
b><?php echo
$lang[
'BACKUP_ADD_ARCHIVE_SUBFOLDER']; ?></
b></h4>
1178 $backup->archiveBackupSubFolders = filemanager::getSubfoldersToArray($backup->archiveBackupFolder);
1179 if (count($backup->archiveBackupSubFolders) > 0)
1182 <label for=\"selectFolder\">$lang[BACKUP_FOLDER_SELECT]</label>
1183 <option value=\"currentFolder\" id=\"currentFolder\">Current Folder</option>
1184 <option label=\"$lang[BACKUP_PLEASE_SELECT]\" id=\"pleaseSelect\"></option>";
1185 foreach ($backup->archiveBackupSubFolders as $subFolder)
1187 echo
"<option value=\"$subFolder\">$subFolder</option>";
1191 <div class=\"text-center\"><br><i>$lang[OR]</i></div>";
1194 <label
for=
"newFolderModal"><?php echo
$lang[
'BACKUP_FOLDER_NAME']; ?></label>
1195 <input
type=
"text" class=
"form-control" id=
"newFolderModal" name=
"newFolder" placeholder=
"<?php echo $lang['BACKUP_FOLDER_NAME_PH']; ?>">
1196 <input
type=
"hidden" name=
"file" id=
"file" value=
""> <!-- gets filled via JS -->
1197 <input
type=
"hidden" name=
"action" id=
"action" value=
"moveToArchive"> <!-- gets filled via JS -->
1201 <!-- modal footer /
w submit btn -->
1202 <div
class=
"modal-footer">
1203 <input
class=
"btn btn-large btn-default" data-dismiss=
"modal" aria-hidden=
"true" type=
"submit" value=
"<?php echo $lang['CANCEL']; ?>">
1204 <button
class=
"btn btn-large btn-success" type=
"submit"><
i class=
"fa fa-check"></
i>&
nbsp; <?php echo
$lang[
'BACKUP_ARCHIVE_THIS']; ?></button>
1208 </div> <!-- modal content -->
1209 </div> <!-- modal dialog -->
1210 </div> <!-- modal fade
window -->
1213 <!-- Modal --RESTORE TO ARCHIVE-- -->
1214 <div
class=
"modal fade" id=
"restoreModal" tabindex=
"-1" role=
"dialog" aria-labelledby=
"myModal2Label" aria-hidden=
"true">
1215 <div
class=
"modal-dialog">
1216 <div
class=
"modal-content">
1217 <form action=
"index.php?page=settings-backup" method=
"post" enctype=
"multipart/form-data">
1218 <div
class=
"modal-header">
1219 <!-- modal header with close controls -->
1220 <button
type=
"button" class=
"close" data-dismiss=
"modal" aria-hidden=
"true"><
i class=
"fa fa-times"></
i> </button>
1222 <div
class=
"col-md-1"><h3
class=
"modal-title"><
i class=
"fa fa-upload"></
i></h3></div>
1223 <div
class=
"col-md-11"><h3
class=
"modal-title"><?php echo
$lang[
'BACKUP_UPLOAD_TO_FOLDER']; ?></h3></div>
1227 <div
class=
"modal-body">
1228 <!-- SELECT BACKUP ARCHIVE SUB FOLDER -->
1230 <h4><
b><?php echo
$lang[
'SELECT_FILE']; ?>:</
b></h4>
1231 <input
type=
"file" name=
"backupFile" id=
"backupFile" class=
"form-control">
1232 <label
for=
"backupFile"><?php echo
$lang[
'POST_MAX_SIZE']; echo filemanager::getPostMaxSize();
1233 echo
" / ".$lang[
'UPLOAD_MAX_SIZE']; echo filemanager::getUploadMaxFilesize(); ?>
1234 <
i class=
"fa fa-question-circle-o text-info" data-placement=
"auto right" data-toggle=
"tooltip" title=
"" data-original-
title=
"<?php echo $lang['UPLOAD_MAX_PHP']; ?>"></
i>
1238 <!-- MAX_FILE_SIZE muss vor dem Dateiupload Input Feld stehen -->
1239 <input
type=
"hidden" name=
"MAX_FILE_SIZE" value=
"67108864">
1243 <h4><
b><?php echo
$lang[
'BACKUP_ADD_ARCHIVE_SUBFOLDER']; ?></
b></h4>
1245 $backup->archiveBackupSubFolders = filemanager::getSubfoldersToArray($backup->archiveBackupFolder);
1247 echo
"<label for=\"selectFolder\">$lang[BACKUP_FOLDER_SELECT]</label>
1248 <select class=\"form-control\" name=\"selectFolder\" id=\"selectFolderModal2\">
1249 <option label=\"$lang[BACKUP_PLEASE_SELECT]\" id=\"pleaseSelect\"></option>
1250 <optgroup label=\"$lang[BACKUP_ONGOING]\">$lang[BACKUP_ONGOING]</optgroup>
1251 <option value=\"$backup->currentBackupFolder\" id=\"currentFolder\"> $lang[BACKUP_ONGOING]</option>";
1253 if (count($backup->archiveBackupSubFolders) > 0)
1255 echo
"<optgroup label=\"$lang[BACKUP_ARCHIVE]\">$lang[BACKUP_ARCHIVE]</optgroup>";
1257 foreach ($backup->archiveBackupSubFolders as $subFolder)
1259 echo
"<option value=\"../system/backup/archive/$subFolder/\"> $subFolder</option>";
1264 <div class=\"text-center\"><br><i>$lang[OR]</i></div>";
1266 <label
for=
"newFolderModal2"><?php echo
$lang[
'BACKUP_FOLDER_NAME']; ?></label>
1267 <input
type=
"text" class=
"form-control" id=
"newFolderModal2" name=
"newFolder" placeholder=
"<?php echo $lang['BACKUP_FOLDER_NAME_PH']; ?>">
1268 <input
type=
"hidden" name=
"action" id=
"action" value=
"upload"> <!-- gets filled via JS -->
1272 <!-- modal footer /
w submit btn -->
1273 <div
class=
"modal-footer">
1274 <input
class=
"btn btn-large btn-default" data-dismiss=
"modal" aria-hidden=
"true" type=
"submit" value=
"<?php echo $lang['CANCEL']; ?>">
1275 <button
class=
"btn btn-large btn-success" type=
"submit"><
i class=
"fa fa-check"></
i>&
nbsp; <?php echo
$lang[
'BACKUP_UPLOAD']; ?></button>
1277 <span
class=
"pull-left text-red"><
i class=
"fa fa-exclamation-triangle"></
i> &
nbsp;<?php echo
$lang[
'BACKUP_UPLOAD_OVERWRITE_WARNING']; ?></span>
1281 </div> <!-- modal content -->
1282 </div> <!-- modal dialog -->
1283 </div> <!-- modal fade
window -->
1286 <!-- Bootstrap toggle css -->
1287 <link rel=
"stylesheet" href=
"../system/engines/bootstrap-toggle/css/bootstrap-toggle.css">
1288 <!-- Bootstrap toggle js -->
1289 <script
type=
"text/javascript" src=
"../system/engines/bootstrap-toggle/js/bootstrap-toggle.min.js"></script>
print $lang['FILEMAN_UPLOAD']
Throws a fancy Bootstrap Alert (success, info, warning or danger)
Backend class serves a few useful functions for the admin backend.
Mysqli database class; returns db connection object.
Basic File Manager (Backend)
The language class - support multilingual backend.
The sys class - handles yawk's system core functions.
<!-- backend language -->< h3 >< i class="fa fa-language"></i > & nbsp
document ready(function() { $('a[data-confirm]').click(function(ev) { modal='#dataConfirmModal';var href=$(this).attr('href');var title=$(this).attr('title');var icon=$(this).attr('data-icon');if(!icon) { icon='fa fa-trash-o';} if(!$(modal).length) { $('body').append('< div id="dataConfirmModal" class="modal fade" role="dialog" aria-labelledby="dataConfirmLabel" aria-hidden="true">< div class="modal-dialog">< div class="modal-content">< div class="modal-header">< button type="button" class="close" data-dismiss="modal" aria-hidden="true">< i class="fa fa-times"></i ></button >< br >< div class="col-md-1">< h3 class="modal-title">< i class="'+icon+'"></i ></h3 ></div >< div class="col-md-11">< h3 class="modal-title" id="dataConfirmLabel">'+title+'</h3 ></div ></h3 ></div >< div class="modal-body"></div >< div class="modal-footer">< button type="button" class="btn btn-default" data-dismiss="modal" aria-hidden="true">Abbrechen</button >< a type="button" class="btn btn-danger" id="dataConfirmOK">< i class="'+icon+'"></i > L öschen</a ></div ></div ></div ></div >');} $(modal).find('.modal-body').text($(this).attr('data-confirm'));$('#dataConfirmOK').attr('href', href);$(modal).modal({show:true});return false;});$('#terminateUser').click(function() { var terminate=window.confirm("ACHTUNG!\nDas wird Deinen Account permanent deaktivieren.\n"+"Bist Du Dir sicher, dass Du das tun willst?");if(terminate===true) { var terminateUser=window.confirm("Bist Du Dir wirklich ganz sicher?\n"+"Diese Aktion kann nicht rueckgaengig gemacht werden.");if(terminateUser===true) { $.get('system/templates/YaWK-bootstrap3/js/terminate-user.php', function(data) { if(data==="true") { setTimeout("window.location='logout.html'", 0);} else { alert("Fehler: "+data);} });} } });function dismissNotifications() { $.ajax({ url:'js/dismiss-notifications.php', type:'POST', success:function(data) { if(!data) { alert('Something went wrong!');return false;} } });$("#bell-label").fadeOut();$('#notification-header').html('You have 0 notifications');$('#notification-menu').fadeOut();} $("#dismiss").click(function() { dismissNotifications();});function disableButtons(delay) { $('#loginButton').removeClass().addClass('btn btn-success disabled').attr('id', 'LOGIN_FORBIDDEN');$('#resetPasswordButton').removeClass().addClass('btn btn-danger disabled');setTimeout(function() { $('#LOGIN_FORBIDDEN').attr('id', 'loginButton').removeClass().addClass('btn btn-success');$('#resetPasswordButton').removeClass().addClass('btn btn-danger');}, delay);} $("#loginButton").click(function(){ if($('#loginButton').length > 0) { if($('#loginButton').hasClass('btn') &&$('#loginButton').hasClass('btn-success') &&$('#loginButton').hasClass('disabled')) { } else { $("#loginForm").submit();disableButtons(10000);} } else if($('#LOGIN_FORBIDDEN').length > 0) { if($('#LOGIN_FORBIDDEN').hasClass('btn') &&$('#LOGIN_FORBIDDEN').hasClass('btn-success') &&$('#LOGIN_FORBIDDEN').hasClass('disabled')) { } else { } } });$("#blockedBtn").hover(function() { $("#blockedBtn").hide();$("#askBtn").fadeIn(820);});})