Changeset 24072 for main


Ignore:
Timestamp:
2011-05-20T16:36:41+12:00 (13 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.)

File:
1 edited

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