Show
Ignore:
Timestamp:
20.02.2012 14:23:07 (8 years ago)
Author:
sjm84
Message:

More document maker changes

Location:
main/trunk/greenstone3/web/interfaces/oran/js
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone3/web/interfaces/oran/js/documentbasket/documentbasket.js

    r25070 r25096  
    7171    } 
    7272 
    73     //var date = new Date(); 
    74     //url += "&rand=" + date.getTime(); 
    7573    YAHOO.util.Connect.asyncRequest(request_type , url , callback); 
    7674} 
  • main/trunk/greenstone3/web/interfaces/oran/js/documentmaker_scripts.js

    r25072 r25096  
    88var _baseURL; 
    99var _statusBar; 
     10var _metadataSetList = new Array(); 
    1011 
    1112function init() 
  • main/trunk/greenstone3/web/interfaces/oran/js/documentmaker_scripts_util.js

    r25065 r25096  
    174174    { 
    175175        var changedElem = changes[i]; 
    176         if(hasClass(changedElem, "metadataTableCellValue")) 
    177         { 
    178             //Save metadata 
    179         } 
     176 
     177        //Save metadata  
     178        if(hasClass(changedElem, "metaTableCell"))  
     179        { 
     180            //Get document ID 
     181            var currentElem = changedElem; 
     182            while((currentElem = currentElem.parentNode).tagName != "TABLE"); 
     183            var docID = currentElem.getAttribute("id").substring(4); 
     184             
     185            //Get metadata name 
     186            var row = changedElem.parentNode; 
     187            var cells = row.getElementsByTagName("TD"); 
     188            var nameCell = cells[0]; 
     189            var name = nameCell.innerHTML; 
     190 
     191            gs.functions.setArchivesMetadata(gs.cgiParams.p_c /*bad*/, "localsite" /*bad*/, docID, name, null, changedElem.innerHTML, function(){console.log("SAVED ARCHIVES");}); 
     192            gs.functions.setIndexMetadata(gs.cgiParams.p_c /*bad*/, "localsite" /*bad*/, docID, name, null, changedElem.innerHTML, function(){alert("SAVED INDEX");}); 
     193        } 
     194        //Save content 
    180195        else if(hasClass(changedElem, "renderedText")) 
    181196        { 
    182             //Save content 
    183197            var section = changedElem.parentDiv.parentItem; 
    184198            saveTransaction('{"operation":"setText", "text":"' + changedElem.innerHTML.replace(/"/g, "\\\"").replace(/&/g, "%26") + '", "collection":"' + section.collection + '", "oid":"' + section.nodeID + '"}'); 
     
    227241    } 
    228242     
    229     var saveButton = document.getElementById("saveButton"); 
    230     saveButton.innerHTML = "Saving..."; 
    231     saveButton.disabled = true; 
    232      
    233     statusID = _statusBar.addStatus("Modifying archive files..."); 
    234     ajax.send("a=g&rt=r&s=DocumentExecuteTransaction&s1.transactions=" + request); 
     243    if(request != "[]") 
     244    { 
     245        var saveButton = document.getElementById("saveButton"); 
     246        saveButton.innerHTML = "Saving..."; 
     247        saveButton.disabled = true; 
     248         
     249        statusID = _statusBar.addStatus("Modifying archive files..."); 
     250        ajax.send("a=g&rt=r&s=DocumentExecuteTransaction&s1.transactions=" + request); 
     251    } 
    235252} 
    236253 
     
    464481} 
    465482 
     483function onVisibleMetadataSetChange() 
     484{ 
     485    var metadataList = document.getElementById("metadataSetList"); 
     486    var index = metadataList.selectedIndex; 
     487    var options = metadataList.getElementsByTagName("OPTION"); 
     488    var selectedOption = options[index]; 
     489     
     490    var selectedSet = selectedOption.innerHTML; 
     491    changeVisibleMetadata(selectedSet); 
     492} 
     493 
     494function changeVisibleMetadata(metadataSetName) 
     495{ 
     496    var tables = document.getElementsByTagName("TABLE"); 
     497    for(var i = 0; i < tables.length; i++) 
     498    { 
     499        var id = tables[i].getAttribute("id"); 
     500        if(id && id.search(/^meta/) != -1) 
     501        { 
     502            var rows = tables[i].getElementsByTagName("TR"); 
     503            for(var j = 0; j < rows.length; j++) 
     504            { 
     505                if(metadataSetName == "All") 
     506                { 
     507                    rows[j].style.display = "table-row"; 
     508                } 
     509                else 
     510                { 
     511                    var cells = rows[j].getElementsByTagName("TD"); 
     512                    var cellName = cells[0].innerHTML; 
     513                     
     514                    if(cellName.indexOf(".") == -1) 
     515                    { 
     516                        rows[j].style.display = "none"; 
     517                    } 
     518                    else 
     519                    { 
     520                        var setName = cellName.substring(0, cellName.lastIndexOf(".")); 
     521                        if(setName == metadataSetName) 
     522                        { 
     523                            rows[j].style.display = "table-row"; 
     524                        } 
     525                        else 
     526                        { 
     527                            rows[j].style.display = "none"; 
     528                        } 
     529                    } 
     530                } 
     531            } 
     532        } 
     533    } 
     534} 
     535 
     536function asyncRegisterEditSection(cell) 
     537{ 
     538    //This registering can cause a sizeable delay so we'll thread it (effectively) so the browser is not paused 
     539    setTimeout(function(){de.doc.registerEditSection(cell)}, 0); 
     540} 
     541 
    466542function addFunctionalityToTable(table) 
    467543{ 
     
    470546    { 
    471547        var cells = rows[i].getElementsByTagName("TD"); 
     548        var metadataName = cells[0].innerHTML; 
     549         
     550        if(metadataName.indexOf(".") != -1) 
     551        { 
     552            var metadataSetName = metadataName.substring(0, metadataName.lastIndexOf(".")); 
    472553             
    473         //This registering can cause a sizeable delay so we'll thread it (effectively) so the browser is not paused 
    474         setTimeout(function(){de.doc.registerEditSection(cells[1])}, 0); 
    475          
     554            var found = false; 
     555            for(var j = 0; j < _metadataSetList.length; j++) 
     556            { 
     557                if(metadataSetName == _metadataSetList[j]) 
     558                { 
     559                    found = true; 
     560                    break; 
     561                } 
     562            } 
     563             
     564            if(!found) 
     565            { 
     566                _metadataSetList.push(metadataSetName); 
     567                 
     568                var metadataSetList = document.getElementById("metadataSetList"); 
     569                var newOption = document.createElement("OPTION"); 
     570                newOption.innerHTML = metadataSetName; 
     571                metadataSetList.appendChild(newOption); 
     572            } 
     573        } 
     574             
     575        asyncRegisterEditSection(cells[1]); 
     576 
    476577        addRemoveLinkToRow(rows[i]); 
    477578    } 
     
    497598        nameCell.setAttribute("class", "metaTableCellName"); 
    498599        nameCell.innerHTML = name; 
    499         valueCell.setAttribute("class", "metaTableCell editable"); 
     600        valueCell.setAttribute("class", "metaTableCell"); 
    500601         
    501602        newRow.appendChild(nameCell); 
     
    571672    var saveCell = document.createElement("TD"); 
    572673    var undoCell = document.createElement("TD"); 
     674    var metadataListCell = document.createElement("TD"); 
     675     
     676    var metadataListLabel = document.createElement("SPAN"); 
     677    metadataListLabel.innerHTML = "Visible metadata: "; 
     678    var metadataList = document.createElement("SELECT"); 
     679    metadataList.setAttribute("id", "metadataSetList"); 
     680    metadataList.onchange = onVisibleMetadataSetChange; 
     681    var allMetadataOption = document.createElement("OPTION"); 
     682    metadataList.appendChild(allMetadataOption); 
     683    allMetadataOption.innerHTML = "All"; 
     684    metadataListCell.appendChild(metadataListLabel); 
     685    metadataListCell.appendChild(metadataList); 
     686 
     687    metadataListCell.setAttribute("class", "headerTableTD"); 
    573688    newDocCell.setAttribute("class", "headerTableTD"); 
    574689    newSecCell.setAttribute("class", "headerTableTD"); 
     
    582697    row.appendChild(newDocCell); 
    583698    row.appendChild(newSecCell); 
     699    row.appendChild(metadataListCell); 
    584700 
    585701    //The "Save changes" button 
  • main/trunk/greenstone3/web/interfaces/oran/js/javascript-global-functions.js

    r25008 r25096  
    196196        } 
    197197    } 
     198    ajax.send(); 
    198199} 
    199200