%PDF- %PDF-
| Direktori : /data/old/home/stash/atlassian/stash/3.7.1/atlassian-stash/static/feature/tasks/model/ |
| Current File : //data/old/home/stash/atlassian/stash/3.7.1/atlassian-stash/static/feature/tasks/model/task-min.js |
define("feature/tasks/model/task",["aui","backbone","backbone-brace","lodash","stash/api/util/events","stash/api/util/navbuilder","model/stash-user","feature/tasks/model/task-state"],function(J,K,I,L,H,A,G,C){var E={COMMENT:"COMMENT"};var D=A.rest().addPathComponents("tasks");function B(M){return M&&"stash.feature.pull-request-tasks."+M}var F=I.Model.extend({namedAttributes:{id:"number",anchor:null,state:"string",author:G,createdDate:"number",text:"string",html:"string",properties:null,permittedOperations:null,lastState:"string",pendingSync:"boolean",pullRequestId:"number",repositoryId:"number"},defaults:{state:C.OPEN,text:"",pendingSync:false,permittedOperations:{}},url:function(){var M=D;if(!this.isNew()){M=M.addPathComponents(this.getId())}return M.build()},initialize:function(){if(this.getState()===C.OPEN&&this.isNew()){this._triggerTaskEvent(this.eventNameForState(this.getState()))}this.on("destroy",this._onDestroy);this.on("sync",this._triggerTaskEvent.bind(this,B("saved")))},_onDestroy:function(){if(this.isNew()){this.changeState(C.DELETED)}},nextState:function(){return C.Transitions[this.getState()]},eventNameForState:function(M){switch(M){case C.OPEN:if(this.isNew()){return B("created")}else{return B("reopened")}break;case C.RESOLVED:return B("resolved");case C.DELETED:return B("deleted");case C.DEFAULT:default:return B("default")}},transitionToNextState:function(){return this._updateState(this.nextState())},changeState:function(M){this.set({state:M,lastState:this.getState()},{local:true});this._triggerTaskEvent(this.eventNameForState(M))},_updateState:function(O){var P=this.getState();var N=this.eventNameForState(O);var M=this;this.changeState(O);return this.save().done(function(){if(M.getState()!==O){N=M.eventNameForState(M.getState());M._triggerTaskEvent(N)}}).fail(function(){M.set({state:P,lastState:O});M._triggerTaskEvent(B("failed-transition"))})},updateText:function(P){var N=this;var M=this.getText();var O=F.sanitiseText(P);this.setText(O);return(this.save()||K.$.Deferred().reject(this.validationError)).fail(function(){if(O!==""){N.setText(M)}})},validate:function(N,M){var O=F.sanitiseText(N.text);if(O!==N.text){return J.I18n.getText("stash.web.tasks.error.invalidText")}if(N.text===""){return J.I18n.getText("stash.web.tasks.error.missingText")}},sync:function(P,O,N){this.setPendingSync(true);var M=K.sync(P,O,L.extend(N,{statusCode:{"404":function(V,Q,U,T){var R=T&&T.errors&&T.errors.length&&T.errors[0];var S=R&&R.message;if(P!=="create"){S=J.I18n.getText("stash.web.tasks.noSuchTask")}return{title:J.I18n.getText("stash.web.tasks.noSuchTask.title"),message:S,shouldReload:true,fallbackUrl:undefined}}}}));M.always(this.setPendingSync.bind(this,false));return M},_triggerTaskEvent:function(M,N){if(N===this){N={}}H.trigger(M,null,L.extend({task:this.toJSON()},N))}},{Anchor:E});F.sanitiseText=function(M){return M.trim().replace(/\s+/gm," ")};return F});