backupmodx.min.js 6.5 KB

1234567
  1. /*!
  2. * BackupMODX - Backup dashboard widget for MODX
  3. * Version: 3.0.1-pl
  4. * Build date: 2019-09-19
  5. */
  6. var backupmodx=function(e){return e=e||{},Ext.applyIf(e,{}),backupmodx.superclass.constructor.call(this,e),this};Ext.extend(backupmodx,Ext.Component,{config:{},util:{},initComponent:function(){this.stores={},this.ajax=new Ext.data.Connection({disableCaching:!0})},templatingFiles:function(e){var t=new Ext.XTemplate('<tpl for=".">','<div><a class="downloadLink" onclick="BackupMODX.download(\'{filename}\',\'{name}\')"><i class="icon icon-{icon}"></i> {label} <i>({size})</i> <i class="download icon icon-download"></i></a></div>',"</tpl>");(Ext.get("backupmodx-download-container").dom.innerText="")!==e.database&&(e.database.icon="sql",e.database.label="Database",t.append(Ext.get("backupmodx-download-container"),e.database)),""!==e.files&&(e.files.icon="zip",e.files.label="Files",t.append(Ext.get("backupmodx-download-container"),e.files)),""!==e.note&&(e.note.icon="txt",e.note.label="Note",t.append(Ext.get("backupmodx-download-container"),e.note))},backup:function(){var e=document.getElementById("backupmodx-input-database").checked,t=document.getElementById("backupmodx-input-files").checked,o=document.getElementById("backupmodx-input-note").checked;e||t?(Ext.get("backupmodx-form-backup").addClass("hide"),Ext.get("backupmodx-spinner").removeClass("hide"),Ext.Ajax.request({url:BackupMODX.config.connectorUrl,timeout:12e4,params:{action:"backup",database:e,files:t,note:o},success:function(e){var t=Ext.decode(e.responseText);t.success?(BackupMODX.templatingFiles(t.results.files),Ext.get("backupmodx-remove-btn").removeClass("hide")):(Ext.get("backupmodx-download-container").dom.innerText=t.message,Ext.get("backupmodx-remove-btn").addClass("hide")),Ext.get("backupmodx-spinner").addClass("hide"),Ext.get("backupmodx-form-download").removeClass("hide")},failure:function(e){var t=Ext.decode(e.responseText);Ext.Msg.show({title:_("backupmodx.err_msg_title"),msg:t.message?t.message:_("backupmodx.err_unknown"),buttons:Ext.MessageBox.OK,icon:Ext.MessageBox.ERROR}),Ext.get("backupmodx-spinner").addClass("hide"),Ext.get("backupmodx-form-backup").removeClass("hide")}})):Ext.Msg.show({title:_("backupmodx.err_msg_title"),msg:_("backupmodx.err_missing_backup_options"),buttons:Ext.MessageBox.OK,icon:Ext.MessageBox.WARNING})},restore:function(){Ext.get("backupmodx-form-backup").addClass("hide"),Ext.get("backupmodx-form-download").addClass("hide"),Ext.get("backupmodx-form-restore").removeClass("hide"),Ext.Ajax.request({url:BackupMODX.config.connectorUrl,params:{action:"getbackups"},success:function(e){var t=Ext.decode(e.responseText);if(t.success){var o=t.results,a=new Ext.XTemplate('<tpl for=".">','<div class="restoreItem">',"<div><strong>{date_format}</strong><tpl if=\"note != ''\"> | {note}</tpl></div>",'<label class="selectBox">','<input type="radio" name="database" value="{name}">','<div class="downloadLink"><i class="icon icon-sql"></i> '+_("backupmodx.database")+' <i class="download icon icon-check"></i></div>',"</label>","</div>","</tpl>");""!==o&&a.overwrite(Ext.get("backupmodx-restore-container"),o),Ext.get("backupmodx-restore-btn").removeClass("hide")}else Ext.get("backupmodx-restore-container").dom.innerText=t.message,Ext.get("backupmodx-restore-btn").addClass("hide")},failure:function(e){var t=Ext.decode(e.responseText);Ext.Msg.show({title:_("backupmodx.err_msg_title"),msg:t.message?t.message:_("backupmodx.err_unknown"),buttons:Ext.MessageBox.OK,icon:Ext.MessageBox.ERROR})}})},download:function(e,t){BackupMODX.util.HiddenForm(BackupMODX.config.connectorUrl,{action:"download",file:e,folder:t,HTTP_MODAUTH:MODx.siteId})},cancel:function(){Ext.get("backupmodx-form-backup").removeClass("hide"),Ext.get("backupmodx-form-download").addClass("hide"),Ext.get("backupmodx-form-restore").addClass("hide")},removeBackup:function(){Ext.Ajax.request({url:BackupMODX.config.connectorUrl,params:{action:"removebackup"},success:function(e){var t=Ext.decode(e.responseText).results;void 0!==t&&null!=t&&null!=t.length&&0===t.length&&(Ext.get("backupmodx-restore-container").dom.innerText="",Ext.get("backupmodx-form-backup").removeClass("hide"),Ext.get("backupmodx-form-download").addClass("hide"))},failure:function(e){var t=Ext.decode(e.responseText);Ext.Msg.show({title:_("backupmodx.err_msg_title"),msg:t.message?t.message:_("backupmodx.err_unknown"),buttons:Ext.MessageBox.OK,icon:Ext.MessageBox.ERROR})}})},restoreBackup:function(){var e=Ext.DomQuery.selectNode("input[name=database]:checked");e?Ext.Ajax.request({url:BackupMODX.config.connectorUrl,params:{action:"restorebackup",database:e.value},success:function(e){var t=Ext.decode(e.responseText);t.success?Ext.Msg.show({title:_("backupmodx.success_msg_title"),msg:_("backupmodx.success_restore"),buttons:Ext.MessageBox.OK,icon:Ext.MessageBox.INFO,fn:function(){location.reload()}}):Ext.Msg.show({title:_("backupmodx.err_msg_title"),msg:t.message?t.message:_("backupmodx.err_unknown"),buttons:Ext.MessageBox.OK,icon:Ext.MessageBox.WARNING})},failure:function(e){var t=Ext.decode(e.responseText);Ext.Msg.show({title:_("backupmodx.err_msg_title"),msg:t.message?t.message:_("backupmodx.err_unknown"),buttons:Ext.MessageBox.OK,icon:Ext.MessageBox.ERROR})}}):Ext.Msg.show({title:_("backupmodx.err_msg_title"),msg:_("backupmodx.err_missing_restore_options"),buttons:Ext.MessageBox.OK,icon:Ext.MessageBox.WARNING})},about:function(){var e='<span style="display: inline-block; text-align: center"><img width="200" style="margin: 0 50px;" src="'+BackupMODX.config.assetsUrl+'img/mgr/quadro.png" srcset="'+BackupMODX.config.assetsUrl+'img/mgr/quadro@2x.png 2x" alt"Quadro"><br><span style="display: block;margin-bottom: 20px">© 2015-2019 by <a href="https://www.quadro-system.de" target="_blank">www.quadro-system.de</a></span><img width="200" src="'+BackupMODX.config.assetsUrl+'img/mgr/treehill-studio.png" srcset="'+BackupMODX.config.assetsUrl+'img/mgr/treehill-studio@2x.png 2x" alt="Treehill Studio"><br>Version 3.x refactored by <a href="https://treehillstudio.com" target="_blank">treehillstudio.com</a></span>';Ext.Msg.show({title:_("backupmodx")+" "+BackupMODX.config.version,msg:e,buttons:Ext.Msg.OK,cls:"backupmodx_window",width:330})}}),Ext.reg("backupmodx",backupmodx),BackupMODX=new backupmodx,BackupMODX.util.HiddenForm=function(e,t){if(Ext.isObject(t)){var o=Ext.getBody(),a=(o.createChild({tag:"iframe",cls:"x-hidden",id:"hiddenform-iframe",name:"iframe"}),o.createChild({tag:"form",cls:"x-hidden",id:"hiddenform-form",action:e,target:"iframe",method:"post"}));Ext.iterate(t,function(e,t){a.createChild({tag:"input",type:"text",cls:"x-hidden",id:"hiddenform-"+e,name:e,value:t})}),a.dom.submit()}};