]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/web/js/dojo/openils/widget/EditDialog.js
added initial auto-widget class. this takes an IDL class and optional fieldmapper...
[working/Evergreen.git] / Open-ILS / web / js / dojo / openils / widget / EditDialog.js
1 if(!dojo._hasResource['openils.widget.EditDialog']) {
2     dojo.provide('openils.widget.EditDialog');
3     dojo.require('openils.widget.AutoWidget');
4     dojo.require('fieldmapper.Fieldmapper');
5     dojo.require('dijit.Dialog');
6     dojo.require('openils.Util');
7     dojo.require('openils.User');
8     dojo.require('fieldmapper.IDL');
9
10
11     /**
12      * Given a fieldmapper object, this builds a pop-up dialog used for editing the object
13      */
14
15     dojo.declare(
16         'openils.widget.EditDialog',
17         [dijit.Dialog],
18         {
19             fmClass : '',
20             fmObject : null,
21             mode : 'update',
22
23             /**
24              * Builds a basic table of key / value pairs.  Keys are IDL display labels.
25              * Values are dijit's, when values set
26              */
27             startup : function() {
28                 this.inherited(arguments);
29                 this.fmClass = (this.fmObject) ? this.fmObject.classname : this.fmClass;
30                 fmIDL = fieldmapper.IDL.fmclasses[this.fmClass];
31
32                 var table = document.createElement('table');
33                 var tbody = document.createElement('tbody');
34                 this.domNode.appendChild(table);
35                 table.appendChild(tbody);
36
37                 this.limitPerms = [];
38                 if(fmIDL.permacrud && fmIDL.permacrud[this.mode])
39                     this.limitPerms = fmIDL.permacrud[this.mode].perms;
40
41                 for(var f in fmIDL.fields) {
42                     var field = fmIDL.fields[f];
43                     if(field.virtual) continue;
44
45                     var row = document.createElement('tr');
46                     var nameTd = document.createElement('td');
47                     var valTd = document.createElement('td');
48
49                     nameTd.appendChild(document.createTextNode(field.label));
50                     row.appendChild(nameTd);
51                     row.appendChild(valTd);
52                     tbody.appendChild(row);
53
54                     new openils.widget.AutoWidget({
55                         idlField : field, 
56                         fmObject : this.fmObject,
57                         parentNode : valTd,
58                         orgLimitPerms : this.limitPerms
59                     }).build();
60                 }
61
62                 openils.Util.addCSSClass(table, 'oils-fm-edit-dialog');
63             },
64         }
65     );
66 }
67