1 dojo.require('dojox.grid.DataGrid');
2 dojo.require('dojox.grid.cells.dijit');
3 dojo.require('dojo.data.ItemFileWriteStore');
4 dojo.require('dijit.form.TextBox');
5 dojo.require('dijit.form.CurrencyTextBox');
6 dojo.require('dijit.Dialog');
7 dojo.require('dojox.widget.PlaceholderMenuItem');
8 dojo.require('fieldmapper.OrgUtils');
9 dojo.require('openils.widget.OrgUnitFilteringSelect');
10 dojo.require('openils.PermaCrud');
18 /** really need to put this in a shared location... */
19 function getOrgInfo(rowIndex, item) {
21 var orgId = this.grid.store.getValue(item, this.field);
22 return fieldmapper.aou.findOrgUnit(orgId).shortname();
25 function getDateTimeField(rowIndex, item) {
27 var data = this.grid.store.getValue(item, this.field);
28 var date = dojo.date.stamp.fromISOString(data);
29 return dojo.date.locale.format(date, {formatLength:'short'});
32 function formatBool(inDatum) {
35 return "<span style='color:green;'>✓</span>";
37 return "<span style='color:red;'>✗</span>";
43 function endSurvey() {
44 _endSurvey(svGrid.selection.getSelected(), 0);
47 function _endSurvey(list, idx) {
48 if(idx >= list.length) // we've made it through the list
52 var svId = svGrid.store.getValue(item, 'id');
53 var pcrud = new openils.PermaCrud();
54 var survey = pcrud.retrieve('asv', svId);
56 var today = new Date();
57 var date = dojo.date.stamp.toISOString(today);
58 survey.end_date(date);
59 survey.ischanged(true);
61 _endSurvey(list, ++idx);
65 function buildSVGrid() {
66 var store = new dojo.data.ItemFileWriteStore({data:asv.initStoreData('id', {identifier:'id'})});
67 svGrid.setStore(store);
69 var user = new openils.User();
70 var pcrud = new openils.PermaCrud();
71 var retrieveSurveys = function(orgList) {
77 onresponse : function(r) {
78 var survey = openils.Util.readResponse(r);
80 svCache[survey.id()] = survey;
81 store.newItem(survey.toStoreItem());
86 user.getPermOrgList('ADMIN_SURVEY', retrieveSurveys, true, true);
91 var pcrud = new openils.PermaCrud();
92 var survey = pcrud.retrieve('asv', surveyId);
93 dojo.byId("name").innerHTML = survey.name();
94 dojo.byId("description").innerHTML = survey.description();
95 dojo.byId("start_date").innerHTML = survey.start_date();
96 dojo.byId("end_date").innerHTML = survey.end_date();
97 dojo.byId("opac").innerHTML = survey.opac();
98 dojo.byId("poll").innerHTML = survey.poll();
99 dojo.byId("required").innerHTML = survey.required();
100 dojo.byId("usr_summary").innerHTML = survey.usr_summary();
101 dojo.byId("svQuestion").innerHTML = survey.question();
102 dojo.byId("svAnswer").innerHTML = survey.answer();
106 function svNewSurvey() {
107 new openils.User().buildPermOrgSelector('ADMIN_SURVEY', asvOwningOrg);
108 svSurveyDialog.show();
112 function svCreate(args) {
115 sv.name(args.svName);
116 sv.owner(args.svOwner);
117 sv.description(args.svDescription);
118 sv.start_date(args.svStart_date);
119 sv.end_date(args.svEnd_date);
120 if(args.svPoll == 'on')
125 if(args.svPoll == 'on')
130 if(args.svOpac == 'on')
135 if(args.svRequired == 'on')
140 if(args.svUsr_summary == 'on')
144 console.log(sv.name());
145 var pcrud = new openils.PermaCrud();
148 oncomplete: function(r) {
149 var obj = openils.Util.readResponse(r);
150 if(!obj) return console.log('no obj');
151 svGrid.store.newItem(asv.toStoreItem(obj));
152 svSurveyDialog.hide();
154 document.location.href = "/eg/conify/global/action/survey/edit/"+svId;
161 function redirect(svId) {
166 function deleteFromGrid() {
167 _deleteFromGrid(svGrid.selection.getSelected(), 0);
170 function _deleteFromGrid(list, idx) {
171 if(idx >= list.length) // we've made it through the list
174 var item = list[idx];
175 var code = svGrid.store.getValue(item, 'id');
177 fieldmapper.standardRequest(
178 ['open-ils.circ', 'open-ils.circ.survey.delete.cascade'],
181 params: [openils.User.authtoken, code],
182 onresponse: function(r) {
183 if(stat = openils.Util.readResponse(r)) {
185 svGrid.store.deleteItem(item);
188 _deleteFromGrid(list, ++idx);
194 openils.Util.addOnLoad(buildSVGrid);