Ignore:
Timestamp:
2019-02-22T11:28:07+13:00 (5 years ago)
Author:
ak19
Message:

Added the feature for PDF documents to load more than one map at the same time

File:
1 edited

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone3/web/interfaces/default/js/documentedit_scripts.js

    r32770 r32802  
    11/** Javascript file for editing a single document's content - metadata and text */
    22/** uses other functions in documentedit_scripts_util.js */
    3 
    43
    54/* some vars for document editing */
     
    1514
    1615/* What kind of metadata element selection do we provide?
    17    plain: just a text input box
    18    fixedlist: a drop down menu with a fixed list of options (provided by the availableMetadataElements list)
    19    autocomplete: a text input box with a list of suggestions to choose from (provided by the availableMetadataElements list). Allows additional input other than the fixed list
    20 */
     16plain: just a text input box
     17fixedlist: a drop down menu with a fixed list of options (provided by the availableMetadataElements list)
     18autocomplete: a text input box with a list of suggestions to choose from (provided by the availableMetadataElements list). Allows additional input other than the fixed list
     19 */
    2120var new_metadata_field_input_type = "plain";
    2221/* add all metadata button? only valid with fixedlist or autocomplete metadata element selection */
     
    3130var autocompleteMetadata = ["dc.Subject"];
    3231var dcSubject_values = ["Kings", "Queens", "others"];
    33 */
     32 */
    3433
    3534/* The metadata specified in multiValuedMetadata array will be treated as a delimited list, using mvm_delimiter. On saving, the values will be separated and saved individually */
     
    3837var mvm_delimiter = ";";
    3938var mapsIdsArray = []; //An array for the IDs of all the maps created
     39
    4040/************************
    41 * METADATA EDIT SCRIPTS *
    42 ************************/
    43 
    44 function addEditMetadataLink(cell)
    45 {
     41 * METADATA EDIT SCRIPTS *
     42 ************************/
     43
     44function addEditMetadataLink(cell) {
    4645    cell = $(cell);
    4746    var id = cell.attr("id").substring(6);
    4847    var metaTable = gs.jqGet("meta" + id);
    49     var row = cell.parent();   
    50     var newCell = $("<td>", {"style": "font-size:0.7em; padding:0px 10px", "class": "editMetadataButton"});
    51     var linkSpan = $("<span>", {"class": "ui-state-default ui-corner-all", "style": "padding: 2px; float:left;"});
    52    
    53     var linkLabel = $("<span>"+gs.text.de.edit_metadata+"</span>");     
    54     var linkIcon = $("<span>", {"class": "ui-icon ui-icon-folder-collapsed"});
     48    var row = cell.parent();
     49    var newCell = $("<td>", {
     50            "style": "font-size:0.7em; padding:0px 10px",
     51            "class": "editMetadataButton"
     52        });
     53    var linkSpan = $("<span>", {
     54            "class": "ui-state-default ui-corner-all",
     55            "style": "padding: 2px; float:left;"
     56        });
     57
     58    var linkLabel = $("<span>" + gs.text.de.edit_metadata + "</span>");
     59    var linkIcon = $("<span>", {
     60            "class": "ui-icon ui-icon-folder-collapsed"
     61        });
    5562    newCell.linkIcon = linkIcon;
    5663    newCell.linkLabel = linkLabel;
    57    
    58     var uList = $("<ul>", {"style": "outline: 0 none; margin:0px; padding:0px;"});
    59     var labelItem = $("<li>", {"style": "float:left; list-style:none outside none;"});
    60     var iconItem = $("<li>", {"style": "float:left; list-style:none outside none;"});
     64
     65    var uList = $("<ul>", {
     66            "style": "outline: 0 none; margin:0px; padding:0px;"
     67        });
     68    var labelItem = $("<li>", {
     69            "style": "float:left; list-style:none outside none;"
     70        });
     71    var iconItem = $("<li>", {
     72            "style": "float:left; list-style:none outside none;"
     73        });
    6174
    6275    uList.append(iconItem);
     
    6477    labelItem.append(linkLabel);
    6578    iconItem.append(linkIcon);
    66    
    67     var newLink = $("<a>", {"href": "javascript:;"});
    68     newLink.click(function()
    69     {
     79
     80    var newLink = $("<a>", {
     81            "href": "javascript:;"
     82        });
     83    newLink.click(function () {
    7084        console.log(metaTable.metaNameField);
    71         if(metaTable.css("display") == "none")
    72         {
    73             linkLabel.html(gs.text.de.hide_metadata);
     85        if (metaTable.css("display") == "none") {
     86            linkLabel.html(gs.text.de.hide_metadata);
    7487            linkIcon.attr("class", "ui-icon ui-icon-folder-open");
    7588            metaTable.css("display", "block");
    7689            metaTable.metaNameField.css("display", "inline");
    77             metaTable.addRowButton.css("display", "inline");
    78             if (enable_add_all_metadata_button == true) {
    79                 metaTable.addAllButton.css("display", "inline");
    80             }
    81         }
    82         else
    83         {
    84             linkLabel.html(gs.text.de.edit_metadata);           
     90            metaTable.addRowButton.css("display", "inline");
     91            if (enable_add_all_metadata_button == true) {
     92                metaTable.addAllButton.css("display", "inline");
     93            }
     94        } else {
     95            linkLabel.html(gs.text.de.edit_metadata);
    8596            linkIcon.attr("class", "ui-icon ui-icon-folder-collapsed");
    8697            metaTable.css("display", "none");
    8798            metaTable.metaNameField.css("display", "none");
    88             metaTable.addRowButton.css("display", "none");
    89             if (enable_add_all_metadata_button == true) {
    90                 metaTable.addAllButton.css("display", "none");
    91             }
     99            metaTable.addRowButton.css("display", "none");
     100            if (enable_add_all_metadata_button == true) {
     101                metaTable.addAllButton.css("display", "none");
     102            }
    92103        }
    93104    });
     
    97108    newCell.append(linkSpan);
    98109    row.append(newCell);
    99    
     110
    100111    addFunctionalityToTable(metaTable);
    101112    metaTable.metaNameField.css("display", "none");
    102     metaTable.addRowButton.css("display", "none");
    103     if (enable_add_all_metadata_button == true) {
    104     metaTable.addAllButton.css("display", "none");
    105     }
    106 }
    107 
    108 
    109 function addEditMapGPSLink(cell)
    110 {
     113    metaTable.addRowButton.css("display", "none");
     114    if (enable_add_all_metadata_button == true) {
     115        metaTable.addAllButton.css("display", "none");
     116    }
     117}
     118
     119var gsmap_store = {};
     120
     121function addEditMapGPSLink(cell) {
    111122    cell = $(cell);
    112123    var id = cell.attr("id").substring(6);
    113124    //console.log(id);
    114125    var mapGPScontainer = gs.jqGet("map-and-controls-" + id);
    115     console.log(mapGPScontainer);
    116126    var row = cell.parent();
    117     var newCell = $("<td>", {"style": "font-size:0.7em; padding:0px 10px", "class": "editMapGPSButton"});
    118     var linkSpan = $("<span>", {"class": "ui-state-default ui-corner-all", "style": "padding: 2px; float:left;"});
    119    
    120     var linkLabel = $("<span>"+gs.text.de.edit_map_gps+"</span>");     
    121     var linkIcon = $("<span>", {"class": "ui-icon ui-icon-folder-collapsed"});
     127    var newCell = $("<td>", {
     128            "style": "font-size:0.7em; padding:0px 10px",
     129            "class": "editMapGPSButton"
     130        });
     131    var linkSpan = $("<span>", {
     132            "class": "ui-state-default ui-corner-all",
     133            "style": "padding: 2px; float:left;"
     134        });
     135
     136    var linkLabel = $("<span>" + gs.text.de.edit_map_gps + "</span>");
     137    var linkIcon = $("<span>", {
     138            "class": "ui-icon ui-icon-folder-collapsed"
     139        });
    122140    newCell.linkIcon = linkIcon;
    123141    newCell.linkLabel = linkLabel;
    124    
    125     var uList = $("<ul>", {"style": "outline: 0 none; margin:0px; padding:0px;"});
    126     var labelItem = $("<li>", {"style": "float:left; list-style:none outside none;"});
    127     var iconItem = $("<li>", {"style": "float:left; list-style:none outside none;"});
     142
     143    var uList = $("<ul>", {
     144            "style": "outline: 0 none; margin:0px; padding:0px;"
     145        });
     146    var labelItem = $("<li>", {
     147            "style": "float:left; list-style:none outside none;"
     148        });
     149    var iconItem = $("<li>", {
     150            "style": "float:left; list-style:none outside none;"
     151        });
    128152
    129153    uList.append(iconItem);
     
    131155    labelItem.append(linkLabel);
    132156    iconItem.append(linkIcon);
     157
     158    var mapEditor = new MapEditor(id);
     159    gsmap_store["map-" + id] = mapEditor;
    133160   
    134     var newLink = $("<a>", {"href": "javascript:;"});
    135     newLink.click(function()
    136     {
     161    var newLink = $("<a>", {
     162            "href": "javascript:;"
     163        });
     164    newLink.click(function () {
    137165        console.log("Show/Hide Map Editor");
     166
     167        // Only if this 'id' element hasn't been initialied, then do the following 2 lines
     168        if (mapEditor.map !== null) {
     169            console.log(mapEditor.map.mapId);
     170            console.log(mapsIdsArray.includes(id));
     171        }
     172
     173        var clicked_mapEditor = gsmap_store["map-" + id];
    138174       
    139         // Only if this 'id' element hasn't been initialied, then do the following 2 lines
    140         if(map !== null){
    141             console.log(map.mapId);
    142             console.log(mapsIdsArray.includes(id));
    143         }
    144        
    145        
    146         if(map == null){
    147             console.log(id);
    148             initMapEditorControls(id);
    149             initMapEditor(id);
    150             mapsIdsArray.push(map.mapId)
    151         } else if(mapsIdsArray.includes(id) == false){
    152             initMapEditorControls(id);
    153             initMapEditor(id);
    154             mapsIdsArray.push(map.mapId)
    155         }
    156 
    157        
    158        
    159         if(mapGPScontainer.css("display") == "none")
    160         {
    161            
    162             linkLabel.html(gs.text.de.hide_map_gps);
     175        if (clicked_mapEditor.map == null) {
     176            console.log("Initializing map for id: " + id);
     177
     178            clicked_mapEditor.initMapEditorControls();
     179            clicked_mapEditor.initMapEditor();
     180            //mapsIdsArray.push(clicked_mapEditor.map.mapId);
     181        } /*
     182        else if (mapsIdsArray.includes(id) == false) {
     183            //mapEditor.initMapEditorControls();
     184            //mapEditor.initMapEditor();
     185            mapsIdsArray.push(mapEditor.map.mapId)
     186        }
     187*/
     188        if (mapGPScontainer.css("display") == "none") {
     189
     190            linkLabel.html(gs.text.de.hide_map_gps);
    163191            linkIcon.attr("class", "ui-icon ui-icon-folder-open");
    164192            mapGPScontainer.css("display", "block");
    165193
    166            
    167         }
    168         else
    169         {
    170             linkLabel.html(gs.text.de.edit_map_gps);
    171            
     194        } else {
     195            linkLabel.html(gs.text.de.edit_map_gps);
     196
    172197            linkIcon.attr("class", "ui-icon ui-icon-folder-collapsed");
    173198            mapGPScontainer.css("display", "none");
    174    
    175            
     199
    176200        }
    177201    });
    178202
    179     newLink.append(uList); 
     203    newLink.append(uList);
    180204    linkSpan.append(newLink);
    181205    newCell.append(linkSpan);
    182206    row.append(newCell);
    183    
    184     mapGPScontainer.css("display","none");
    185    
    186    
     207
     208    mapGPScontainer.css("display", "none");
     209
    187210    addFunctionalityToTable(mapGPScontainer);
    188211    mapGPScontainer.metaNameField.css("display", "none");
    189     mapGPScontainer.addRowButton.css("display", "none");
    190     if (enable_add_all_metadata_button == true) {
    191       mapGPScontainer.addAllButton.css("display", "none");
    192     }
    193    
    194 }
    195 
    196 function setEditingFeaturesVisible(visible)
    197 {
    198     if(visible)
    199     {
    200         $("#editContentButton").html(gs.text.de.hide_editor);
     212    mapGPScontainer.addRowButton.css("display", "none");
     213    if (enable_add_all_metadata_button == true) {
     214        mapGPScontainer.addAllButton.css("display", "none");
     215    }
     216
     217}
     218
     219function setEditingFeaturesVisible(visible) {
     220    if (visible) {
     221        $("#editContentButton").html(gs.text.de.hide_editor);
    201222        $("#editContentButtonDiv").attr("class", "ui-state-default ui-corner-all");
    202     }
    203     else
    204     {
    205         $("#editContentButton").html(gs.text.de.edit_content);
     223    } else {
     224        $("#editContentButton").html(gs.text.de.edit_content);
    206225        $("#editContentButtonDiv").attr("class", "");
    207226    }
    208    
     227
    209228    var visibility = (visible ? "" : "none");
    210     if (display_metadata_set_selector == true) {
    211     $("#metadataListLabel, #metadataSetList").css("display", visibility);
    212     }
    213    
    214     $(".editMetadataButton").each(function()
    215     {
     229    if (display_metadata_set_selector == true) {
     230        $("#metadataListLabel, #metadataSetList").css("display", visibility);
     231    }
     232
     233    $(".editMetadataButton").each(function () {
    216234        $(this).css("display", visibility);
    217         $(this.linkLabel).html(gs.text.de.edit_metadata);
    218         $(this.linkIcon).attr("class", "ui-icon ui-icon-folder-collapsed");
    219     });
    220     /*
    221     $(".editMapGPS").each(function()
    222     {
    223         $(this).css("display", visibility);
    224         $(this.linkLabel).html(gs.text.de.edit_map_gps);       
     235        $(this.linkLabel).html(gs.text.de.edit_metadata);
    225236        $(this.linkIcon).attr("class", "ui-icon ui-icon-folder-collapsed");
    226237    });
    227     */
    228    
    229     $("table").each(function()
    230     {
    231         if($(this).attr("id") && $(this).attr("id").search(/^meta/) != -1)
    232         {
     238    /*
     239    $(".editMapGPS").each(function(){
     240    $(this).css("display", visibility);
     241    $(this.linkLabel).html(gs.text.de.edit_map_gps);
     242    $(this.linkIcon).attr("class", "ui-icon ui-icon-folder-collapsed");
     243    });
     244     */
     245
     246    $("table").each(function () {
     247        if ($(this).attr("id") && $(this).attr("id").search(/^meta/) != -1) {
    233248            $(this).css("display", "none");
    234249            $(this.metaNameField).css("display", "none");
    235             $(this.addRowButton).css("display", "none");
    236             if (enable_add_all_metadata_button == true) {
    237             $(this.addAllButton).css("display", "none");
    238             }
     250            $(this.addRowButton).css("display", "none");
     251            if (enable_add_all_metadata_button == true) {
     252                $(this.addAllButton).css("display", "none");
     253            }
    239254        }
    240255    });
     
    242257
    243258/* override this function in other interface/site/collection if you want
    244    a different set of metadata sets
    245   Use in conjunction with the dynamic_metadata_set_list variable. */
     259a different set of metadata sets
     260Use in conjunction with the dynamic_metadata_set_list variable. */
    246261function setStaticMetadataSets(list) {
    247   addOptionToList(list, "All", gs.text.de.all_metadata);
    248 }
    249 
    250 function readyPageForEditing()
    251 {
    252 
    253  //   CKEDITOR.on('instanceReady', function(evt) {
    254 //  addCKEEditableState(evt,editableInitStates);
    255  //   });
    256 
    257     if($("#metadataSetList").length)
    258     {
     262    addOptionToList(list, "All", gs.text.de.all_metadata);
     263}
     264
     265function readyPageForEditing() {
     266
     267    //   CKEDITOR.on('instanceReady', function(evt) {
     268    //  addCKEEditableState(evt,editableInitStates);
     269    //   });
     270
     271    if ($("#metadataSetList").length) {
    259272        var setList = $("#metadataSetList");
    260         if(!setList.css("display") || setList.css("display") == "")
    261         {
     273        if (!setList.css("display") || setList.css("display") == "") {
    262274            setEditingFeaturesVisible(false);
    263         }
    264         else
    265         {
     275        } else {
    266276            setEditingFeaturesVisible(true);
    267277        }
     
    269279    }
    270280
    271     $("#editContentButton").html(gs.text.de.hide_editor);
    272     //wait for 0.5 sec to let ckeditor up
    273     setTimeout(function(){ $(".sectionText").each(function(){addEditableState(this,editableInitStates);}); }, 500);
     281    $("#editContentButton").html(gs.text.de.hide_editor);
     282    //wait for 0.5 sec to let ckeditor up
     283    setTimeout(function () {
     284        $(".sectionText").each(function () {
     285            addEditableState(this, editableInitStates);
     286        });
     287    }, 500);
    274288    var editBar = $("#editBarLeft");
    275    
    276 
    277     var visibleMetadataList = $("<select>", {"id": "metadataSetList", "class": "ui-state-default"});
     289
     290    var visibleMetadataList = $("<select>", {
     291            "id": "metadataSetList",
     292            "class": "ui-state-default"
     293        });
    278294    setStaticMetadataSets(visibleMetadataList);
    279    
    280     if (display_metadata_set_selector == true) {
    281     var metadataListLabel = $("<span>", {"id": "metadataListLabel", "style": "margin-left:20px;"});
    282     metadataListLabel.html(gs.text.de.visible_metadata);
    283     editBar.append(metadataListLabel);
    284     } else {
    285     visibleMetadataList.css ("display", "none");
    286     }
     295
     296    if (display_metadata_set_selector == true) {
     297        var metadataListLabel = $("<span>", {
     298                "id": "metadataListLabel",
     299                "style": "margin-left:20px;"
     300            });
     301        metadataListLabel.html(gs.text.de.visible_metadata);
     302        editBar.append(metadataListLabel);
     303    } else {
     304        visibleMetadataList.css("display", "none");
     305    }
    287306    editBar.append(visibleMetadataList);
    288307    visibleMetadataList.change(onVisibleMetadataSetChange);
    289308    editBar.append("<br>");
    290    
    291     for (var i=0; i< save_and_rebuild_buttons.length; i++) {
    292       var button_type = save_and_rebuild_buttons[i];
    293       if (button_type == "save") {
    294         var saveButton = $("<button>", {"id": "saveButton", "class": "ui-state-default ui-corner-all"});
    295         saveButton.click(save);
    296         saveButton.html(gs.text.de.save);
    297         editBar.append(saveButton);
    298       } else if(button_type == "rebuild") {
    299         var rebuildButton = $("<button>", {"id": "rebuildButton", "class": "ui-state-default ui-corner-all"});
    300         rebuildButton.click(rebuildCurrentCollection);
    301         rebuildButton.html(gs.text.de.rebuild);
    302         editBar.append(rebuildButton);
    303       } else if (button_type == "saveandrebuild") {
    304         var saveAndRebuildButton = $("<button>", {"id": "saveAndRebuildButton", "class": "ui-state-default ui-corner-all"});
    305         saveAndRebuildButton.click(saveAndRebuild);
    306         saveAndRebuildButton.html(gs.text.de.saverebuild);
    307         editBar.append(saveAndRebuildButton);
    308 
    309       }
     309
     310    for (var i = 0; i < save_and_rebuild_buttons.length; i++) {
     311        var button_type = save_and_rebuild_buttons[i];
     312        if (button_type == "save") {
     313            var saveButton = $("<button>", {
     314                    "id": "saveButton",
     315                    "class": "ui-state-default ui-corner-all"
     316                });
     317            saveButton.click(save);
     318            saveButton.html(gs.text.de.save);
     319            editBar.append(saveButton);
     320        } else if (button_type == "rebuild") {
     321            var rebuildButton = $("<button>", {
     322                    "id": "rebuildButton",
     323                    "class": "ui-state-default ui-corner-all"
     324                });
     325            rebuildButton.click(rebuildCurrentCollection);
     326            rebuildButton.html(gs.text.de.rebuild);
     327            editBar.append(rebuildButton);
     328        } else if (button_type == "saveandrebuild") {
     329            var saveAndRebuildButton = $("<button>", {
     330                    "id": "saveAndRebuildButton",
     331                    "class": "ui-state-default ui-corner-all"
     332                });
     333            saveAndRebuildButton.click(saveAndRebuild);
     334            saveAndRebuildButton.html(gs.text.de.saverebuild);
     335            editBar.append(saveAndRebuildButton);
     336
     337        }
    310338    }
    311339    var statusBarDiv = $("<div>");
    312340    editBar.append(statusBarDiv);
    313341    _statusBar = new StatusBar(statusBarDiv[0]);
    314    
     342
    315343    var titleDivs = $(".sectionTitle");
    316     for(var i = 0; i < titleDivs.length; i++)
    317     {
     344    for (var i = 0; i < titleDivs.length; i++) {
    318345        addEditMetadataLink(titleDivs[i]);
    319346        addEditMapGPSLink(titleDivs[i]);
    320347    }
    321    
     348
    322349    _baseURL = gs.xsltParams.library_name;
    323350    onVisibleMetadataSetChange(); // make sure that the selected item in the list is active
     
    327354// currently not used if other one is present. need to get the js include order right
    328355function enableSaveButtons(enabled) {
    329   if (enabled) {
    330     $("#saveButton, #rebuildButton, #saveAndRebuildButton").removeAttr("disabled");
    331   } else {
    332     $("#saveButton, #rebuildButton, #saveAndRebuildButton").attr("disabled", "disabled");
    333   }
    334 }
    335 
    336 /* this is a cut down version of save() from documentmaker_scripts_util.js 
    337  going back to using save, will delete this once everything working*/
     356    if (enabled) {
     357        $("#saveButton, #rebuildButton, #saveAndRebuildButton").removeAttr("disabled");
     358    } else {
     359        $("#saveButton, #rebuildButton, #saveAndRebuildButton").attr("disabled", "disabled");
     360    }
     361}
     362
     363/* this is a cut down version of save() from documentmaker_scripts_util.js
     364going back to using save, will delete this once everything working*/
    338365function saveMetadataChangesOld() {
    339366
    340   console.log("Saving metadata changes");
    341  
    342   // get collection name
    343   var collection = gs.cgiParams.c;;
    344 
    345   // get document id
    346   var docID = gs.cgiParams.d;
    347 
    348   var metadataChanges = new Array();
    349   if (_deletedMetadata.length > 0) {
    350 
    351     for(var i = 0; i < _deletedMetadata.length; i++) {
    352      
    353       var currentRow = _deletedMetadata[i];
    354      
    355       //Get metadata name
    356       var cells = currentRow.getElementsByTagName("TD");
    357       var nameCell = cells[0];
    358       var name = nameCell.innerHTML;
    359       var valueCell = cells[1];
    360       var value = valueCell.innerHTML;
    361       metadataChanges.push({type:'delete', docID:docID, name:name, value:value});
    362       removeFromParent(currentRow);
    363     }
    364   }
    365 
    366   /*var changes = null;
     367    console.log("Saving metadata changes");
     368
     369    // get collection name
     370    var collection = gs.cgiParams.c; ;
     371
     372    // get document id
     373    var docID = gs.cgiParams.d;
     374
     375    var metadataChanges = new Array();
     376    if (_deletedMetadata.length > 0) {
     377
     378        for (var i = 0; i < _deletedMetadata.length; i++) {
     379
     380            var currentRow = _deletedMetadata[i];
     381
     382            //Get metadata name
     383            var cells = currentRow.getElementsByTagName("TD");
     384            var nameCell = cells[0];
     385            var name = nameCell.innerHTML;
     386            var valueCell = cells[1];
     387            var value = valueCell.innerHTML;
     388            metadataChanges.push({
     389                type: 'delete',
     390                docID: docID,
     391                name: name,
     392                value: value
     393            });
     394            removeFromParent(currentRow);
     395        }
     396    }
     397
     398    /*var changes = null;
    367399    //var changes = de.Changes.getChangedEditableSections();
    368   for(var i = 0; i < changes.length; i++) {
    369    
    370     var changedElem = changes[i];
    371        
    372     //Get metadata name
    373     var row = changedElem.parentNode;
    374     var cells = row.getElementsByTagName("TD");
    375     var nameCell = cells[0];
    376     var name = nameCell.innerHTML;
    377     var value = changedElem.innerHTML;
    378     value = value.replace(/&nbsp;/g, " ");
    379    
    380     var orig = changedElem.originalValue;
    381     if (orig) {
    382       orig = orig.replace(/&nbsp;/g, " ");
    383     }
    384     metadataChanges.push({collection:collection, docID:docID, name:name, value:value, orig:orig});
    385     changedElem.originalValue = changedElem.innerHTML;
    386    
    387   }
    388 */
    389   if (metadataChanges.length ==0) {
    390       console.log(gs.text.de.no_changes);
    391     return;
    392   }
    393 
    394   var processChangesLoop = function(index)
    395     {
    396       var change = metadataChanges[index];
    397      
    398       var callbackFunction;
    399       if(index + 1 == metadataChanges.length)
    400     {
    401       callbackFunction = function(){console.log("Completed saving metadata changes. You must rebuild the collection for the changes to take effect.");};
    402     }
    403       else
    404     {
    405       callbackFunction = function(){processChangesLoop(index + 1)};
    406     }
    407       if (change.type == "delete") {
    408     gs.functions.removeArchivesMetadata(collection, gs.xsltParams.site_name, change.docID, change.name, null, change.value, function(){callbackFunction();});
    409       } else {
    410     if(change.orig)
    411       {
    412         gs.functions.setArchivesMetadata(collection, gs.xsltParams.site_name, docID, change.name, null, change.value, change.orig, "override", function(){callbackFunction();});
    413       }
    414     else
    415       {
    416         gs.functions.setArchivesMetadata(collection, gs.xsltParams.site_name, docID, change.name, null, change.value, null, "accumulate", function(){callbackFunction();});
    417       }
    418       }
    419     }
    420   processChangesLoop(0);
    421   /* need to clear the changes from the page */
    422   while (_deletedMetadata.length>0) {
    423     _deletedMetadata.pop();
    424   }
    425    
    426 }
    427 
    428 
    429 
     400    for(var i = 0; i < changes.length; i++) {
     401
     402    var changedElem = changes[i];
     403
     404    //Get metadata name
     405    var row = changedElem.parentNode;
     406    var cells = row.getElementsByTagName("TD");
     407    var nameCell = cells[0];
     408    var name = nameCell.innerHTML;
     409    var value = changedElem.innerHTML;
     410    value = value.replace(/&nbsp;/g, " ");
     411
     412    var orig = changedElem.originalValue;
     413    if (orig) {
     414    orig = orig.replace(/&nbsp;/g, " ");
     415    }
     416    metadataChanges.push({collection:collection, docID:docID, name:name, value:value, orig:orig});
     417    changedElem.originalValue = changedElem.innerHTML;
     418
     419    }
     420     */
     421    if (metadataChanges.length == 0) {
     422        console.log(gs.text.de.no_changes);
     423        return;
     424    }
     425
     426    var processChangesLoop = function (index) {
     427        var change = metadataChanges[index];
     428
     429        var callbackFunction;
     430        if (index + 1 == metadataChanges.length) {
     431            callbackFunction = function () {
     432                console.log("Completed saving metadata changes. You must rebuild the collection for the changes to take effect.");
     433            };
     434        } else {
     435            callbackFunction = function () {
     436                processChangesLoop(index + 1)
     437            };
     438        }
     439        if (change.type == "delete") {
     440            gs.functions.removeArchivesMetadata(collection, gs.xsltParams.site_name, change.docID, change.name, null, change.value, function () {
     441                callbackFunction();
     442            });
     443        } else {
     444            if (change.orig) {
     445                gs.functions.setArchivesMetadata(collection, gs.xsltParams.site_name, docID, change.name, null, change.value, change.orig, "override", function () {
     446                    callbackFunction();
     447                });
     448            } else {
     449                gs.functions.setArchivesMetadata(collection, gs.xsltParams.site_name, docID, change.name, null, change.value, null, "accumulate", function () {
     450                    callbackFunction();
     451                });
     452            }
     453        }
     454    }
     455    processChangesLoop(0);
     456    /* need to clear the changes from the page */
     457    while (_deletedMetadata.length > 0) {
     458        _deletedMetadata.pop();
     459    }
     460
     461}
Note: See TracChangeset for help on using the changeset viewer.