wired up folder share/unshare actions, got folder delete working for all the types...
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Mon, 2 Oct 2006 15:22:20 +0000 (15:22 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Mon, 2 Oct 2006 15:22:20 +0000 (15:22 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@6356 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/web/reports/oils_rpt_builder.js
Open-ILS/web/reports/oils_rpt_folder_manager.xhtml
Open-ILS/web/reports/oils_rpt_folder_window.js
Open-ILS/web/reports/oils_rpt_report_editor.js
Open-ILS/web/reports/oils_rpt_utils.js

index 4dcd95a..0b05072 100644 (file)
@@ -39,11 +39,12 @@ function oilsReportBuilderSave() {
        tmpl.folder(new CGI().param('folder'));
        tmpl.data(js2JSON(oilsRpt.def));
 
-       _debug('folder = ' + tmpl.folder());
-
        if(!confirm('Name : '+tmpl.name() + '\nDescription: ' + tmpl.description()+'\nSave Template?'))
                return;
 
+       debugFMObject(tmpl);
+       return; /* XXX */
+
 
        var req = new Request(OILS_RPT_CREATE_TEMPLATE, SESSION, tmpl);
        req.callback(
index b1a8203..723c2db 100644 (file)
                        </table>
                </div>
 
+               <div id='oils_rpt_folder_manager_share_div'>
+                       <table class='oils_rpt_generic_table'>
+                               <tbody>
+                                       <tr>
+                                               <td>Share with:</td>
+                                               <td><select id='oils_rpt_folder_manager_share_lib_picker'/></td>
+                                       </tr>
+                                       <tr><td colspan='2' align='center'>
+                                               <input type='submit' value='Share this folder' 
+                                                       id='oils_rpt_folder_manager_share_submit'/>
+                                       </td></tr>
+                               </tbody>
+                       </table>
+               </div>
+
+
        </div>
 
        <span class='hide_me' id='oils_rpt_folder_manager_change_name_confirm'>
                Are you sure you wish to change this folder's name?
        </span>
-       <span class='hide_me' id='oils_rpt_folder_manager_new_confirm'>
-               Are you sure you wish to create new subfolder
-       </span>
 
        <span class='hide_me' id='oils_rpt_folder_manager_delete_confirm'>
                Are you sure you wish to delete this folder?
                This folder may not be deleted because it is not empty.
        </span>
 
+       <span class='hide_me' id='oils_rpt_folder_already_shared'>
+               This folder is already shared
+       </span>
+       <span class='hide_me' id='oils_rpt_folder_already_unshared'>
+               This folder is not shared
+       </span>
+       <span class='hide_me' id='oils_rpt_folder_unshare_confirm'>
+               Are you sure you wish to hide this folder?
+       </span>
+
+
 </div>
 
index 5c6541f..a0c8473 100644 (file)
@@ -117,15 +117,65 @@ oilsRptFolderWindow.prototype.drawEditActions = function() {
                        case 'delete':
                                obj.doFolderDelete();
                                break;
+                       case 'share':
+                               obj.shareFolder();
+                               break;
+                       case 'unshare':
+                               obj.unShareFolder();
+                               break;
                }
        }
 
 }
 
 
+oilsRptFolderWindow.prototype.shareFolder = function() {
+       var folder = this.folderNode.folder;
+       if(isTrue(folder.shared()))
+               return alertId('oils_rpt_folder_already_shared');
+       unHideMe(DOM.oils_rpt_folder_manager_share_div);
+
+       var orgsel = new oilsRptMyOrgsWidget(
+               DOM.oils_rpt_folder_manager_share_lib_picker, USER.ws_ou());
+       orgsel.draw();
+
+       var type = this.type;
+       DOM.oils_rpt_folder_manager_share_submit.onclick = function() {
+               folder.shared('t');
+               folder.share_with(orgsel.getValue());
+               oilsRptUpdateFolder( folder, type, 
+                       function(success) {
+                               if(success) {
+                                       oilsRptAlertSuccess();
+                                       oilsRptCurrentFolderManager.draw();
+                               }
+                       }
+               );
+       }
+}
+
+oilsRptFolderWindow.prototype.unShareFolder = function() {
+       var folder = this.folderNode.folder;
+       if(!isTrue(folder.shared()))
+               return alertId('oils_rpt_folder_already_unshared');
+       if(!confirmId('oils_rpt_folder_unshare_confirm')) return;
+       folder.shared('f');
+       var type = this.type;
+       oilsRptUpdateFolder( folder, type, 
+               function(success) {
+                       if(success) {
+                               oilsRptAlertSuccess();
+                               oilsRptCurrentFolderManager.draw();
+                       }
+               }
+       );
+}
+
+
 oilsRptFolderWindow.prototype.hideFolderActions = function() {
        hideMe(DOM.oils_rpt_folder_manager_change_name_div);
        hideMe(DOM.oils_rpt_folder_manager_create_sub);
+       hideMe(DOM.oils_rpt_folder_manager_share_div);
 }
 
 
@@ -346,16 +396,14 @@ oilsRptFolderWindow.prototype.setFolderEditActions = function() {
                if( folder.shared() == 't' )
                        folder.share_with( obj.myOrgSelector.getValue() );
 
-               if(confirm(DOM.oils_rpt_folder_manager_new_confirm.innerHTML + ' "'+folder.name()+'"')) {
-                       oilsRptCreateFolder(folder, obj.type,
-                               function(success) {
-                                       if(success) {
-                                               oilsRptAlertSuccess();
-                                               oilsRptCurrentFolderManager.draw();
-                                       }
+               oilsRptCreateFolder(folder, obj.type,
+                       function(success) {
+                               if(success) {
+                                       oilsRptAlertSuccess();
+                                       oilsRptCurrentFolderManager.draw();
                                }
-                       );
-               }
+                       }
+               );
        }
 }
 
@@ -370,7 +418,13 @@ oilsRptFolderWindow.prototype.doFolderDelete = function() {
 
        /* lets see if the folder has contents */
        var req = new Request(OILS_RPT_FETCH_FOLDER_DATA, 
-               SESSION, this.type, this.folderNode.folder.id());
+               SESSION, this.type, this.folderNode.folder.id(), 1);
+
+       if(this.type == 'output') {
+               req = new Request(OILS_RPT_FETCH_OUTPUT, 
+                       SESSION, this.folderNode.folder.id(), 1);
+       }
+
        var obj = this;
        req.send();
 
index f071f28..b9dcb2e 100644 (file)
@@ -51,6 +51,9 @@ function oilsRptReportEditor(rptObject, folderWindow) {
 oilsRptReportEditor.prototype.save = function() {
        var report = new rr();
 
+       if(!this.selectedFolder) 
+               return alert('Please provide a report folder');
+
        report.owner( USER.id() );
        report.template( this.template.id() );
        report.folder( this.selectedFolder.folder.id() );
@@ -59,6 +62,7 @@ oilsRptReportEditor.prototype.save = function() {
        report.recur(this.paramEditor.recur());
        report.recurance(this.paramEditor.recurInterval());
 
+
        /* collect the param data */
        var data = {};
        for( var p in this.paramEditor.params ) {
@@ -92,6 +96,9 @@ oilsRptReportEditor.prototype.save = function() {
                _debug("built run_time "+time);
        }
 
+       if(!this.selectedOutputFolder) 
+               return alert('Please provide an output folder');
+
        var schedule = new rs();
        schedule.folder(this.selectedOutputFolder.folder.id());
        schedule.email(DOM.oils_rpt_param_editor_sched_email.value);
@@ -105,6 +112,7 @@ oilsRptReportEditor.prototype.save = function() {
        schedule.chart_bar((DOM.oils_rpt_format_chart_bar.checked) ? 't' : 'f');
        schedule.chart_line((DOM.oils_rpt_format_chart_line.checked) ? 't' : 'f');
 
+
        debugFMObject(report);
        debugFMObject(schedule);
 
index 83a6764..71f3199 100644 (file)
@@ -117,11 +117,13 @@ function nodeText(id) {
        return "";
 }
 
+/*
 function print_tabs(t) {
        var r = '';
        for (var j = 0; j < t; j++ ) { r = r + "  "; }
        return r;
 }
+*/
 
 
 function oilsRptDebug() {
@@ -135,7 +137,10 @@ function oilsRptDebug() {
        oilsRptDebugWindow.document.body.innerHTML = oilsRpt.toHTMLString();
 }
 
+
+
 /* pretty print JSON */
+/*
 function formatJSON(s) {
        var r = ''; var t = 0;
        for (var i in s) {
@@ -151,6 +156,7 @@ function formatJSON(s) {
        }
        return r;
 }
+*/
 
 
 function print_tabs_html(t) {