From ab16ffbef2cca7bc831be53f937d19afd03e4b57 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Tue, 20 Sep 2016 15:34:12 -0400 Subject: [PATCH] update recording dialogs --- .../emby-webcomponents/.bower.json | 8 +- .../recordingcreator/recordingeditor.js | 17 +- .../recordingcreator/recordingfields.js | 64 ++++-- .../recordingfields.template.html | 56 +++-- .../recordingcreator/seriesrecordingeditor.js | 202 ++++++++++++++++++ .../seriesrecordingeditor.template.html | 49 +++++ .../emby-webcomponents/strings/ar.json | 27 ++- .../emby-webcomponents/strings/bg-BG.json | 27 ++- .../emby-webcomponents/strings/ca.json | 27 ++- .../emby-webcomponents/strings/cs.json | 27 ++- .../emby-webcomponents/strings/da.json | 27 ++- .../emby-webcomponents/strings/de.json | 27 ++- .../emby-webcomponents/strings/el.json | 27 ++- .../emby-webcomponents/strings/en-GB.json | 27 ++- .../emby-webcomponents/strings/en-US.json | 11 +- .../emby-webcomponents/strings/es-AR.json | 27 ++- .../emby-webcomponents/strings/es-MX.json | 27 ++- .../emby-webcomponents/strings/es.json | 27 ++- .../emby-webcomponents/strings/fi.json | 27 ++- .../emby-webcomponents/strings/fr-CA.json | 27 ++- .../emby-webcomponents/strings/fr.json | 27 ++- .../emby-webcomponents/strings/gsw.json | 27 ++- .../emby-webcomponents/strings/he.json | 27 ++- .../emby-webcomponents/strings/hr.json | 27 ++- .../emby-webcomponents/strings/hu.json | 27 ++- .../emby-webcomponents/strings/id.json | 27 ++- .../emby-webcomponents/strings/it.json | 27 ++- .../emby-webcomponents/strings/kk.json | 27 ++- .../emby-webcomponents/strings/ko.json | 27 ++- .../emby-webcomponents/strings/ms.json | 27 ++- .../emby-webcomponents/strings/nb.json | 27 ++- .../emby-webcomponents/strings/nl.json | 61 +++--- .../emby-webcomponents/strings/pl.json | 27 ++- .../emby-webcomponents/strings/pt-BR.json | 27 ++- .../emby-webcomponents/strings/pt-PT.json | 27 ++- .../emby-webcomponents/strings/ro.json | 27 ++- .../emby-webcomponents/strings/ru.json | 27 ++- .../emby-webcomponents/strings/sk.json | 27 ++- .../emby-webcomponents/strings/sl-SI.json | 27 ++- .../emby-webcomponents/strings/sv.json | 27 ++- .../emby-webcomponents/strings/tr.json | 27 ++- .../emby-webcomponents/strings/uk.json | 27 ++- .../emby-webcomponents/strings/vi.json | 27 ++- .../emby-webcomponents/strings/zh-CN.json | 27 ++- .../emby-webcomponents/strings/zh-HK.json | 27 ++- .../emby-webcomponents/strings/zh-TW.json | 27 ++- dashboard-ui/scripts/site.js | 1 + dashboard-ui/strings/en-US.json | 5 +- 48 files changed, 996 insertions(+), 504 deletions(-) create mode 100644 dashboard-ui/bower_components/emby-webcomponents/recordingcreator/seriesrecordingeditor.js create mode 100644 dashboard-ui/bower_components/emby-webcomponents/recordingcreator/seriesrecordingeditor.template.html diff --git a/dashboard-ui/bower_components/emby-webcomponents/.bower.json b/dashboard-ui/bower_components/emby-webcomponents/.bower.json index 7cc679328b..7ac9348cdc 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/.bower.json +++ b/dashboard-ui/bower_components/emby-webcomponents/.bower.json @@ -14,12 +14,12 @@ }, "devDependencies": {}, "ignore": [], - "version": "1.4.256", - "_release": "1.4.256", + "version": "1.4.258", + "_release": "1.4.258", "_resolution": { "type": "version", - "tag": "1.4.256", - "commit": "dbe988350fad1cbe359594a57be846a89ae764d4" + "tag": "1.4.258", + "commit": "52cd113c96592ab8036ea4878fdff7681459b16d" }, "_source": "https://github.com/MediaBrowser/emby-webcomponents.git", "_target": "^1.2.1", diff --git a/dashboard-ui/bower_components/emby-webcomponents/recordingcreator/recordingeditor.js b/dashboard-ui/bower_components/emby-webcomponents/recordingcreator/recordingeditor.js index eec179f69c..3603600ffc 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/recordingcreator/recordingeditor.js +++ b/dashboard-ui/bower_components/emby-webcomponents/recordingcreator/recordingeditor.js @@ -53,11 +53,7 @@ recordingUpdated = true; recordingDeleted = isDeleted; - if (isDeleted) { - dialogHelper.close(currentDialog); - } else { - currentDialog.querySelector('.btnSubmit').click(); - } + dialogHelper.close(currentDialog); } function onSubmit(e) { @@ -70,9 +66,7 @@ item.PrePaddingSeconds = form.querySelector('#txtPrePaddingMinutes').value * 60; item.PostPaddingSeconds = form.querySelector('#txtPostPaddingMinutes').value * 60; - apiClient.updateLiveTvTimer(item).then(function () { - dialogHelper.close(currentDialog); - }); + apiClient.updateLiveTvTimer(item); }); e.preventDefault(); @@ -156,6 +150,13 @@ currentDialog = dlg; + dlg.addEventListener('close', function () { + + if (!recordingDeleted) { + this.querySelector('.btnSubmit').click(); + } + }); + dlg.addEventListener('close', function () { if (recordingUpdated) { diff --git a/dashboard-ui/bower_components/emby-webcomponents/recordingcreator/recordingfields.js b/dashboard-ui/bower_components/emby-webcomponents/recordingcreator/recordingfields.js index ceb376cd04..9f2116ef07 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/recordingcreator/recordingfields.js +++ b/dashboard-ui/bower_components/emby-webcomponents/recordingcreator/recordingfields.js @@ -1,4 +1,4 @@ -define(['globalize', 'connectionManager', 'require', 'loading', 'apphost', 'recordingHelper', 'emby-toggle', 'paper-icon-button-light', 'emby-button'], function (globalize, connectionManager, require, loading, appHost, recordingHelper) { +define(['globalize', 'connectionManager', 'require', 'loading', 'apphost', 'recordingHelper', 'paper-icon-button-light', 'emby-button'], function (globalize, connectionManager, require, loading, appHost, recordingHelper) { function getRegistration(apiClient, programId, feature) { @@ -91,14 +91,11 @@ function loadData(parent, program, apiClient) { if (program.IsSeries) { - parent.querySelector('.chkRecordSeriesContainer').classList.remove('hide'); + parent.querySelector('.recordSeriesContainer').classList.remove('hide'); } else { - parent.querySelector('.chkRecordSeriesContainer').classList.add('hide'); + parent.querySelector('.recordSeriesContainer').classList.add('hide'); } - parent.querySelector('.chkRecord').checked = program.TimerId != null; - parent.querySelector('.chkRecordSeries').checked = program.SeriesTimerId != null; - if (program.SeriesTimerId != null) { showSeriesRecordingFields(parent, program.Id, apiClient); } else { @@ -107,23 +104,23 @@ if (program.SeriesTimerId) { parent.querySelector('.btnManageSeriesRecording').classList.remove('visibilityHide'); + parent.querySelector('.seriesRecordingButton .recordingIcon').classList.add('recordingIcon-active'); + parent.querySelector('.seriesRecordingButton .buttonText').innerHTML = globalize.translate('sharedcomponents#CancelSeries'); } else { parent.querySelector('.btnManageSeriesRecording').classList.add('visibilityHide'); + parent.querySelector('.seriesRecordingButton .recordingIcon').classList.remove('recordingIcon-active'); + parent.querySelector('.seriesRecordingButton .buttonText').innerHTML = globalize.translate('sharedcomponents#RecordSeries'); } if (program.TimerId) { parent.querySelector('.btnManageRecording').classList.remove('visibilityHide'); + parent.querySelector('.singleRecordingButton .recordingIcon').classList.add('recordingIcon-active'); + parent.querySelector('.singleRecordingButton .buttonText').innerHTML = globalize.translate('sharedcomponents#DoNotRecord'); } else { parent.querySelector('.btnManageRecording').classList.add('visibilityHide'); + parent.querySelector('.singleRecordingButton .recordingIcon').classList.remove('recordingIcon-active'); + parent.querySelector('.singleRecordingButton .buttonText').innerHTML = globalize.translate('sharedcomponents#Record'); } - - //var seriesTimerPromise = program.SeriesTimerId ? - // apiClient.getLiveTvSeriesTimer(program.SeriesTimerId) : - // apiClient.getLiveTvProgram(program.Id, apiClient.getCurrentUserId()); - - //seriesTimerPromise.then(function (seriesTimer) { - - //}); } function fetchData(instance) { @@ -156,7 +153,7 @@ } function onManageRecordingClick(e) { - + var options = this.options; if (!this.TimerId) { @@ -168,7 +165,29 @@ require(['recordingEditor'], function (recordingEditor) { recordingEditor.show(self.TimerId, options.serverId, { - + + enableCancel: false + + }).then(function () { + self.changed = true; + }); + }); + } + + function onManageSeriesRecordingClick(e) { + + var options = this.options; + + if (!this.SeriesTimerId) { + return; + } + + var self = this; + + require(['seriesRecordingEditor'], function (seriesRecordingEditor) { + + seriesRecordingEditor.show(self.SeriesTimerId, options.serverId, { + enableCancel: false }).then(function () { @@ -185,9 +204,9 @@ var options = this.options; var apiClient = connectionManager.getApiClient(options.serverId); - var isChecked = e.target.checked; + var isChecked = !e.target.querySelector('i').classList.contains('recordingIcon-active'); - if (e.target.checked) { + if (isChecked) { if (!this.TimerId && !this.SeriesTimerId) { recordingHelper.createRecording(apiClient, options.programId, false).then(function () { fetchData(self); @@ -210,9 +229,9 @@ var options = this.options; var apiClient = connectionManager.getApiClient(options.serverId); - var isChecked = e.target.checked; + var isChecked = !e.target.querySelector('i').classList.contains('recordingIcon-active'); - if (e.target.checked) { + if (isChecked) { showSeriesRecordingFields(options.parent, options.programId, apiClient); if (!this.SeriesTimerId) { @@ -259,9 +278,10 @@ supporterButtons[i].addEventListener('click', onSupporterButtonClick); } - context.querySelector('.chkRecord').addEventListener('change', onRecordChange.bind(self)); - context.querySelector('.chkRecordSeries').addEventListener('change', onRecordSeriesChange.bind(self)); + context.querySelector('.singleRecordingButton').addEventListener('click', onRecordChange.bind(self)); + context.querySelector('.seriesRecordingButton').addEventListener('click', onRecordSeriesChange.bind(self)); context.querySelector('.btnManageRecording').addEventListener('click', onManageRecordingClick.bind(self)); + context.querySelector('.btnManageSeriesRecording').addEventListener('click', onManageSeriesRecordingClick.bind(self)); fetchData(self).then(resolve); }); diff --git a/dashboard-ui/bower_components/emby-webcomponents/recordingcreator/recordingfields.template.html b/dashboard-ui/bower_components/emby-webcomponents/recordingcreator/recordingfields.template.html index af677ed00e..ce08dff98f 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/recordingcreator/recordingfields.template.html +++ b/dashboard-ui/bower_components/emby-webcomponents/recordingcreator/recordingfields.template.html @@ -1,18 +1,24 @@