PATH:
usr
/
local
/
jetapps
/
frontend
/
jetbackup
/
app
/* * base/frontend/paper_lantern/jetbackup/controllers/fileManager.js * * JetBackup @ package * Created By Idan Ben-Ezra * * Copyrights @ JetApps * https://www.jetapps.com * **/ /* * base/frontend/paper_lantern/jetbackup/controllers/settings.js * * JetBackup @ package * Created By Idan Ben-Ezra * * Copyrights @ JetApps * https://www.jetapps.com * **/ /* * base/frontend/paper_lantern/jetbackup/services/jetapi.js * * JetBackup @ package * Created By Idan Ben-Ezra * * Copyrights @ JetApps * https://www.jetapps.com * **/ /* if(response.data.system.licenseIssue || response.data.system.agreement || response.data.system.drMode) { var location = ''; window.PAGE.system = response.data.system; if(response.data.system.drMode) location = '/disasterRecovery'; if(response.data.system.agreement) location = '/agreement'; if(response.data.system.licenseIssue) location = '/license'; $location.path(location); } */ define("app",[],function(){return angular.module("JetBackupApp",["ngRoute","ngAnimate","ngSanitize","ui.bootstrap","jm.i18next"]).config(["$animateProvider","$routeProvider",function(e,t){e.classNameFilter(/(action-module|disappearing-table-row)/);var a=["$location",function(e){var t=window.PAGE.info.gdpr;t.enabled&&!t.termsagreed&&"/gdpr"!=e.path()&&e.path("/gdpr")}];t.when("/",{templateUrl:"app/views/index.ptt",resolve:{mess:a}}).when("/fullBackups",{templateUrl:"app/views/fullBackups.ptt",resolve:{mess:a}}).when("/dbBackups",{templateUrl:"app/views/dbBackups.ptt",resolve:{mess:a}}).when("/fileBackups",{templateUrl:"app/views/fileBackups.ptt",resolve:{mess:a}}).when("/fileManager/:id",{templateUrl:"app/views/fileManager.ptt",resolve:{mess:a}}).when("/settings",{templateUrl:"app/views/settings.ptt",resolve:{mess:a}}).when("/gdpr",{templateUrl:"app/views/gdpr.ptt",resolve:{mess:a}}).when("/snapshots",{templateUrl:"app/views/snapshots.ptt",resolve:{mess:a}}).when("/dnsBackups",{templateUrl:"app/views/dnsBackups.ptt",resolve:{mess:a}}).when("/emailBackups",{templateUrl:"app/views/emailBackups.ptt",resolve:{mess:a}}).when("/cronBackups",{templateUrl:"app/views/cronBackups.ptt",resolve:{mess:a}}).when("/queues",{templateUrl:"app/views/queues.ptt",resolve:{mess:a}})}]).controller("baseController",["$rootScope","$scope","$location","lang","consts","utils",function(e,t,a,n,s,o){e.LANG=n,e.CONSTS=s,e.isRTL="rtl"==PAGE.direction,t.PERMS=PAGE.permissions,t.UTILS=o,t.changeView=function(e){a.path(e)}}]).animation(".action-module",["$animateCss",function(e){return{enter:function(t,a){var n=t[0].offsetHeight;return e(t,{from:{height:"0"},to:{height:n+"px"},duration:.3,easing:"ease-out",event:"enter",structural:!0}).start().done(function(){t[0].style.height="",a()})},leave:function(t,a){var n=t[0].offsetHeight;return e(t,{event:"leave",structural:!0,from:{height:n+"px"},to:{height:"0"},duration:.3,easing:"ease-out"}).start().done(function(){a()})}}}]).controller("applicationListController",function(){}).controller("sidebarController",function(){})}),define("controllers/fullBackups",["app"],function(e){e.controller("fullBackups",["$scope","$interval","$routeParams","meta","lang","backup","jetapi","consts","$timeout",function(e,t,a,n,s,o,i,r,l){e.backupType=r.BACKUP_TYPE_FULL,e.backups=[],e.loading=!1,e.actionModule="",e.config=PAGE.config,e.refreshIntervalRate=3e3,e.interval=null;var c=n.new("fullBackups");e.meta=c,e.metaData=c.getData(),c.setSortReverse(!1),c.getSortBy()||c.setSortBy("created"),c.getSortDirection()||c.setSortDirection("asc"),c.setSortFields(["type","created","size","flag_name","destination"]),c.setTotalItems(e.backups.length),e.backupHandler=new o(e.backupType,c),e.fetchData=function(){e.loading=!0,e.backups=[],e.backupHandler.loadList(function(t){c.setTotalItems(t.data.total),c.calculate(t.data.backups),e.backups=t.data.backups,e.loading=!1,e.backupHandler.checkStatus(e),e.backupHandler.setList(e.backups)})},e.checkStatus=function(){e.backupHandler.hasQueueItem&&(e.interval=t(function(){if(!e.backupHandler.hasQueueItem())return t.cancel(e.interval),void(e.interval=null);e.backupHandler.checkStatus(e)},e.refreshIntervalRate))},l(function(){e.fetchData(),e.checkStatus()}()),e.$on("$destroy",function(){void 0!==e.interval&&(t.cancel(e.interval),e.interval=null)})}])}),define("controllers/fileBackups",["app"],function(e){e.controller("fileBackups",["$scope","$interval","$routeParams","meta","lang","backup","jetapi","consts",function(e,t,a,n,s,o,i,r){e.backupType=r.BACKUP_TYPE_FILES,e.backups=[],e.loading=!1,e.config=PAGE.config;var l=n.new("fileBackups");e.meta=l,e.metaData=l.getData(),l.setSortReverse(!1),l.getSortBy()||l.setSortBy("created"),l.getSortDirection()||l.setSortDirection("asc"),l.setSortFields(["created","size","location"]),l.setTotalItems(e.backups.length),e.backupHandler=new o(e.backupType,l),e.fetchData=function(){e.loading=!0,e.backups=[],e.backupHandler.loadList(function(t){l.setTotalItems(t.data.total),l.calculate(t.data.backups),e.backups=t.data.backups,e.loading=!1,e.backupHandler.setList(e.backups)})},e.fetchData()}])}),define("controllers/cronBackups",["app"],function(e){e.controller("cronBackups",["$scope","$interval","$routeParams","meta","lang","backup","jetapi","consts","$timeout",function(e,t,a,n,s,o,i,r,l){e.backupType=r.BACKUP_TYPE_CRON_JOBS,e.backups=[],e.loading=!1,e.actionModule="",e.config=PAGE.config,e.refreshIntervalRate=3e3,e.interval=null;var c=n.new("cronBackups");e.meta=c,e.metaData=c.getData(),c.setSortReverse(!1),c.getSortBy()||c.setSortBy("created"),c.getSortDirection()||c.setSortDirection("asc"),c.setSortFields(["created","size","location"]),c.setTotalItems(e.backups.length),e.backupHandler=new o(e.backupType,c),e.fetchData=function(){e.loading=!0,e.backups=[],e.backupHandler.loadList(function(t){c.setTotalItems(t.data.total),c.calculate(t.data.backups),e.backups=t.data.backups,e.loading=!1,e.backupHandler.checkStatus(e),e.backupHandler.setList(e.backups)})},e.checkStatus=function(){e.backupHandler.hasQueueItem&&(e.interval=t(function(){if(!e.backupHandler.hasQueueItem())return t.cancel(e.interval),void(e.interval=null);e.backupHandler.checkStatus(e)},e.refreshIntervalRate))},l(function(){e.fetchData(),e.checkStatus()}()),e.$on("$destroy",function(){void 0!==e.interval&&(t.cancel(e.interval),e.interval=null)})}])}),define("controllers/dnsBackups",["app"],function(e){e.controller("dnsBackups",["$scope","$interval","$routeParams","meta","lang","backup","jetapi","consts","$timeout",function(e,t,a,n,s,o,i,r,l){e.backupType=r.BACKUP_TYPE_DNS_ZONES,e.backups=[],e.loading=!1,e.actionModule="",e.config=PAGE.config,e.refreshIntervalRate=3e3,e.interval=null;var c=n.new("dnsBackups");e.meta=c,e.metaData=c.getData(),c.setSortReverse(!1),c.getSortBy()||c.setSortBy("name"),c.getSortDirection()||c.setSortDirection("asc"),c.setSortFields(["name","created","size","location"]),c.setTotalItems(e.backups.length),e.backupHandler=new o(e.backupType,c),e.fetchData=function(){e.loading=!0,e.backups=[],e.backupHandler.loadList(function(t){c.setTotalItems(t.data.total),c.calculate(t.data.backups),e.backups=t.data.backups,e.loading=!1,e.backupHandler.checkStatus(e),e.backupHandler.setList(e.backups)})},e.checkStatus=function(){e.backupHandler.hasQueueItem&&(e.interval=t(function(){if(!e.backupHandler.hasQueueItem())return t.cancel(e.interval),void(e.interval=null);e.backupHandler.checkStatus(e)},e.refreshIntervalRate))},l(function(){e.fetchData(),e.checkStatus()}()),e.$on("$destroy",function(){void 0!==e.interval&&(t.cancel(e.interval),e.interval=null)})}])}),define("controllers/emailBackups",["app"],function(e){e.controller("emailBackups",["$scope","$interval","$routeParams","meta","lang","backup","jetapi","consts","$timeout",function(e,t,a,n,s,o,i,r,l){e.backupType=r.BACKUP_TYPE_EMAILS,e.backups=[],e.loading=!1,e.actionModule="",e.config=PAGE.config,e.refreshIntervalRate=3e3,e.interval=null;var c=n.new("emailBackups");e.meta=c,e.metaData=c.getData(),c.setSortReverse(!1),c.getSortBy()||c.setSortBy("name"),c.getSortDirection()||c.setSortDirection("asc"),c.setSortFields(["name","created","size","location"]),c.setTotalItems(e.backups.length),e.backupHandler=new o(e.backupType,c),e.fetchData=function(){e.loading=!0,e.backups=[],e.backupHandler.loadList(function(t){c.setTotalItems(t.data.total),c.calculate(t.data.backups),e.backups=t.data.backups,e.loading=!1,e.backupHandler.checkStatus(e),e.backupHandler.setList(e.backups)})},e.checkStatus=function(){e.backupHandler.hasQueueItem&&(e.interval=t(function(){if(!e.backupHandler.hasQueueItem())return t.cancel(e.interval),void(e.interval=null);e.backupHandler.checkStatus(e)},e.refreshIntervalRate))},l(function(){e.fetchData(),e.checkStatus()}()),e.$on("$destroy",function(){void 0!==e.interval&&(t.cancel(e.interval),e.interval=null)})}])}),define("controllers/dbBackups",["app"],function(e){e.controller("dbBackups",["$scope","$interval","$routeParams","meta","lang","backup","jetapi","consts","$timeout",function(e,t,a,n,s,o,i,r,l){e.backupType=r.BACKUP_TYPE_DATABASES,e.backups=[],e.loading=!1,e.actionModule="",e.config=PAGE.config,e.refreshIntervalRate=3e3,e.interval=null;var c=n.new("databaseBackups");e.meta=c,e.metaData=c.getData(),c.setSortReverse(!1),c.getSortBy()||c.setSortBy("name"),c.getSortDirection()||c.setSortDirection("asc"),c.setSortFields(["name","created","size","location"]),c.setTotalItems(e.backups.length),e.backupHandler=new o(e.backupType,c),e.fetchData=function(){e.loading=!0,e.backups=[],e.backupHandler.loadList(function(t){c.setTotalItems(t.data.total),c.calculate(t.data.backups),e.backups=t.data.backups,e.loading=!1,e.backupHandler.checkStatus(e),e.backupHandler.setList(e.backups)})},e.checkStatus=function(){e.backupHandler.hasQueueItem&&(e.interval=t(function(){if(!e.backupHandler.hasQueueItem())return t.cancel(e.interval),void(e.interval=null);e.backupHandler.checkStatus(e)},e.refreshIntervalRate))},l(function(){e.fetchData(),e.checkStatus()}()),e.$on("$destroy",function(){void 0!==e.interval&&(t.cancel(e.interval),e.interval=null)})}])}),define("controllers/fileManager",["app"],function(e){e.controller("fileManager",["$rootScope","$scope","$interval","$timeout","jetapi","$window","$routeParams","$location","consts","lang",function(e,t,a,n,s,o,i,r,l,c){t.backupType=l.BACKUP_TYPE_FILES,t.backupId=i.id,t.files=[],t.loadingFiles=!1,t.currentPath="",t.breadcrumbs=[],t.filesIndex={},t.actionStatus=void 0,t.actionModule=void 0,t.config=PAGE.config,t.restoringBackup=!1,t.downloadingBackup=!1,t.downloads=[],t.restores=[],t.sortedDownloadList={},t.sortedRestoreList={},t.showhidden=!1,t.clearStatus=function(){t.actionStatus=void 0},t.cancelAction=function(){t.actionStatus=void 0,t.actionModule=void 0},t.changeView=function(e){r.path(e)},t.onClickRestore=function(){if(!u().length)return void(t.actionStatus={message:"Please select files to restore",type:"danger",closeable:!0,ttl:1e4});t.actionModule="restore"===t.actionModule?void 0:"restore"},t.onClickRestoreConfirm=function(){t.restoringBackup=!0,t.actionStatus=void 0;var e=JSON.stringify(u());s.addQueueRestore({_id:t.backupId,files:e},function(e){if(e.status){var a="";a=100===e.data.status?c.t("Restore Completed"):e.data.status>100?c.t("Restore Failed"):c.t("Restore in Progress");var n={_id:e.data._id,ready:e.data.status>=100,status:e.data.status,created:e.data.created,text:a};t.restores.push(n),t.sortedRestoreList[e.data._id]=n}t.checkStatus(),t.actionStatus={message:e.status?e.messages[0]:e.errors[0],type:e.status?"success":"danger",closeable:!0,ttl:1e4},t.restoringBackup=!1,t.actionModule=void 0,t.uncheckAll()})},t.onClickDownload=function(){if(!u().length)return void(t.actionStatus={message:"Please select files to download",type:"danger",closeable:!0,ttl:1e4});t.actionModule="download"===t.actionModule?void 0:"download"},t.onClickDownloadConfirm=function(){t.downloadingBackup=!0,t.actionStatus=void 0;var e=JSON.stringify(u());s.addQueueDownload({_id:t.backupId,files:e},function(e){if(e.status){var a={queue_id:e.data._id,ready:e.data.ready,filename:e.data.filename};t.downloads.push(a),t.sortedDownloadList[e.data._id]=a}t.getDownloads(),t.actionStatus={message:e.status?e.messages[0]:e.errors[0],type:e.status?"success":"danger",closeable:!0,ttl:1e4},t.downloadingBackup=!1,t.actionModule=void 0,t.uncheckAll()})},t.isConditionsAgreed=function(){for(var e in t.config.restore_conditions)if((0===t.config.restore_conditions[e].type||t.config.restore_conditions[e].type===t.backupType)&&!t.config.restore_conditions[e].checked)return!0;return!1};var u=function(){var e=[];for(var a in t.filesIndex)for(var n in t.filesIndex[a].data.files)null!=t.filesIndex[a].data.files[n]&&void 0!==t.filesIndex[a].data.files[n].checked&&t.filesIndex[a].data.files[n].checked&&e.push(t.filesIndex[a].data.files[n].path);return e};t.canPerformAction=function(){for(var e in t.filesIndex)for(var a in t.filesIndex[e].data.files)if(null!=t.filesIndex[e].data.files[a]&&void 0!==t.filesIndex[e].data.files[a].checked&&t.filesIndex[e].data.files[a].checked)return!1;return!0},t.isDisabled=function(){for(var e=this.file.parent;!e.checked&&e.parent;)e=e.parent;return e.checked},t.isChecked=function(){for(var e=this.file;!e.checked&&e.parent;)e=e.parent;return e.checked},t.calculateInput=function(e){if(void 0===e){for(var t=this.file;!t.checked&&t.parent;)t=t.parent;return t.checked}this.file.checked=e};var d=function(e){"/"===e.path&&(e.name="/backup-root"),t.breadcrumbs.unshift(e),void 0!==e.parent&&d(e.parent)},p=function(e,a){t.filesIndex[a.path]=e,t.files=e.data.files,t.loadingFiles=!1};t.toggleHidden=function(){t.showhidden=!t.showhidden},t.fetch=function(e){if(void 0===e.path&&(e.path="/"),t.loadingFiles=!0,t.files=[],t.breadcrumbs=[],d(e),void 0!==t.filesIndex[e.path])return void p(t.filesIndex[e.path],e);apiParams={},apiParams._id=t.backupId,apiParams.path=e.path,s.fileManager(apiParams,function(t){for(var a=0;a<t.data.files.length;a++)t.data.files[a].path=e.path+("/"===e.path?"":"/")+t.data.files[a].name,t.data.files[a].parent=e,t.data.files[a].hidden="."===t.data.files[a].name.substr(0,1);p(t,e)})},t.uncheckAll=function(){for(var e in t.filesIndex)for(var a in t.filesIndex[e].data.files)null!=t.filesIndex[e].data.files[a]&&void 0!==t.filesIndex[e].data.files[a].checked&&t.filesIndex[e].data.files[a].checked&&(t.filesIndex[e].data.files[a].checked=!1)},t.checkAll=function(){t.uncheckAll();var e=t.breadcrumbs[t.breadcrumbs.length-1].path;for(var a in t.filesIndex)for(var n in t.filesIndex[a].data.files){var s=t.filesIndex[a].data.files[n];!s||s.path.indexOf(e)||"File"!=s.type&&"Directory"!=s.type||(t.filesIndex[a].data.files[n].checked=!0)}};t.directDownload=function(e){var t=window.location.pathname.match(/^\/cpsess[^\/]+\//);void 0!==t[0]&&(window.location=t[0]+"download?file=.jbm/downloads/"+e)},t.getDownloads=function(){t.loadingDownloads=!0,t.downloads=[],s.getBackupDownloads({_id:t.backupId},function(e){e.data&&(t.downloads=e.data.downloads),t.loadingDownloads=!1,t.checkStatus()})},t.getRestores=function(){t.loadingRestores=!0,t.restores=[],t.PERMS.canViewQueues&&s.listQueueItems({},function(e){for(var a in e.data.queue){var n=e.data.queue[a];if(1===n.type){var s="";s=100===n.status?c.t("Restore Completed"):n.status>100?c.t("Restore Failed"):c.t("Restore in Progress");var o={_id:n._id,ready:n.status>=100,status:n.status,created:n.created,text:s};t.restores.push(o)}}t.loadingRestores=!1,t.checkStatus()})};var f=null;t.checkStatus=function(){if(null===f){var e=!1;t.sortedDownloadList={},t.sortedRestoreList={};for(var n in t.downloads)t.downloads[n].ready||(t.sortedDownloadList[t.downloads[n].queue_id]=t.downloads[n],e=!0);for(var n in t.restores)t.restores[n].ready||(t.sortedRestoreList[t.restores[n]._id]=t.restores[n],e=!0);e&&(f=a(function(){s.listQueueItems({},function(e){var n=e.data.queue,s=0;for(var o in n){var i=n[o]._id;if(n[o].status>=100)switch(n[o].type){case 1:if(void 0===t.sortedRestoreList[i])continue;t.sortedRestoreList[i].status=n[o].status,t.sortedRestoreList[i].ready=n[o].status>=100;var r="";r=100===n[o].status?c.t("Restore Completed"):n[o].status>100?c.t("Restore Failed"):c.t("Restore in Progress"),t.sortedRestoreList[i].text=r;break;case 2:if(void 0===t.sortedDownloadList[i])continue;100===n[o].status?(t.sortedDownloadList[i].filename=n[o].filename,t.sortedDownloadList[i].ready=!0):(t.sortedDownloadList[i].filename="Failed to Download",t.sortedDownloadList[i].failed=!0)}else s++}s||(a.cancel(f),f=void 0)})},5e3))}},t.minimizeAll=function(){t.actionModule=""},t.init=function(){t.getDownloads(),t.getRestores(),t.fetch({path:"/"})},n(t.init())}])}),define("controllers/snapshots",["app"],function(e){e.controller("snapshots",["$scope","$interval","$routeParams","meta","lang","backup","jetapi","consts","$timeout",function(e,t,a,n,s,o,i,r,l){e.backupType=r.BACKUP_TYPE_FULL,e.backups=[],e.loading=!1,e.actionModule="",e.config=PAGE.config,e.refreshIntervalRate=3e3,e.interval=null;var c=n.new("snapshots");e.meta=c,e.metaData=c.getData(),c.setSortReverse(!1),c.getSortBy()||c.setSortBy("created"),c.getSortDirection()||c.setSortDirection("asc"),c.setSortFields(["type","created","size","flag_name","destination"]),c.setTotalItems(e.backups.length),e.backupHandler=new o(e.backupType,c),e.onClickCreateSnapshot=function(){e.creatingSnapshot=!0,i.addQueueSnapshot({},function(t){e.snapshotStatus={message:t.status?t.messages[0]:t.errors[0],type:t.status?"success":"danger",closeable:!0,ttl:1e4},e.creatingSnapshot=!1,e.backupHandler.checkStatus(e)})},e.fetchData=function(){e.loading=!0,e.backups=[],e.backupHandler.onlySnapshots=!0,e.backupHandler.loadList(function(t){c.setTotalItems(t.data.total),c.calculate(t.data.backups),e.backups=t.data.backups,e.loading=!1,e.backupHandler.checkStatus(e),e.backupHandler.setList(e.backups)})},e.checkStatus=function(){t(function(){e.actionModule||e.backupHandler.checkStatus(e)},e.refreshIntervalRate)},l(function(){e.fetchData(),e.checkStatus()}())}])}),define("controllers/sslBackups",["app"],function(e){e.controller("sslBackups",["$scope","$interval","$routeParams","meta","lang","backup","jetapi","consts","$timeout",function(e,t,a,n,s,o,i,r,l){e.backupType=r.BACKUP_TYPE_SSL_CERTIFICATES,e.backups=[],e.loading=!1,e.actionModule="",e.config=PAGE.config,e.refreshIntervalRate=3e3,e.interval=null;var c=n.new("sslBackups");e.meta=c,e.metaData=c.getData(),c.setSortReverse(!1),c.getSortBy()||c.setSortBy("name"),c.getSortDirection()||c.setSortDirection("asc"),c.setSortFields(["name","created","size","location"]),c.setTotalItems(e.backups.length),e.backupHandler=new o(e.backupType,c),e.fetchData=function(){e.loading=!0,e.backups=[],e.backupHandler.loadList(function(t){c.setTotalItems(t.data.total),c.calculate(t.data.backups),e.backups=t.data.backups,e.loading=!1,e.backupHandler.checkStatus(e),e.backupHandler.setList(e.backups)})},e.checkStatus=function(){e.backupHandler.hasQueueItem&&(e.interval=t(function(){if(!e.backupHandler.hasQueueItem())return t.cancel(e.interval),void(e.interval=null);e.backupHandler.checkStatus(e)},e.refreshIntervalRate))},l(function(){e.fetchData(),e.checkStatus()}()),e.$on("$destroy",function(){void 0!==e.interval&&(t.cancel(e.interval),e.interval=null)})}])}),define("controllers/queues",["app"],function(e){e.controller("queues",["$rootScope","$scope","$interval","$timeout","jetapi","lang","meta","consts",function(e,t,a,n,s,o,i,r){t.queues=[],t.loadingQueue=!1,t.sortedList={},t.statusBar=null,t.actionStatus=null,t.refreshIntervalRate=3e3;var l=i.new("queues");t.meta=l,t.metaData=l.getData(),l.setSortReverse(!1),l.getSortBy()||l.setSortBy("status"),l.getSortDirection()||l.setSortDirection("asc"),l.setSortFields(["status","created","type_name","item_name"]),l.setTotalItems(t.queues.length),t.minimizeAll=function(){t.actionModule="";for(var e=0;e<t.queues.length;e++)t.queues[e].isExpanded=!1},t.cleatStatus=function(){for(var e=0;e<t.queues.length;e++)t.queues[e].status=null},t.downloadBackup=function(e){e.download_id&&s.getDownload({_id:e.download_id},function(t){if(!t.status)return void(e.status={message:t.errors[0],type:"danger",closeable:!0,ttl:1e4});var a=t.data.path.split("/");window.location="../../../download?file=.jbm/downloads/"+a[a.length-1]})},t.deleteDownload=function(e){e.isExpanded=!0,t.actionModule="deletedownload",t.pushAutoRefresh=!0},t.onClickDeleteDownloadConfirm=function(e){s.deleteDownload({_id:e.download_id},function(e){t.statusBar={message:e.status?e.messages[0]:e.errors[0],type:e.status?"success":"danger",closeable:!0,ttl:1e4},t.actionModule=null}),t.fetchData()},t.checkStatus=function(){a(function(){t.actionModule||t.fetchData()},t.refreshIntervalRate)},t.hasPermissionToDownload=function(e){switch(e){case r.BACKUP_TYPE_FILES:return t.PERMS.canDownloadFileBackups;case r.BACKUP_TYPE_DATABASES:return t.PERMS.canDownloadDatabaseBackups;case r.BACKUP_TYPE_EMAILS:return t.PERMS.canDownloadEmailBackups;case r.BACKUP_TYPE_CRON_JOBS:return t.PERMS.canDownloadCronBackups;case r.BACKUP_TYPE_DNS_ZONES:return t.PERMS.canDownloadDNSBackups;case r.BACKUP_TYPE_SSL_CERTIFICATES:return t.PERMS.canDownloadSSLBackups;case r.BACKUP_TYPE_FULL:return t.PERMS.canDownloadFullBackups;default:return!1}},t.clearStatus=function(){t.statusBar=null},t.fetchData=function(){t.loadingQueue=!0;var e={skip:t.meta.getSkip(),limit:t.meta.getPageSize(),sort:{},filter:t.meta.filterValue};e.sort[t.meta.getSortBy()]=t.meta.getSortDirectionInt(),s.listQueueItems(e,function(e){t.queues=[],l.setTotalItems(e.data.total),l.calculate(e.data.queues),t.queues=e.data.queue,t.loadingQueue=!1})},n(function(){t.fetchData(),t.checkStatus()}())}])}),define("controllers/gdpr",["app"],function(e){e.controller("gdpr",["$rootScope","$scope","$interval","$timeout","jetapi","lang",function(e,t,a,n,s,o){t.status=void 0,t.settings={enabled:!1},t.showTerms=!1,t.encryptionKey="",t.submitEncryptionKey="",t.loading=!1,t.userAgreement=0,t.privacyPolicy=0,t.backupDestinations=0,t.confirmTerms=function(){if(t.showTerms){if(t.status=void 0,!t.userAgreement||!t.privacyPolicy||!t.backupDestinations)return void(t.status={message:o.t("You must agree to all terms in order to continue"),type:"danger",closeable:!0,ttl:1e4});s.manageGDPR({iapprove:1},function(e){if(!e.status)return void(t.status={message:o.t(e.errors[0]),type:"danger",closeable:!0,ttl:1e4});t.showTerms=!1,window.PAGE.info.gdpr.termsagreed=!0,t.fetch()})}},t.clearStatus=function(){t.saveChangesStatus=void 0},t.saveChanges=function(){if(t.settings.secretKey&&!t.submitEncryptionKey)return void(t.status={message:o.t("You must provide the encryption key"),type:"danger",closeable:!0,ttl:1e4});t.encryptionKey="";var e=Object.assign({},t.settings);delete e.userAgreement,delete e.privacyPolicy;for(var a in e)"boolean"==typeof e[a]&&(e[a]=e[a]?1:0);t.submitEncryptionKey&&(e.secretKey=t.submitEncryptionKey),t.savingChanges=!0,t.status=void 0,s.manageGDPR(e,function(e){if(t.savingChanges=!1,t.submitEncryptionKey="",!e.status)return void(t.status={message:o.t(e.errors[0]),type:"danger",closeable:!0,ttl:1e4});t.status={message:o.t("GDPR Settings saved successfully"),type:"success",closeable:!0,ttl:1e4},e.data.secret_key&&(t.settings.secretKey=!0,t.encryptionKey=e.data.secret_key)})},t.fetch=function(){t.loading||(t.loading=!0,s.getGDPR({},function(e){if(t.loading=!1,!e.status)return void(t.status={message:o.t(e.errors[0]),type:"danger",closeable:!0,ttl:1e4});t.settings=e.data,t.showTerms=!t.settings.termsAgreed}))},n(t.fetch)}])}),define("controllers/settings",["app"],function(e){e.controller("settings",["$rootScope","$scope","$timeout","jetapi",function(e,t,a,n){t.saveData={},t.saveChangesStatus=!1,t.clearStatus=function(){t.saveChangesStatus=null},t.saveChanges=function(){t.savingChanges=!0,t.saveChangesStatus=void 0,n.manageAccount(t.saveData,function(e){t.savingChanges=!1,t.saveChangesStatus={message:e.status?e.messages[0]:e.errors[0],type:e.status?"success":"danger",closeable:!0,ttl:1e4}})},t.fetch=function(){n.getAccountDetails({},function(e){t.settings=e.data,e.status||(t.saveChangesStatus={message:e.errors[0],type:"danger",closeable:!0,ttl:1e4}),t.saveData=e.data})},a(t.fetch)}])}),define("controllers/backups",["app"],function(e){e.controller("backups",["$scope","meta","lang","$interval",function(e,t,a,n){e.clear=function(){e.meta.filterValue="",e.fetchData()},e.minimizeAll=function(){e.actionModule="";for(var t=0;t<e.backups.length;t++)e.backups[t].isExpanded=!1},e.cleatStatus=function(){for(var t=0;t<e.backups.length;t++)e.backups[t].status=null},e.openNotesEdit=function(t){t.editing=!0,e.lastNote=t.notes},e.saveNotes=function(t){e.backupHandler.saveNote(t)},e.onClickRestore=function(t){e.minimizeAll(),t.isExpanded=!0,e.actionModule="restore"},e.onClickDownload=function(t){if(e.minimizeAll(),e.downloading)return void(t.status={message:a.t("Can't download while other download is in progress"),type:"danger",closeable:!0,ttl:5e3});t.isExpanded=!0,e.actionModule="download"},e.onClickDeleteDownload=function(t){e.minimizeAll(),t.isExpanded=!0,e.actionModule="deletedownload"},e.isConditionsAgreed=function(){for(var t in e.config.restore_conditions)if((0===e.config.restore_conditions[t].type||e.config.restore_conditions[t].type===e.backupType)&&!e.config.restore_conditions[t].checked)return!0;return!1},e.onClickRestoreConfirm=function(t){e.backupHandler.restoreBackup(t,function(){e.minimizeAll(),e.checkStatus()})},e.onClickDownloadConfirm=function(t){e.backupHandler.generateBackup(t,function(){e.minimizeAll(),e.checkStatus()})},e.onClickDeleteDownloadConfirm=function(t){e.backupHandler.deleteDownload(t,e.fetchData())},e.downloadBackup=function(t){e.backupHandler.downloadBackup(t)},e.$on("$destroy",function(){null!==e.interval&&(e.interval.clear(),n.cancel(e.interval),e.interval=null)})}])}),define("services/jetapi",["app"],function(e){e.factory("jetapi",["$q","$http","$httpParamSerializer","lang",function(e,t,a,n){var s=function(e,s,o,i){s||(s={});var r=t.post("../../../execute/JetBackup/"+e,s,{transformRequest:a,headers:{"Content-Type":"application/x-www-form-urlencoded; charset=UTF-8"}});return r.then(function(e){if(e.data.messages&&e.data.messages.length)for(var t=0;t<e.data.messages.length;t++)e.data.messages[t]=n.t("exceptions|:|"+e.data.messages[t]);if(e.data.errors&&e.data.errors.length)for(var t=0;t<e.data.errors.length;t++){var a=["exceptions|:|"+e.data.errors[t]];if(e.data.data&&"object"==typeof e.data.data&&e.data.data.length>0)for(var s=0;s<e.data.data.length;s++)a.push(e.data.data[s]);e.data.errors[t]=n.t.apply(n,a)}if(e.data.warnings&&e.data.warnings.length)for(var t=0;t<e.data.warnings.length;t++)e.data.warnings[t]=n.t("exceptions|:|"+e.data.warnings[t]);void 0!==o&&"function"==typeof o&&o(e.data,i)}),r};return{getSettings:function(e,t,a){return s("getSettings",e,t,a)},manageSettings:function(e,t,a){return s("manageSettings",e,t,a)},getGDPR:function(e,t,a){return s("getGDPR",e,t,a)},manageGDPR:function(e,t,a){return s("manageGDPR",e,t,a)},getAccountDetails:function(e,t,a){return s("getAccountDetails",e,t,a)},getAccount:function(e,t,a){return s("getAccount",e,t,a)},manageAccount:function(e,t,a){return s("manageAccount",e,t,a)},getBackup:function(e,t,a){return s("getBackup",e,t,a)},listBackups:function(e,t,a){return s("listBackups",e,t,a)},manageBackup:function(e,t,a){return s("manageBackup",e,t,a)},addQueueRestore:function(e,t,a){return s("addQueueRestore",e,t,a)},addQueueSnapshot:function(e,t,a){return s("addQueueSnapshot",e,t,a)},calculateBackupSize:function(e,t,a){return s("calculateBackupSize",e,t,a)},deleteDownload:function(e,t,a){return s("deleteDownload",e,t,a)},getDownload:function(e,t,a){return s("getDownload",e,t,a)},getBackupDownloads:function(e,t,a){return s("getBackupDownloads",e,t,a)},addQueueDownload:function(e,t,a){return s("addQueueDownload",e,t,a)},getQueueItem:function(e,t,a){return s("getQueueItem",e,t,a)},listQueueItems:function(e,t,a){return s("listQueueItems",e,t,a)},cancelQueueItem:function(e,t,a){return s("cancelQueueItem",e,t,a)},fileManager:function(e,t,a){return s("fileManager",e,t,a)},listRestoreConditions:function(e,t,a){return s("listRestoreConditions",e,t,a)}}}])}),define("services/backup",["app"],function(e){e.factory("backup",["$rootScope","jetapi",function(e,t){var a=function(e,t){this.setType(e),this._metaParams=t};return a.prototype={_type:null,_sortable:null,_list:null,_metaParams:null,onlySnapshots:0,queue:{restore:[],download:[]},setType:function(e){this._type=e},getType:function(){return this._type},setSortable:function(e){this._sortable=e},getSortable:function(){return this._sortable},setList:function(e){this._list=e},buildListParams:function(){var e={type:this.getType(),skip:this._metaParams.getSkip(),limit:this._metaParams.getPageSize(),sort:{},filter:this._metaParams.filterValue,only_snapshots:this.onlySnapshots};return e.sort[this._metaParams.getSortBy()]=this._metaParams.getSortDirectionInt(),e},loadList:function(e){return t.listBackups(this.buildListParams(),function(t){e(t)})},resetExpended:function(){for(var e=0;e<this._list.length;e++)this._list[e].isExpanded=!1},saveNote:function(e,a){t.manageBackup({_id:e._id,notes:e.notes},function(t){e.editing=!1,"function"==typeof a&&a(t)})},restoreBackup:function(e,a){e.status=void 0,e.restoring=!0;var n={_id:e._id};if(e.require_encryption_key&&!e.encryption_key)return void(e.status={message:lang.t("You must provide encryption key in order to restore form this backup"),type:"danger",closeable:!0});e.encryption_key&&(n.encryption_key=e.encryption_key);var s=this;t.addQueueRestore(n,function(t){s.resetExpended(),e.status={message:t.status?t.messages[0]:t.errors[0],type:t.status?"success":"danger",closeable:!0},e.encryption_key="",t.status&&s.queue.restore.push(t.data._id),"function"==typeof a&&a(t)})},generateBackup:function(e,a){var n=this;if(e.status=void 0,e.downloading=!0,e.download)return void this.downloadBackup(e);var s={_id:e._id};if(e.require_encryption_key&&!e.encryption_key)return e.status={message:$scope.LANG.t("You must provide encryption key in order to generate download for this backup"),type:"danger",closeable:!0},void($scope.actionModule=void 0);e.encryption_key&&(s.encryption_key=e.encryption_key),t.addQueueDownload(s,function(t){e.status={message:t.status?t.messages[0]:t.errors[0],type:t.status?"success":"danger",closeable:!0},t.status&&(e.encryption_key="",e.queue.download=t.data._id,t.status&&n.queue.download.push(t.data._id),"function"==typeof a&&a())})},downloadBackup:function(e){e.download&&t.getDownload({_id:e.download},function(t){if(!t.status)return void(e.status={message:t.errors[0],type:"danger",closeable:!0});var a=t.data.path.split("/");window.location="../../../download?file=.jbm/downloads/"+a[a.length-1]})},deleteDownload:function(e,a){t.deleteDownload({_id:e.download},function(t){e.status={message:t.status?t.messages[0]:t.errors[0],type:t.status?"success":"danger",closeable:!0},"function"==typeof a&&a()})},checkStatus:function(e){var a=this,n={snap_type:this.getType()};t.listQueueItems(n,function(t){if(t.status){e.snapshotInQueue=!1;for(var n=t.data.queue,s=0;s<n.length;s++){var o=n[s],i=-1;switch(o.type){case 1:i=a.queue.restore.indexOf(o._id),i<0&&o.status<100&&a.queue.restore.push(o._id),i>-1&&o.status>=100&&(a.queue.restore.splice(i,1),e.fetchData());break;case 2:i=a.queue.download.indexOf(o._id),i<0&&o.status<100&&a.queue.download.push(o._id),i>-1&&o.status>=100&&(a.queue.download.splice(i,1),e.fetchData());break;case 3:n[s].status<100&&(e.snapshotInQueue=!0)}}}})},hasQueueItem:function(){return this.queue.download.length||this.queue.restore.length}},a}])}),define("services/meta",["app"],function(e){e.factory("meta",["storage","lang",function(e,t){var a=function(t){if(void 0===t)throw Error("No storage name provided");this._storage=e.create("sort_"+t);for(var a in this._defaults)this._storage.isSet(a)||void 0===this._defaults[a]||this.set(a,this._defaults[a])};return a.prototype={_defaults:{sortReverse:!1,sortBy:"",sortDirection:"",sortFields:[],filterValue:"",maxPages:3,totalItems:0,currentPage:1,pageSize:15,pageSizes:[15,25,50],start:0,limit:15,itemCountText:void 0},_storage:void 0,_storage_key:void 0,_show_count_text:!1,set:function(e,t){this._storage.set(e,t),this._storage.save()},get:function(e,t){return this._storage.get(e,t)},setSortReverse:function(e){this.set("sortReverse",e)},getSortReverse:function(){return this.get("sortReverse")},setSortBy:function(e){this.set("sortBy",e)},getSortBy:function(){return this.get("sortBy")},setSortDirection:function(e){this.set("sortDirection",e)},getSortDirection:function(){return this.get("sortDirection")},getSortDirectionInt:function(){return"asc"===this.getSortDirection()?1:-1},setSortFields:function(e){this.set("sortFields",e)},getSortFields:function(){return this.get("sortFields")},setFilter:function(e){this.set("filterValue",e)},getFilter:function(){return this.get("filterValue")},setMaxPages:function(e){this.set("maxPages",e)}, getMaxPages:function(){return this.get("maxPages")},setTotalItems:function(e){this.set("totalItems",e)},getTotalItems:function(){return this.get("totalItems")},setCurrentPage:function(e){this.set("currentPage",e)},getCurrentPage:function(){return this.get("currentPage")},setPageSize:function(e){this.set("pageSize",e)},getPageSize:function(){return this.get("pageSize")},setPageSizes:function(e){this.set("pageSizes",e)},getPageSizes:function(){return this.get("pageSizes")},setStart:function(e){this.set("start",e)},getStart:function(){return this.get("start")},setLimit:function(e){this.set("limit",e)},getLimit:function(){return this.get("limit")},setItemCountText:function(e){this.set("itemCountText",e)},getItemCountText:function(){return this.get("itemCountText")},showItemCountText:function(){return this._show_count_text=!0,this._show_count_text},getSkip:function(){return(this.getCurrentPage()-1)*this.getPageSize()},showPagination:function(){return this.get("showPagination",!1)},setData:function(e){this._storage.setData(e)},getData:function(){return this._storage.getData()},calculate:function(e){if(void 0===e&&(e=[]),this.getTotalItems()>this._min(this.getPageSizes())){this.set("showPagination",!0);var a=(this.getCurrentPage()-1)*this.getPageSize();this.setStart(a+1)}else this.set("showPagination",!1),this.setStart(0===e.length?0:1),this.setLimit(e.length);this.setItemCountText(t.t("%s - %s of %s records",this.getStart(),this.getPageSize()*this.getCurrentPage()>this.getTotalItems()?this.getTotalItems():this.getPageSize()*this.getCurrentPage(),this.getTotalItems()))},_min:function(e){for(var t,a=null;t<e.length;t++)(null===a||e[t]<a)&&(a=e[t]);return null===a?0:a}},{new:function(e){return new a(e)}}}])}),define("services/storage",["app"],function(e){e.factory("storage",[function(){var e=function(e){if(void 0===e)throw Error("You must provide pool name");this._storage_name="JetBackupStorage_"+e,this._data={};var t=localStorage.getItem(this._storage_name);void 0===t?this.save():this.setData(JSON.parse(t))};return e.prototype={_storage_name:void 0,_data:null,set:function(e,t){this._data[e]=t},get:function(e,t){return void 0!==this._data[e]?this._data[e]:t},isSet:function(e){return void 0!==this._data[e]},remove:function(e){delete this._data[e]},save:function(){localStorage.setItem(this._storage_name,JSON.stringify(this._data))},setData:function(e){e&&(this._data=e)},getData:function(){return this._data},destroy:function(){localStorage.removeItem(this._storage_name),this._data={}}},{create:function(t){return new e(t)},delete:function(e){if(void 0===e)throw Error("You must provide pool name");localStorage.removeItem("JetBackupStorage_"+e)},deleteAll:function(){localStorage.clear()},exists:function(e){return!!localStorage.getItem("JetBackupStorage_"+e)}}}])}),define("services/lang",["app"],function(e){e.factory("lang",["$i18next","$location",function(e,t){var a={short:"D MMM YYYY",shorttime:"D MMM YYYY hh:mm A",long:"ddd, MMM D, YYYY",longtime:"ddd, MMM D, YYYY, hh:mm A"};return{_ns:"",setNS:function(e,t){var a=this;a._ns=e,void 0!==t&&t.$on("$destroy",function(){a.resetNS()})},resetNS:function(){this._ns=""},initNS:function(a){var n=t.path();n=n.split("/")[1],n||void 0===a||(n=a),n&&(e.loadNamespaces(n),e.setDefaultNamespace(n))},t:function(){var t=[];for(var a in arguments)t.push(arguments[a]);var n=t.slice(1),s=(this._ns?this._ns+"|:|":"")+t[0];return n.length?e.t(s,{postProcess:"sprintf",sprintf:n}):e.t(s)},d:function(e,t){var n=moment(e);return window.PAGE.info.utcOffset&&n.utcOffset(window.PAGE.info.utcOffset),void 0!==a[t]?n.format(a[t]):n.format(a.longtime)}}}])}),define("services/consts",["app"],function(e){e.factory("consts",function(){var e={BACKUP_TYPE_CONFIG:1,BACKUP_TYPE_FILES:2,BACKUP_TYPE_DATABASES:4,BACKUP_TYPE_EMAILS:8,BACKUP_TYPE_CRON_JOBS:16,BACKUP_TYPE_DNS_ZONES:32,BACKUP_TYPE_SSL_CERTIFICATES:64,BACKUP_TYPE_FULL:0,BACKUP_TYPE_DIRECTORIES_FILES:128,BACKUP_TYPE_DIRECTORIES_DIRS:256,BACKUP_TYPE_DIRECTORIES:0,BACKUP_TYPE_REPLICATE:512,BACKUP_TYPE_DISASTER_RECOVERY:1024};return e.BACKUP_TYPE_FULL=e.BACKUP_TYPE_CONFIG|e.BACKUP_TYPE_FILES|e.BACKUP_TYPE_DATABASES|e.BACKUP_TYPE_EMAILS|e.BACKUP_TYPE_CRON_JOBS|e.BACKUP_TYPE_DNS_ZONES|e.BACKUP_TYPE_SSL_CERTIFICATES,e})}),define("services/utils",["app"],function(e){e.factory("utils",function(){var e=function(){};return e.prototype={sizeToHumanReadable:function(e,t){void 0===t&&(t=!1);var a=t?1e3:1024;if(e<a)return e+" B";var n=parseInt(Math.log(e)/Math.log(a)),s=t?"kMGTPE":"KMGTPE";return s=s[n-1],(e/Math.pow(a,n)).toFixed(2)+" "+s+"B"}},new e})}),define("directives/alertBox",["app"],function(e){e.directive("alertBox",["$timeout","$compile","lang",function(e,t,a){var n=0,s=[{name:"errorLabel",defaultText:a.t("Error:")},{name:"warnLabel",defaultText:a.t("Warning:")},{name:"infoLabel"},{name:"successLabel",defaultText:a.t("Success:")},{name:"moreLabel",defaultText:a.t("What went wrong?")}],o=function(e,t,a){var s={};if(e)if(angular.isString(a))s.message=a;else{if(!angular.isObject(a))throw new TypeError("ngModel must be a string or object.");angular.copy(a,s)}if(angular.isDefined(s.type)||(angular.isDefined(t.type)&&t.type?s.type=t.type:s.type="info"),angular.isDefined(s.closable)?s.closable="danger"!==s.type&&s.closable:angular.isDefined(t.closable)?s.closable="danger"!==s.type:s.closable=!1,angular.isDefined(s.autoClose)?s.autoClose="danger"!==s.type&&s.autoClose:angular.isDefined(t.autoClose)?s.autoClose="danger"!==s.type&&s.autoClose:s.autoClose=!1,angular.isDefined(s.id)||(angular.isDefined(t.id)?s.id=t.id:s.id="alert"+n++),e&&!angular.isDefined(s.message)&&!s.message)throw new Error("No message provided in the model's message property.");return s},i=function(e,t,a){var n=e.alert.type,s=t[0].querySelector(".alert-"+n),o=s.querySelector(".alert-body");a(function(e){angular.element(o).append(e)})};return{restrict:"EA",template:"<div>\n <div ng-show=\"alert.type === 'danger'\" class='alert alert-danger ng-hide'>\n <button id=\"{{'btnClose_danger_' + alert.id}}\" type='button' class='close' ng-if='alert.closeable' ng-click='runClose()'>×</button>\n <button id=\"{{'btnMore_danger_' + alert.id}}\" type='button' class='btn btn-more btn-link pull-right flip' ng-if='hasToggleHandler' ng-click='runToggleMore()'>{{moreLabel}}</button>\n <span class='glyphicon glyphicon-remove-sign'></span>\n <div class='alert-message'>\n <strong class=\"alert-title\" ng-show=\"errorLabel\">{{errorLabel}}</strong>\n <span class=\"alert-body\"><span id=\"{{'txtMessage_danger_' + alert.id}}\" ng-bind-html=\"alert.message\" ng-if=\"alert && alert.message\"></span></span>\n <ul ng-if=\"alert.list && alert.list.length\" class=\"alert-list\">\n <li ng-repeat=\"value in alert.list\">\n <span id=\"{{'txtList_danger_' + alert.id + '_' + $index}}\" ng-bind-html=\"value\"></span>\n </li>\n </ul>\n </div>\n </div>\n\n <div ng-show=\"alert.type === 'warning'\" class='alert alert-warning ng-hide'>\n <button id=\"{{'btnClose_warning_' + alert.id}}\" type='button' class='close' ng-if='alert.closeable' ng-click='runClose()'>×</button>\n <button id=\"{{'btnMore_warning_' + alert.id}}\" type='button' class='btn btn-more btn-link pull-right flip' ng-if='hasToggleHandler' ng-click='runToggleMore()'>{{moreLabel}}</button>\n <span class='glyphicon glyphicon-exclamation-sign'></span>\n <div class='alert-message'>\n <strong class=\"alert-title\" ng-show=\"warnLabel\">{{warnLabel}}</strong>\n <span class=\"alert-body\"><span id=\"{{'txtMessage_warning_' + alert.id}}\" ng-bind-html=\"alert.message\" ng-if=\"alert && alert.message\"></span></span>\n <ul ng-if=\"alert.list && alert.list.length\" class=\"alert-list\">\n <li ng-repeat=\"value in alert.list\">\n <span id=\"{{'txtList_warning_' + alert.id + '_' + $index}}\" ng-bind-html=\"value\"></span>\n </li>\n </ul>\n </div>\n </div>\n\n <div ng-show=\"alert.type === 'success'\" class='alert alert-success ng-hide'>\n <button id=\"{{'btnClose_success_' + alert.id}}\" type='button' class='close' ng-if='alert.closeable' ng-click='runClose()'>×</button>\n <button id=\"{{'btnMore_success_' + alert.id}}\" type='button' class='btn btn-more btn-link pull-right flip' ng-if='hasToggleHandler' ng-click='runToggleMore()'>{{moreLabel}}</button>\n <span class='glyphicon glyphicon-ok-sign'></span>\n <div class='alert-message'>\n <strong class=\"alert-title\" ng-show=\"successLabel\">{{successLabel}}</strong>\n <span class=\"alert-body\"><span id=\"{{'txtMessage_success_' + alert.id}}\" ng-bind-html=\"alert.message\" ng-if=\"alert && alert.message\"></span></span>\n <ul ng-if=\"alert.list && alert.list.length\" class=\"alert-list\">\n <li ng-repeat=\"value in alert.list\">\n <span id=\"{{'txtList_success_' + alert.id + '_' + $index}}\" ng-bind-html=\"value\"></span>\n </li>\n </ul>\n </div>\n </div>\n\n <div ng-show=\"alert.type === 'info'\" class='alert alert-info ng-hide'>\n <button id=\"{{'btnClose_info_' + alert.id}}\" type='button' class='close' ng-if='alert.closeable' ng-click='runClose()'>×</button>\n <button id=\"{{'btnMore_info_' + alert.id}}\" type='button' class='btn btn-more btn-link pull-right flip' ng-if='hasToggleHandler' ng-click='runToggleMore()'>{{moreLabel}}</button>\n <span class='glyphicon glyphicon-info-sign'></span>\n <div class='alert-message'>\n"+' <strong class="alert-title" ng-show="infoLabel">{{infoLabel}}</strong>\n <span class="alert-body"><span id="{{\'txtMessage_info_\' + alert.id}}" ng-bind-html="alert.message" ng-if="alert && alert.message"></span></span>\n <ul ng-if="alert.list && alert.list.length" class="alert-list">\n <li ng-repeat="value in alert.list">\n <span id="{{\'txtList_info_\' + alert.id + \'_\' + $index}}" ng-bind-html="value"></span>\n </li>\n </ul>\n </div>\n </div>\n</div>',transclude:!0,replace:!0,require:"?ngModel",scope:{close:"&onClose",toggleMore:"&onToggleMore",autoClose:"=",errorLabel:"@",warnLabel:"@",infoLabel:"@",successLabel:"@",moreLabel:"@"},compile:function(t,a){return s.forEach(function(e){angular.isDefined(a[e.name])||(a[e.name]=e.defaultText)}),function(t,a,n,r,l){r?(r.$formatters.push(function(e){return o(!0,n,e)}),r.$render=function(){t.alert=r.$viewValue}):(t.alert=o(!1,n),i(t,a,l)),t.$watch("alert.label",function(e){angular.isDefined(e)&&s.forEach(function(t){n.$set(t.name,e)})}),t.runClose=function(){if(t.timer){var a=t.timer;t.timer=null,delete t.timer,e.cancel(a)}t.$emit("closeAlertCalled",{id:t.alert.id}),t.alert.type="",t.close()};var c=t.autoClose?parseInt(t.autoClose,10):null;c&&!isNaN(c)&&(t.timer=e(function(){t.runClose()},c)),t.hasToggleHandler=angular.isDefined(n.onToggleMore),t.showMore=!1,t.runToggleMore=function(){t.showMore=!t.showMore;var e={id:t.alert.id,show:t.showMore};t.$emit("toggleMoreAlertCalled",e),t.toggleMore(e)}}}}}])}),define("directives/sortBy",["app"],function(e){e.directive("sortBy",["lang",function(e){var t=e.t("Ascending"),a=e.t("Descending");return{template:'<button class="sort-link" ng-click="sort(sortValue)">\n <span ng-transclude></span>\n <span ng-hide="sortMeta.getSortBy() !== sortField">\n <i class="fas" ng-class="{true: \'fa-sort-up\', false: \'fa-sort-down\'}[sortMeta.getSortDirection() == \'asc\']"\n ng-attr-title="{{ getTitle() }}"></i>\n </span>\n</button>',restrict:"EA",transclude:!0,replace:!0,scope:{sortMeta:"=",sortType:"@",sortField:"@",sortReverse:"@",sortAscendingTitle:"@",sortDescendingTitle:"@",sortReverseDefault:"@",onsort:"&"},compile:function(e,n){return n.sortAscendingTitle||(n.sortAscendingTitle=t),n.sortDescendingTitle||(n.sortDescendingTitle=a),function(e,t,a){e.getTitle=function(){return"asc"===e.sortMeta.getSortDirection()?a.sortAscendingTitle:a.sortDescendingTitle},e.sort=function(){var t=e.sortMeta;t.getSortBy()===e.sortField?t.setSortDirection("asc"===t.getSortDirection()?"desc":"asc"):(t.setSortBy(e.sortField),t.setSortDirection("asc"));var a=e.onsort();angular.isFunction(a)&&a(t)}}}}}])}),require(["app","controllers/fullBackups","controllers/fileBackups","controllers/cronBackups","controllers/dnsBackups","controllers/emailBackups","controllers/dbBackups","controllers/fileManager","controllers/snapshots","controllers/sslBackups","controllers/queues","controllers/gdpr","controllers/settings","controllers/backups","services/jetapi","services/backup","services/meta","services/storage","services/lang","services/consts","services/utils","directives/alertBox","directives/sortBy"],function(){angular.bootstrap(document,["JetBackupApp"])}),define("main",function(){});
[+]
..
[-] app.js
[edit]
[+]
lang
[+]
controllers
[+]
services
[+]
views
[-] main.min.js
[edit]
[-] main.js
[edit]
[+]
directives