added all-library option for new dates
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 22 Jun 2006 20:04:57 +0000 (20:04 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 22 Jun 2006 20:04:57 +0000 (20:04 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@4718 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/xul/staff_client/server/admin/closed_dates.js
Open-ILS/xul/staff_client/server/admin/closed_dates.xhtml

index 0252d4e..80d31eb 100644 (file)
@@ -58,9 +58,14 @@ function cdBuildOrgs() {
        buildOrgSel(selector, org, type.depth());
        if(!type.can_have_users()) selector.options[0].disabled = true;
 
+
        selector.onchange = function() { cdDrawRange(); };
 
        cdBaseOrg = org;
+
+       if( cdBaseOrg.children() && cdBaseOrg.children().length > 0 )
+               unHideMe($('cd_apply_all_div'));
+
        var gotoOrg = USER.ws_ou();
        if( ! setSelector( selector, gotoOrg ) ) {
                gotoOrg = USER.home_ou();
@@ -349,11 +354,47 @@ function cdNew() {
 
 function cdCreate(start, end, note) {
 
+       if( $('cd_apply_all').checked ) {
+               var list = cdGetOrgList();
+               for( var o = 0; o < list.length; o++ ) {
+                       var id = list[o].id();
+                       cdCreateOne( id, start, end, note, (id == cdCurrentOrg()) );
+               }
+
+       } else {
+
+               cdCreateOne( cdCurrentOrg(), start, end, note, true );
+       }
+}
+
+function cdGetOrgList(org) {
+       if(!org) org = cdBaseOrg;
+
+       var list = [];
+       var type = findOrgType(org.ou_type()) ;
+       if( type.can_have_users() ) list.push(org);
+
+       if( org.children() ) {
+               for( var i = 0; i < org.children().length; i++ ) {
+                       var child = org.children()[i];
+                       if( child ) {
+                               var l = cdGetOrgList(child);
+                               for( var j = 0; j < l.length; j++ )
+                                       list.push(l[j]);
+                       }
+               }
+       }
+
+       return list;
+}
+
+
+function cdCreateOne( org, start, end, note, refresh ) {
        var date = new aoucd();
 
        date.close_start(start.getW3CDTF());
        date.close_end(end.getW3CDTF());
-       date.org_unit(cdCurrentOrg());
+       date.org_unit(org);
        date.reason(note);
 
        var req = new Request(CREATE_CLOSED_DATE, SESSION, date);
@@ -361,7 +402,7 @@ function cdCreate(start, end, note) {
                function(r) {
                        var res = r.getResultObject();
                        if( checkILSEvent(res) ) alertILSEvent(res);
-                       cdDrawRange(selectedStart, selectedEnd);
+                       if(refresh) cdDrawRange(selectedStart, selectedEnd);
                }
        );
        req.send();
index c1239c7..06f7c02 100644 (file)
                                                        <div>Reason for closing: </div>
                                                        <textarea style='border: 1px solid blue; background: #E0F0E0; margin: 5px;' 
                                                                id='cd_edit_note' wrap='soft' cols='40' rows='3'/>
+                                                       <div id='cd_apply_all_div' class='hide_me'>
+                                                               Apply to all of my libraries <input type='checkbox' id='cd_apply_all'/>
+                                                       </div>
                                                </td>
                                        </tr>