2 function oilsRptFetchTemplate(id) {
3 var t = oilsRptGetCache('rt', id);
5 var r = new Request(OILS_RPT_FETCH_TEMPLATE, SESSION, id);
8 oilsRptCacheObject('rt', t, id);
14 /* generic folder window class */
15 oilsRptSetSubClass('oilsRptFolderWindow', 'oilsRptObject');
16 function oilsRptFolderWindow(type, folderId) {
17 var node = oilsRptCurrentFolderManager.findNode(type, folderId);
18 this.init2(node, type);
19 this.selector = DOM.oils_rpt_folder_contents_selector;
23 oilsRptFolderWindow.prototype.init2 = function(node, type) {
24 this.folderNode = node;
30 oilsRptFolderWindow.prototype.draw = function() {
31 unHideMe(DOM.oils_rpt_folder_window_contents_div);
32 hideMe(DOM.oils_rpt_folder_manager_div);
34 DOM.oils_rpt_folder_window_manage_tab.onclick = function() {
35 unHideMe(DOM.oils_rpt_folder_window_contents_div);
36 hideMe(DOM.oils_rpt_folder_manager_div);
38 DOM.oils_rpt_folder_window_edit_tab.onclick = function() {
39 hideMe(DOM.oils_rpt_folder_window_contents_div);
40 unHideMe(DOM.oils_rpt_folder_manager_div);
43 this.setFolderEditActions();
45 hideMe(DOM.oils_rpt_template_folder_new_report);
46 unHideMe(DOM.oils_rpt_folder_table_right_td);
47 hideMe(DOM.oils_rpt_folder_table_alt_td);
48 this.drawFolderDetails();
51 DOM.oils_rpt_folder_content_action_go.onclick =
52 function() {obj.doFolderAction()}
54 this.fetchFolderData();
56 var sel = DOM.oils_rpt_folder_contents_action_selector;
57 for( var i = 0; i < sel.options.length; i++ ) {
58 var opt = sel.options[i];
59 if( opt.getAttribute('type') == this.type )
64 this.drawEditActions();
68 oilsRptFolderWindow.prototype.drawEditActions = function() {
69 if( this.folderNode.folder.owner().id() != USER.id() )
70 hideMe(DOM.oils_rpt_folder_manager_tab_table);
72 unHideMe(DOM.oils_rpt_folder_manager_tab_table);
74 if( isTrue(this.folderNode.folder.shared())) {
75 DOM.oils_rpt_folder_manager_share_opt.disabled = true;
76 DOM.oils_rpt_folder_manager_unshare_opt.disabled = false;
78 DOM.oils_rpt_folder_manager_share_opt.disabled = false;
79 DOM.oils_rpt_folder_manager_unshare_opt.disabled = true;
82 this.hideFolderActions();
85 DOM.oils_rpt_folder_manager_actions_submit.onclick = function() {
86 var act = getSelectorVal(DOM.oils_rpt_folder_manager_actions);
87 _debug("doing folder action: " + act);
88 obj.hideFolderActions();
91 unHideMe(DOM.oils_rpt_folder_manager_change_name_div);
93 case 'create_sub_folder':
94 unHideMe(DOM.oils_rpt_folder_manager_create_sub);
95 obj.myOrgSelector = new oilsRptMyOrgsWidget(
96 DOM.oils_rpt_folder_manager_sub_lib_picker, USER.ws_ou());
97 obj.myOrgSelector.draw();
105 oilsRptFolderWindow.prototype.hideFolderActions = function() {
106 hideMe(DOM.oils_rpt_folder_manager_change_name_div);
107 hideMe(DOM.oils_rpt_folder_manager_create_sub);
111 oilsRptFolderWindow.prototype.doFolderAction = function() {
112 var objs = this.fmTable.getSelected();
113 if( objs.length == 0 )
114 return alert('Please select an item from the list');
115 var action = getSelectorVal(DOM.oils_rpt_folder_contents_action_selector);
118 case 'create_report' :
119 hideMe(DOM.oils_rpt_folder_table_right_td);
120 unHideMe(DOM.oils_rpt_folder_table_alt_td);
121 new oilsRptReportEditor(new oilsReport(objs[0]), this);
127 oilsRptFolderWindow.prototype.drawFolderDetails = function() {
128 appendClear(DOM.oils_rpt_folder_creator_label,
129 text(this.folderNode.folder.owner().usrname()));
130 appendClear(DOM.oils_rpt_folder_name_label,
131 text(this.folderNode.folder.name()));
135 oilsRptFolderWindow.prototype.fetchFolderData = function(callback) {
136 removeChildren(this.selector);
137 var req = new Request(OILS_RPT_FETCH_FOLDER_DATA,
138 SESSION, this.type, this.folderNode.folder.id());
142 obj.fmTable = drawFMObjectTable(
145 obj : r.getResultObject(),
147 selectColName : 'Select Row'
151 if(callback) callback();
158 oilsRptFolderWindow.prototype.setSelected = function(folderNode) {
159 this.selectedFolder = folderNode;
162 oilsRptFolderWindow.prototype.setFolderEditActions = function() {
163 var folder = this.folderNode.folder;
166 DOM.oils_rpt_folder_manager_name_input.value = folder.name();
167 DOM.oils_rpt_folder_manager_change_name_submit.onclick = function() {
168 var name = DOM.oils_rpt_folder_manager_name_input.value;
171 if(confirmId('oils_rpt_folder_manager_change_name_confirm')) {
172 oilsRptUpdateFolder(folder, obj.type,
174 if(success) oilsRptAlertSuccess();
181 DOM.oils_rpt_folder_manager_sub_lib_create.onclick = function() {
184 if( obj.type == 'report' ) folder = new rrf();
185 if( obj.type == 'template' ) folder = new rtf();
186 if( obj.type == 'output' ) folder = new rof();
188 folder.owner(USER.id());
189 folder.parent(obj.folderNode.folder.id());
190 folder.name(DOM.oils_rpt_folder_manager_sub_name.value);
191 var shared = getSelectorVal(DOM.oils_rpt_folder_manager_sub_shared);
192 folder.shared( (shared == 'yes') ? 't' : 'f');
193 if( folder.shared() == 't' )
194 folder.share_with( obj.myOrgSelector.getValue() );
196 _debug("Creating new folder: " + js2JSON(folder));
198 if(confirm(DOM.oils_rpt_folder_manager_new_confirm.innerHTML + ' "'+folder.name()+'"')) {
199 oilsRptCreateFolder(folder, obj.type,
201 if(success) oilsRptAlertSuccess();