+var perms = [ 'RUN_REPORTS', 'SHARE_REPORT_FOLDER' ];
+
function oilsInitReports() {
oilsRptIdObjects();
fetchUser(cgi.param('ses'));
DOM.oils_rpt_user.appendChild(text(USER.usrname()));
- fetchHighestPermOrgs(SESSION, USER.id(), ['RUN_REPORTS']);
- if( PERMS['RUN_REPORTS'] == -1 ) {
+ fetchHighestPermOrgs(SESSION, USER.id(), perms);
+ if( PERMS.RUN_REPORTS == -1 ) {
unHideMe(DOM.oils_rpt_permission_denied);
hideMe(DOM.oils_rpt_tree_loading);
return false;
}
+
oilsRptCookie = new HTTP.Cookies();
oilsRptCurrentOrg = USER.ws_ou();
cookieManager.write(COOKIE_SES, SESSION, -1, '/');
<td>Share this folder:</td>
<td>
<select id='oils_rpt_top_folder_shared'>
- <option value='f'>Do not share</option>
+ <option value='f' selected='selected'>Do not share</option>
<option value='t'>Share</option>
</select>
</td>
</tbody>
</table>
+
+ <span id='oils_rpt_empty_param' class='hide_me'>
+ One or more of the user-defined parameters has been left empty.
+ Please fill in all fields.
+ </span>
+
</div>
<td>Share this folder:</td>
<td>
<select id='oils_rpt_folder_manager_sub_shared'>
- <option value='no'>Do not share</option>
+ <option value='no' selected='selected'>Do not share</option>
<option value='yes'>Share</option>
</select>
</td>
*/
this.drawEditActions();
+
+
+ var porg = PERMS.SHARE_REPORT_FOLDER;
+ if( porg < 1 )
+ DOM.oils_rpt_folder_manager_share_opt.disabled = true;
}
oilsRptFolderWindow.prototype.drawEditActions = function() {
unHideMe(DOM.oils_rpt_folder_manager_change_name_div);
break;
case 'create_sub_folder':
+ var porg = PERMS.SHARE_REPORT_FOLDER;
+ if( porg < 1 )
+ DOM.oils_rpt_folder_manager_sub_shared.disabled = true;
+ removeChildren(DOM.oils_rpt_folder_manager_sub_lib_picker);
unHideMe(DOM.oils_rpt_folder_manager_create_sub);
obj.myOrgSelector = new oilsRptMyOrgsWidget(
- DOM.oils_rpt_folder_manager_sub_lib_picker, USER.ws_ou());
+ DOM.oils_rpt_folder_manager_sub_lib_picker, USER.ws_ou(), porg)
obj.myOrgSelector.draw();
break;
case 'delete':
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());
+ DOM.oils_rpt_folder_manager_share_lib_picker,
+ USER.ws_ou(), PERMS.SHARE_REPORT_FOLDER);
orgsel.draw();
var type = this.type;
removeChildren(DOM.oils_rpt_report_shared_folder_tree);
removeChildren(DOM.oils_rpt_output_shared_folder_tree);
+ var porg = PERMS.SHARE_REPORT_FOLDER;
+ if( porg < 1 )
+ DOM.oils_rpt_top_folder_shared.disabled = true;
+
var obj = this;
var orgsel = new oilsRptMyOrgsWidget(
- DOM.oils_rpt_top_folder_lib_picker, USER.ws_ou());
+ DOM.oils_rpt_top_folder_lib_picker, USER.ws_ou(), porg)
orgsel.draw();
oilsRptTemplateFolderTree =
appendClear(DOM.oils_rpt_report_editor_cols,' | ');
iterate(rptObject.def.select,
function(i) {
- DOM.oils_rpt_report_editor_cols.appendChild(text(i.alias +' | '));
+ if(i)
+ DOM.oils_rpt_report_editor_cols.appendChild(text(i.alias +' | '));
}
);
for( var p in this.paramEditor.params ) {
var par = this.paramEditor.params[p];
_debug("adding report param "+par.key+" to report data");
- /*
- if( par.relWidgetChecked )
- data[par.key] = par.relWidget.getValue();
- else
- */
- data[par.key] = par.widget.getValue();
+ var val = par.widget.getValue();
+ if(!val || val.length == 0 )
+ return alertId('oils_rpt_empty_param');
+ data[par.key] = val;
}
data = js2JSON(data);
/* ---------------------------------------------------------------------
custom my-orgs picker
--------------------------------------------------------------------- */
-function oilsRptMyOrgsWidget(node, orgid) {
+function oilsRptMyOrgsWidget(node, orgid, maxorg) {
+ _debug('fetching my orgs with max org of ' + maxorg);
this.node = node;
this.orgid = orgid;
+ this.maxorg = maxorg || 1;
+ this.active = true;
+ if( maxorg < 1 ) {
+ this.node.disabled = true;
+ this.active = false;
+ }
}
oilsRptMyOrgsWidget.prototype.draw = function() {
oilsRptMyOrgsWidget.prototype.drawWidget = function(orglist) {
var sel = this.node;
+ var started = false;
for( var i = 0; i < orglist.length; i++ ) {
var org = orglist[i];
var opt = insertSelectorVal( this.node, -1,
org.name(), org.id(), null, findOrgDepth(org) );
if( org.id() == this.orgid )
opt.selected = true;
+ if(!started) {
+ if( org.id() == this.maxorg )
+ started = true;
+ else opt.disabled = true;
+ }
}
}