1 dojo.require("openils.PermaCrud");
2 dojo.require("dojo.data.ItemFileReadStore");
4 if (typeof(localeStrings) == "undefined") {
5 dojo.requireLocalization("openils.acq", "acq");
6 var localeStrings = dojo.i18n.getLocalization("openils.acq", "acq");
9 function TagManager(displayNode) {
12 this.displayNode = displayNode;
14 this.pcrud = new openils.PermaCrud();
16 // selected (by checkbox) id's from an autogrid of objects:
17 // return grid.getSelectedItems().map(function(o) { return o.id[0]; });
19 this.displayFund = function(fund) {
21 this.displayNode.innerHTML = localeStrings.FUND_NOT_YET_LOADED;
25 dojo.empty(this.displayNode);
28 dojo.place(self.renderTagMapping(o), self.displayNode, "last");
33 this.renderTagMapping = function(mapping) {
34 var span = dojo.create(
36 "id": "oils-acq-fund-tag-mapping-" + mapping.id(),
37 "className": "oils-acq-fund-tag",
38 "innerHTML": mapping.tag().name()
43 "href": "javascript:void(0);",
45 "onclick": function() { self.deleteMapping(mapping); },
52 this.deleteMapping = function(mapping) {
53 if (confirm(localeStrings.CONFIRM_DELETE_MAPPING)) {
56 "oncomplete": function(r) {
58 "oils-acq-fund-tag-mapping-" + mapping.id()
62 function(o) { return o.id() != mapping.id(); }
66 "onerror": function() {
67 /* XXX does onerror not actually work? */
68 alert(localeStrings.COULD_NOT_DELETE_MAPPING);
75 this.addMapping = function(fund, tag) {
76 var mapping = new acqftm();
77 mapping.fund(fund.id());
78 mapping.tag(tag.id());
82 "onerror": function(r) {
83 /* XXX does onerror not actually work? */
84 alert(localeStrings.COULD_NOT_CREATE_MAPPING);
86 "oncomplete": function(r, list) {
87 mapping = list[0]; /* get the new mapping's ID this way */
88 mapping.tag(tag); /* re-"flesh" */
89 fund.tags().push(mapping); /* save local reference */
91 self.renderTagMapping(mapping),
92 self.displayNode, "last"
99 this.prepareTagSelector = function(selector) {
102 "owner": fieldmapper.aou.orgNodeTrail(
103 fieldmapper.aou.findOrgUnit(openils.User.user.ws_ou()),
108 "oncomplete": function(r) {
109 if ((r = openils.Util.readResponse(r))) {
110 selector.store = new dojo.data.ItemFileReadStore(
111 {"data": acqft.toStoreData(r)}