1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

fix artist editor

This commit is contained in:
Luke Pulverenti 2016-09-06 01:02:05 -04:00
parent 3a5dad0e64
commit 8fc34293c7
16 changed files with 221 additions and 68 deletions

View file

@ -14,12 +14,12 @@
}, },
"devDependencies": {}, "devDependencies": {},
"ignore": [], "ignore": [],
"version": "1.4.213", "version": "1.4.215",
"_release": "1.4.213", "_release": "1.4.215",
"_resolution": { "_resolution": {
"type": "version", "type": "version",
"tag": "1.4.213", "tag": "1.4.215",
"commit": "5db5ff0f3a13742f310688474a22b44e0d38cee5" "commit": "fb6cffaa7905a6b6f431175868b58d4027b9a35c"
}, },
"_source": "https://github.com/MediaBrowser/emby-webcomponents.git", "_source": "https://github.com/MediaBrowser/emby-webcomponents.git",
"_target": "^1.2.1", "_target": "^1.2.1",

View file

@ -10,6 +10,10 @@
this.checked = !this.checked; this.checked = !this.checked;
this.dispatchEvent(new CustomEvent('change', {
bubbles: true
}));
return false; return false;
} }
} }

View file

@ -0,0 +1,89 @@
define(['dialogHelper', 'globalize', 'userSettings', 'layoutManager', 'connectionManager', 'require', 'loading', 'scrollHelper', 'emby-checkbox', 'css!./../formdialog', 'material-icons'], function (dialogHelper, globalize, userSettings, layoutManager, connectionManager, require, loading, scrollHelper) {
function save(context) {
var chkIndicators = context.querySelectorAll('.chkIndicator');
for (var i = 0, length = chkIndicators.length; i < length; i++) {
var type = chkIndicators[i].getAttribute('data-type');
userSettings.set('guide-indicator-' + type, chkIndicators[i].checked);
}
}
function load(context) {
var chkIndicators = context.querySelectorAll('.chkIndicator');
for (var i = 0, length = chkIndicators.length; i < length; i++) {
var type = chkIndicators[i].getAttribute('data-type');
chkIndicators[i].checked = userSettings.get('guide-indicator-' + type) == 'true';
}
}
function showEditor() {
return new Promise(function (resolve, reject) {
var settingsChanged = false;
require(['text!./guide-settings.template.html'], function (template) {
var dialogOptions = {
removeOnClose: true,
scrollY: false
};
if (layoutManager.tv) {
dialogOptions.size = 'fullscreen';
} else {
dialogOptions.size = 'small';
}
var dlg = dialogHelper.createDialog(dialogOptions);
dlg.classList.add('formDialog');
var html = '';
html += globalize.translateDocument(template, 'sharedcomponents');
dlg.innerHTML = html;
document.body.appendChild(dlg);
currentDialog = dlg;
dlg.addEventListener('change', function () {
settingsChanged = true;
});
dlg.addEventListener('close', function () {
if (layoutManager.tv) {
scrollHelper.centerFocus.off(dlg.querySelector('.formDialogContent'), false);
}
save(dlg);
if (settingsChanged) {
resolve();
} else {
reject();
}
});
if (layoutManager.tv) {
scrollHelper.centerFocus.on(dlg.querySelector('.formDialogContent'), false);
}
load(dlg);
dialogHelper.open(dlg);
});
});
}
return {
show: showEditor
};
});

View file

@ -0,0 +1,18 @@
<div class="formDialogHeader">
<button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><i class="md-icon">&#xE5C4;</i></button>
<div class="formDialogHeaderTitle">
${Settings}
</div>
</div>
<div class="formDialogContent smoothScrollY">
<form class="dialogContentInner dialog-content-centered" style="padding-top:2em;">
<h3>${ShowIndicatorsFor}</h3>
<div class="checkboxContainer">
<label>
<input type="checkbox" is="emby-checkbox" class="chkIndicator" data-type="new" />
<span>${NewEpisodes}</span>
</label>
</div>
</form>
</div>

View file

@ -221,8 +221,9 @@
} }
.btnSelectDate { .btnSelectDate {
color: #fff;
padding-left: .5em; padding-left: .5em;
text-transform: none;
font-weight: normal;
} }
.channelHeaderCell { .channelHeaderCell {
@ -234,10 +235,6 @@
@media all and (max-width: 800px) { @media all and (max-width: 800px) {
.guideCurrentDay {
display: none;
}
.newTvProgram, .liveTvProgram, .premiereTvProgram, .guideHdIcon { .newTvProgram, .liveTvProgram, .premiereTvProgram, .guideHdIcon {
display: none; display: none;
} }
@ -267,7 +264,7 @@
} }
.timeslotHeader, .channelTimeslotHeader { .timeslotHeader, .channelTimeslotHeader {
height: 3.5em; height: 3em;
} }
.pointerInput .channelHeaderCell:hover { .pointerInput .channelHeaderCell:hover {
@ -402,3 +399,10 @@
-webkit-border-radius: 2px; -webkit-border-radius: 2px;
background: #888 no-repeat center; background: #888 no-repeat center;
} }
.guideOptions {
color: #eee;
flex-shrink: 0;
display: flex;
align-items: center;
}

View file

@ -1,4 +1,13 @@
define(['require', 'browser', 'globalize', 'connectionManager', 'serverNotifications', 'loading', 'datetime', 'focusManager', 'imageLoader', 'events', 'layoutManager', 'itemShortcuts', 'registrationservices', 'dom', 'clearButtonStyle', 'css!./guide.css', 'material-icons', 'scrollStyles', 'emby-button', 'paper-icon-button-light'], function (require, browser, globalize, connectionManager, serverNotifications, loading, datetime, focusManager, imageLoader, events, layoutManager, itemShortcuts, registrationServices, dom) { define(['require', 'browser', 'globalize', 'connectionManager', 'serverNotifications', 'loading', 'datetime', 'focusManager', 'userSettings', 'imageLoader', 'events', 'layoutManager', 'itemShortcuts', 'registrationservices', 'dom', 'clearButtonStyle', 'css!./guide.css', 'material-icons', 'scrollStyles', 'emby-button', 'paper-icon-button-light'], function (require, browser, globalize, connectionManager, serverNotifications, loading, datetime, focusManager, userSettings, imageLoader, events, layoutManager, itemShortcuts, registrationServices, dom) {
function showViewSettings(instance) {
require(['guide-settings-dialog'], function (guideSettingsDialog) {
guideSettingsDialog.show().then(function () {
instance.refresh();
});
});
}
function Guide(options) { function Guide(options) {
@ -168,8 +177,13 @@
console.log(nextDay); console.log(nextDay);
channelsPromise.then(function (channelsResult) { channelsPromise.then(function (channelsResult) {
var btnPreviousPage = context.querySelector('.btnPreviousPage');
var btnNextPage = context.querySelector('.btnNextPage');
if (channelsResult.TotalRecordCount > channelLimit) { if (channelsResult.TotalRecordCount > channelLimit) {
context.querySelector('.guidePaging').classList.remove('hide');
btnPreviousPage.classList.remove('hide');
btnNextPage.classList.remove('hide');
if (channelQuery.StartIndex) { if (channelQuery.StartIndex) {
context.querySelector('.btnPreviousPage').disabled = false; context.querySelector('.btnPreviousPage').disabled = false;
@ -178,13 +192,14 @@
} }
if ((channelQuery.StartIndex + channelLimit) < channelsResult.TotalRecordCount) { if ((channelQuery.StartIndex + channelLimit) < channelsResult.TotalRecordCount) {
context.querySelector('.btnNextPage').disabled = false; btnNextPage.disabled = false;
} else { } else {
context.querySelector('.btnNextPage').disabled = true; btnNextPage.disabled = true;
} }
} else { } else {
context.querySelector('.guidePaging').classList.add('hide'); btnPreviousPage.classList.add('hide');
btnNextPage.classList.add('hide');
} }
apiClient.getLiveTvPrograms({ apiClient.getLiveTvPrograms({
@ -415,7 +430,7 @@
showHdIcon: showIndicators, showHdIcon: showIndicators,
showLiveIndicator: showIndicators, showLiveIndicator: showIndicators,
showPremiereIndicator: showIndicators, showPremiereIndicator: showIndicators,
showNewIndicator: showIndicators showNewIndicator: userSettings.get('guide-indicator-new') == 'true'
}; };
for (var i = 0, length = channels.length; i < length; i++) { for (var i = 0, length = channels.length; i < length; i++) {
@ -611,13 +626,13 @@
function getFutureDateText(date) { function getFutureDateText(date) {
var weekday = []; var weekday = [];
weekday[0] = globalize.translate('sharedcomponents#OptionSundayShort'); weekday[0] = globalize.translate('sharedcomponents#Sunday');
weekday[1] = globalize.translate('sharedcomponents#OptionMondayShort'); weekday[1] = globalize.translate('sharedcomponents#Monday');
weekday[2] = globalize.translate('sharedcomponents#OptionTuesdayShort'); weekday[2] = globalize.translate('sharedcomponents#Tuesday');
weekday[3] = globalize.translate('sharedcomponents#OptionWednesdayShort'); weekday[3] = globalize.translate('sharedcomponents#Wednesday');
weekday[4] = globalize.translate('sharedcomponents#OptionThursdayShort'); weekday[4] = globalize.translate('sharedcomponents#Thursday');
weekday[5] = globalize.translate('sharedcomponents#OptionFridayShort'); weekday[5] = globalize.translate('sharedcomponents#Friday');
weekday[6] = globalize.translate('sharedcomponents#OptionSaturdayShort'); weekday[6] = globalize.translate('sharedcomponents#Saturday');
var day = weekday[date.getDay()]; var day = weekday[date.getDay()];
date = datetime.toLocaleDateString(date); date = datetime.toLocaleDateString(date);
@ -638,9 +653,7 @@
reloadGuide(page, newStartDate); reloadGuide(page, newStartDate);
var text = getFutureDateText(date); page.querySelector('.dateText').innerHTML = getFutureDateText(date);
text = '<span class="guideCurrentDay">' + text.replace(' ', ' </span>');
page.querySelector('.btnSelectDate').innerHTML = text;
} }
var dateOptions = []; var dateOptions = [];
@ -698,6 +711,11 @@
function selectDate(page) { function selectDate(page) {
var selectedDate = currentDate || new Date();
dateOptions.forEach(function (d) {
d.selected = new Date(d.id).getDate() == selectedDate.getDate();
});
require(['actionsheet'], function (actionsheet) { require(['actionsheet'], function (actionsheet) {
actionsheet.show({ actionsheet.show({
@ -739,7 +757,6 @@
return elem; return elem;
} }
var selectedMediaInfoTimeout;
function onProgramGridFocus(e) { function onProgramGridFocus(e) {
var programCell = parentWithClass(e.target, 'programCell'); var programCell = parentWithClass(e.target, 'programCell');
@ -838,10 +855,6 @@
selectDate(context); selectDate(context);
}); });
context.querySelector('.btnSelectDateIcon').addEventListener('click', function () {
selectDate(context);
});
context.querySelector('.btnUnlockGuide').addEventListener('click', function () { context.querySelector('.btnUnlockGuide').addEventListener('click', function () {
currentStartIndex = 0; currentStartIndex = 0;
channelsPromise = null; channelsPromise = null;
@ -860,6 +873,10 @@
reloadPage(context); reloadPage(context);
}); });
context.querySelector('.btnViewSettings').addEventListener('click', function () {
showViewSettings(self);
});
context.classList.add('tvguide'); context.classList.add('tvguide');
setScrollEvents(context, true); setScrollEvents(context, true);

View file

@ -1,6 +1,21 @@
<div class="tvGuideHeader"> <div class="guideOptions">
<button is="emby-button" type="button" class="btnSelectDate">
<i class="md-icon">&#xE916;</i>
<span class="dateText"></span>
</button>
<button is="paper-icon-button-light" type="button" class="btnViewSettings">
<i class="md-icon">&#xE42A;</i>
</button>
<button is="paper-icon-button-light" type="button" class="btnPreviousPage hide">
<i class="md-icon">&#xE5C4;</i>
</button>
<button is="paper-icon-button-light" type="button" class="btnNextPage hide">
<i class="md-icon">&#xE5C8;</i>
</button>
</div>
<div class="tvGuideHeader">
<div class="channelTimeslotHeader"> <div class="channelTimeslotHeader">
<button class="btnSelectDate clearButton" style="display:block;"></button>
</div> </div>
<div class="timeslotHeaders smoothScrollX visibleGuideScroller" style="scroll-behavior: auto;"></div> <div class="timeslotHeaders smoothScrollX visibleGuideScroller" style="scroll-behavior: auto;"></div>
</div> </div>
@ -18,16 +33,4 @@
<i class="md-icon">check</i> <i class="md-icon">check</i>
<span>${UnlockGuide}</span> <span>${UnlockGuide}</span>
</button> </button>
</div>
<div style="padding:.25em .5em;" class="guidePaging hide">
<button is="paper-icon-button-light" type="button" class="btnSelectDateIcon">
<i class="md-icon">date_range</i>
</button>
<button is="paper-icon-button-light" type="button" class="btnPreviousPage">
<i class="md-icon">arrow_back</i>
</button>
<button is="paper-icon-button-light" type="button" class="btnNextPage">
<i class="md-icon">arrow_forward</i>
</button>
</div> </div>

View file

@ -123,13 +123,13 @@ define(['playbackManager', 'focusManager', 'embyRouter', 'dom'], function (playb
break; break;
case 'next': case 'next':
if (playbackManager.isPlaying()) { if (playbackManager.isPlaying()) {
playbackManager.nextTrack(); playbackManager.nextChapter();
} }
break; break;
case 'previous': case 'previous':
if (playbackManager.isPlaying()) { if (playbackManager.isPlaying()) {
playbackManager.previousTrack(); playbackManager.previousChapter();
} }
break; break;
case 'guide': case 'guide':

View file

@ -99,13 +99,12 @@
return false; return false;
} }
function getRegistration(programId, apiClient) { function getRegistration(apiClient) {
loading.show(); loading.show();
return apiClient.getJSON(apiClient.getUrl('LiveTv/Registration', { return apiClient.getJSON(apiClient.getUrl('LiveTv/Registration', {
ProgramId: programId,
Feature: 'seriesrecordings' Feature: 'seriesrecordings'
})).then(function (result) { })).then(function (result) {
@ -140,7 +139,7 @@
showSeriesDays(context); showSeriesDays(context);
context.querySelector('.btnSubmit').classList.remove('hide'); context.querySelector('.btnSubmit').classList.remove('hide');
getRegistration(currentProgramId, apiClient).then(function (regInfo) { getRegistration(apiClient).then(function (regInfo) {
if (regInfo.IsValid) { if (regInfo.IsValid) {
context.querySelector('.btnSubmit').classList.remove('hide'); context.querySelector('.btnSubmit').classList.remove('hide');
@ -288,12 +287,8 @@
selectDays(context, defaultTimer.Days); selectDays(context, defaultTimer.Days);
if (program.ServiceName == 'Emby') { context.querySelector('.convertRecordingsContainer').classList.remove('hide');
context.querySelector('.convertRecordingsContainer').classList.remove('hide'); showConvertRecordingsUnlockMessage(context, apiClient);
showConvertRecordingsUnlockMessage(context, apiClient);
} else {
context.querySelector('.convertRecordingsContainer').classList.add('hide');
}
loading.hide(); loading.hide();
} }

View file

@ -1,4 +1,4 @@
define(['loading', 'viewManager', 'skinManager', 'pluginManager', 'backdrop', 'browser', 'pageJs', 'appSettings', 'apphost'], function (loading, viewManager, skinManager, pluginManager, backdrop, browser, page, appSettings, appHost) { define(['loading', 'dom', 'viewManager', 'skinManager', 'pluginManager', 'backdrop', 'browser', 'pageJs', 'appSettings', 'apphost'], function (loading, dom, viewManager, skinManager, pluginManager, backdrop, browser, page, appSettings, appHost) {
var embyRouter = { var embyRouter = {
showLocalLogin: function (apiClient, serverId, manualLogin) { showLocalLogin: function (apiClient, serverId, manualLogin) {
@ -481,12 +481,26 @@ define(['loading', 'viewManager', 'skinManager', 'pluginManager', 'backdrop', 'b
} }
} }
page.show(path, options);
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
setTimeout(resolve, 500);
resolveOnNextShow = resolve;
page.show(path, options);
}); });
} }
var resolveOnNextShow;
dom.addEventListener(document, 'viewshow', function () {
var resolve = resolveOnNextShow;
if (resolve) {
resolveOnNextShow = null;
resolve();
}
}, {
passive: true,
once: true
});
var currentRouteInfo; var currentRouteInfo;
function current() { function current() {
return currentRouteInfo ? currentRouteInfo.route : null; return currentRouteInfo ? currentRouteInfo.route : null;

View file

@ -276,5 +276,8 @@
"MoveRight": "Move right", "MoveRight": "Move right",
"MoveLeft": "Move left", "MoveLeft": "Move left",
"ConfirmDeleteImage": "Delete image?", "ConfirmDeleteImage": "Delete image?",
"HeaderEditImages": "Edit Images" "HeaderEditImages": "Edit Images",
"Settings": "Settings",
"ShowIndicatorsFor": "Show indicators for:",
"NewEpisodes": "New episodes"
} }

View file

@ -1,6 +1,6 @@
{ {
"name": "requirejs", "name": "requirejs",
"version": "2.3.0", "version": "2.3.1",
"ignore": [], "ignore": [],
"homepage": "http://requirejs.org", "homepage": "http://requirejs.org",
"authors": [ "authors": [
@ -14,11 +14,11 @@
"license": [ "license": [
"MIT" "MIT"
], ],
"_release": "2.3.0", "_release": "2.3.1",
"_resolution": { "_resolution": {
"type": "version", "type": "version",
"tag": "2.3.0", "tag": "2.3.1",
"commit": "49ddc059ef857de683315001bb8721d17c1686d6" "commit": "94785e8633448b668f292009fd2c31e3338a0074"
}, },
"_source": "https://github.com/jrburke/requirejs-bower.git", "_source": "https://github.com/jrburke/requirejs-bower.git",
"_target": "^2.1.22", "_target": "^2.1.22",

View file

@ -1,6 +1,6 @@
{ {
"name": "requirejs", "name": "requirejs",
"version": "2.3.0", "version": "2.3.1",
"ignore": [], "ignore": [],
"homepage": "http://requirejs.org", "homepage": "http://requirejs.org",
"authors": [ "authors": [

View file

@ -1,5 +1,5 @@
/** vim: et:ts=4:sw=4:sts=4 /** vim: et:ts=4:sw=4:sts=4
* @license RequireJS 2.3.0 Copyright jQuery Foundation and other contributors. * @license RequireJS 2.3.1 Copyright jQuery Foundation and other contributors.
* Released under MIT license, https://github.com/requirejs/requirejs/blob/master/LICENSE * Released under MIT license, https://github.com/requirejs/requirejs/blob/master/LICENSE
*/ */
//Not using strict: uneven strict support in browsers, #392, and causes //Not using strict: uneven strict support in browsers, #392, and causes
@ -11,7 +11,7 @@ var requirejs, require, define;
(function (global, setTimeout) { (function (global, setTimeout) {
var req, s, head, baseElement, dataMain, src, var req, s, head, baseElement, dataMain, src,
interactiveScript, currentlyAddingScript, mainScript, subPath, interactiveScript, currentlyAddingScript, mainScript, subPath,
version = '2.3.0', version = '2.3.1',
commentRegExp = /\/\*[\s\S]*?\*\/|([^:"'=]|^)\/\/.*$/mg, commentRegExp = /\/\*[\s\S]*?\*\/|([^:"'=]|^)\/\/.*$/mg,
cjsRequireRegExp = /[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g, cjsRequireRegExp = /[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,
jsSuffixRegExp = /\.js$/, jsSuffixRegExp = /\.js$/,

View file

@ -17,11 +17,16 @@
Dashboard.showLoadingMsg(); Dashboard.showLoadingMsg();
var limit = getLimit();
if (enableScrollX()) {
limit *= 2;
}
ApiClient.getLiveTvRecommendedPrograms({ ApiClient.getLiveTvRecommendedPrograms({
userId: Dashboard.getCurrentUserId(), userId: Dashboard.getCurrentUserId(),
IsAiring: true, IsAiring: true,
limit: getLimit() * 2, limit: limit,
ImageTypeLimit: 1, ImageTypeLimit: 1,
EnableImageTypes: "Primary", EnableImageTypes: "Primary",
EnableTotalRecordCount: false, EnableTotalRecordCount: false,

View file

@ -1245,6 +1245,7 @@ var AppInfo = {};
define("chaptercardbuilder", [embyWebComponentsBowerPath + "/cardbuilder/chaptercardbuilder"], returnFirstDependency); define("chaptercardbuilder", [embyWebComponentsBowerPath + "/cardbuilder/chaptercardbuilder"], returnFirstDependency);
define("tvguide", [embyWebComponentsBowerPath + "/guide/guide", 'embyRouter'], returnFirstDependency); define("tvguide", [embyWebComponentsBowerPath + "/guide/guide", 'embyRouter'], returnFirstDependency);
define("guide-settings-dialog", [embyWebComponentsBowerPath + "/guide/guide-settings"], returnFirstDependency);
define("syncDialog", [embyWebComponentsBowerPath + "/sync/sync"], returnFirstDependency); define("syncDialog", [embyWebComponentsBowerPath + "/sync/sync"], returnFirstDependency);
define("voiceDialog", [embyWebComponentsBowerPath + "/voice/voicedialog"], returnFirstDependency); define("voiceDialog", [embyWebComponentsBowerPath + "/voice/voicedialog"], returnFirstDependency);
define("voiceReceiver", [embyWebComponentsBowerPath + "/voice/voicereceiver"], returnFirstDependency); define("voiceReceiver", [embyWebComponentsBowerPath + "/voice/voicereceiver"], returnFirstDependency);