extensions/net.sf.basedb.reggie/trunk/resources/download-as-zip.js

Code
Comments
Other
Rev Date Author Line
6855 25 Oct 22 nicklas 1 var DownloadZip = function()
6854 24 Oct 22 nicklas 2 {
6854 24 Oct 22 nicklas 3   var zip = {};
6854 24 Oct 22 nicklas 4   
6854 24 Oct 22 nicklas 5   // Page initialization
6854 24 Oct 22 nicklas 6   zip.initPage = function()
6854 24 Oct 22 nicklas 7   {
6855 25 Oct 22 nicklas 8     var pageId = Doc.getPageId();
6855 25 Oct 22 nicklas 9     if (pageId == 'password-dialog')
6855 25 Oct 22 nicklas 10     {
6856 25 Oct 22 nicklas 11       Buttons.addClickHandler('generate', zip.generatePassword);
6855 25 Oct 22 nicklas 12       Buttons.addClickHandler('close', App.closeWindow);
6855 25 Oct 22 nicklas 13       Buttons.addClickHandler('btnDownload', zip.makeZip);
6855 25 Oct 22 nicklas 14     }
6854 24 Oct 22 nicklas 15   }
6855 25 Oct 22 nicklas 16
6855 25 Oct 22 nicklas 17   zip.initElement = function(element, autoInit)
6855 25 Oct 22 nicklas 18   {
6855 25 Oct 22 nicklas 19     if (autoInit == 'download-as-zip')
6855 25 Oct 22 nicklas 20     {
6855 25 Oct 22 nicklas 21       Events.addEventHandler(element, 'click', zip.openPasswordDialog);
6855 25 Oct 22 nicklas 22     }
6855 25 Oct 22 nicklas 23   }
6854 24 Oct 22 nicklas 24   
6855 25 Oct 22 nicklas 25   zip.openPasswordDialog = function(event)
6855 25 Oct 22 nicklas 26   {
6855 25 Oct 22 nicklas 27     var fileId = Data.int(event.currentTarget, 'file-id');
6855 25 Oct 22 nicklas 28     var homeUrl = Data.get(event.currentTarget, 'home');
6855 25 Oct 22 nicklas 29
6855 25 Oct 22 nicklas 30     var url = homeUrl+'/download-as-zip.jsp?ID=' + App.getSessionId();
6855 25 Oct 22 nicklas 31     url += '&fileId='+fileId;
6855 25 Oct 22 nicklas 32     Dialogs.openPopup(url, 'DownloadAsZip'+fileId, 450, 300);
6855 25 Oct 22 nicklas 33   }
6855 25 Oct 22 nicklas 34   
6856 25 Oct 22 nicklas 35   
6856 25 Oct 22 nicklas 36   zip.generatePassword = function()
6856 25 Oct 22 nicklas 37   {
6856 25 Oct 22 nicklas 38     var C = 'ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz123456789%!#=*-.abcdefghijkmnpqrstuvwxyz';
6856 25 Oct 22 nicklas 39     var pwd = '';
6856 25 Oct 22 nicklas 40     for (var i = 0; i < 12; i++)
6856 25 Oct 22 nicklas 41     {
6856 25 Oct 22 nicklas 42       var p = Math.floor(Math.random()*C.length);
6856 25 Oct 22 nicklas 43       pwd += C.substring(p, p+1);
6856 25 Oct 22 nicklas 44     }
6856 25 Oct 22 nicklas 45     var frm = document.forms['options'];
6856 25 Oct 22 nicklas 46     frm.password.value = pwd;
6856 25 Oct 22 nicklas 47   }
6856 25 Oct 22 nicklas 48   
6854 24 Oct 22 nicklas 49   zip.makeZip = function()
6854 24 Oct 22 nicklas 50   {
6854 24 Oct 22 nicklas 51     var frm = document.forms['options'];
6855 25 Oct 22 nicklas 52     var url = 'Session.servlet?ID='+App.getSessionId();
6854 24 Oct 22 nicklas 53     url += '&cmd=DownloadFileAsZip';
6854 24 Oct 22 nicklas 54     url += '&fileId='+Data.get('page-data', 'file-id');
6854 24 Oct 22 nicklas 55     url += '&password='+encodeURIComponent(frm.password.value);
6856 25 Oct 22 nicklas 56     url += '&remember='+(frm.rememberPassword.checked?1:0);
6854 24 Oct 22 nicklas 57     window.opener.location.href = url;
6854 24 Oct 22 nicklas 58     App.closeWindow();
6854 24 Oct 22 nicklas 59   }
6854 24 Oct 22 nicklas 60
6854 24 Oct 22 nicklas 61   return zip;
6854 24 Oct 22 nicklas 62 }();
6854 24 Oct 22 nicklas 63
6855 25 Oct 22 nicklas 64 Doc.onLoad(DownloadZip.initPage);
6855 25 Oct 22 nicklas 65 Doc.addElementInitializer(DownloadZip.initElement);