Ignore:
Timestamp:
2012-02-20T14:23:07+13:00 (12 years ago)
Author:
sjm84
Message:

More document maker changes

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

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
Note: See TracChangeset for help on using the changeset viewer.