Modify copy browser to check for bib_source.can_have_copies.
authorJason Stephenson <jstephenson@mvlc.org>
Tue, 4 Oct 2011 14:29:23 +0000 (10:29 -0400)
committerJason Stephenson <jstephenson@mvlc.org>
Tue, 15 Nov 2011 22:14:25 +0000 (17:14 -0500)
Add code to server/cat/copy_browser.js.
Add error string to server/local/en-US/cat.properties.

Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Open-ILS/xul/staff_client/server/cat/copy_browser.js
Open-ILS/xul/staff_client/server/locale/en-US/cat.properties

index d234f37..d944f45 100644 (file)
@@ -633,6 +633,31 @@ cat.copy_browser.prototype = {
                                         return; // no read-only view for this interface
                                     }
 
+                                    var can_have_copies = true;
+                                    var cbsObj;
+                                    try {
+                                        var bibObj = g.network.request(
+                                            api.FM_BRE_RETRIEVE_VIA_ID.app,
+                                            api.FM_BRE_RETRIEVE_VIA_ID.method,
+                                            [ ses(), [obj.docid] ]
+                                        );
+                                        bibObj = bibObj[0];
+                                        cbsObj = g.network.request(
+                                            api.FM_CBS_RETRIEVE_VIA_PCRUD.app,
+                                            api.FM_CBS_RETRIEVE_VIA_PCRUD.method,
+                                            [ ses(), bibObj.source() ]
+                                        );
+                                        can_have_copies = (cbsObj.can_have_copies() == get_db_true());
+                                    } catch(E) {
+                                        g.error.sdump('D_ERROR','can have copies check: ' + E);
+                                        return;
+                                    }
+
+                                    if (!can_have_copies) {
+                                        alert(document.getElementById('catStrings').getFormattedString('staff.cat.copy_browser.can_have_copies.false', [cbsObj.source()]));
+                                        return false;
+                                    }
+
                                     var title = document.getElementById('catStrings').getString('staff.cat.copy_browser.add_volume.title');
 
                                     var url;
index 3e8b411..f8ac40c 100644 (file)
@@ -50,6 +50,7 @@ staff.cat.edit_volume.title=Volume
 staff.cat.edit_volume.title.plural=Volumes
 staff.cat.edit_volumes.override.confirm=Override volume re-labeling collision and merge the volumes?
 staff.cat.edit_volumes.label_exists.details=%1$s
+staff.cat.copy_browser.can_have_copies.false=Records from %1$s cannot have copies.
 staff.cat.copy_browser.delete_volume.prompt=Are you sure you would like to delete this volume?
 staff.cat.copy_browser.delete_volume.prompt.plural=Are you sure you would like to delete these %1$s volumes?
 staff.cat.copy_browser.delete_volume.title=Delete Volumes?