Can now approve JUBs and delete lineitem_details.
authordjfiander <djfiander@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Tue, 15 Jul 2008 00:10:52 +0000 (00:10 +0000)
committerdjfiander <djfiander@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Tue, 15 Jul 2008 00:10:52 +0000 (00:10 +0000)
Also I18N'd jubgrid

git-svn-id: svn://svn.open-ils.org/ILS/branches/acq-experiment@10035 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/web/oilsweb/oilsweb/public/oils/media/ui_js/oils/default/common/jubgrid.js
Open-ILS/web/oilsweb/oilsweb/templates/oils/default/common/jubgrid.html

index 72b5036..4fcad6e 100644 (file)
@@ -83,6 +83,7 @@ var JUBGrid = {
         if (!data || !data.owning_lib) return;
         return fieldmapper.aou.findOrgUnit(data.owning_lib).shortname();
     },
+
     populate : function(gridWidget, model, lineitems) {
        for (var i in lineitems) {
            JUBGrid.lineitems[lineitems[i].id()] = lineitems[i];
@@ -119,19 +120,31 @@ var JUBGrid = {
            var rowIdx = selected[idx];
            var jub = JUBGrid.jubGrid.model.getRow(rowIdx);
            var li = new openils.acq.Lineitems({lineitem:JUBGrid.getLi(jub.id)});
-           var approveStore = function() {
-               var approveACQLI = function(jub, rq) {
-                   JUBGrid.jubGrid.model.store.setValue(jub,
-                                                        "state", "approved");
-               };
-               JUBGrid.jubGrid.model.store.fetch({query:{id:jub.id},
-                                                  onItem: approveACQLI});
+           var approveStore = function(evt) {
+               if (evt) {
+                   // something bad happened
+                   console.log("jubgrid.js: approveJUB: error:");
+                   console.dir(evt);
+                   alert("Error: "+evt.desc);
+               } else {
+                   var approveACQLI = function(jub, rq) {
+                       JUBGrid.jubGrid.model.store.setValue(jub,
+                                                            "state",
+                                                            "approved");
+                       JUBGrid.jubGrid.update();
+                       // Reload lineitem details, read-only
+                       openils.acq.Lineitems.loadGrid(
+                           JUBGrid.jubDetailGrid, li.id(),
+                           JUBGrid.jubDetailGridLayoutReadOnly);
+                   };
+
+                   JUBGrid.jubGrid.model.store.fetch({query:{id:jub.id},
+                                                      onItem: approveACQLI});
+               }
            };
 
-           li.setState("approved", approveStore);
+           li.approve(approveStore);
        }
-
-       JUBGrid.jubGrid.update();
     },
 
     deleteLID: function(evt) {
@@ -140,25 +153,30 @@ var JUBGrid = {
        for (var idx = 0; idx < selected.length; idx++) {
            var rowIdx = selected[idx];
            var lid = JUBGrid.jubDetailGrid.model.getRow(rowIdx);
-           var deleteFromStore = function () {
-               var deleteItem = function(item, rq) {
-                   JUBGrid.jubDetailGrid.model.store.deleteItem(item);
-               };
-               JUBGrid.jubDetailGrid.model.store.fetch({query:{id:lid.id},
-                                                        onItem: deleteItem});
+           var deleteFromStore = function (evt) {
+
+               if (evt) {
+                   // something bad happened
+                   alert("Error: "+evt.desc);
+               } else {
+                   var deleteItem = function(item, rq) {
+                       JUBGrid.jubDetailGrid.model.store.deleteItem(item);
+                   };
+                   var updateCount = function(item) {
+                       var newval = JUBGrid.jubGrid.model.store.getValue(item, "item_count");
+                       JUBGrid.jubGrid.model.store.setValue(item, "item_count", newval-1);
+                       JUBGrid.jubGrid.update();
+                   };
+
+                   JUBGrid.jubDetailGrid.model.store.fetch({query:{id:lid.id},
+                                                            onItem: deleteItem});
+                   JUBGrid.jubGrid.model.store.fetch({query:{id:JUBGrid.jubDetailGrid.lineitemID},
+                                                      onItem: updateCount});
+               }
+               JUBGrid.jubDetailGrid.update(); 
            };
 
            openils.acq.Lineitems.deleteLID(lid.id, deleteFromStore);
-           JUBGrid.jubDetailGrid.update();
-
-           var updateCount = function(item) {
-               var newval = JUBGrid.jubGrid.model.store.getValue(item, "item_count");
-               JUBGrid.jubGrid.model.store.setValue(item, "item_count", newval-1);
-               JUBGrid.jubGrid.update();
-           };
-
-           JUBGrid.jubGrid.model.store.fetch({query:{id:JUBGrid.jubDetailGrid.lineitemID},
-                                              onItem: updateCount});
        }
     },
 
@@ -166,6 +184,7 @@ var JUBGrid = {
        fields['lineitem'] = JUBGrid.jubDetailGrid.lineitemID;
        var addToStore = function () {
            JUBGrid.jubDetailGrid.model.store.newItem(fields);
+           JUBGrid.jubDetailGrid.refresh();
            JUBGrid.jubGrid.update();
            JUBGrid.jubGrid.refresh();
        }
index 197fa51..87ca68e 100644 (file)
@@ -53,16 +53,16 @@ pointing to the JUB model (and store) that you have created.
     }
     JUBGrid.jubGridLayout = [{
         cells: [[
-            {name: "ID", field: 'id'},
-            {name: "Title", width: "auto", get:JUBGrid.getJUBTitle},
-            {name: "Author", get:JUBGrid.getJUBAuthor},
-            {name: "ISBN", get:JUBGrid.getJUBIsbn},
+            {name: '${_(ID)}', field: 'id'},
+            {name: '${_(Title)}', width: "auto", get:JUBGrid.getJUBTitle},
+            {name: '${_(Author)}', get:JUBGrid.getJUBAuthor},
+            {name: '${_(ISBN)}', get:JUBGrid.getJUBIsbn},
             {name: '${_("Pubdate")}', get:JUBGrid.getJUBPubdate},
-            {name: "Price", get:JUBGrid.getJUBPrice},
-            {name: "Vendor", get:JUBGrid.getProvider},
-            {name: "# Copies", field: 'item_count'},
-            {name: "State", field: 'state'},
-            {name: "PO", get:JUBGrid.getPO}
+            {name: '${_("Price")}', get:JUBGrid.getJUBPrice},
+            {name: '${_(Vendor)}', get:JUBGrid.getProvider},
+            {name: '${_(# Copies)}', field: 'item_count'},
+            {name: '${_(State)}', field: 'state'},
+            {name: '${_(PO)}', get:JUBGrid.getPO}
         ]]
     }];
 
@@ -94,11 +94,11 @@ pointing to the JUB model (and store) that you have created.
 
     JUBGrid.jubDetailGridLayoutReadOnly = [{
         cells: [[
-            {name:"ID", field:"id"},
-            {name:"Fund", field:"fund",
+            {name:'${_(ID)}', field:"id"},
+            {name:'${_(Fund)}', field:"fund",
              get:JUBGrid.getLIDFundCode,
             },
-            {name:"Branch", field:"owning_lib",
+            {name:'${_(Branch)}', field:"owning_lib",
                    get:JUBGrid.getLIDLibName,
                },
             {name:"Barcode", field:"barcode", width:'auto'},