2015-02-03 01:18:45 +00:00
|
|
|
var Marionette = require('marionette');
|
|
|
|
var RootFolderCollectionView = require('./RootFolderCollectionView');
|
|
|
|
var RootFolderCollection = require('./RootFolderCollection');
|
|
|
|
var RootFolderModel = require('./RootFolderModel');
|
|
|
|
var LoadingView = require('../../Shared/LoadingView');
|
|
|
|
var AsValidatedView = require('../../Mixins/AsValidatedView');
|
|
|
|
require('../../Mixins/FileBrowser');
|
|
|
|
|
|
|
|
module.exports = (function(){
|
|
|
|
var layout = Marionette.Layout.extend({
|
|
|
|
template : 'AddSeries/RootFolders/RootFolderLayoutTemplate',
|
|
|
|
ui : {pathInput : '.x-path'},
|
|
|
|
regions : {currentDirs : '#current-dirs'},
|
|
|
|
events : {
|
|
|
|
'click .x-add' : '_addFolder',
|
|
|
|
'keydown .x-path input' : '_keydown'
|
|
|
|
},
|
|
|
|
initialize : function(){
|
|
|
|
this.collection = RootFolderCollection;
|
|
|
|
this.rootfolderListView = new RootFolderCollectionView({collection : RootFolderCollection});
|
|
|
|
this.listenTo(this.rootfolderListView, 'itemview:folderSelected', this._onFolderSelected);
|
|
|
|
this.listenTo(RootFolderCollection, 'sync', this._showCurrentDirs);
|
|
|
|
},
|
|
|
|
onRender : function(){
|
|
|
|
this.currentDirs.show(new LoadingView());
|
|
|
|
if(RootFolderCollection.synced) {
|
|
|
|
this._showCurrentDirs();
|
2013-06-21 01:43:58 +00:00
|
|
|
}
|
2015-02-03 01:18:45 +00:00
|
|
|
this.ui.pathInput.fileBrowser();
|
|
|
|
},
|
|
|
|
_onFolderSelected : function(options){
|
|
|
|
this.trigger('folderSelected', options);
|
|
|
|
},
|
|
|
|
_addFolder : function(){
|
|
|
|
var self = this;
|
|
|
|
var newDir = new RootFolderModel({Path : this.ui.pathInput.val()});
|
|
|
|
this.bindToModelValidation(newDir);
|
|
|
|
newDir.save().done(function(){
|
|
|
|
RootFolderCollection.add(newDir);
|
|
|
|
self.trigger('folderSelected', {model : newDir});
|
|
|
|
});
|
|
|
|
},
|
|
|
|
_showCurrentDirs : function(){
|
|
|
|
this.currentDirs.show(this.rootfolderListView);
|
|
|
|
},
|
|
|
|
_keydown : function(e){
|
|
|
|
if(e.keyCode !== 13) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
this._addFolder();
|
|
|
|
}
|
2013-06-21 01:43:58 +00:00
|
|
|
});
|
2015-02-03 01:18:45 +00:00
|
|
|
return AsValidatedView.apply(layout);
|
|
|
|
}).call(this);
|