1
0
mirror of https://github.com/Sonarr/Sonarr.git synced 2024-10-31 07:52:37 +01:00

making modals event driven,

This commit is contained in:
Keivan Beigi 2013-07-23 18:15:58 -07:00
parent 121f3b973d
commit 62cea8de5e
18 changed files with 100 additions and 53 deletions

View File

@ -49,7 +49,8 @@ define(
},
_folderSelected: function (options) {
App.modalRegion.closeModal();
App.vent.trigger(App.Commands.CloseModalCommand);
this.workspace.show(new ExistingSeriesCollectionView({model: options.model}));
},

View File

@ -98,7 +98,7 @@ define(
},
_setRootFolder: function (options) {
App.modalRegion.closeModal();
App.vent.trigger(App.Commands.CloseModalCommand);
this.ui.rootFolder.val(options.model.id);
},

View File

@ -1,4 +1,4 @@
'use strict';
'use strict';
define(
[
@ -6,7 +6,6 @@ define(
'marionette',
'moment',
'Calendar/Collection',
'Episode/Layout',
'fullcalendar'
], function (App, Marionette, Moment, CalendarCollection, EpisodeLayout) {
@ -37,7 +36,7 @@ define(
$(element).addClass(event.statusLevel);
$(element).children('.fc-event-inner').addClass(event.statusLevel);
},
eventClick : function (event) {
eventClick : function (event) {
var view = new EpisodeLayout({ model: event.model });
App.modalRegion.show(view);
}

View File

@ -1,4 +0,0 @@
'use strict';
define({
ApiRoot : '/api'
});

View File

@ -49,7 +49,7 @@ define(
message: 'Search started for: ' + message
});
App.modalRegion.closeModal();
App.vent.trigger(App.Commands.CloseModalCommand);
},
_searchManual: function (e) {

View File

@ -1,9 +1,9 @@
'use strict';
'use strict';
define(
[
'History/Model',
'backbone.pageable'
], function ( HistoryModel, PageableCollection) {
], function (HistoryModel, PageableCollection) {
return PageableCollection.extend({
url : window.ApiRoot + '/history',
model: HistoryModel,

View File

@ -25,7 +25,7 @@ define(
wait: true
}).done(function () {
App.vent.trigger(App.Events.SeriesDeleted, { series: self.model });
App.modalRegion.closeModal();
App.vent.trigger(App.Commands.CloseModalCommand);
});
}
});

View File

@ -6,11 +6,10 @@ define(
'Series/EpisodeCollection',
'Series/SeasonCollection',
'Series/Details/SeasonCollectionView',
'Series/Edit/EditSeriesView',
'Shared/LoadingView',
'Shared/Actioneer',
'backstrech'
], function (App, Marionette, EpisodeCollection, SeasonCollection, SeasonCollectionView, EditSeriesView, LoadingView, Actioneer) {
], function (App, Marionette, EpisodeCollection, SeasonCollection, SeasonCollectionView, LoadingView, Actioneer) {
return Marionette.Layout.extend({
itemViewContainer: '.x-series-seasons',
@ -78,7 +77,7 @@ define(
_getFanArt: function () {
var fanArt = _.where(this.model.get('images'), {coverType: 'fanart'});
if(fanArt && fanArt[0]){
if (fanArt && fanArt[0]) {
return fanArt[0].url;
}
@ -117,18 +116,17 @@ define(
},
_editSeries: function () {
var view = new EditSeriesView({ model: this.model });
App.modalRegion.show(view);
App.vent.trigger(App.Commands.EditSeriesCommand, {model: this.model});
},
_refreshSeries: function () {
Actioneer.ExecuteCommand({
command : 'refreshSeries',
properties : {
seriesId : this.model.get('id')
command : 'refreshSeries',
properties: {
seriesId: this.model.get('id')
},
element : this.ui.refresh,
leaveIcon : true
element : this.ui.refresh,
leaveIcon : true
});
},
@ -143,7 +141,7 @@ define(
Actioneer.ExecuteCommand({
command : 'renameSeries',
properties : {
seriesId : this.model.get('id')
seriesId: this.model.get('id')
},
element : this.ui.rename,
failMessage: 'Series search failed'
@ -154,7 +152,7 @@ define(
Actioneer.ExecuteCommand({
command : 'seriesSearch',
properties : {
seriesId : this.model.get('id')
seriesId: this.model.get('id')
},
element : this.ui.search,
failMessage : 'Series search failed',

View File

@ -1,7 +1,7 @@
'use strict';
define(
[
'App',
'app',
'marionette',
'Series/Delete/DeleteSeriesView',
'Quality/QualityProfileCollection',
@ -18,8 +18,8 @@ define(
},
events: {
'click .x-save' : 'saveSeries',
'click .x-remove': 'removeSeries'
'click .x-save' : '_saveSeries',
'click .x-remove': '_removeSeries'
},
@ -28,22 +28,23 @@ define(
},
saveSeries: function () {
_saveSeries: function () {
var self = this;
var qualityProfileId = this.ui.qualityProfile.val();
this.model.set({ qualityProfileId: qualityProfileId});
this.model.save();
this.trigger('saved');
App.modalRegion.closeModal();
this.model.save().done(function () {
self.trigger('saved');
App.vent.trigger(App.Commands.CloseModalCommand);
});
},
onRender: function () {
this.ui.path.autoComplete('/directories');
},
removeSeries: function () {
_removeSeries: function () {
var view = new DeleteSeriesView({ model: this.model });
App.modalRegion.show(view);
}

View File

@ -11,7 +11,7 @@ define(['app', 'marionette'], function (App, Marionette) {
this.model.destroy({
wait : true,
success: function () {
App.modalRegion.closeModal();
App.vent.trigger(App.Commands.CloseModalCommand);
}
});
}

View File

@ -1,4 +1,4 @@
'use strict';
'use strict';
define(
[
@ -11,7 +11,7 @@ define(
template: 'Settings/Indexers/EditTemplate',
events: {
'click .x-save': '_save',
'click .x-save' : '_save',
'click .x-save-and-add': '_saveAndAdd'
},
@ -26,7 +26,7 @@ define(
if (promise) {
promise.done(function () {
self.indexerCollection.add(self.model, { merge: true });
App.modalRegion.closeModal();
App.vent.trigger(App.Commands.CloseModalCommand);
});
}
},
@ -40,13 +40,13 @@ define(
self.indexerCollection.add(self.model, { merge: true });
self.model.set({
id: undefined,
name: '',
id : undefined,
name : '',
enable: false
});
_.each(self.model.get('fields'), function (value, key, list) {
self.model.set('fields.' + key +'.value', '');
self.model.set('fields.' + key + '.value', '');
});
});
}

View File

@ -11,7 +11,7 @@ define(['app', 'marionette'], function (App, Marionette) {
this.model.destroy({
wait : true,
success: function () {
App.modalRegion.closeModal();
App.vent.trigger(App.Commands.CloseModalCommand);
}
});
}

View File

@ -39,7 +39,7 @@ define([
if (promise) {
promise.done(function () {
self.notificationCollection.add(self.model, { merge: true });
App.modalRegion.closeModal();
App.vent.trigger(App.Commands.CloseModalCommand);
});
}
},

View File

@ -17,7 +17,7 @@ define(
this.model.destroy({
wait: true
}).done(function () {
App.modalRegion.closeModal();
App.vent.trigger(App.Commands.CloseModalCommand);
});
}
});

View File

@ -63,7 +63,7 @@ define(['app', 'marionette', 'Mixins/AsModelBoundView'], function (App, Marionet
if (promise) {
promise.done(function () {
self.profileCollection.add(self.model, { merge: true });
App.modalRegion.closeModal();
App.vent.trigger(App.Commands.CloseModalCommand);
});
}
}

View File

@ -0,0 +1,42 @@
'use strict';
define(
[
'app',
'marionette',
'Series/Edit/EditSeriesView',
'Series/Delete/DeleteSeriesView',
'Episode/Layout'
], function (App, Marionette, EditSeriesView, DeleteSeriesView, EpisodeLayout) {
var router = Marionette.AppRouter.extend({
initialize: function () {
App.vent.on(App.Commands.CloseModalCommand, this._closeModal, this);
App.vent.on(App.Commands.EditSeriesCommand, this._editSeries, this);
App.vent.on(App.Commands.DeleteSeriesCommand, this._deleteSeries, this);
App.vent.on(App.Commands.ShowEpisodeDetails, this._showEpisode, this);
},
_closeModal: function () {
App.vent.trigger(App.Commands.CloseModalCommand);
},
_editSeries: function (options) {
var view = new EditSeriesView({ model: options.model });
App.modalRegion.show(view);
},
_deleteSeries: function (options) {
var view = new DeleteSeriesView({ model: options.model });
App.modalRegion.show(view);
},
_showEpisode: function (options) {
var view = new EpisodeLayout({ model: options.model });
App.modalRegion.show(view);
}
});
return new router();
});

View File

@ -39,11 +39,17 @@ define(
});
app.addInitializer(function () {
app.addRegions({
modalRegion : region
require(
[
'Shared/Modal/Controller'
], function () {
app.addInitializer(function () {
app.addRegions({
modalRegion: region
});
});
});
});
return region;
});

View File

@ -170,12 +170,16 @@ define(
var app = new Marionette.Application();
app.Events = {
SeriesAdded: 'series:added',
SeriesAdded : 'series:added',
SeriesDeleted: 'series:deleted'
};
app.Commands = {
SaveSettings: 'saveSettings'
EditSeriesCommand : 'EditSeriesCommand',
DeleteSeriesCommand: 'DeleteSeriesCommand',
CloseModalCommand : 'CloseModalCommand',
ShowEpisodeDetails : 'ShowEpisodeDetails',
SaveSettings : 'saveSettings'
};
app.addInitializer(function () {
@ -183,8 +187,8 @@ define(
});
app.addRegions({
mainRegion : '#main-region',
footerRegion : '#footer-region'
mainRegion : '#main-region',
footerRegion: '#footer-region'
});
app.start();