Ignore:
Timestamp:
2017-08-21T13:39:49+12:00 (7 years ago)
Author:
kjdon
Message:

implementing 'add all metadata' button. only add if enable_add_all_metadata_button is true, and if our metadata selector is a fixed list or autocomplete. will add a new row to the table for each metadata field in hte list. TODO, don't add if they are already in the list??

File:
1 edited

Legend:

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

    r31748 r31909  
    830830    table.metaNameField = metaNameField;
    831831   
    832     var addRowButton = $("<button>",{"class": "ui-state-default ui-corner-all", "style": "margin: 5px;"});
     832    /* add the buttons */
     833    // check enable_add_all_button - only valid for fixedlist and autocomplete
     834    if (enable_add_all_metadata_button == true) {
     835    if (new_metadata_field_input_type != "fixedlist" && new_metadata_field_input_type != "autocomplete") {
     836        enable_add_all_metadata_button = false;
     837    }
     838    }
     839
     840    // add single metadata button
     841    var addRowButton = $("<button>",{"class": "ui-state-default ui-corner-all", "style": "margin: 5px;"});
     842
    833843    addRowButton.html(gs.text.de.add_new_metadata);
    834844    addRowButton.click(function()
     
    840850            return;
    841851        }
    842             var clean_name = name.replace(/[\.-]/g, "");
    843         var newRow = $("<tr>", {"style": "display: table-row;"});
    844         var nameCell = $("<td>" + name + "</td>");
    845         nameCell.attr("class", "metaTableCellName");
    846         var valueCell = $("<td>", {"class": "metaTableCell"}); 
    847             var textValue = $("<textarea>", {"class": "metaTableCellArea "+ clean_name});
    848        
    849         if (jQuery.inArray(name, autocompleteMetadata) != -1) {
    850             var source_obje = window[clean_name +"_values"];
    851             if (source_obje) {
    852             textValue.autocomplete({
    853                 minLength: 0,
    854                 source: source_obje
    855             });
    856             }
    857         }
    858         valueCell.append(textValue);
    859         newRow.append(nameCell);
    860         newRow.append(valueCell);
    861         addRemoveLinkToRow(newRow.get(0));
    862         table.append(newRow);
    863        
    864         var undo = new Array();
    865         undo.op = "delMeta";
    866         undo.srcElem = newRow;
    867         undo.removeTransaction = false;
    868         _undoOperations.push(undo);
    869         if ( hierarchyStorage && hierarchyStorage[name])
    870                 {
    871                         setHierarchyEventsWrappers(name);
    872                 }
     852        addNewMetadataRow(table, name);
    873853
    874854       
    875855    });
    876     table.addRowButton = addRowButton;
    877     metaNameField.after(addRowButton);
    878 
     856    table.addRowButton = addRowButton;
     857    metaNameField.after(addRowButton);
     858
     859    // add all metadata button
     860    if (enable_add_all_metadata_button == true) {
     861    var addAllButton = $("<button>",{"class": "ui-state-default ui-corner-all", "style": "margin: 5px;"});
     862    addAllButton.html(gs.text.de.add_all_metadata);
     863    addAllButton.click(function()
     864               {
     865                   for(var i=0; i<availableMetadataElements.length; i++) {
     866                   
     867                       addNewMetadataRow(table, availableMetadataElements[i])
     868                   }
     869                   
     870               });
     871    table.addAllButton = addAllButton;
     872    addRowButton.after(addAllButton);
     873   
     874    }
     875
     876}
     877
     878function addNewMetadataRow(table, name) {
     879
     880    var clean_name = name.replace(/[\.-]/g, "");
     881    var newRow = $("<tr>", {"style": "display: table-row;"});
     882    var nameCell = $("<td>" + name + "</td>");
     883    nameCell.attr("class", "metaTableCellName");
     884    var valueCell = $("<td>", {"class": "metaTableCell"}); 
     885    var textValue = $("<textarea>", {"class": "metaTableCellArea "+ clean_name});
     886   
     887    if (jQuery.inArray(name, autocompleteMetadata) != -1) {
     888    var source_obje = window[clean_name +"_values"];
     889    if (source_obje) {
     890        textValue.autocomplete({
     891        minLength: 0,
     892        source: source_obje
     893        });
     894    }
     895    }
     896    valueCell.append(textValue);
     897    newRow.append(nameCell);
     898    newRow.append(valueCell);
     899    addRemoveLinkToRow(newRow.get(0));
     900    table.append(newRow);
     901   
     902    var undo = new Array();
     903    undo.op = "delMeta";
     904    undo.srcElem = newRow;
     905    undo.removeTransaction = false;
     906    _undoOperations.push(undo);
     907    if ( hierarchyStorage && hierarchyStorage[name])
     908    {
     909        setHierarchyEventsWrappers(name);
     910    }
    879911}
    880912
Note: See TracChangeset for help on using the changeset viewer.