Add new feature, set file date to episode aired date. Fix, use alternative Trakt API field for episode air time. Improve the Preview Rename tip.

Add, new setting "Set File Date to Airdate" on the Media Management tab of the Settings page to toggle this feature for new, imported and auto updating media files.

Change, home page "Series Editor" - "Rename" button to "Update Files" and add "Set File Date To Air Date" action button to this modal to add capability of updating legacy media.

Add, non UTC functions given that Windows undesirably adds time to file times set when using UTC.

Fix, the Trakt API response show.air_time_utc contains erroneous data, this is replaced with show.air_time.
This commit is contained in:
JackDandy 2014-03-08 19:01:51 +00:00
commit d9eab04029
24 changed files with 316 additions and 38 deletions

View file

@ -10,7 +10,7 @@ define(
'AddSeries/RootFolders/RootFolderCollection',
'Shared/Toolbar/ToolbarLayout',
'AddSeries/RootFolders/RootFolderLayout',
'Series/Editor/Rename/RenameSeriesView',
'Series/Editor/UpdateFiles/UpdateFilesSeriesView',
'Config'
], function (_,
Marionette,
@ -21,26 +21,26 @@ define(
RootFolders,
ToolbarLayout,
RootFolderLayout,
RenameSeriesView,
UpdateFilesSeriesView,
Config) {
return Marionette.ItemView.extend({
template: 'Series/Editor/SeriesEditorFooterViewTemplate',
ui: {
monitored : '.x-monitored',
qualityProfile: '.x-quality-profiles',
seasonFolder : '.x-season-folder',
rootFolder : '.x-root-folder',
selectedCount : '.x-selected-count',
saveButton : '.x-save',
renameButton : '.x-rename',
container : '.series-editor-footer'
monitored : '.x-monitored',
qualityProfile : '.x-quality-profiles',
seasonFolder : '.x-season-folder',
rootFolder : '.x-root-folder',
selectedCount : '.x-selected-count',
saveButton : '.x-save',
updateFilesButton: '.x-update-files',
container : '.series-editor-footer'
},
events: {
'click .x-save' : '_updateAndSave',
'change .x-root-folder': '_rootFolderChanged',
'click .x-rename' : '_rename'
'click .x-update-files': '_updateFiles'
},
templateHelpers: function () {
@ -119,7 +119,7 @@ define(
this.ui.seasonFolder.attr('disabled', '');
this.ui.rootFolder.attr('disabled', '');
this.ui.saveButton.attr('disabled', '');
this.ui.renameButton.attr('disabled', '');
this.ui.updateFilesButton.attr('disabled', '');
}
else {
@ -128,7 +128,7 @@ define(
this.ui.seasonFolder.removeAttr('disabled', '');
this.ui.rootFolder.removeAttr('disabled', '');
this.ui.saveButton.removeAttr('disabled', '');
this.ui.renameButton.removeAttr('disabled', '');
this.ui.updateFilesButton.removeAttr('disabled', '');
}
},
@ -162,12 +162,12 @@ define(
});
},
_rename: function () {
_updateFiles: function () {
var selected = this.editorGrid.getSelectedModels();
var renameSeriesView = new RenameSeriesView({ series: selected });
this.listenToOnce(renameSeriesView, 'seriesRenamed', this._afterSave);
var updateFilesSeriesView = new UpdateFilesSeriesView({ series: selected });
this.listenToOnce(updateFilesSeriesView, 'updatingFiles', this._afterSave);
vent.trigger(vent.Commands.OpenModalCommand, renameSeriesView);
vent.trigger(vent.Commands.OpenModalCommand, updateFilesSeriesView);
}
});
});

View file

@ -45,7 +45,7 @@
<span class="pull-right">
<span class="selected-count x-selected-count">0 series selected</span>
<button class="btn btn-primary x-save">Save</button>
<button class="btn btn-danger x-rename">Rename</button>
<button class="btn btn-danger x-update-files">Update Files</button>
</span>
</div>
</div>

View file

@ -9,10 +9,11 @@ define(
], function (_, vent, Backbone, Marionette, CommandController) {
return Marionette.ItemView.extend({
template: 'Series/Editor/Rename/RenameSeriesViewTemplate',
template: 'Series/Editor/UpdateFiles/UpdateFilesSeriesViewTemplate',
events: {
'click .x-confirm-rename': '_rename'
'click .x-confirm-rename': '_rename',
'click .x-confirm-airdate': '_setFileAirDate'
},
initialize: function (options) {
@ -29,7 +30,19 @@ define(
seriesIds : seriesIds
});
this.trigger('seriesRenamed');
this.trigger('updatingFiles');
vent.trigger(vent.Commands.CloseModalCommand);
},
_setFileAirDate: function () {
var seriesIds = _.pluck(this.series, 'id');
CommandController.Execute('AirDateSeries', {
name: 'AirDateSeries',
seriesIds: seriesIds
});
this.trigger('updatingFiles');
vent.trigger(vent.Commands.CloseModalCommand);
}
});

View file

@ -1,23 +1,24 @@
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h3>Rename Selected Series</h3>
<h3>Update Files of Selected Series</h3>
</div>
<div class="modal-body rename-series-modal">
<div class="modal-body update-files-series-modal">
<div class="alert alert-info">
<button type="button" class="close" data-dismiss="alert">&times;</button>
You can use the rename function for an individual series to preview the rename
Tip: To preview a rename... select "Cancel" then any series title and use the <i data-original-title="" class="icon-nd-rename" title=""></i>
</div>
Are you sure you want to rename all files in the {{numberOfSeries}} selected series?
Are you sure you want to update all files in the {{numberOfSeries}} selected series?
{{debug}}
<ul class="selected-series">
{{#each series}}
<li>{{title}}</li>
<li>{{title}}</li>
{{/each}}
</ul>
</div>
<div class="modal-footer">
<button class="btn" data-dismiss="modal">cancel</button>
<button class="btn btn-danger x-confirm-rename">rename</button>
<button class="btn btn-danger x-confirm-airdate">set file date to air date</button>
</div>

View file

@ -314,9 +314,13 @@
.row {
margin-left: -40px;
}
.span2 {
width: 160px;
}
}
.rename-series-modal {
.update-files-series-modal {
.selected-series {
margin-top: 15px;
}

View file

@ -21,6 +21,23 @@
</div>
</div>
<div class="control-group">
<label class="control-label">Set File Date to Airdate</label>
<div class="controls">
<label class="checkbox toggle well">
<input type="checkbox" name="fileDateAiredDate" />
<p>
<span>Yes</span>
<span>No</span>
</p>
<div class="btn btn-primary slide-button" />
</label>
<span class="help-inline-checkbox">
<i class="icon-nd-form-info" title="Adjust added media file dates to the original episode aired date" />
</span>
</div>
</div>
<div class="control-group">
<label class="control-label">Download Propers</label>