mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
update metadata editor
This commit is contained in:
parent
c08a709ad1
commit
0db16cad5a
44 changed files with 1125 additions and 438 deletions
|
@ -23,14 +23,14 @@
|
|||
"paper-styles": "polymerelements/paper-styles#^1.0.0",
|
||||
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
|
||||
},
|
||||
"homepage": "https://github.com/polymerelements/iron-flex-layout",
|
||||
"homepage": "https://github.com/PolymerElements/iron-flex-layout",
|
||||
"_release": "1.0.3",
|
||||
"_resolution": {
|
||||
"type": "version",
|
||||
"tag": "v1.0.3",
|
||||
"commit": "e6c2cfec18354973ac03e70dcd8afcc3c72d09b9"
|
||||
},
|
||||
"_source": "git://github.com/polymerelements/iron-flex-layout.git",
|
||||
"_source": "git://github.com/PolymerElements/iron-flex-layout.git",
|
||||
"_target": "^1.0.0",
|
||||
"_originalSource": "polymerelements/iron-flex-layout"
|
||||
"_originalSource": "PolymerElements/iron-flex-layout"
|
||||
}
|
|
@ -15,7 +15,7 @@
|
|||
<div id="items" class="itemsContainer paddedItemsContainer" style="text-align:center;"></div>
|
||||
</div>
|
||||
|
||||
<div data-role="panel" class="viewPanel" data-theme="a" data-position="right" data-display="overlay" data-position-fixed="true">
|
||||
<div data-role="panel" class="viewPanel" data-theme="b" data-position="right" data-display="overlay" data-position-fixed="true">
|
||||
<div class="ui-panel-inner">
|
||||
<form>
|
||||
|
||||
|
|
|
@ -273,8 +273,11 @@
|
|||
|
||||
dlg.setAttribute('with-backdrop', 'with-backdrop');
|
||||
dlg.setAttribute('role', 'alertdialog');
|
||||
|
||||
// without this safari will scroll the background instead of the dialog contents
|
||||
dlg.setAttribute('modal', 'modal');
|
||||
// but not needed here since this is already on top of an existing dialog
|
||||
// dlg.setAttribute('modal', 'modal');
|
||||
|
||||
// seeing max call stack size exceeded in the debugger with this
|
||||
dlg.setAttribute('noAutoFocus', 'noAutoFocus');
|
||||
dlg.entryAnimation = 'scale-up-animation';
|
||||
|
|
|
@ -136,8 +136,11 @@
|
|||
|
||||
dlg.setAttribute('with-backdrop', 'with-backdrop');
|
||||
dlg.setAttribute('role', 'alertdialog');
|
||||
|
||||
// without this safari will scroll the background instead of the dialog contents
|
||||
dlg.setAttribute('modal', 'modal');
|
||||
// but not needed here since this is already on top of an existing dialog
|
||||
// dlg.setAttribute('modal', 'modal');
|
||||
|
||||
// seeing max call stack size exceeded in the debugger with this
|
||||
dlg.setAttribute('noAutoFocus', 'noAutoFocus');
|
||||
dlg.entryAnimation = 'scale-up-animation';
|
||||
|
|
115
dashboard-ui/components/metadataeditor/metadataeditor.js
Normal file
115
dashboard-ui/components/metadataeditor/metadataeditor.js
Normal file
|
@ -0,0 +1,115 @@
|
|||
(function ($, document, window, FileReader, escape) {
|
||||
|
||||
var currentItem;
|
||||
|
||||
function getBaseRemoteOptions() {
|
||||
|
||||
var options = {};
|
||||
|
||||
options.itemId = currentItem.Id;
|
||||
|
||||
return options;
|
||||
}
|
||||
|
||||
function reload(page, item) {
|
||||
|
||||
Dashboard.showLoadingMsg();
|
||||
|
||||
if (item) {
|
||||
reloadItem(page, item);
|
||||
}
|
||||
else {
|
||||
ApiClient.getItem(Dashboard.getCurrentUserId(), currentItem.Id).done(function (item) {
|
||||
reloadItem(page, item);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function reloadItem(page, item) {
|
||||
|
||||
currentItem = item;
|
||||
|
||||
}
|
||||
|
||||
function initEditor(page) {
|
||||
|
||||
}
|
||||
|
||||
function showEditor(itemId) {
|
||||
|
||||
Dashboard.showLoadingMsg();
|
||||
|
||||
ApiClient.ajax({
|
||||
|
||||
type: 'GET',
|
||||
url: 'components/metadataeditor/metadataeditor.template.html'
|
||||
|
||||
}).done(function (template) {
|
||||
|
||||
ApiClient.getItem(Dashboard.getCurrentUserId(), itemId).done(function (item) {
|
||||
|
||||
var dlg = document.createElement('paper-dialog');
|
||||
|
||||
dlg.setAttribute('with-backdrop', 'with-backdrop');
|
||||
dlg.setAttribute('role', 'alertdialog');
|
||||
// without this safari will scroll the background instead of the dialog contents
|
||||
dlg.setAttribute('modal', 'modal');
|
||||
// seeing max call stack size exceeded in the debugger with this
|
||||
dlg.setAttribute('noAutoFocus', 'noAutoFocus');
|
||||
dlg.entryAnimation = 'scale-up-animation';
|
||||
dlg.exitAnimation = 'fade-out-animation';
|
||||
dlg.classList.add('fullscreen-editor-paper-dialog');
|
||||
dlg.classList.add('ui-body-b');
|
||||
dlg.classList.add('smoothScrollY');
|
||||
|
||||
var html = '';
|
||||
html += '<h2 class="dialogHeader">';
|
||||
html += '<paper-fab icon="arrow-back" class="mini btnCloseDialog"></paper-fab>';
|
||||
html += '<div style="display:inline-block;margin-left:.6em;vertical-align:middle;">' + Globalize.translate('ButtonEdit') + '</div>';
|
||||
html += '</h2>';
|
||||
|
||||
html += '<div class="editorContent">';
|
||||
html += Globalize.translateDocument(template);
|
||||
html += '</div>';
|
||||
|
||||
dlg.innerHTML = html;
|
||||
document.body.appendChild(dlg);
|
||||
|
||||
initEditor(dlg);
|
||||
|
||||
// Has to be assigned a z-index after the call to .open()
|
||||
$(dlg).on('iron-overlay-closed', onDialogClosed);
|
||||
|
||||
PaperDialogHelper.openWithHash(dlg, 'metadataeditor');
|
||||
|
||||
var editorContent = dlg.querySelector('.editorContent');
|
||||
reload(editorContent, item);
|
||||
|
||||
$('.btnCloseDialog', dlg).on('click', closeDialog);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function closeDialog() {
|
||||
|
||||
history.back();
|
||||
}
|
||||
|
||||
function onDialogClosed() {
|
||||
|
||||
$(this).remove();
|
||||
Dashboard.hideLoadingMsg();
|
||||
}
|
||||
|
||||
window.MetadataEditor = {
|
||||
show: function (itemId) {
|
||||
|
||||
require(['components/paperdialoghelper'], function () {
|
||||
|
||||
Dashboard.importCss('css/metadataeditor.css');
|
||||
showEditor(itemId);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
})(jQuery, document, window, window.FileReader, escape);
|
|
@ -0,0 +1,318 @@
|
|||
<form class="editItemMetadataForm editMetadataForm ">
|
||||
<div class="metadataFormFields">
|
||||
|
||||
<div style="margin:2em 0 .5em;text-align:center;">
|
||||
|
||||
<paper-button raised class="submit">
|
||||
<button class="btnSave clearButton" type="submit" data-role="none" style="display:inline-block;">
|
||||
<iron-icon icon="check"></iron-icon><span>${ButtonSave}</span>
|
||||
</button>
|
||||
</paper-button>
|
||||
|
||||
<paper-button raised class="subdued btnRefresh btnSimpleRefresh" style="background-color:#673AB7;"><iron-icon icon="refresh"></iron-icon><span>${ButtonRefresh}</span></paper-button>
|
||||
<paper-button id="btnIdentify" raised style="background-color:#009688;"><iron-icon icon="info"></iron-icon><span>${ButtonIdentify}</span></paper-button>
|
||||
<paper-button raised class="subdued notext btnMore"><iron-icon icon="more-vert"></iron-icon></paper-button>
|
||||
</div>
|
||||
|
||||
<div style="padding: 0 0 10px;">
|
||||
<div id="fldContentType" style="display:none;">
|
||||
<label for="selectContentType">${LabelContentType}</label>
|
||||
<select id="selectContentType" data-mini="true"></select>
|
||||
</div>
|
||||
<div id="fldPath">
|
||||
<paper-input id="txtPath" type="text" label="${LabelPath}" readonly></paper-input>
|
||||
</div>
|
||||
<div>
|
||||
<paper-input id="txtName" type="text" label="${LabelName}" required="required"></paper-input>
|
||||
</div>
|
||||
<div id="fldSortName" style="display: none;">
|
||||
<paper-input id="txtSortName" type="text" label="${LabelSortName}"></paper-input>
|
||||
</div>
|
||||
<div id="fldDateAdded" style="display: none;">
|
||||
<paper-input id="txtDateAdded" type="date" label="${LabelDateAdded}"></paper-input>
|
||||
</div>
|
||||
<div id="fldStatus" style="display: none;margin:1em 0;">
|
||||
<label for="selectStatus">${LabelStatus}</label>
|
||||
<select id="selectStatus" data-mini="true"></select>
|
||||
</div>
|
||||
<div id="fldArtist" style="display: none;">
|
||||
<paper-input id="txtArtist" type="text" label="${LabelArtists}" placeholder="${LabelArtistsHelp}"></paper-input>
|
||||
</div>
|
||||
<div id="fldAlbumArtist" style="display: none;">
|
||||
<paper-input id="txtAlbumArtist" type="text" label="${LabelAlbumArtists}" placeholder="${LabelArtistsHelp}"></paper-input>
|
||||
</div>
|
||||
<div id="fldAlbum" style="display: none;">
|
||||
<paper-input id="txtAlbum" type="text" label="${LabelAlbum}"></paper-input>
|
||||
</div>
|
||||
<div id="fldParentIndexNumber" style="display: none;">
|
||||
<paper-input id="txtParentIndexNumber" type="number"></paper-input>
|
||||
</div>
|
||||
<div id="fldIndexNumber" style="display: none;">
|
||||
<paper-input id="txtIndexNumber" type="number" pattern="[0-9]*"></paper-input>
|
||||
</div>
|
||||
<div id="fldCommunityRating" style="display: none;">
|
||||
<paper-input id="txtCommunityRating" type="number" step=".1" min="0" max="10" label="${LabelCommunityRating}"></paper-input>
|
||||
</div>
|
||||
<div id="fldCommunityVoteCount" style="display: none;">
|
||||
<paper-input id="txtCommunityVoteCount" type="number" step="1" label="${LabelVoteCount}"></paper-input>
|
||||
</div>
|
||||
<div id="fldMetascore" style="display: none;">
|
||||
<paper-input id="txtMetascore" type="number" step="1" min="0" max="100" label="${LabelMetascore}"></paper-input>
|
||||
</div>
|
||||
<div id="fldCriticRating" style="display: none;">
|
||||
<paper-input id="txtCriticRating" type="number" step=".1" label="${LabelCriticRating}"></paper-input>
|
||||
</div>
|
||||
<div id="fldCriticRatingSummary" style="display: none;">
|
||||
<paper-input id="txtCriticRatingSummary" type="text" label="${LabelCriticRatingSummary}"></paper-input>
|
||||
</div>
|
||||
<div id="fldAwardSummary" style="display: none;">
|
||||
<paper-input id="txtAwardSummary" type="text" label="${LabelAwardSummary}"></paper-input>
|
||||
</div>
|
||||
<div>
|
||||
<paper-input id="txtHomePageUrl" type="text" label="${LabelWebsite}"></paper-input>
|
||||
</div>
|
||||
<div id="fldTagline" style="display: none;">
|
||||
<paper-input id="txtTagline" type="text" label="${LabelTagline}"></paper-input>
|
||||
</div>
|
||||
<div>
|
||||
<label for="txtOverview" class="likePaperLabel">${LabelOverview}</label>
|
||||
<textarea id="txtOverview" class="likePaperText" data-role="none"></textarea>
|
||||
<br />
|
||||
</div>
|
||||
<div id="fldShortOverview" style="display: none;">
|
||||
<paper-input id="txtShortOverview" type="text" label="${LabelShortOverview}"></paper-input>
|
||||
</div>
|
||||
<div id="fldPremiereDate" style="display: none;">
|
||||
<label for="txtPremiereDate" class="likePaperLabel">${LabelReleaseDate}</label>
|
||||
<input id="txtPremiereDate" type="date" class="likePaperText" data-role="none" />
|
||||
</div>
|
||||
<div id="fldYear" style="display: none;">
|
||||
<paper-input id="txtProductionYear" type="number" label="${LabelYear}"></paper-input>
|
||||
</div>
|
||||
<div id="fldPlaceOfBirth" style="display: none;">
|
||||
<paper-input id="txtPlaceOfBirth" type="text" label="${LabelPlaceOfBirth}"></paper-input>
|
||||
</div>
|
||||
<div id="fldEndDate" style="display: none;">
|
||||
<label for="txtEndDate" class="likePaperLabel">${LabelEndDate}</label>
|
||||
<input id="txtEndDate" type="date" class="likePaperText" data-role="none" />
|
||||
</div>
|
||||
<div id="fldAirDays" style="display: none;">
|
||||
<p>${LabelAirDays}</p>
|
||||
|
||||
<div>
|
||||
<paper-checkbox class="chkAirDay" data-day="Sunday">${OptionSunday}</paper-checkbox>
|
||||
<paper-checkbox class="chkAirDay" data-day="Monday">${OptionMonday}</paper-checkbox>
|
||||
<paper-checkbox class="chkAirDay" data-day="Tuesday">${OptionTuesday}</paper-checkbox>
|
||||
<paper-checkbox class="chkAirDay" data-day="Wednesday">${OptionWednesday}</paper-checkbox>
|
||||
<paper-checkbox class="chkAirDay" data-day="Thursday">${OptionThursday}</paper-checkbox>
|
||||
<paper-checkbox class="chkAirDay" data-day="Friday">${OptionFriday}</paper-checkbox>
|
||||
<paper-checkbox class="chkAirDay" data-day="Saturday">${OptionSaturday}</paper-checkbox>
|
||||
</div>
|
||||
<br />
|
||||
|
||||
</div>
|
||||
<div id="fldAirTime" style="display: none;">
|
||||
<paper-input id="txtAirTime" type="text" label="${LabelAirTime}"></paper-input>
|
||||
</div>
|
||||
<div id="fldSeriesRuntime" style="display: none;">
|
||||
<paper-input id="txtSeriesRuntime" type="number" label="${LabelRuntimeMinutes}"></paper-input>
|
||||
</div>
|
||||
<div id="fldOfficialRating" style="display: none;">
|
||||
<br />
|
||||
<label for="selectOfficialRating">${LabelParentalRating}</label>
|
||||
<select id="selectOfficialRating" data-mini="true"></select>
|
||||
</div>
|
||||
<div id="fldCustomRating" style="display: none;">
|
||||
<br />
|
||||
<label for="selectCustomRating">${LabelCustomRating}</label>
|
||||
<select id="selectCustomRating" data-mini="true"></select>
|
||||
</div>
|
||||
<div id="fldBudget" style="display: none;">
|
||||
<paper-input id="txtBudget" type="number" label="${LabelBudget}"></paper-input>
|
||||
</div>
|
||||
<div id="fldRevenue" style="display: none;">
|
||||
<paper-input id="txtRevenue" type="number" label="${LabelRevenue}"></paper-input>
|
||||
</div>
|
||||
<div id="fldOriginalAspectRatio" style="display: none;">
|
||||
<paper-input id="txtOriginalAspectRatio" type="text" label="${LabelOriginalAspectRatio}"></paper-input>
|
||||
</div>
|
||||
<div id="fldPlayers" style="display: none;">
|
||||
<paper-input id="txtPlayers" type="number" pattern="[0-9]*" label="${LabelPlayers}"></paper-input>
|
||||
</div>
|
||||
<div id="fld3dFormat" style="display: none;">
|
||||
<br />
|
||||
<label for="select3dFormat">${Label3DFormat}</label>
|
||||
<select id="select3dFormat" data-mini="true">
|
||||
<option value=""></option>
|
||||
<option value="HalfSideBySide">HSBS</option>
|
||||
<option value="HalfTopAndBottom">HTAB</option>
|
||||
<option value="FullSideBySide">FSBS</option>
|
||||
<option value="FullTopAndBottom">FTAB</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
|
||||
<div class="detailSection" id="collapsibleDvdEpisodeInfo" style="display: none;">
|
||||
<h1>
|
||||
${HeaderAlternateEpisodeNumbers}
|
||||
</h1>
|
||||
<div class="detailSectionContent">
|
||||
<div>
|
||||
<paper-input id="txtDvdSeasonNumber" type="number" pattern="[0-9]*" label="${LabelDvdSeasonNumber}"></paper-input>
|
||||
</div>
|
||||
<div>
|
||||
<paper-input id="txtDvdEpisodeNumber" type="number" pattern="[0-9]*" label="${LabelDvdEpisodeNumber}"></paper-input>
|
||||
</div>
|
||||
<div>
|
||||
<paper-input id="txtAbsoluteEpisodeNumber" type="number" pattern="[0-9]*" label="${LabelAbsoluteEpisodeNumber}"></paper-input>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="detailSection" id="collapsibleSpecialEpisodeInfo" style="display: none;">
|
||||
<h1>
|
||||
${HeaderSpecialEpisodeInfo}
|
||||
</h1>
|
||||
<div class="detailSectionContent">
|
||||
<div>
|
||||
<paper-input id="txtAirsBeforeSeason" type="number" pattern="[0-9]*" label="${LabelAirsBeforeSeason}"></paper-input>
|
||||
</div>
|
||||
<div>
|
||||
<paper-input id="txtAirsAfterSeason" type="number" pattern="[0-9]*" label="${LabelAirsAfterSeason}"></paper-input>
|
||||
</div>
|
||||
<div>
|
||||
<paper-input id="txtAirsBeforeEpisode" type="number" pattern="[0-9]*" label="${LabelAirsBeforeEpisode}"></paper-input>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="detailSection">
|
||||
<h1>
|
||||
${HeaderExternalIds}
|
||||
</h1>
|
||||
<div class="detailSectionContent">
|
||||
<div class="externalIds editorFieldset">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="detailSection" id="collapsibleDisplaySettings" style="display:none;">
|
||||
<h1>
|
||||
${HeaderDisplaySettings}
|
||||
</h1>
|
||||
<div class="detailSectionContent">
|
||||
<div id="fldSourceType" style="display: none;" class="fldDisplaySetting">
|
||||
<paper-input id="txtDisplayMediaType" type="text" label="${LabelTreatImageAs}"></paper-input>
|
||||
</div>
|
||||
<div id="fldDisplaySpecialsInline" class="fldDisplaySetting">
|
||||
<br />
|
||||
<paper-checkbox id="chkDisplaySpecialsInline">${LabelDisplaySpecialsWithinSeasons}</paper-checkbox>
|
||||
</div>
|
||||
<div id="fldDisplayOrder" class="fldDisplaySetting">
|
||||
<label for="selectDisplayOrder" id="labelDisplayOrder">${LabelDisplayOrder}</label>
|
||||
<select id="selectDisplayOrder" data-mini="true"></select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div data-role="collapsible" data-mini="true" id="countriesCollapsible" style="display: none; margin-top: 1em;">
|
||||
<h3>${HeaderCountries}</h3>
|
||||
<div data-role="editableListviewContainer">
|
||||
<div>
|
||||
<div style="display: inline-block; width: 80%;">
|
||||
<input type="text" class="txtEditableListview" />
|
||||
</div>
|
||||
<paper-icon-button icon="add" onclick="EditItemMetadataPage.addElementToEditableListview(this)"></paper-icon-button>
|
||||
</div>
|
||||
<ul data-role="listview" data-inset="true" data-split-icon="delete" id="listCountries"></ul>
|
||||
</div>
|
||||
</div>
|
||||
<div data-role="collapsible" data-mini="true" id="genresCollapsible" style="display: none; margin-top: 1em;">
|
||||
<h3>${HeaderGenres}</h3>
|
||||
<div data-role="editableListviewContainer">
|
||||
<div>
|
||||
<div style="display: inline-block; width: 80%;">
|
||||
<input type="text" class="txtEditableListview" />
|
||||
</div>
|
||||
<paper-icon-button icon="add" onclick="EditItemMetadataPage.addElementToEditableListview(this)"></paper-icon-button>
|
||||
</div>
|
||||
<ul data-role="listview" data-inset="true" data-split-icon="delete" id="listGenres"></ul>
|
||||
</div>
|
||||
</div>
|
||||
<div data-mini="true" data-role="collapsible" id="peopleCollapsible" style="display: none; margin-top: 1em;">
|
||||
<h3>${HeaderPeople}</h3>
|
||||
<div>
|
||||
<br />
|
||||
<button type="button" id="btnAddPerson" data-icon="plus" data-mini="true" data-theme="a">${ButtonAdd}</button>
|
||||
<br />
|
||||
<ul data-role="listview" data-inset="true" data-split-icon="delete" id="peopleList"></ul>
|
||||
</div>
|
||||
</div>
|
||||
<div data-mini="true" data-role="collapsible" id="keywordsCollapsible" style="display: none; margin-top: 1em;">
|
||||
<h3>${HeaderPlotKeywords}</h3>
|
||||
<div data-role="editableListviewContainer">
|
||||
<div>
|
||||
<div style="display: inline-block; width: 80%;">
|
||||
<input type="text" class="txtEditableListview" />
|
||||
</div>
|
||||
<paper-icon-button icon="add" onclick="EditItemMetadataPage.addElementToEditableListview(this)"></paper-icon-button>
|
||||
</div>
|
||||
<ul data-role="listview" data-inset="true" data-split-icon="delete" id="listKeywords"></ul>
|
||||
</div>
|
||||
</div>
|
||||
<div data-role="collapsible" data-mini="true" id="studiosCollapsible" style="display: none; margin-top: 1em;">
|
||||
<h3>${HeaderStudios}</h3>
|
||||
<div data-role="editableListviewContainer">
|
||||
<div>
|
||||
<div style="display: inline-block; width: 80%;">
|
||||
<input type="text" class="txtEditableListview" />
|
||||
</div>
|
||||
<paper-icon-button icon="add" onclick="EditItemMetadataPage.addElementToEditableListview(this)"></paper-icon-button>
|
||||
</div>
|
||||
<ul data-role="listview" data-inset="true" data-split-icon="delete" id="listStudios"></ul>
|
||||
</div>
|
||||
</div>
|
||||
<div data-mini="true" data-role="collapsible" id="tagsCollapsible" style="display: none; margin-top: 1em;">
|
||||
<h3>${HeaderTags}</h3>
|
||||
<div data-role="editableListviewContainer">
|
||||
<div>
|
||||
<div style="display: inline-block; width: 80%;">
|
||||
<input type="text" class="txtEditableListview" />
|
||||
</div>
|
||||
<paper-icon-button icon="add" onclick="EditItemMetadataPage.addElementToEditableListview(this)"></paper-icon-button>
|
||||
</div>
|
||||
<ul data-role="listview" data-inset="true" data-split-icon="delete" id="listTags"></ul>
|
||||
</div>
|
||||
</div>
|
||||
<div id="metadataSettingsCollapsible" style="display: none; margin-top: 3em;">
|
||||
<h1>${HeaderMetadataSettings}</h1>
|
||||
<div>
|
||||
<div>
|
||||
<label for="selectLanguage">${LabelMetadataDownloadLanguage}</label>
|
||||
<select id="selectLanguage" data-mini="true"></select>
|
||||
</div>
|
||||
<div class="fieldDescription editorfieldDescription">${MessageLeaveEmptyToInherit}</div>
|
||||
<br />
|
||||
<div>
|
||||
<label for="selectCountry">${LabelCountry}</label>
|
||||
<select id="selectCountry" data-mini="true"></select>
|
||||
</div>
|
||||
<div class="fieldDescription editorfieldDescription">${MessageLeaveEmptyToInherit}</div>
|
||||
|
||||
<div>
|
||||
<br /><br />
|
||||
<paper-checkbox id="chkLockData" onchange="EditItemMetadataPage.setProviderSettingsContainerVisibility(this)">${LabelLockItemToPreventChanges}</paper-checkbox>
|
||||
</div>
|
||||
<br />
|
||||
<div id="providerSettingsContainer" style="display: none">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<button type="submit" data-role="none" class="clearButton btnSave">
|
||||
<paper-button raised class="submit block"><iron-icon icon="check"></iron-icon><span>${ButtonSave}</span></paper-button>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
</form>
|
5
dashboard-ui/cordova/ios/vlcplayer.js
vendored
5
dashboard-ui/cordova/ios/vlcplayer.js
vendored
|
@ -68,7 +68,10 @@
|
|||
|
||||
self.duration = function (val) {
|
||||
|
||||
return self.playerState.duration;
|
||||
// TODO
|
||||
// This value doesn't seem to be getting reported properly
|
||||
// Right now it's only used to determine if the player can seek, so for now we can mock it
|
||||
return 1;
|
||||
};
|
||||
|
||||
self.stop = function () {
|
||||
|
|
|
@ -704,8 +704,10 @@ span.itemCommunityRating:not(:empty) + .userDataIcons {
|
|||
|
||||
.detailSectionHeader {
|
||||
background-clip: border-box;
|
||||
padding: .75em 0 .75em 1em;
|
||||
border-radius: 4px;
|
||||
padding: 0 0 .25em .25em;
|
||||
background-color: transparent;
|
||||
border-radius: 0;
|
||||
margin-bottom: .5em;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
|
@ -718,26 +720,23 @@ span.itemCommunityRating:not(:empty) + .userDataIcons {
|
|||
}
|
||||
|
||||
.ui-body-a .detailSectionHeader {
|
||||
background-color: transparent;
|
||||
border: 1px solid #ddd;
|
||||
border-width: 0 0 1px 0;
|
||||
border-radius: 0;
|
||||
padding: 0 0 .25em .25em;
|
||||
margin-bottom: .5em;
|
||||
}
|
||||
|
||||
.ui-body-a .detailSectionHeader, .ui-body-a .detailSectionHeader h3 {
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
.detailSectionHeader paper-button {
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.ui-body-b .detailSectionHeader {
|
||||
background-color: #141414;
|
||||
border: 1px solid #444;
|
||||
border-width: 0 0 1px 0;
|
||||
}
|
||||
|
||||
.detailSectionHeader, .detailSectionHeader h3 {
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
.detailSectionHeader paper-button {
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.detailSectionHeaderButton {
|
||||
margin-left: 1em;
|
||||
}
|
||||
|
@ -1045,63 +1044,15 @@ span.itemCommunityRating:not(:empty) + .userDataIcons {
|
|||
height: 24px;
|
||||
border-radius: 50%;
|
||||
color: #fff;
|
||||
background: rgba(82, 181, 75, .8);
|
||||
line-height: 16px;
|
||||
background: rgba(0, 0, 0, .8);
|
||||
line-height: 19px;
|
||||
}
|
||||
|
||||
.syncWorkingIndicator {
|
||||
background: rgba(255, 106, 0, .8);
|
||||
}
|
||||
|
||||
.pieIndicator {
|
||||
height: 24px;
|
||||
position: absolute;
|
||||
top: 32px;
|
||||
right: 29px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.pieBackground {
|
||||
background-color: rgb(82, 181, 75);
|
||||
position: absolute;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
-moz-border-radius: 50px;
|
||||
-webkit-border-radius: 50px;
|
||||
-o-border-radius: 50px;
|
||||
border-radius: 50px;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.pieIndicator iron-icon {
|
||||
position: absolute;
|
||||
z-index: 4;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.pie {
|
||||
position: absolute;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
-moz-border-radius: 50px;
|
||||
-webkit-border-radius: 50px;
|
||||
-o-border-radius: 50px;
|
||||
border-radius: 50px;
|
||||
clip: rect(0px, 12px, 24px, 0px);
|
||||
background-color: rgba(10, 10, 10, 1);
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.hold {
|
||||
position: absolute;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
-moz-border-radius: 50px;
|
||||
-webkit-border-radius: 50px;
|
||||
-o-border-radius: 50px;
|
||||
border-radius: 50px;
|
||||
clip: rect(0px, 24px, 24px, 12px);
|
||||
z-index: 3;
|
||||
.workingSyncIndicator iron-icon {
|
||||
-webkit-animation: spin 3s infinite linear;
|
||||
-moz-animation: spin 3s infinite linear;
|
||||
-o-animation: spin 3s infinite linear;
|
||||
-ms-animation: spin 3s infinite linear;
|
||||
}
|
||||
|
||||
.playedIndicator {
|
||||
|
@ -1815,3 +1766,67 @@ span.itemCommunityRating:not(:empty) + .userDataIcons {
|
|||
font-size: 40px;
|
||||
}
|
||||
}
|
||||
|
||||
@-webkit-keyframes spin {
|
||||
0% {
|
||||
-moz-transform: rotateZ(0deg);
|
||||
-webkit-transform: rotateZ(0deg);
|
||||
-o-transform: rotateZ(0deg);
|
||||
-ms-transform: rotateZ(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-moz-transform: rotateZ(360deg);
|
||||
-webkit-transform: rotateZ(360deg);
|
||||
-o-transform: rotateZ(360deg);
|
||||
-ms-transform: rotateZ(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
@-moz-keyframes spin {
|
||||
0% {
|
||||
-moz-transform: rotateZ(0deg);
|
||||
-webkit-transform: rotateZ(0deg);
|
||||
-o-transform: rotateZ(0deg);
|
||||
-ms-transform: rotateZ(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-moz-transform: rotateZ(360deg);
|
||||
-webkit-transform: rotateZ(360deg);
|
||||
-o-transform: rotateZ(360deg);
|
||||
-ms-transform: rotateZ(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
@-o-keyframes spin {
|
||||
0% {
|
||||
-moz-transform: rotateZ(0deg);
|
||||
-webkit-transform: rotateZ(0deg);
|
||||
-o-transform: rotateZ(0deg);
|
||||
-ms-transform: rotateZ(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-moz-transform: rotateZ(360deg);
|
||||
-webkit-transform: rotateZ(360deg);
|
||||
-o-transform: rotateZ(360deg);
|
||||
-ms-transform: rotateZ(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
@-ms-keyframes spin {
|
||||
0% {
|
||||
-moz-transform: rotateZ(0deg);
|
||||
-webkit-transform: rotateZ(0deg);
|
||||
-o-transform: rotateZ(0deg);
|
||||
-ms-transform: rotateZ(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-moz-transform: rotateZ(360deg);
|
||||
-webkit-transform: rotateZ(360deg);
|
||||
-o-transform: rotateZ(360deg);
|
||||
-ms-transform: rotateZ(360deg);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -207,7 +207,7 @@
|
|||
}
|
||||
|
||||
.viewMenuBar.semiTransparent {
|
||||
background-color: rgba(18, 18, 18, .75);
|
||||
background-color: rgba(18, 18, 18, .70);
|
||||
}
|
||||
|
||||
.paperLibraryViewNav {
|
||||
|
|
|
@ -496,15 +496,6 @@ select {
|
|||
display: block;
|
||||
}
|
||||
|
||||
.ui-body-b select {
|
||||
border-color: #1f1f1f;
|
||||
background: #373737;
|
||||
}
|
||||
|
||||
.ui-body-b select option {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.ui-body-a select {
|
||||
background: none;
|
||||
border-color: rgb(221, 221, 221);
|
||||
|
@ -514,6 +505,15 @@ select {
|
|||
color: #000;
|
||||
}
|
||||
|
||||
.ui-body-b select {
|
||||
border-color: #1f1f1f;
|
||||
background: #373737;
|
||||
}
|
||||
|
||||
.ui-body-b select option {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
a[data-role='button'], button:not([data-role='none']):not(.clearButton) {
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-webkit-user-select: none;
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
<label for="selectVideoDecoder">${LabelHardwareVideoDecoder}</label>
|
||||
<select id="selectVideoDecoder" data-mini="true">
|
||||
<option value="">${OptionAuto}</option>
|
||||
<option value="qsv">Intel QSV</option>
|
||||
<option value="qsv">Intel Quick Sync</option>
|
||||
</select>
|
||||
<div class="fieldDescription">${LabelHardwareVideoDecoderHelp}</div>
|
||||
</li>
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
<div class="selectionCommandsControlGroup">
|
||||
<button class="btnAddToPlaylist" data-mini="true" data-icon="plus" data-inline="true" title="${ButtonAddToPlaylist}">${ButtonAddToPlaylist}</button>
|
||||
<button class="btnMergeVersions" data-mini="true" data-icon="recycle" data-inline="true" title="${ButtonGroupVersions}">${ButtonGroupVersions}</button>
|
||||
<button class="btnSyncItems" data-mini="true" data-icon="refresh" data-inline="true" title="${ButtonSync}">${ButtonSync}</button>
|
||||
<button class="btnSyncItems" data-mini="true" data-icon="sync" data-inline="true" title="${ButtonSync}">${ButtonSync}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
<div class="homePageSection">
|
||||
<div>
|
||||
<h1 class="listHeader nextUpHeader" style="display:inline-block;vertical-align:middle;">${HeaderNextUp}</h1>
|
||||
<paper-button raised class="submit mini categorySyncButton" data-category="NextUp"><iron-icon icon="refresh"></iron-icon><span>${ButtonSync}</span></paper-button>
|
||||
<paper-button raised class="submit mini categorySyncButton" data-category="NextUp"><iron-icon icon="sync"></iron-icon><span>${ButtonSync}</span></paper-button>
|
||||
</div>
|
||||
<div id="nextUpItems" class="itemsContainer">
|
||||
</div>
|
||||
|
|
|
@ -51,7 +51,7 @@
|
|||
<a class="btnPlayExternalTrailer hide clearLink" href="#" target="_blank"><paper-button raised class="subdued"><iron-icon icon="play-arrow"></iron-icon><span>${ButtonPlayTrailer}</span></paper-button></a>
|
||||
<paper-button raised class="subdued btnRecord hide"><iron-icon icon="videocam"></iron-icon><span>${ButtonRecord}</span></paper-button>
|
||||
<paper-button raised class="subdued hide btnCancelRecording"><iron-icon icon="delete"></iron-icon><span>${ButtonCancelRecording}</span></paper-button>
|
||||
<paper-button raised class="subdued btnSync hide"><iron-icon icon="refresh"></iron-icon><span>${ButtonSync}</span></paper-button>
|
||||
<paper-button raised class="subdued btnSync hide"><iron-icon icon="sync"></iron-icon><span>${ButtonSync}</span></paper-button>
|
||||
<paper-button raised class="subdued btnMoreCommands hide notext"><iron-icon icon="more-vert"></iron-icon></paper-button>
|
||||
<div class="detailUserDataIcons userDataIcons"></div>
|
||||
</div>
|
||||
|
@ -71,7 +71,7 @@
|
|||
<a class="btnPlayExternalTrailer hide clearLink" href="#" target="_blank"><paper-button raised class="subdued"><iron-icon icon="play-arrow"></iron-icon><span>${ButtonPlayTrailer}</span></paper-button></a>
|
||||
<paper-button raised class="subdued btnRecord hide"><iron-icon icon="videocam"></iron-icon><span>${ButtonRecord}</span></paper-button>
|
||||
<paper-button raised class="subdued hide btnCancelRecording"><iron-icon icon="delete"></iron-icon><span>${ButtonCancelRecording}</span></paper-button>
|
||||
<paper-button raised class="subdued btnSync hide"><iron-icon icon="refresh"></iron-icon><span>${ButtonSync}</span></paper-button>
|
||||
<paper-button raised class="subdued btnSync hide"><iron-icon icon="sync"></iron-icon><span>${ButtonSync}</span></paper-button>
|
||||
<paper-button raised class="subdued btnMoreCommands hide notext"><iron-icon icon="more-vert"></iron-icon></paper-button>
|
||||
<div class="detailUserDataIcons userDataIcons"></div>
|
||||
</div>
|
||||
|
|
|
@ -16,7 +16,8 @@
|
|||
<div id="items" class="itemsContainer" style="text-align:center;"></div>
|
||||
</div>
|
||||
|
||||
<div data-role="panel" class="viewPanel hide" data-theme="a" data-position="right" data-display="overlay" data-position-fixed="true">
|
||||
<div data-role="panel" class="viewPanel hide" data-theme="b" data-position="right" data-display="overlay" data-position-fixed="true">
|
||||
<div class="ui-panel-inner">
|
||||
<form>
|
||||
|
||||
<div>
|
||||
|
@ -58,7 +59,7 @@
|
|||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -107,7 +107,7 @@
|
|||
<div id="latestRecordings" class="homePageSection hide">
|
||||
<div>
|
||||
<h1 class="listHeader" style="display:inline-block;vertical-align:middle;">${HeaderLatestRecordings}</h1>
|
||||
<paper-button raised class="submit mini categorySyncButton" data-category="Latest"><iron-icon icon="refresh"></iron-icon><span>${ButtonSync}</span></paper-button>
|
||||
<paper-button raised class="submit mini categorySyncButton" data-category="Latest"><iron-icon icon="sync"></iron-icon><span>${ButtonSync}</span></paper-button>
|
||||
</div>
|
||||
<div class="recordingItems itemsContainer"></div>
|
||||
<br />
|
||||
|
@ -133,7 +133,7 @@
|
|||
</neon-animated-pages>
|
||||
</div>
|
||||
|
||||
<div data-role="panel" class="viewPanel channelViewPanel hide" data-theme="a" data-position="right" data-display="overlay" data-position-fixed="true">
|
||||
<div data-role="panel" class="viewPanel channelViewPanel hide" data-theme="b" data-position="right" data-display="overlay" data-position-fixed="true">
|
||||
<div class="ui-panel-inner">
|
||||
<form>
|
||||
<div>
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
<div id="resumableSection" style="display: none;" class="homePageSection">
|
||||
<div>
|
||||
<h1 class="listHeader" style="display:inline-block;vertical-align:middle;">${HeaderResume}</h1>
|
||||
<paper-button raised class="submit mini categorySyncButton" data-category="Resume"><iron-icon icon="refresh"></iron-icon><span>${ButtonSync}</span></paper-button>
|
||||
<paper-button raised class="submit mini categorySyncButton" data-category="Resume"><iron-icon icon="sync"></iron-icon><span>${ButtonSync}</span></paper-button>
|
||||
</div>
|
||||
|
||||
<div id="resumableItems" class="itemsContainer">
|
||||
|
@ -44,7 +44,7 @@
|
|||
<div class="homePageSection">
|
||||
<div>
|
||||
<h1 class="listHeader" style="display:inline-block;vertical-align:middle;">${HeaderLatestMovies}</h1>
|
||||
<paper-button raised class="submit mini categorySyncButton" data-category="Latest"><iron-icon icon="refresh"></iron-icon><span>${ButtonSync}</span></paper-button>
|
||||
<paper-button raised class="submit mini categorySyncButton" data-category="Latest"><iron-icon icon="sync"></iron-icon><span>${ButtonSync}</span></paper-button>
|
||||
</div>
|
||||
|
||||
<div id="recentlyAddedItems" class="itemsContainer">
|
||||
|
@ -72,11 +72,11 @@
|
|||
<button class="btnAddToPlaylist" data-mini="true" data-icon="plus" data-inline="true" title="${ButtonAddToPlaylist}">${ButtonAddToPlaylist}</button>
|
||||
<button class="btnMergeVersions" data-mini="true" data-icon="recycle" data-inline="true" title="${ButtonGroupVersions}">${ButtonGroupVersions}</button>
|
||||
<button class="btnAddToCollection" data-mini="true" data-icon="plus" data-inline="true" title="${ButtonAddToCollection}">${ButtonAddToCollection}</button>
|
||||
<button class="btnSyncItems" data-mini="true" data-icon="refresh" data-inline="true" title="${ButtonSync}">${ButtonSync}</button>
|
||||
<button class="btnSyncItems" data-mini="true" data-icon="sync" data-inline="true" title="${ButtonSync}">${ButtonSync}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="itemsContainer"></div>
|
||||
<div class="itemsContainer" style="text-align:center;"></div>
|
||||
</div>
|
||||
</neon-animatable>
|
||||
<neon-animatable>
|
||||
|
@ -87,7 +87,7 @@
|
|||
<div class="listTopPaging">
|
||||
</div>
|
||||
</div>
|
||||
<div class="itemsContainer"></div>
|
||||
<div class="itemsContainer" style="text-align:center;"></div>
|
||||
<p class="noItemsMessage" style="display:none;text-align:center;">${MessageNoTrailersFound}</p>
|
||||
</div>
|
||||
</neon-animatable>
|
||||
|
@ -139,7 +139,7 @@
|
|||
</neon-animated-pages>
|
||||
</div>
|
||||
|
||||
<div data-role="panel" class="viewPanel movieViewPanel hide" data-theme="a" data-position="right" data-display="overlay" data-position-fixed="true">
|
||||
<div data-role="panel" class="viewPanel movieViewPanel hide" data-theme="b" data-position="right" data-display="overlay" data-position-fixed="true">
|
||||
<div class="ui-panel-inner">
|
||||
<form>
|
||||
|
||||
|
@ -248,7 +248,7 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div data-role="panel" class="viewPanel trailerViewPanel hide" data-theme="a" data-position="right" data-display="overlay" data-position-fixed="true">
|
||||
<div data-role="panel" class="viewPanel trailerViewPanel hide" data-theme="b" data-position="right" data-display="overlay" data-position-fixed="true">
|
||||
<div class="ui-panel-inner">
|
||||
<form>
|
||||
|
||||
|
@ -290,7 +290,7 @@
|
|||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div data-role="panel" class="viewPanel peopleViewPanel hide" data-theme="a" data-position="right" data-display="overlay" data-position-fixed="true">
|
||||
<div data-role="panel" class="viewPanel peopleViewPanel hide" data-theme="b" data-position="right" data-display="overlay" data-position-fixed="true">
|
||||
<div class="ui-panel-inner">
|
||||
<form>
|
||||
|
||||
|
|
|
@ -68,7 +68,7 @@
|
|||
<div class="selectionCommands" style="display: none;">
|
||||
<div class="selectionCommandsControlGroup">
|
||||
<button class="btnAddToPlaylist" data-mini="true" data-icon="plus" data-inline="true" title="${ButtonAddToPlaylist}">${ButtonAddToPlaylist}</button>
|
||||
<button class="btnSyncItems" data-mini="true" data-icon="refresh" data-inline="true" title="${ButtonSync}">${ButtonSync}</button>
|
||||
<button class="btnSyncItems" data-mini="true" data-icon="sync" data-inline="true" title="${ButtonSync}">${ButtonSync}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -85,7 +85,7 @@
|
|||
<div class="selectionCommands" style="display: none;">
|
||||
<div class="selectionCommandsControlGroup">
|
||||
<button class="btnAddToPlaylist" data-mini="true" data-icon="plus" data-inline="true" title="${ButtonAddToPlaylist}">${ButtonAddToPlaylist}</button>
|
||||
<button class="btnSyncItems" data-mini="true" data-icon="refresh" data-inline="true" title="${ButtonSync}">${ButtonSync}</button>
|
||||
<button class="btnSyncItems" data-mini="true" data-icon="sync" data-inline="true" title="${ButtonSync}">${ButtonSync}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -102,7 +102,7 @@
|
|||
<div class="selectionCommands" style="display: none;">
|
||||
<div class="selectionCommandsControlGroup">
|
||||
<button class="btnAddToPlaylist" data-mini="true" data-icon="plus" data-inline="true" title="${ButtonAddToPlaylist}">${ButtonAddToPlaylist}</button>
|
||||
<button class="btnSyncItems" data-mini="true" data-icon="refresh" data-inline="true" title="${ButtonSync}">${ButtonSync}</button>
|
||||
<button class="btnSyncItems" data-mini="true" data-icon="sync" data-inline="true" title="${ButtonSync}">${ButtonSync}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -126,7 +126,7 @@
|
|||
<div class="selectionCommands" style="display: none;">
|
||||
<div class="selectionCommandsControlGroup">
|
||||
<button class="btnAddToPlaylist" data-mini="true" data-icon="plus" data-inline="true" title="${ButtonAddToPlaylist}">${ButtonAddToPlaylist}</button>
|
||||
<button class="btnSyncItems" data-mini="true" data-icon="refresh" data-inline="true" title="${ButtonSync}">${ButtonSync}</button>
|
||||
<button class="btnSyncItems" data-mini="true" data-icon="sync" data-inline="true" title="${ButtonSync}">${ButtonSync}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -136,7 +136,7 @@
|
|||
</neon-animated-pages>
|
||||
</div>
|
||||
|
||||
<div data-role="panel" class="viewPanel albumsViewPanel hide" data-theme="a" data-position="right" data-display="overlay" data-position-fixed="true">
|
||||
<div data-role="panel" class="viewPanel albumsViewPanel hide" data-theme="b" data-position="right" data-display="overlay" data-position-fixed="true">
|
||||
<div class="ui-panel-inner">
|
||||
<form>
|
||||
|
||||
|
@ -192,7 +192,7 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div data-role="panel" class="viewPanel artistsViewPanel hide" data-theme="a" data-position="right" data-display="overlay" data-position-fixed="true">
|
||||
<div data-role="panel" class="viewPanel artistsViewPanel hide" data-theme="b" data-position="right" data-display="overlay" data-position-fixed="true">
|
||||
<div class="ui-panel-inner">
|
||||
<form>
|
||||
|
||||
|
@ -227,7 +227,7 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div data-role="panel" class="viewPanel albumArtistsViewPanel hide" data-theme="a" data-position="right" data-display="overlay" data-position-fixed="true">
|
||||
<div data-role="panel" class="viewPanel albumArtistsViewPanel hide" data-theme="b" data-position="right" data-display="overlay" data-position-fixed="true">
|
||||
<div class="ui-panel-inner">
|
||||
<form>
|
||||
|
||||
|
@ -263,7 +263,7 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div data-role="panel" class="viewPanel songsViewPanel hide" data-theme="a" data-position="right" data-display="overlay" data-position-fixed="true">
|
||||
<div data-role="panel" class="viewPanel songsViewPanel hide" data-theme="b" data-position="right" data-display="overlay" data-position-fixed="true">
|
||||
<div class="ui-panel-inner">
|
||||
<form>
|
||||
|
||||
|
|
|
@ -70,7 +70,7 @@
|
|||
|
||||
<a href="#" class="clearLink lnkSync hide">
|
||||
<paper-icon-item>
|
||||
<paper-fab class="listAvatar" icon="refresh" style="background-color:#673AB7;" item-icon></paper-fab>
|
||||
<paper-fab class="listAvatar" icon="sync" style="background-color:#673AB7;" item-icon></paper-fab>
|
||||
<paper-item-body two-line>
|
||||
<div>${ButtonSyncSettings}</div>
|
||||
<div secondary>${ButtonSyncSettingsHelp}</div>
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
<div class="localSyncStatus hide" style="text-align:right;margin:0 0 1em;">
|
||||
<span style="vertical-align: middle;margin-right:.5em;" class="labelSyncStatus">${LabelSyncStatus}</span>
|
||||
<paper-spinner class="syncSpinner" active style="vertical-align: middle;"></paper-spinner>
|
||||
<paper-fab class="btnSyncNow bottomFab" icon="refresh" style="position:fixed;right:20px;background-color:#2ad;z-index:10;"></paper-fab>
|
||||
<paper-fab class="btnSyncNow bottomFab" icon="sync" style="position:fixed;right:20px;background-color:#2ad;z-index:10;"></paper-fab>
|
||||
</div>
|
||||
<div class="syncActivity">
|
||||
|
||||
|
|
|
@ -1378,6 +1378,12 @@
|
|||
});
|
||||
}
|
||||
|
||||
menuItems.push({
|
||||
name: Globalize.translate('ButtonEditImages'),
|
||||
id: 'editimages',
|
||||
ironIcon: 'photo'
|
||||
});
|
||||
|
||||
require(['actionsheet'], function () {
|
||||
|
||||
ActionSheetElement.show({
|
||||
|
@ -1393,6 +1399,9 @@
|
|||
case 'delete':
|
||||
LibraryBrowser.deleteItem(currentItem.Id);
|
||||
break;
|
||||
case 'editimages':
|
||||
LibraryBrowser.editImages(currentItem.Id);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -1443,8 +1452,6 @@
|
|||
|
||||
if (data.id != currentItem.Id) {
|
||||
|
||||
//Dashboard.navigate('edititemmetadata.html?id=' + data.id);
|
||||
|
||||
//$.mobile.urlHistory.ignoreNextHashChange = true;
|
||||
window.location.hash = 'editItemMetadataPage?id=' + data.id;
|
||||
reload(page);
|
||||
|
|
|
@ -244,6 +244,17 @@
|
|||
Events.on(page.querySelector('.btnTakeTour'), 'click', function () {
|
||||
takeTour(page, Dashboard.getCurrentUserId());
|
||||
});
|
||||
});
|
||||
|
||||
pageIdOn('pageshowready', "indexPage", function () {
|
||||
|
||||
var page = this;
|
||||
|
||||
});
|
||||
|
||||
pageIdOn('pagebeforehide', "indexPage", function () {
|
||||
|
||||
var page = this;
|
||||
|
||||
});
|
||||
|
||||
|
|
|
@ -752,6 +752,16 @@
|
|||
});
|
||||
},
|
||||
|
||||
editMetadata: function (itemId) {
|
||||
|
||||
Dashboard.navigate('edititemmetadata.html?id=' + itemId);
|
||||
return;
|
||||
require(['components/metadataeditor/metadataeditor'], function () {
|
||||
|
||||
MetadataEditor.show(itemId);
|
||||
});
|
||||
},
|
||||
|
||||
showMoreCommands: function (positionTo, itemId, commands) {
|
||||
|
||||
var items = [];
|
||||
|
@ -861,7 +871,7 @@
|
|||
break;
|
||||
}
|
||||
case 'edit':
|
||||
Dashboard.navigate('edititemmetadata.html?id=' + itemId);
|
||||
LibraryBrowser.editMetadata(itemId);
|
||||
break;
|
||||
case 'editsubtitles':
|
||||
LibraryBrowser.editSubtitles(itemId);
|
||||
|
@ -2345,26 +2355,19 @@
|
|||
|
||||
getSyncIndicator: function (item) {
|
||||
|
||||
if (item.SyncPercent) {
|
||||
|
||||
if (item.SyncPercent >= 100) {
|
||||
return '<div class="syncIndicator"><iron-icon icon="refresh"></iron-icon></div>';
|
||||
}
|
||||
|
||||
var degree = (item.SyncPercent / 100) * 360;
|
||||
return '<div class="pieIndicator"><iron-icon icon="refresh"></iron-icon><div class="pieBackground"></div><div class="hold"><div class="pie" style="-webkit-transform: rotate(' + degree + 'deg);-moz-transform: rotate(' + degree + 'deg);-o-transform: rotate(' + degree + 'deg);transform: rotate(' + degree + 'deg);"></div></div></div>';
|
||||
}
|
||||
|
||||
if (item.SyncStatus) {
|
||||
if (item.SyncStatus == 'Queued' || item.SyncStatus == 'Converting' || item.SyncStatus == 'ReadyToTransfer' || item.SyncStatus == 'Transferring') {
|
||||
|
||||
return '<div class="syncIndicator syncWorkingIndicator"><iron-icon icon="refresh"></iron-icon></div>';
|
||||
}
|
||||
|
||||
if (item.SyncStatus == 'Synced') {
|
||||
|
||||
return '<div class="syncIndicator"><iron-icon icon="refresh"></iron-icon></div>';
|
||||
return '<div class="syncIndicator"><iron-icon icon="sync"></iron-icon></div>';
|
||||
}
|
||||
|
||||
var syncPercent = item.SyncPercent;
|
||||
if (syncPercent) {
|
||||
return '<div class="workingSyncIndicator syncIndicator"><iron-icon icon="sync"></iron-icon></div>';
|
||||
}
|
||||
|
||||
if (item.SyncStatus == 'Queued' || item.SyncStatus == 'Converting' || item.SyncStatus == 'ReadyToTransfer' || item.SyncStatus == 'Transferring') {
|
||||
|
||||
return '<div class="workingSyncIndicator syncIndicator"><iron-icon icon="sync"></iron-icon></div>';
|
||||
}
|
||||
|
||||
return '';
|
||||
|
|
|
@ -428,7 +428,7 @@
|
|||
break;
|
||||
}
|
||||
case 'edit':
|
||||
Dashboard.navigate('edititemmetadata.html?id=' + itemId);
|
||||
LibraryBrowser.editMetadata(itemId);
|
||||
break;
|
||||
case 'refresh':
|
||||
ApiClient.refreshItem(itemId, {
|
||||
|
@ -796,7 +796,7 @@
|
|||
contentHtml += '<paper-button data-href="' + LibraryBrowser.getHref(item, context) + '" raised class="submit" style="background-color: #673AB7;" onclick="Dashboard.navigate(this.getAttribute(\'data-href\'));"><iron-icon icon="folder-open"></iron-icon><span>' + Globalize.translate('ButtonOpen') + '</span></paper-button>';
|
||||
|
||||
if (SyncManager.isAvailable(item, user)) {
|
||||
contentHtml += '<paper-button raised class="submit btnSync"><iron-icon icon="refresh"></iron-icon><span>' + Globalize.translate('ButtonSync') + '</span></paper-button>';
|
||||
contentHtml += '<paper-button raised class="submit btnSync"><iron-icon icon="sync"></iron-icon><span>' + Globalize.translate('ButtonSync') + '</span></paper-button>';
|
||||
}
|
||||
|
||||
contentHtml += '</div>';
|
||||
|
@ -1273,7 +1273,6 @@
|
|||
$('<div class="playedIndicator"></div>').insertAfter($('.cardOverlayTarget', card));
|
||||
}
|
||||
$('.playedIndicator', card).html('<iron-icon icon="check"></iron-icon>');
|
||||
$('.cardProgress', card).remove();
|
||||
}
|
||||
else if (userData.UnplayedItemCount) {
|
||||
|
||||
|
@ -1283,13 +1282,23 @@
|
|||
}
|
||||
$('.playedIndicator', card).html(userData.UnplayedItemCount);
|
||||
}
|
||||
else {
|
||||
|
||||
$('.playedIndicator', card).remove();
|
||||
|
||||
var progressHtml = LibraryBrowser.getItemProgressBarHtml(userData);
|
||||
|
||||
$('.cardProgress', card).html(progressHtml);
|
||||
if (progressHtml) {
|
||||
var cardProgress = card.querySelector('.cardProgress');
|
||||
|
||||
if (!cardProgress) {
|
||||
cardProgress = document.createElement('div');
|
||||
cardProgress.classList.add('cardProgress');
|
||||
|
||||
$('.cardFooter', card).append(cardProgress);
|
||||
}
|
||||
|
||||
cardProgress.innerHTML = progressHtml;
|
||||
}
|
||||
else {
|
||||
$('.cardProgress', card).remove();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
|
||||
var viewMenuBar = document.createElement('div');
|
||||
viewMenuBar.classList.add('viewMenuBar');
|
||||
viewMenuBar.classList.add('ui-bar-b');
|
||||
viewMenuBar.classList.add('ui-body-b');
|
||||
viewMenuBar.innerHTML = html;
|
||||
|
||||
document.body.appendChild(viewMenuBar);
|
||||
|
@ -356,7 +356,7 @@
|
|||
html += '<a class="sidebarLink lnkMediaFolder lnkMySettings" onclick="return LibraryMenu.onLinkClicked(event, this);" data-itemid="mysync" href="mypreferencesmenu.html?userId=' + user.localUser.Id + '"><iron-icon icon="settings" class="sidebarLinkIcon"></iron-icon><span class="sidebarLinkText">' + Globalize.translate('ButtonSettings') + '</span></a>';
|
||||
}
|
||||
|
||||
html += '<a class="sidebarLink lnkMediaFolder lnkMySync" data-itemid="mysync" onclick="return LibraryMenu.onLinkClicked(event, this);" href="mysync.html"><iron-icon icon="refresh" class="sidebarLinkIcon"></iron-icon><span class="sidebarLinkText">' + Globalize.translate('ButtonSync') + '</span></a>';
|
||||
html += '<a class="sidebarLink lnkMediaFolder lnkMySync" data-itemid="mysync" onclick="return LibraryMenu.onLinkClicked(event, this);" href="mysync.html"><iron-icon icon="sync" class="sidebarLinkIcon"></iron-icon><span class="sidebarLinkText">' + Globalize.translate('ButtonSync') + '</span></a>';
|
||||
|
||||
if (Dashboard.isConnectMode()) {
|
||||
html += '<a class="sidebarLink lnkMediaFolder" data-itemid="selectserver" onclick="return LibraryMenu.onLinkClicked(event, this);" href="selectserver.html"><iron-icon icon="wifi" class="sidebarLinkIcon"></iron-icon><span class="sidebarLinkText">' + Globalize.translate('ButtonSelectServer') + '</span></a>';
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
(function () {
|
||||
|
||||
var syncPromise;
|
||||
var lastStart = 0;
|
||||
|
||||
window.LocalSync = {
|
||||
|
||||
|
@ -13,6 +14,7 @@
|
|||
if (!syncPromise) {
|
||||
require(['multiserversync'], function () {
|
||||
|
||||
lastStart = new Date().getTime();
|
||||
syncPromise = new MediaBrowser.MultiServerSync(ConnectionManager).sync().done(function () {
|
||||
|
||||
syncPromise = null;
|
||||
|
@ -34,15 +36,23 @@
|
|||
}
|
||||
};
|
||||
|
||||
Dashboard.ready(function () {
|
||||
var syncInterval = 1800000;
|
||||
|
||||
function restartInterval() {
|
||||
if (LocalSync.isSupported) {
|
||||
setInterval(function () {
|
||||
|
||||
LocalSync.startSync();
|
||||
|
||||
}, 3600000);
|
||||
}, syncInterval);
|
||||
|
||||
if (lastStart > 0 && (now - lastStart) >= syncInterval) {
|
||||
LocalSync.startSync();
|
||||
}
|
||||
}
|
||||
//LocalSync.startSync();
|
||||
});
|
||||
}
|
||||
|
||||
Dashboard.ready(restartInterval);
|
||||
document.addEventListener("resume", restartInterval, false);
|
||||
})();
|
|
@ -5,7 +5,6 @@
|
|||
var self = this;
|
||||
|
||||
var currentProgressInterval;
|
||||
var canClientSeek;
|
||||
var currentPlaylistIndex = 0;
|
||||
|
||||
self.currentMediaRenderer = null;
|
||||
|
@ -513,17 +512,19 @@
|
|||
return supportsTextTracks;
|
||||
};
|
||||
|
||||
self.updateCanClientSeek = function (mediaRenderer) {
|
||||
// Returns true if the player can seek using native client-side seeking functions
|
||||
function canPlayerSeek() {
|
||||
|
||||
var mediaRenderer = self.currentMediaRenderer;
|
||||
var currentSrc = self.getCurrentSrc(mediaRenderer);
|
||||
|
||||
if ((currentSrc || '').indexOf('.m3u8') != -1) {
|
||||
canClientSeek = true;
|
||||
return true;
|
||||
} else {
|
||||
var duration = mediaRenderer.duration();
|
||||
canClientSeek = duration && !isNaN(duration) && duration != Number.POSITIVE_INFINITY && duration != Number.NEGATIVE_INFINITY;
|
||||
return duration && !isNaN(duration) && duration != Number.POSITIVE_INFINITY && duration != Number.NEGATIVE_INFINITY;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
self.getCurrentSrc = function (mediaRenderer) {
|
||||
return mediaRenderer.currentSrc();
|
||||
|
@ -610,7 +611,7 @@
|
|||
|
||||
var mediaRenderer = self.currentMediaRenderer;
|
||||
|
||||
if (canClientSeek && params == null) {
|
||||
if (canPlayerSeek() && params == null) {
|
||||
|
||||
mediaRenderer.currentTime(ticks / 10000);
|
||||
return;
|
||||
|
@ -664,8 +665,6 @@
|
|||
|
||||
$(mediaRenderer).one("play", function () {
|
||||
|
||||
self.updateCanClientSeek(this);
|
||||
|
||||
Events.on(this, 'ended', self.onPlaybackStopped);
|
||||
|
||||
$(this).one('ended', self.playNextAfterEnded);
|
||||
|
@ -742,7 +741,7 @@
|
|||
|
||||
if (positionSlider) {
|
||||
|
||||
positionSlider.disabled = !((self.currentDurationTicks || 0) > 0 || canClientSeek);
|
||||
positionSlider.disabled = !((self.currentDurationTicks || 0) > 0 || canPlayerSeek());
|
||||
}
|
||||
|
||||
if (currentTimeElement) {
|
||||
|
@ -1600,7 +1599,7 @@
|
|||
RunTimeTicks: mediaSource.RunTimeTicks
|
||||
};
|
||||
|
||||
state.PlayState.CanSeek = (mediaSource.RunTimeTicks || 0) > 0 || canClientSeek;
|
||||
state.PlayState.CanSeek = (mediaSource.RunTimeTicks || 0) > 0 || canPlayerSeek();
|
||||
}
|
||||
|
||||
if (item) {
|
||||
|
@ -1694,8 +1693,6 @@
|
|||
|
||||
self.onPlaybackStart = function (mediaRenderer, item, mediaSource) {
|
||||
|
||||
self.updateCanClientSeek(mediaRenderer);
|
||||
|
||||
var state = self.getPlayerStateInternal(mediaRenderer, item, mediaSource);
|
||||
|
||||
Events.trigger(self, 'playbackstart', [state]);
|
||||
|
|
|
@ -117,12 +117,12 @@ var Dashboard = {
|
|||
}
|
||||
},
|
||||
|
||||
onPopupOpen: function(){
|
||||
onPopupOpen: function () {
|
||||
Dashboard.popupCount = (Dashboard.popupCount || 0) + 1;
|
||||
document.body.classList.add('bodyWithPopupOpen');
|
||||
},
|
||||
|
||||
onPopupClose: function(){
|
||||
onPopupClose: function () {
|
||||
|
||||
Dashboard.popupCount = (Dashboard.popupCount || 1) - 1;
|
||||
|
||||
|
@ -1592,7 +1592,7 @@ var Dashboard = {
|
|||
}
|
||||
},
|
||||
|
||||
getAppInfo: function (appName, deviceId, deviceName) {
|
||||
getAppInfo: function (appName, appVersion, deviceId, deviceName) {
|
||||
|
||||
function generateDeviceName() {
|
||||
|
||||
|
@ -1624,7 +1624,7 @@ var Dashboard = {
|
|||
return name;
|
||||
}
|
||||
|
||||
var appVersion = window.dashboardVersion;
|
||||
appVersion = appVersion || window.dashboardVersion;
|
||||
appName = appName || "Emby Web Client";
|
||||
|
||||
deviceName = deviceName || generateDeviceName();
|
||||
|
@ -1991,7 +1991,7 @@ var AppInfo = {};
|
|||
}
|
||||
}
|
||||
|
||||
function init(deferred, capabilities, appName, deviceId, deviceName) {
|
||||
function init(deferred, capabilities, appName, appVersion, deviceId, deviceName) {
|
||||
|
||||
requirejs.config({
|
||||
urlArgs: "v=" + window.dashboardVersion,
|
||||
|
@ -2174,7 +2174,7 @@ var AppInfo = {};
|
|||
}
|
||||
|
||||
require(deps, function () {
|
||||
$.extend(AppInfo, Dashboard.getAppInfo(appName, deviceId, deviceName));
|
||||
$.extend(AppInfo, Dashboard.getAppInfo(appName, appVersion, deviceId, deviceName));
|
||||
|
||||
initAfterDependencies(deferred, capabilities);
|
||||
});
|
||||
|
@ -2300,11 +2300,13 @@ var AppInfo = {};
|
|||
|
||||
require(['cordova/imagestore']);
|
||||
|
||||
cordova.getAppVersion.getVersionNumber(function (appVersion) {
|
||||
var capablities = Dashboard.capabilities();
|
||||
|
||||
var name = $.browser.android ? "Emby for Android" : ($.browser.safari ? "Emby for iOS" : "Emby Mobile");
|
||||
|
||||
init(deferred, capablities, name, deviceId, device.model);
|
||||
init(deferred, capablities, name, appVersion, deviceId, device.model);
|
||||
});
|
||||
}
|
||||
|
||||
function initCordova(deferred) {
|
||||
|
@ -2398,13 +2400,13 @@ pageClassOn('pageshow', "page", function () {
|
|||
if (currentTheme == 'a') {
|
||||
docElem.classList.add('background-theme-a');
|
||||
docElem.classList.remove('background-theme-b');
|
||||
docElem.classList.add('ui-body-a');
|
||||
docElem.classList.remove('ui-body-b');
|
||||
page.classList.add('ui-body-a');
|
||||
page.classList.remove('ui-body-b');
|
||||
} else {
|
||||
docElem.classList.add('background-theme-b');
|
||||
docElem.classList.remove('background-theme-a');
|
||||
docElem.classList.add('ui-body-b');
|
||||
docElem.classList.remove('ui-body-a');
|
||||
page.classList.add('ui-body-b');
|
||||
page.classList.remove('ui-body-a');
|
||||
}
|
||||
|
||||
if (currentTheme != 'a' && !$.browser.mobile) {
|
||||
|
|
|
@ -236,7 +236,7 @@
|
|||
html += '<div class="formFields"></div>';
|
||||
|
||||
html += '<p>';
|
||||
html += '<button type="submit" data-role="none" class="clearButton"><paper-button raised class="submit block"><iron-icon icon="refresh"></iron-icon><span>' + Globalize.translate('ButtonSync') + '</span></paper-button></button>';
|
||||
html += '<button type="submit" data-role="none" class="clearButton"><paper-button raised class="submit block"><iron-icon icon="sync"></iron-icon><span>' + Globalize.translate('ButtonSync') + '</span></paper-button></button>';
|
||||
html += '</p>';
|
||||
|
||||
html += '</form>';
|
||||
|
|
|
@ -55,7 +55,7 @@
|
|||
html += '<div class="cardImage coveredCardImage lazy" data-src="' + imgUrl + '" style="' + style + '">';
|
||||
|
||||
if (job.Progress && job.Progress < 100) {
|
||||
html += '<div class="cardFooter">';
|
||||
html += '<div class="cardFooter fullCardFooter lightCardFooter">';
|
||||
html += "<div class='cardText cardProgress'>";
|
||||
html += '<progress class="itemProgressBar" min="0" max="100" value="' + job.Progress + '"></progress>';
|
||||
html += "</div>";
|
||||
|
@ -147,14 +147,18 @@
|
|||
var cardBoxCssClass = 'cardBox visualCardBox';
|
||||
|
||||
var syncJobPage = 'syncjob.html';
|
||||
var showTargetName = true;
|
||||
|
||||
if ($(page).hasClass('mySyncPage')) {
|
||||
syncJobPage = 'mysyncjob.html';
|
||||
|
||||
showTargetName = !hasLocalSync();
|
||||
}
|
||||
|
||||
for (var i = 0, length = jobs.length; i < length; i++) {
|
||||
|
||||
var job = jobs[i];
|
||||
if (showTargetName) {
|
||||
var targetName = job.TargetName || 'Unknown';
|
||||
|
||||
if (targetName != lastTargetName) {
|
||||
|
@ -169,10 +173,11 @@
|
|||
|
||||
html += '<div class="detailSectionHeader">';
|
||||
|
||||
html += '<div style="display:inline-block;vertical-align:middle;">' + targetName + '</div>';
|
||||
html += '<div>' + targetName + '</div>';
|
||||
|
||||
html += '</div>';
|
||||
}
|
||||
}
|
||||
|
||||
html += getSyncJobHtml(page, job, cardBoxCssClass, syncJobPage);
|
||||
}
|
||||
|
@ -236,6 +241,10 @@
|
|||
});
|
||||
}
|
||||
|
||||
function hasLocalSync() {
|
||||
return Dashboard.capabilities().SupportsSync;
|
||||
}
|
||||
|
||||
function reloadData(page) {
|
||||
|
||||
Dashboard.showLoadingMsg();
|
||||
|
@ -246,6 +255,10 @@
|
|||
|
||||
if ($(page).hasClass('mySyncPage')) {
|
||||
options.UserId = Dashboard.getCurrentUserId();
|
||||
|
||||
if (hasLocalSync()) {
|
||||
options.TargetId = ApiClient.deviceId();
|
||||
}
|
||||
}
|
||||
|
||||
ApiClient.getJSON(ApiClient.getUrl('Sync/Jobs', options)).done(function (response) {
|
||||
|
@ -263,7 +276,16 @@
|
|||
var page = $.mobile.activePage;
|
||||
|
||||
if (msg.MessageType == "SyncJobs") {
|
||||
loadData(page, msg.Data);
|
||||
|
||||
var data = msg.Data;
|
||||
|
||||
if (hasLocalSync()) {
|
||||
var targetId = ApiClient.deviceId();
|
||||
data = data.filter(function (j) {
|
||||
return TargetId = targetId;
|
||||
});
|
||||
}
|
||||
loadData(page, data);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -64,7 +64,7 @@
|
|||
html += '<paper-fab class="listAvatar blue" style="background-image:url(\'' + imgUrl + '\');background-repeat:no-repeat;background-position:center center;background-size: cover;" item-icon></paper-fab>';
|
||||
}
|
||||
else {
|
||||
html += '<paper-fab class="listAvatar blue" icon="refresh" item-icon></paper-fab>';
|
||||
html += '<paper-fab class="listAvatar blue" icon="sync" item-icon></paper-fab>';
|
||||
}
|
||||
|
||||
html += '<paper-item-body three-line>';
|
||||
|
|
|
@ -78,7 +78,7 @@ $.fn.taskButton = function (options) {
|
|||
var id = button.getAttribute('data-taskid');
|
||||
|
||||
var key = 'scheduledTaskButton' + options.taskKey;
|
||||
var expectedValue = '4';
|
||||
var expectedValue = new Date().getMonth() + '5';
|
||||
|
||||
if (appStorage.getItem(key) == expectedValue) {
|
||||
onScheduledTaskMessageConfirmed(button, id);
|
||||
|
@ -86,8 +86,9 @@ $.fn.taskButton = function (options) {
|
|||
|
||||
var msg = Globalize.translate('ConfirmMessageScheduledTaskButton');
|
||||
msg += '<br/>';
|
||||
msg += '<br/>';
|
||||
msg += '<a href="scheduledtasks.html">' + Globalize.translate('ButtonScheduledTasks') + '</a>';
|
||||
msg += '<div style="margin-top:1em;">';
|
||||
msg += '<a class="clearLink" href="scheduledtasks.html"><paper-button style="color:#3f51b5!important;margin:0;">' + Globalize.translate('ButtonScheduledTasks') + '</paper-button></a>';
|
||||
msg += '</div>';
|
||||
|
||||
Dashboard.confirm(msg, Globalize.translate('HeaderConfirmation'), function (result) {
|
||||
|
||||
|
|
|
@ -1276,7 +1276,7 @@
|
|||
"LabelExtractChaptersDuringLibraryScanHelp": "If enabled, chapter images will be extracted when videos are imported during the library scan. If disabled they will be extracted during the chapter images scheduled task, allowing the regular library scan to complete faster.",
|
||||
"LabelConnectGuestUserName": "Their Emby username or email address:",
|
||||
"LabelConnectUserName": "Emby username/email:",
|
||||
"LabelConnectUserNameHelp": "Connect this user to an Emby account to enable easy sign-in access from any Emby app without having to know the server ip address.",
|
||||
"LabelConnectUserNameHelp": "Connect this local user to an online Emby account to enable easy sign-in access from any Emby app without having to know the server ip address.",
|
||||
"ButtonLearnMoreAboutEmbyConnect": "Learn more about Emby Connect",
|
||||
"LabelExternalPlayers": "External players:",
|
||||
"LabelExternalPlayersHelp": "Display buttons to play content in external players. This is only available on devices that support url schemes, generally Android and iOS. With external players there is generally no support for remote control or resuming.",
|
||||
|
@ -1541,5 +1541,5 @@
|
|||
"OptionEnableVideoFrameAnalysisHelp": "Extract detailed information about videos that can be used to make transcoding as efficient as possible. This will cause library scans to take longer.",
|
||||
"LabelVideoFrameAnalysisLimit": "Limit frame by frame analysis to videos less than:",
|
||||
"LabelHardwareVideoDecoder": "Hardware video decoder:",
|
||||
"LabelHardwareVideoDecoderHelp": "Available on supported systems only, and will revert to default when unavailable."
|
||||
"LabelHardwareVideoDecoderHelp": "Available on supported systems only."
|
||||
}
|
||||
|
|
|
@ -101,7 +101,7 @@
|
|||
"MessageItemsAdded": "Items added",
|
||||
"ButtonAddToCollection": "Add to collection",
|
||||
"HeaderSelectCertificatePath": "Select Certificate Path",
|
||||
"ConfirmMessageScheduledTaskButton": "This operation normally runs automatically as a scheduled task. It can also be run manually here. To configure the scheduled task, see:",
|
||||
"ConfirmMessageScheduledTaskButton": "This operation normally runs automatically as a scheduled task and does not require any manual effort. To configure the scheduled task, see:",
|
||||
"HeaderSupporterBenefit": "A supporter membership provides additional benefits such as access to sync, premium plugins, internet channel content, and more. {0}Learn more{1}.",
|
||||
"LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support sync.",
|
||||
"HeaderWelcomeToProjectServerDashboard": "Welcome to the Emby Server Dashboard",
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
</div>
|
||||
|
||||
<div style="text-align:right;margin-top:-10px;">
|
||||
<button type="button" class="btnSync" data-icon="refresh" data-mini="true" data-inline="true">${ButtonConvertMedia}</button>
|
||||
<paper-button raised class="btnSync"><iron-icon icon="sync"></iron-icon><span>${ButtonConvertMedia}</span></paper-button>
|
||||
<progress max="100" min="0" style="width:100px;display:none;" class="syncProgress"></progress>
|
||||
</div>
|
||||
<br />
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
}
|
||||
|
||||
.viewMenuBar.semiTransparent {
|
||||
background-color: rgba(27, 27, 27, .75);
|
||||
background-color: rgba(27, 27, 27, .70);
|
||||
}
|
||||
|
||||
.background-theme-b {
|
||||
|
|
|
@ -192,3 +192,198 @@ paper-tab {
|
|||
/* Eliminate transparency to prevent clicks from passing through to the elements underneath */
|
||||
background-color: rgb(26,26,26);
|
||||
}
|
||||
|
||||
|
||||
/* Checkboxes */
|
||||
input[type='checkbox'] {
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
-ms-appearance: none;
|
||||
-o-appearance: none;
|
||||
appearance: none;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
height: 31px;
|
||||
width: 51px;
|
||||
position: relative;
|
||||
border-radius: 16px;
|
||||
cursor: pointer;
|
||||
outline: 0;
|
||||
z-index: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: none;
|
||||
-webkit-transition-duration: 600ms;
|
||||
-moz-transition-duration: 600ms;
|
||||
transition-duration: 600ms;
|
||||
-webkit-transition-timing-function: ease-in-out;
|
||||
-moz-transition-timing-function: ease-in-out;
|
||||
transition-timing-function: ease-in-out;
|
||||
-webkit-touch-callout: none;
|
||||
-webkit-text-size-adjust: none;
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
|
||||
.ui-body-a input[type='checkbox'] {
|
||||
background-color: #e5e5e5;
|
||||
}
|
||||
|
||||
.ui-body-b input[type='checkbox'] {
|
||||
background-color: #1f1f1f;
|
||||
}
|
||||
|
||||
input[type='checkbox']::before {
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
height: 27px;
|
||||
width: 47px;
|
||||
content: ' ';
|
||||
position: absolute;
|
||||
left: 2px;
|
||||
top: 2px;
|
||||
border-radius: 16px;
|
||||
z-index: 1;
|
||||
-webkit-transition-duration: 300ms;
|
||||
-moz-transition-duration: 300ms;
|
||||
transition-duration: 300ms;
|
||||
-webkit-transform: scale(1);
|
||||
-moz-transform: scale(1);
|
||||
-ms-transform: scale(1);
|
||||
-o-transform: scale(1);
|
||||
transform: scale(1);
|
||||
}
|
||||
|
||||
.ui-body-a input[type='checkbox']::before {
|
||||
background-color: #ffffff;
|
||||
}
|
||||
|
||||
.ui-body-b input[type='checkbox']::before {
|
||||
background-color: #000;
|
||||
}
|
||||
|
||||
input[type='checkbox']::after {
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
height: 27px;
|
||||
width: 27px;
|
||||
content: ' ';
|
||||
position: absolute;
|
||||
border-radius: 27px;
|
||||
background: #ffffff;
|
||||
z-index: 2;
|
||||
top: 2px;
|
||||
left: 2px;
|
||||
box-shadow: 0px 0px 1px 0px rgba(0, 0, 0, 0.25), 0px 4px 11px 0px rgba(0, 0, 0, 0.08), -1px 3px 3px 0px rgba(0, 0, 0, 0.14);
|
||||
-webkit-transition: -webkit-transform 300ms, width 280ms;
|
||||
-moz-transition: -moz-transform 300ms, width 280ms;
|
||||
transition: transform 300ms, width 280ms;
|
||||
-webkit-transform: translate3d(0, 0, 0);
|
||||
-moz-transform: translate3d(0, 0, 0);
|
||||
-ms-transform: translate3d(0, 0, 0);
|
||||
-o-transform: translate3d(0, 0, 0);
|
||||
transform: translate3d(0, 0, 0);
|
||||
-webkit-transition-timing-function: cubic-bezier(0.42, 0.8, 0.58, 1.2);
|
||||
-moz-transition-timing-function: cubic-bezier(0.42, 0.8, 0.58, 1.2);
|
||||
transition-timing-function: cubic-bezier(0.42, 0.8, 0.58, 1.2);
|
||||
}
|
||||
|
||||
input[type='checkbox']:checked {
|
||||
background-color: #4CD964;
|
||||
background-image: -webkit-linear-gradient(-90deg, #4CD964 0%, #4dd865 100%);
|
||||
background-image: linear-gradient(-180deg,#4CD964 0%, #4dd865 100%);
|
||||
}
|
||||
|
||||
input[type='checkbox']:checked::after {
|
||||
-webkit-transform: translate3d(16px, 0, 0);
|
||||
-moz-transform: translate3d(16px, 0, 0);
|
||||
-ms-transform: translate3d(16px, 0, 0);
|
||||
-o-transform: translate3d(16px, 0, 0);
|
||||
transform: translate3d(16px, 0, 0);
|
||||
right: 18px;
|
||||
left: inherit;
|
||||
}
|
||||
|
||||
input[type='checkbox']:active::after {
|
||||
width: 35px;
|
||||
}
|
||||
|
||||
input[type='checkbox']:checked::before, input[type='checkbox']:active::before {
|
||||
-webkit-transform: scale(0);
|
||||
-moz-transform: scale(0);
|
||||
-ms-transform: scale(0);
|
||||
-o-transform: scale(0);
|
||||
transform: scale(0);
|
||||
}
|
||||
|
||||
input[type='checkbox']:disabled {
|
||||
opacity: 0.5;
|
||||
cursor: default;
|
||||
-webkit-transition: none;
|
||||
-moz-transition: none;
|
||||
transition: none;
|
||||
}
|
||||
|
||||
input[type='checkbox']:disabled:active::before, input[type='checkbox']:disabled:active::after, input[type='checkbox']:disabled:checked:active::before, input[type='checkbox']:disabled:checked::before {
|
||||
width: 27px;
|
||||
-webkit-transition: none;
|
||||
-moz-transition: none;
|
||||
transition: none;
|
||||
}
|
||||
|
||||
input[type='checkbox']:disabled:active::before {
|
||||
height: 27px;
|
||||
width: 41px;
|
||||
-webkit-transform: translate3d(6px, 0, 0);
|
||||
-moz-transform: translate3d(6px, 0, 0);
|
||||
-ms-transform: translate3d(6px, 0, 0);
|
||||
-o-transform: translate3d(6px, 0, 0);
|
||||
transform: translate3d(6px, 0, 0);
|
||||
}
|
||||
|
||||
input[type='checkbox']:disabled:checked:active::before {
|
||||
height: 27px;
|
||||
width: 27px;
|
||||
-webkit-transform: scale(0);
|
||||
-moz-transform: scale(0);
|
||||
-ms-transform: scale(0);
|
||||
-o-transform: scale(0);
|
||||
transform: scale(0);
|
||||
}
|
||||
|
||||
.ui-body-a input[type='checkbox'] {
|
||||
background-color: #e5e5e5;
|
||||
}
|
||||
|
||||
.ui-body-b input[type='checkbox'] {
|
||||
background-color: #151515;
|
||||
}
|
||||
|
||||
.ui-body-a input[type='checkbox']::before {
|
||||
background-color: #ffffff;
|
||||
}
|
||||
|
||||
.ui-body-b input[type='checkbox']::before {
|
||||
background-color: #000;
|
||||
}
|
||||
|
||||
.ui-body-a input[type='checkbox']::after {
|
||||
background: #ffffff;
|
||||
}
|
||||
|
||||
.ui-body-b input[type='checkbox']::after {
|
||||
background: #444;
|
||||
}
|
||||
|
||||
input[type='checkbox']:checked {
|
||||
background-color: #4CD964;
|
||||
background-image: -webkit-linear-gradient(-90deg, #4CD964 0%, #4dd865 100%);
|
||||
background-image: linear-gradient(-180deg,#4CD964 0%, #4dd865 100%);
|
||||
}
|
||||
|
|
3
dashboard-ui/thirdparty/emby-icons.html
vendored
3
dashboard-ui/thirdparty/emby-icons.html
vendored
|
@ -133,6 +133,9 @@ See [iron-iconset](#iron-iconset) and [iron-iconset-svg](#iron-iconset-svg) for
|
|||
<g id="wifi"><path d="M1 9l2 2c4.97-4.97 13.03-4.97 18 0l2-2C16.93 2.93 7.08 2.93 1 9zm8 8l3 3 3-3c-1.65-1.66-4.34-1.66-6 0zm-4-4l2 2c2.76-2.76 7.24-2.76 10 0l2-2C15.14 9.14 8.87 9.14 5 13z" /></g>
|
||||
<g id="ondemand-video"><path d="M21 3H3c-1.11 0-2 .89-2 2v12c0 1.1.89 2 2 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2L23 5c0-1.11-.9-2-2-2zm0 14H3V5h18v12zm-5-6l-7 4V7z" /></g>
|
||||
<g id="closed-caption"><path d="M19 4H5c-1.11 0-2 .9-2 2v12c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-8 7H9.5v-.5h-2v3h2V13H11v1c0 .55-.45 1-1 1H7c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v1zm7 0h-1.5v-.5h-2v3h2V13H18v1c0 .55-.45 1-1 1h-3c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v1z" /></g>
|
||||
<g id="sync"><path d="M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46C19.54 15.03 20 13.57 20 12c0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-1.01.25-1.97.7-2.8L5.24 7.74C4.46 8.97 4 10.43 4 12c0 4.42 3.58 8 8 8v3l4-4-4-4v3z" /></g>
|
||||
<g id="sync-disabled"><path d="M10 6.35V4.26c-.8.21-1.55.54-2.23.96l1.46 1.46c.25-.12.5-.24.77-.33zm-7.14-.94l2.36 2.36C4.45 8.99 4 10.44 4 12c0 2.21.91 4.2 2.36 5.64L4 20h6v-6l-2.24 2.24C6.68 15.15 6 13.66 6 12c0-1 .25-1.94.68-2.77l8.08 8.08c-.25.13-.5.25-.77.34v2.09c.8-.21 1.55-.54 2.23-.96l2.36 2.36 1.27-1.27L4.14 4.14 2.86 5.41zM20 4h-6v6l2.24-2.24C17.32 8.85 18 10.34 18 12c0 1-.25 1.94-.68 2.77l1.46 1.46C19.55 15.01 20 13.56 20 12c0-2.21-.91-4.2-2.36-5.64L20 4z" /></g>
|
||||
<g id="sync-problem"><path d="M3 12c0 2.21.91 4.2 2.36 5.64L3 20h6v-6l-2.24 2.24C5.68 15.15 5 13.66 5 12c0-2.61 1.67-4.83 4-5.65V4.26C5.55 5.15 3 8.27 3 12zm8 5h2v-2h-2v2zM21 4h-6v6l2.24-2.24C18.32 8.85 19 10.34 19 12c0 2.61-1.67 4.83-4 5.65v2.09c3.45-.89 6-4.01 6-7.74 0-2.21-.91-4.2-2.36-5.64L21 4zm-10 9h2V7h-2v6z" /></g>
|
||||
</defs>
|
||||
</svg>
|
||||
</iron-iconset-svg>
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
top: 0;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.ui-panel-closed {
|
||||
width: 0;
|
||||
max-height: 100%;
|
||||
|
@ -16,20 +17,25 @@
|
|||
left: 0;
|
||||
clip: rect(1px,1px,1px,1px);
|
||||
}
|
||||
|
||||
.ui-panel-fixed {
|
||||
position: fixed;
|
||||
bottom: -1px; /* Fixes gap on Chrome for Android */
|
||||
padding-bottom: 1px;
|
||||
}
|
||||
|
||||
.ui-panel-display-reveal {
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.ui-panel-display-push {
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
.ui-panel-display-overlay {
|
||||
z-index: 1001; /* Fixed toolbars have z-index 1000 */
|
||||
}
|
||||
|
||||
.ui-panel-inner {
|
||||
padding: 1em;
|
||||
}
|
||||
|
@ -38,9 +44,11 @@
|
|||
.ui-panel-page-container {
|
||||
overflow-x: visible;
|
||||
}
|
||||
|
||||
.ui-panel-page-container-themed .ui-page-active {
|
||||
background: none;
|
||||
}
|
||||
|
||||
.ui-panel-wrapper {
|
||||
position: relative;
|
||||
min-height: inherit;
|
||||
|
@ -64,6 +72,7 @@
|
|||
z-index: 1002;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.ui-panel-dismiss-open {
|
||||
display: block;
|
||||
}
|
||||
|
@ -178,6 +187,7 @@
|
|||
.ui-panel-dismiss-open.ui-panel-dismiss-position-left {
|
||||
left: 17em;
|
||||
}
|
||||
|
||||
.ui-panel-dismiss-open.ui-panel-dismiss-position-right {
|
||||
right: 17em;
|
||||
}
|
||||
|
@ -188,33 +198,40 @@
|
|||
-moz-box-shadow: inset -5px 0 5px rgba(0,0,0,.15);
|
||||
box-shadow: inset -5px 0 5px rgba(0,0,0,.15);
|
||||
}
|
||||
|
||||
.ui-panel-position-right.ui-panel-display-reveal {
|
||||
-webkit-box-shadow: inset 5px 0 5px rgba(0,0,0,.15);
|
||||
-moz-box-shadow: inset 5px 0 5px rgba(0,0,0,.15);
|
||||
box-shadow: inset 5px 0 5px rgba(0,0,0,.15);
|
||||
}
|
||||
|
||||
.ui-panel-display-overlay {
|
||||
-webkit-box-shadow: 5px 0 5px rgba(0,0,0,.15);
|
||||
-moz-box-shadow: 5px 0 5px rgba(0,0,0,.15);
|
||||
box-shadow: 5px 0 5px rgba(0,0,0,.15);
|
||||
}
|
||||
|
||||
.ui-panel-position-right.ui-panel-display-overlay {
|
||||
-webkit-box-shadow: -5px 0 5px rgba(0,0,0,.15);
|
||||
-moz-box-shadow: -5px 0 5px rgba(0,0,0,.15);
|
||||
box-shadow: -5px 0 5px rgba(0,0,0,.15);
|
||||
}
|
||||
|
||||
.ui-panel-open.ui-panel-position-left.ui-panel-display-push {
|
||||
border-right-width: 1px;
|
||||
margin-right: -1px;
|
||||
}
|
||||
|
||||
.ui-panel-page-content-position-left.ui-panel-page-content-display-push {
|
||||
margin-left: 1px;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.ui-panel-open.ui-panel-position-right.ui-panel-display-push {
|
||||
border-left-width: 1px;
|
||||
margin-left: -1px;
|
||||
}
|
||||
|
||||
.ui-panel-page-content-position-right.ui-panel-page-content-display-push {
|
||||
margin-right: 1px;
|
||||
width: auto;
|
||||
|
@ -225,14 +242,25 @@
|
|||
.ui-responsive-panel .ui-panel-page-content-open.ui-panel-page-content-position-left {
|
||||
margin-right: 17em;
|
||||
}
|
||||
|
||||
.ui-responsive-panel .ui-panel-page-content-open.ui-panel-page-content-position-right {
|
||||
margin-left: 17em;
|
||||
}
|
||||
|
||||
.ui-responsive-panel .ui-panel-page-content-open {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.ui-responsive-panel .ui-panel-dismiss-display-push,
|
||||
.ui-responsive-panel.ui-page-active ~ .ui-panel-dismiss-display-push {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.ui-body-a.ui-panel {
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.ui-body-b.ui-panel {
|
||||
background-color: #222;
|
||||
}
|
||||
|
|
|
@ -31,33 +31,6 @@ div.ui-controlgroup-label {
|
|||
font-size: 16px;
|
||||
}
|
||||
|
||||
/* Separators
|
||||
-----------------------------------------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
/* Table opt-in classes: strokes between each row, and alternating row stripes */
|
||||
/* Classes table-stroke and table-stripe are deprecated in 1.4. */
|
||||
.table-stroke thead th,
|
||||
.table-stripe thead th,
|
||||
.table-stripe tbody tr:last-child {
|
||||
border-bottom: 1px solid #d6d6d6; /* non-RGBA fallback */
|
||||
border-bottom: 1px solid rgba(0,0,0,.1);
|
||||
}
|
||||
.table-stroke tbody th,
|
||||
.table-stroke tbody td {
|
||||
border-bottom: 1px solid #e6e6e6; /* non-RGBA fallback */
|
||||
border-bottom: 1px solid rgba(0,0,0,.05);
|
||||
}
|
||||
.table-stripe.table-stroke tbody tr:last-child th,
|
||||
.table-stripe.table-stroke tbody tr:last-child td {
|
||||
border-bottom: 0;
|
||||
}
|
||||
.table-stripe tbody tr:nth-child(odd) td,
|
||||
.table-stripe tbody tr:nth-child(odd) th {
|
||||
background-color: #eeeeee; /* non-RGBA fallback */
|
||||
background-color: rgba(0,0,0,.04);
|
||||
}
|
||||
|
||||
/* Buttons
|
||||
-----------------------------------------------------------------------------------------------------------*/
|
||||
|
||||
|
@ -224,7 +197,6 @@ html body .ui-group-theme-a .ui-bar-inherit {
|
|||
}
|
||||
|
||||
/* Page and overlay */
|
||||
.ui-body-a,
|
||||
.ui-page-theme-a .ui-panel-wrapper {
|
||||
background-color: #f9f9f9 /*{a-page-background-color}*/;
|
||||
border-color: #bbb /*{a-page-border}*/;
|
||||
|
@ -232,7 +204,6 @@ html body .ui-group-theme-a .ui-bar-inherit {
|
|||
}
|
||||
|
||||
/* Body: Read-only lists, text inputs, collapsible content */
|
||||
.ui-body-a,
|
||||
.ui-page-theme-a .ui-body-inherit,
|
||||
html .ui-bar-a .ui-body-inherit,
|
||||
html .ui-body-a .ui-body-inherit,
|
||||
|
@ -370,7 +341,6 @@ html body .ui-group-theme-b .ui-bar-inherit {
|
|||
}
|
||||
|
||||
/* Page and overlay */
|
||||
.ui-body-b,
|
||||
.ui-page-theme-b .ui-panel-wrapper {
|
||||
background-color: #252525 /*{b-page-background-color}*/;
|
||||
border-color: #454545 /*{b-page-border}*/;
|
||||
|
@ -378,7 +348,6 @@ html body .ui-group-theme-b .ui-bar-inherit {
|
|||
}
|
||||
|
||||
/* Body: Read-only lists, text inputs, collapsible content */
|
||||
.ui-body-b,
|
||||
.ui-page-theme-b .ui-body-inherit,
|
||||
html .ui-bar-b .ui-body-inherit,
|
||||
html .ui-body-b .ui-body-inherit,
|
||||
|
@ -390,29 +359,17 @@ html .ui-panel-page-container-b {
|
|||
}
|
||||
|
||||
/* Links */
|
||||
.ui-page-theme-b a,
|
||||
html .ui-bar-b a,
|
||||
html .ui-body-b a,
|
||||
html body .ui-group-theme-b a {
|
||||
.ui-body-b a {
|
||||
color: #22aadd /*{b-link-color}*/;
|
||||
font-weight: bold;
|
||||
}
|
||||
.ui-page-theme-b a:visited,
|
||||
html .ui-bar-b a:visited,
|
||||
html .ui-body-b a:visited,
|
||||
html body .ui-group-theme-b a:visited {
|
||||
.ui-body-b a:visited {
|
||||
color: #22aadd /*{b-link-visited}*/;
|
||||
}
|
||||
.ui-page-theme-b a:hover,
|
||||
html .ui-bar-b a:hover,
|
||||
html .ui-body-b a:hover,
|
||||
html body .ui-group-theme-b a:hover {
|
||||
.ui-body-b a:hover {
|
||||
color: #0088bb /*{b-link-hover}*/;
|
||||
}
|
||||
.ui-page-theme-b a:active,
|
||||
html .ui-bar-b a:active,
|
||||
html .ui-body-b a:active,
|
||||
html body .ui-group-theme-b a:active {
|
||||
.ui-body-b a:active {
|
||||
color: #0088bb /*{b-link-active}*/;
|
||||
}
|
||||
|
||||
|
@ -495,26 +452,3 @@ html head + body .ui-body-b.ui-focus {
|
|||
-moz-box-shadow: 0 0 12px #22aadd /*{b-active-background-color}*/;
|
||||
box-shadow: 0 0 12px #22aadd /*{b-active-background-color}*/;
|
||||
}
|
||||
|
||||
/* Structure */
|
||||
|
||||
/* Disabled
|
||||
-----------------------------------------------------------------------------------------------------------*/
|
||||
/* Class ui-disabled deprecated in 1.4. :disabled not supported by IE8 so we use [disabled] */
|
||||
|
||||
.ui-disabled,
|
||||
.ui-state-disabled,
|
||||
button[disabled] {
|
||||
filter: Alpha(Opacity=30);
|
||||
opacity: .3;
|
||||
cursor: default !important;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
/* Focus state outline
|
||||
-----------------------------------------------------------------------------------------------------------*/
|
||||
|
||||
.ui-btn:focus,
|
||||
.ui-btn.ui-focus {
|
||||
outline: 0;
|
||||
}
|
28
dashboard-ui/thirdparty/paper-button-style.css
vendored
28
dashboard-ui/thirdparty/paper-button-style.css
vendored
|
@ -106,7 +106,7 @@ paper-button[raised].cancelDark {
|
|||
color: #fff;
|
||||
}
|
||||
|
||||
.ui-body-b paper-button[raised][disabled].subdued {
|
||||
.ui-body-b paper-button[raised][disabled].subduedd {
|
||||
background: #111;
|
||||
}
|
||||
|
||||
|
@ -379,12 +379,16 @@ paper-menu-item {
|
|||
color: inherit;
|
||||
}
|
||||
|
||||
.ui-body-a .paperCheckboxFieldDescription {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.ui-body-b .paperCheckboxFieldDescription {
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
.ui-body-b paper-checkbox #checkbox.paper-checkbox {
|
||||
border-color: #ccc;
|
||||
border-color: #eee;
|
||||
}
|
||||
|
||||
.ui-body-b paper-checkbox #checkbox.checked.paper-checkbox {
|
||||
|
@ -402,24 +406,24 @@ paper-input label, paper-textarea label {
|
|||
font-family: inherit !important;
|
||||
}
|
||||
|
||||
.ui-body-b paper-input label, .ui-body-b paper-textarea label {
|
||||
color: #858585 !important;
|
||||
.ui-body-b .paper-input-container-0 .input-content.paper-input-container label, .ui-body-b .paper-input-container-0 .input-content.paper-input-container .paper-input-label, .ui-body-b paper-textarea label {
|
||||
color: #858585;
|
||||
}
|
||||
|
||||
.ui-body-a paper-input label, .ui-body-a paper-textarea label {
|
||||
color: #656565 !important;
|
||||
.ui-body-a .paper-input-container-0 .input-content.paper-input-container label, .ui-body-a .paper-input-container-0 .input-content.paper-input-container .paper-input-label, .ui-body-a paper-textarea label {
|
||||
color: #656565;
|
||||
}
|
||||
|
||||
.ui-body-a .label-is-highlighted label {
|
||||
color: green !important;
|
||||
.ui-body-a .paper-input-container-0 .input-content.label-is-highlighted.paper-input-container label, .ui-body-a .paper-input-container-0 .input-content.label-is-highlighted.paper-input-container .paper-input-label {
|
||||
color: green;
|
||||
}
|
||||
|
||||
.ui-body-b .label-is-highlighted label {
|
||||
color: #52B54B !important;
|
||||
.ui-body-b .paper-input-container-0 .input-content.label-is-highlighted.paper-input-container label, .ui-body-b .paper-input-container-0 .input-content.label-is-highlighted.paper-input-container .paper-input-label {
|
||||
color: #52B54B;
|
||||
}
|
||||
|
||||
.ui-body-b paper-input input, .ui-body-b paper-textarea textarea {
|
||||
color: #fff !important;
|
||||
.ui-body-b .paper-input-container-0 .input-content.paper-input-container input, .ui-body-b .paper-input-container-0 .input-content.paper-input-container textarea, .ui-body-b .paper-input-container-0 .input-content.paper-input-container iron-autogrow-textarea, .ui-body-b .paper-input-container-0 .input-content.paper-input-container .paper-input-input {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
paper-input .focused-line, paper-textarea .focused-line {
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
<div class="homePageSection">
|
||||
<div>
|
||||
<h1 class="listHeader" style="display:inline-block;vertical-align:middle;">${HeaderLatestEpisodes}</h1>
|
||||
<paper-button raised class="submit mini categorySyncButton" data-category="Latest"><iron-icon icon="refresh"></iron-icon><span>${ButtonSync}</span></paper-button>
|
||||
<paper-button raised class="submit mini categorySyncButton" data-category="Latest"><iron-icon icon="sync"></iron-icon><span>${ButtonSync}</span></paper-button>
|
||||
</div>
|
||||
<div id="latestEpisodes" class="itemsContainer">
|
||||
</div>
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
<div id="resumableSection" style="display: none;" class="scopedContent homePageSection">
|
||||
<div>
|
||||
<h1 class="listHeader" style="display:inline-block;vertical-align:middle;">${HeaderResume}</h1>
|
||||
<paper-button raised class="submit mini categorySyncButton" data-category="Resume"><iron-icon icon="refresh"></iron-icon><span>${ButtonSync}</span></paper-button>
|
||||
<paper-button raised class="submit mini categorySyncButton" data-category="Resume"><iron-icon icon="sync"></iron-icon><span>${ButtonSync}</span></paper-button>
|
||||
</div>
|
||||
|
||||
<div id="resumableItems" class="itemsContainer">
|
||||
|
@ -32,7 +32,7 @@
|
|||
<div class="homePageSection">
|
||||
<div>
|
||||
<h1 class="listHeader nextUpHeader" style="display:inline-block;vertical-align:middle;">${HeaderNextUp}</h1>
|
||||
<paper-button raised class="submit mini categorySyncButton" data-category="NextUp"><iron-icon icon="refresh"></iron-icon><span>${ButtonSync}</span></paper-button>
|
||||
<paper-button raised class="submit mini categorySyncButton" data-category="NextUp"><iron-icon icon="sync"></iron-icon><span>${ButtonSync}</span></paper-button>
|
||||
</div>
|
||||
<div id="nextUpItems" class="itemsContainer">
|
||||
</div>
|
||||
|
|
|
@ -19333,6 +19333,9 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
|
|||
<g id="wifi"><path d="M1 9l2 2c4.97-4.97 13.03-4.97 18 0l2-2C16.93 2.93 7.08 2.93 1 9zm8 8l3 3 3-3c-1.65-1.66-4.34-1.66-6 0zm-4-4l2 2c2.76-2.76 7.24-2.76 10 0l2-2C15.14 9.14 8.87 9.14 5 13z"></path></g>
|
||||
<g id="ondemand-video"><path d="M21 3H3c-1.11 0-2 .89-2 2v12c0 1.1.89 2 2 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2L23 5c0-1.11-.9-2-2-2zm0 14H3V5h18v12zm-5-6l-7 4V7z"></path></g>
|
||||
<g id="closed-caption"><path d="M19 4H5c-1.11 0-2 .9-2 2v12c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-8 7H9.5v-.5h-2v3h2V13H11v1c0 .55-.45 1-1 1H7c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v1zm7 0h-1.5v-.5h-2v3h2V13H18v1c0 .55-.45 1-1 1h-3c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v1z"></path></g>
|
||||
<g id="sync"><path d="M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46C19.54 15.03 20 13.57 20 12c0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-1.01.25-1.97.7-2.8L5.24 7.74C4.46 8.97 4 10.43 4 12c0 4.42 3.58 8 8 8v3l4-4-4-4v3z"></path></g>
|
||||
<g id="sync-disabled"><path d="M10 6.35V4.26c-.8.21-1.55.54-2.23.96l1.46 1.46c.25-.12.5-.24.77-.33zm-7.14-.94l2.36 2.36C4.45 8.99 4 10.44 4 12c0 2.21.91 4.2 2.36 5.64L4 20h6v-6l-2.24 2.24C6.68 15.15 6 13.66 6 12c0-1 .25-1.94.68-2.77l8.08 8.08c-.25.13-.5.25-.77.34v2.09c.8-.21 1.55-.54 2.23-.96l2.36 2.36 1.27-1.27L4.14 4.14 2.86 5.41zM20 4h-6v6l2.24-2.24C17.32 8.85 18 10.34 18 12c0 1-.25 1.94-.68 2.77l1.46 1.46C19.55 15.01 20 13.56 20 12c0-2.21-.91-4.2-2.36-5.64L20 4z"></path></g>
|
||||
<g id="sync-problem"><path d="M3 12c0 2.21.91 4.2 2.36 5.64L3 20h6v-6l-2.24 2.24C5.68 15.15 5 13.66 5 12c0-2.61 1.67-4.83 4-5.65V4.26C5.55 5.15 3 8.27 3 12zm8 5h2v-2h-2v2zM21 4h-6v6l2.24-2.24C18.32 8.85 19 10.34 19 12c0 2.61-1.67 4.83-4 5.65v2.09c3.45-.89 6-4.01 6-7.74 0-2.21-.91-4.2-2.36-5.64L21 4zm-10 9h2V7h-2v6z"></path></g>
|
||||
</defs>
|
||||
</svg>
|
||||
</iron-iconset-svg>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue