Changeset 24072

Show
Ignore:
Timestamp:
20.05.2011 16:36:41 (8 years ago)
Author:
davidb
Message:

Introduction of GS API calls that take an array of items (e.g. an array of OIDs or filenames). In adding in this ability, we have started to make use of JSON.

Also ability to control building using a manifest file (its fields passed in using JSON). Also the ability to delete files in the archives directory (i.e. when a collection is beeing used in an 'onlyadd' way). (Still needs to the more general case to be implemented.)

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone2/web/script/gsajaxapi.js

    r23806 r24072  
    3737    } 
    3838 
     39    this.buildserverURL = function() 
     40    { 
     41        return this.apiURL("build-server.pl"); 
     42    } 
     43     
    3944    this.explodeserverURL = function() 
    4045    { 
     
    148153        url += "&metavalue=" + metavalue; 
    149154 
    150     //alert("url = " + url); 
    151  
    152155        this.urlGetSync(url); 
    153156    } 
     
    165168        } 
    166169        params += "&metavalue=" + metavalue; 
    167     if (metamode!=null) { 
     170        if (metamode!=null) { 
    168171            params += "&metamode=" + metamode; 
    169     } 
    170     // alert("params = " + params); 
    171      
    172     //alert(mdserver + "?" + params); 
    173  
     172        } 
     173     
    174174        this.urlGetSync(mdserver + "?" + params); 
    175175        //this.urlPostSync(mdserver,params); 
    176176    } 
    177177     
     178     
     179    this._setDocumentArrayMetadata = function(mode,docArray,metamode)  
     180    { 
     181        docArrayJSON = JSON.stringify(docArray); 
     182   
     183        var mdserver = this.metadataserverURL(); 
     184     
     185        var params = "a=set" + mode + "-metadata-array"; 
     186        params += "&c="+collect_; 
     187        params += "&json="+docArrayJSON; 
     188     
     189        if (metamode!=null) { 
     190            params += "&metamode=" + metamode; 
     191        } 
     192         
     193        this.urlGetSync(mdserver + "?" + params); 
     194    
     195    } 
     196     
     197     
    178198    this.setDocumentMetadata = function(docid,metaname,metapos,metavalue) 
    179199    { 
     
    183203        metavalue = metapos; 
    184204        metapos = null; 
    185     } 
    186      
    187     this._setMetadata("",docid,metaname,metapos,metavalue); 
    188     this._setMetadata("-archives",docid,metaname,metapos,metavalue,"override"); 
    189     } 
    190  
     205        } 
     206     
     207        this._setMetadata("",docid,metaname,metapos,metavalue); 
     208        this._setMetadata("-archives",docid,metaname,metapos,metavalue,"override"); 
     209     
     210    } 
     211 
     212    this.setDocumentArrayMetadata = function(docArray,metamode)  
     213    { 
     214        //showDialog('Greenstone Javascript API','This sequence of changes has been commited into the system.','success', 2); 
     215     
     216        this._setDocumentArrayMetadata("",docArray,metamode); 
     217        this._setDocumentArrayMetadata("-archives",docArray,metamode); 
     218    } 
     219     
    191220    this.setNewDocumentMetadata = function(docid,metaname,metavalue) 
    192221    { 
    193     this._setMetadata("",docid,metaname,null,metavalue); 
    194     this._setMetadata("-archives",docid,metaname,null,metavalue,"accumulate"); 
     222        this._setMetadata("",docid,metaname,null,metavalue); 
     223        this._setMetadata("-archives",docid,metaname,null,metavalue,"accumulate"); 
    195224    } 
    196225     
    197226    this.setImportMetadata = function(docid,metaname,metapos,metavalue) 
    198227    { 
    199     this._setMetadata("-import",docid,metaname,metapos,metavalue,"override"); 
     228        this._setMetadata("-import",docid,metaname,metapos,metavalue,"override"); 
    200229    } 
    201230     
     
    205234        var exserver = this.explodeserverURL(); 
    206235 
    207         var url = exserver + "?a=explode"; 
     236        var url = exserver + "?a=explode-document"; 
    208237        url += "&c="+collect_; 
    209238        url += "&d="+docid; 
    210  
    211     // alert("url = " + url); 
    212      
    213         this.urlGetSync(url); 
    214     } 
    215  
     239     
     240        this.urlGetSync(url); 
     241    } 
     242 
     243     this.deleteDocument = function(docid,onlyAdd) 
     244    { 
     245        var exserver = this.explodeserverURL(); 
     246 
     247        var url = exserver + "?a=delete-document"; 
     248        url += "&c="+collect_; 
     249        params += "&onlyadd="+onlyAdd; 
     250        url += "&d="+docid; 
     251     
     252        this.urlGetSync(url); 
     253    } 
     254 
     255    this.deleteDocumentArray = function(docArray,onlyAdd)  
     256    { 
     257        docArrayJSON = JSON.stringify(docArray); 
     258   
     259        var exserver = this.explodeserverURL(); 
     260     
     261        var params = "a=delete-document-array"; 
     262        params += "&c="+collect_; 
     263        params += "&onlyadd="+onlyAdd; 
     264        params += "&json="+docArrayJSON; 
     265         
     266        this.urlGetSync(exserver + "?" + params); 
     267    
     268    } 
     269     
    216270 
    217271    this.cloneDocument = function(docid,toCollect) 
     
    223277        url += "&d="+docid; 
    224278        url += "&toCollect="+toCollect; 
    225  
    226     // alert("url = " + url); 
    227279     
    228280        this.urlGetSync(url); 
     
    238290        url += "&d="+docid; 
    239291 
    240     // alert("url = " + url); 
    241      
    242292        this.urlGetSync(url); 
    243293    } 
     
    247297    { 
    248298        if (mode==null) { 
    249         mode = "incremental"; 
    250     } 
     299            mode = "incremental"; 
     300        } 
    251301 
    252302        var idserver = this.indexserverURL(); 
     
    254304        var url = idserver + "?a=" + mode + "-rebuild"; 
    255305        url += "&c="+collect_; 
    256  
    257     // alert("url = " + url); 
    258306     
    259307        this.urlGetAsync(url,callback); 
     
    261309     
    262310 
     311    this.buildByManifestGeneral = function(hashargs)  
     312    { 
     313        var idserver = this.buildserverURL(); 
     314     
     315        var url = idserver + "?a=build-by-manifest"; 
     316        url += "&c="+collect_; 
     317         
     318        if (hashargs["index-files"] != undefined) { 
     319            url += "&index-files=" +  JSON.stringify(hashargs["index-files"]); 
     320        } 
     321         
     322        if (hashargs["reindex-files"] != undefined) { 
     323            url += "&reindex-files=" +  JSON.stringify(hashargs["reindex-files"]); 
     324        } 
     325        if (hashargs["delete-OIDs"] != undefined) { 
     326            url += "&delete-OIDs=" +  JSON.stringify(hashargs["delete-OIDs"]); 
     327        } 
     328     
     329        this.urlGetSync(url); 
     330    } 
     331     
     332    this.indexByManifest = function(docidArray)  
     333    { 
     334        var hashargs = {}; 
     335        hashargs["index-files"] = docidArray; 
     336        this.buildByManifestGeneral(hashargs); 
     337    } 
     338     
     339    this.reindexByManifest = function(docidArray)  
     340    { 
     341        var hashargs = {}; 
     342        hashargs["reindex-files"] = docidArray; 
     343        this.buildByManifestGeneral(hashargs); 
     344    } 
     345    this.deleteByManifest = function(docidArray)  
     346    { 
     347        var hashargs = {}; 
     348        hashargs["delete-OIDs"] = docidArray; 
     349        this.buildByManifestGeneral(hashargs); 
     350    } 
     351     
    263352    this.getLiveMetadata = function(id,metaname) 
    264353    { 
     
    270359        url += "&metaname=" + metaname; 
    271360 
    272     //alert("url = " + url);     
    273  
    274361        var metavalue = this.urlGetSync(url); 
    275      
    276         //alert("metavalue = " + metavalue); 
    277  
     362   
    278363        return metavalue; 
    279364    } 
     
    293378        return this.urlGetSync(url); 
    294379    } 
    295  
    296  
    297  
    298380     
    299381    this.removeLiveMetadata = function(id,metaname) 
     
    306388        url += "&metaname=" + metaname; 
    307389 
    308     //alert("url = " + url); 
    309  
    310         this.urlGetSync(url); 
    311     } 
    312      
     390        this.urlGetSync(url); 
     391    } 
    313392     
    314393    this.removeDocumentMetadata = function(docid,metaname,metapos) 
     
    324403        } 
    325404 
    326     //alert("url = " + url); 
    327      
    328         this.urlGetSync(url); 
    329     } 
    330  
     405        this.urlGetSync(url); 
     406    } 
    331407 
    332408    return true;