sc_require('core'); sc_require('models/file'); /*
THIS IS DEPRECATED… */ /*globals Greenhouse */
Greenhouse.mixin({
/* @property */ rootFolder: null, loadFileList: function(){ if(!this._listRequest) this._listRequest = SC.Request.create({type: 'GET', isJSON: YES, address: '/sproutcore/fs?action=list'}); this._listRequest.notify(this,this._listCompleted, {}).send(); }, _listCompleted: function(request, params){ var root = Greenhouse.File.create({treeItemIsExpanded: YES}); var response = this._parse_response(request.response(), root); root.set('contents', response); this.set('rootFolder', root); Greenhouse.filesController.set('content', root); Greenhouse.makeFirstResponder(Greenhouse.READY); }, /* wraps everything in an Greenhouse.File object */ _parse_response: function(content, parent){ for(var i=0; i < content.length; i+=1){ content[i] = Greenhouse.File.create(content[i]); if(content[i].contents){ content[i].contents = this._parse_response(content[i].contents, content[i]); } content[i].set('parent',parent); } return content; }, getFile: function(file){ if(!this._getRequest) this._getRequest = SC.Request.create({type: 'GET'}); this._getRequest.set('address', "/sproutcore/fs/%@".fmt(file.get('path'))); this._getRequest.notify(this,this._getCompleted, {file: file}).send(); }, _getCompleted: function(request, params){ var file = params.file; file.requestComplete(request.response()); //TODO: set content type... }, commitFile: function(file){ if(!this._postRequest) this._postRequest = SC.Request.create({type: 'POST'}); this._postRequest.set('address', "/sproutcore/fs/%@?action=overwrite".fmt(file.get('path'))); this._postRequest.notify(this,this._commitCompleted, {file: file}).send(file.get('body')); }, _commitCompleted: function(request, params){ var file = params.file; file.requestComplete(); }, /* create folder */ createFolder: function(file){ if(!this._postRequest) this._postRequest = SC.Request.create({type: 'POST'}); this._postRequest.set('address', "/sproutcore/fs/%@?action=mkdir".fmt(file.get('path'))); this._postRequest.notify(this,this._createFolderCompleted,{file: file}).send(); }, _createFolderCompleted: function(request, params){ var file = params.file; file.requestComplete(); }, /* create a file */ createFile: function(file){ if(!this._postRequest) this._postRequest = SC.Request.create({type: 'POST'}); this._postRequest.set('address', "/sproutcore/fs/%@?action=touch".fmt(file.get('path'))); this._postRequest.notify(this,this._createFileCompleted,{file: file}).send(); }, _createFileCompleted: function(request, params){ var file = params.file; file.requestComplete(); }, /* destroys a file */ destroyFile: function(file){ if(!this._postRequest) this._postRequest = SC.Request.create({type: 'POST'}); this._postRequest.set('address', "/sproutcore/fs/%@?action=remove".fmt(file.get('path'))); this._postRequest.notify(this,this._destroyFileCompleted,{file: file}).send(); }, _destroyFileCompleted: function(request, params){ var file = params.file; file.requestComplete(); file.destroy(); }
});