Changeset 20995


Ignore:
Timestamp:
07/25/16 18:08:44 (9 years ago)
Author:
dlcheng
Message:

CHG (JS): Adding in callbackerrorfunction and error handling for server side errors.

Location:
issm/trunk-jpl/src/m
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/classes/clusters/generic.js

    r20926 r20995  
    4646                        fclose(fid);
    4747        } //}}}
    48         this.UploadAndRun = function (md,callbackfunction,callbackid,fid,toolkitsstring,solutionstring,name,runtimename) { //{{{
     48        this.UploadAndRun = function (md,callbackfunction,callbackerrorfunction,callbackid,fid,toolkitsstring,solutionstring,name,runtimename) { //{{{
    4949
    5050                var request = new XMLHttpRequest();
     
    9191                                return buf;
    9292                        }
    93                         var responseText = request.responseText.slice(request.position + 10).replace(/\s/g, '');
    94             var buffer = str2ab(window.atob(responseText));
     93                        var responseText = window.atob(request.responseText.slice(request.position + 10).replace(/\s/g, ''));
     94            var buffer = str2ab(responseText);
    9595                        var returnBuffer = new Uint8Array(buffer);
    9696                        var returnBuffer_size = returnBuffer.byteLength;
    9797                        try {
    9898                                md.results = parseresultsfrombuffer(md,returnBuffer,returnBuffer_size);
     99                                $(callbackid).html(sprintf("%-16s", "RUN")).prop("disabled", false);
     100                                callbackfunction();
    99101                        }
    100102                        catch (e) {
    101                                 console.log(e);
     103                                if (responseText.startsWith('Error')) {
     104                                        console.log(responseText);
     105                                        $(callbackid).html(sprintf("%-16s", "ISSM ERROR")).prop("disabled", false);
     106                                }
     107                                else {
     108                                        $(callbackid).html(sprintf("%-16s", "JS ERROR")).prop("disabled", false);
     109                                        console.log(e);
     110                                }
     111                                callbackerrorfunction();
    102112                        }
    103                         $(callbackid).html(sprintf("%-16s", "RUN")).prop("disabled", false);
    104                         callbackfunction();
     113                       
    105114                }; //}}}
    106115               
  • issm/trunk-jpl/src/m/solve/solve.js

    r20823 r20995  
    108108        }
    109109       
     110        //callback error function:
     111        function callbackerrorfunction(){}; //default, do nothing if no callback function requested.
     112        if (options.getfieldvalue('callbackerrorfunction',false)){
     113                callbackerrorfunction=options.getfieldvalue('callbackerrorfunction');
     114        }
     115       
    110116        //callback id:
    111117        var callbackid = '.run-button'; //default, update .run-button elements with progress updates.
     
    137143
    138144                /*We are running somewhere else on a computational server. Send the buffer to that server and retrieve output: */
    139                 cluster.UploadAndRun(md,callbackfunction,callbackid,fid,toolkitsstring,solutionstring,md.miscellaneous.name,md.priv.runtimename);
     145                cluster.UploadAndRun(md,callbackfunction,callbackerrorfunction,callbackid,fid,toolkitsstring,solutionstring,md.miscellaneous.name,md.priv.runtimename);
    140146
    141147                return md;
Note: See TracChangeset for help on using the changeset viewer.