dojo.require('openils.MarcXPathParser');
dojo.require('openils.widget.GridColumnPicker');
dojo.require('openils.PermaCrud');
+dojo.require('openils.widget.OrgUnitFilteringSelect');
+dojo.require('openils.widget.AutoGrid');
var globalDivs = [
'vl-queue-select-div',
'vl-marc-upload-status-div',
'vl-attr-editor-div',
- 'vl-marc-export-div'
+ 'vl-marc-export-div',
+ 'vl-profile-editor-div'
];
var authtoken;
openils.Util.removeCSSClass(dojo.byId('vl-menu-marc-upload'), 'toolbar_selected');
openils.Util.removeCSSClass(dojo.byId('vl-menu-queue-select'), 'toolbar_selected');
openils.Util.removeCSSClass(dojo.byId('vl-menu-attr-editor'), 'toolbar_selected');
+ openils.Util.removeCSSClass(dojo.byId('vl-menu-profile-editor'), 'toolbar_selected');
switch(id) {
case 'vl-marc-export-div':
case 'vl-attr-editor-div':
openils.Util.addCSSClass(dojo.byId('vl-menu-attr-editor'), 'toolbar_selected');
break;
+ case 'vl-profile-editor-div':
+ openils.Util.addCSSClass(dojo.byId('vl-menu-profile-editor'), 'toolbar_selected');
+ break;
}
}
// amazing xpath-util unit-tests
if (!looksLikeDerivedXpath('//*[@tag="901"]/*[@code="c"]')) alert('vandelay xpath-utility error');
if ( looksLikeDerivedXpath('ba-boo-ba-boo!')) alert('vandelay xpath-utility error');
+
+
+
+var profileContextOrg
+function vlShowProfileEditor() {
+ displayGlobalDiv('vl-profile-editor-div');
+ buildProfileGrid();
+
+ var connect = function() {
+ dojo.connect(profileContextOrgSelector, 'onChange',
+ function() {
+ profileContextOrg = this.attr('value');
+ pGrid.resetStore();
+ buildGrid();
+ }
+ );
+ };
+
+ new openils.User().buildPermOrgSelector(
+ '"ADMIN_MERGE_PROFILE', profileContextOrgSelector, null, connect);
+}
+
+function buildProfileGrid() {
+
+ if(profileContextOrg == null)
+ profileContextOrg = openils.User.user.ws_ou();
+
+ pGrid.loadAll(
+ {order_by : {vmp : 'name'}},
+ {owner : fieldmapper.aou.fullPath(profileContextOrg, true)}
+ );
+}
+
+
+
--- /dev/null
+<script src='[% ctx.media_prefix %]/js/ui/default/vandelay/vandelay.js'> </script>
+
+ <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
+ <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class='oils-header-panel'>
+ <div>Overlay / Merge Profiles</div>
+ <div>
+ <button dojoType='dijit.form.Button' onClick='crGrid.showCreateDialog()'>New Merge Profile</button>
+ <button dojoType='dijit.form.Button' onClick='crGrid.deleteSelected()'>Delete Selected</button>
+ </div>
+ </div>
+ <div>
+ <span>Context Org Unit</span>
+ <select dojoType="openils.widget.OrgUnitFilteringSelect" jsId='profileContextOrgSelector'
+ searchAttr='shortname' labelAttr='shortname'> </select>
+ </div>
+ <table jsId="pGrid"
+ dojoType="openils.widget.AutoGrid"
+ fieldOrder="[]"
+ query="{id: '*'}"
+ defaultCellWidth='"auto"'
+ fmClass='vmp'
+ showPaginator='true'
+ editOnEnter='true'>
+ </table>
+</div>