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

rework metadata manager tabs

This commit is contained in:
Luke Pulverenti 2015-07-14 16:29:51 -04:00
parent f5fb6ccca5
commit a7ade97b44
19 changed files with 672 additions and 824 deletions

View file

@ -7,5 +7,5 @@ The complete set of contributors may be found at http://polymer.github.io/CONTRI
Code distributed by Google as part of the polymer project is also Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
--> -->
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:400,300,300italic,400italic,500,500italic,700,700italic"> <!--<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:400,300,300italic,400italic,500,500italic,700,700italic">-->
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto+Mono:400,700"> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto+Mono:400,700">

View file

@ -1,6 +1,6 @@
{ {
"name": "paper-styles", "name": "paper-styles",
"version": "1.0.9", "version": "1.0.10",
"description": "Common (global) styles for Material Design elements.", "description": "Common (global) styles for Material Design elements.",
"authors": [ "authors": [
"The Polymer Authors" "The Polymer Authors"
@ -28,11 +28,11 @@
"devDependencies": { "devDependencies": {
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
}, },
"_release": "1.0.9", "_release": "1.0.10",
"_resolution": { "_resolution": {
"type": "version", "type": "version",
"tag": "v1.0.9", "tag": "v1.0.10",
"commit": "cb73f4d677c1bb64342263956a0592a2936922d2" "commit": "f1a79cd7916f7870a59918911062007bbc07867e"
}, },
"_source": "git://github.com/PolymerElements/paper-styles.git", "_source": "git://github.com/PolymerElements/paper-styles.git",
"_target": "^1.0.0", "_target": "^1.0.0",

View file

@ -1,6 +1,6 @@
{ {
"name": "paper-styles", "name": "paper-styles",
"version": "1.0.9", "version": "1.0.10",
"description": "Common (global) styles for Material Design elements.", "description": "Common (global) styles for Material Design elements.",
"authors": [ "authors": [
"The Polymer Authors" "The Polymer Authors"

View file

@ -7,7 +7,7 @@ The complete set of contributors may be found at http://polymer.github.io/CONTRI
Code distributed by Google as part of the polymer project is also Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
--> -->
<link rel="import" href="../font-roboto/roboto.html"> <link rel="import" href="../../font-roboto/roboto.html">
<!-- <!--
Typographic styles are provided matching the Material Design standard styles: Typographic styles are provided matching the Material Design standard styles:

View file

@ -1,4 +1,8 @@
.editPageContent { .editorTab {
padding-bottom: 200px;
}
.editPageContent {
padding: 0; padding: 0;
} }
@ -193,7 +197,7 @@
.editorTile { .editorTile {
display: inline-block; display: inline-block;
margin: 0 2em 2em 0; margin: 1em 2em 2em 0;
text-align: center; text-align: center;
vertical-align: middle; vertical-align: middle;
} }

View file

@ -1,73 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Emby</title>
</head>
<body>
<div id="editCollectionTitlesPage" data-role="page" class="page libraryPage metadataEditorPage noSecondaryNavPage" data-contextname="${HeaderMetadataManager}" data-require="scripts/editorsidebar,scripts/editcollectionitems,jqmicons">
<div data-role="content editPageContent">
<div class="editPageSidebar">
<div class="libraryTree">
<ul></ul>
</div>
</div>
<div class="editPageInnerContent">
<h1 class="itemName editPageName">&nbsp;</h1>
<br />
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
<a href="#" data-role="button" id="btnEditMetadata">${TabMetadata}</a>
<a href="#" data-role="button" class="ui-btn-active">${TabCollectionTitles}</a>
<a id="btnEditImages" href="#" data-role="button">${TabImages}</a>
</div>
<p style="margin-top: -20px;">
${EditCollectionItemsHelp}
</p>
<div>
<button type="button" id="btnAddItem" data-icon="plus" data-inline="true" data-mini="true">${ButtonAdd}</button>
<button type="button" id="btnRemoveItems" data-icon="delete" data-inline="true" data-mini="true" disabled="disabled">${ButtonRemove}</button>
</div>
<br />
<div class="collectionItems"></div>
</div>
</div>
<div data-role="popup" class="popupIdentify popup" data-theme="a">
<div class="ui-bar-a" style="text-align: center; padding: 0 20px;">
<h3>
${HeaderAddTitles}
</h3>
</div>
<div data-role="content">
<form class="collectionItemSearchForm" style="max-width: initial;">
<div>
<label for="txtLookupName">${LabelName}</label>
<div style="display: inline-block; width: 75%;">
<input type="text" id="txtLookupName" required="required" />
</div>
<button type="submit" data-icon="search" data-mini="true" data-inline="true" data-iconpos="notext">
${ButtonSearch}
</button>
</div>
<div class="collectionItemSearchResults">
</div>
<button id="btnAddItems" type="button" data-icon="plus" data-mini="true">
${ButtonAdd}
</button>
</form>
</div>
</div>
</div>
</body>
</html>

View file

@ -1,143 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Emby</title>
</head>
<body>
<div id="editItemImagesPage" data-role="page" class="page libraryPage metadataEditorPage noSecondaryNavPage" data-contextname="${HeaderMetadataManager}" data-require="scripts/editorsidebar,scripts/edititemimages,jqmicons">
<div data-role="content editPageContent">
<div class="editPageSidebar smoothScrollY">
<div class="libraryTree">
<ul></ul>
</div>
</div>
<div class="editPageInnerContent">
<h1 class="itemName editPageName">&nbsp;</h1>
<br />
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
<a href="#" data-role="button" id="btnEditMetadata">${TabMetadata}</a>
<a id="btnEditSubtitles" style="display: none;" href="#" data-role="button">${TabSubtitles}</a>
<a id="btnEditCollectionTitles" style="display: none;" href="#" data-role="button">${TabCollectionTitles}</a>
<a href="#" data-role="button" class="ui-btn-active">${TabImages}</a>
</div>
<div style="margin: 0 0 1em;">
<paper-button raised class="subdued btnBrowseAllImages"><iron-icon icon="cloud"></iron-icon><span>${ButtonBrowseImages}</span></paper-button>
<paper-button raised class="subdued btnOpenUploadMenu"><iron-icon icon="add"></iron-icon><span>${ButtonUpload}</span></paper-button>
</div>
<div id="imagesContainer" style="display: none;">
<h1>${HeaderImages}</h1>
<div id="images">
</div>
<br />
</div>
<div id="backdropsContainer" style="display: none;">
<h1>${HeaderBackdrops}</h1>
<div id="backdrops">
</div>
<br />
</div>
<div id="screenshotsContainer" style="display: none;">
<h1>${Screenshots}</h1>
<div id="screenshots">
</div>
</div>
</div>
</div>
<div data-role="popup" id="popupUpload" data-theme="a">
<form class="uploadItemImageForm" style="max-width: 100%; margin: 0 1.5em 1.5em;">
<h2>${HeaderAddUpdateImage}</h2>
<div>
<p>${LabelJpgPngOnly}</p>
<input type="file" accept="image/*" id="uploadImage" name="uploadImage" />
<div id="imageDropZone" class="imageDropZone">
<h3>${LabelDropImageHere}</h3>
<output id="imageOutput"></output>
</div>
<div id="fldUpload" style="display: none;">
<p data-role="fieldcontain">
<label for="selectImageType">${LabelImageType}</label>
<select id="selectImageType" name="selectImageType">
<option value="Primary">${OptionPrimary}</option>
<option value="Art">${OptionArt}</option>
<option value="Backdrop">${OptionBackdrop}</option>
<option value="Banner">${OptionBanner}</option>
<option value="Box">${OptionBox}</option>
<option value="BoxRear">${OptionBoxRear}</option>
<option value="Disc">${OptionDisc}</option>
<option value="Icon">${OptionIcon}</option>
<option value="Logo">${OptionLogo}</option>
<option value="Menu">${OptionMenu}</option>
<option value="Screenshot">${OptionScreenshot}</option>
<option value="Thumb">${OptionThumb}</option>
</select>
</p>
<button type="submit" data-icon="check" data-theme="b">${ButtonUpload}</button>
</div>
<a data-role="button" data-rel="back" data-icon="delete" onclick="Events.trigger($('#uploadImage').val('')[0], 'change');">${ButtonCancel}</a>
</div>
</form>
</div>
<div data-role="popup" class="popup popupDownload" data-theme="a">
<a href="#" data-rel="back" data-role="button" data-icon="delete" data-iconpos="notext" class="ui-btn-right" data-theme="b">${ButtonClose}</a>
<div class="ui-bar-a" style="text-align: center; padding: 0 20px;">
<h3>${HeaderBrowseOnlineImages}</h3>
</div>
<div data-role="content">
<div style="text-align: center;">
<div style="margin: 0; display: inline-block;">
<label for="selectImageProvider">${LabelSource}</label>
</div>
<div style="margin: 0; display: inline-block;">
<select id="selectImageProvider" name="selectImageProvider" data-mini="true" data-inline="true">
<option value="">${OptionAll}</option>
</select>
</div>
<div style="margin: 0; display: inline-block;">
<label for="selectBrowsableImageType">${LabelImage}</label>
</div>
<div style="margin: 0; display: inline-block;">
<select id="selectBrowsableImageType" name="selectBrowsableImageType" data-mini="true" data-inline="true">
<option value="Primary">${OptionPrimary}</option>
<option value="Art">${OptionArt}</option>
<option value="Backdrop">${OptionBackdrop}</option>
<option value="Banner">${OptionBanner}</option>
<option value="Box">${OptionBox}</option>
<option value="BoxRear">${OptionBoxRear}</option>
<option value="Disc">${OptionDisc}</option>
<option value="Icon">${OptionIcon}</option>
<option value="Logo">${OptionLogo}</option>
<option value="Menu">${OptionMenu}</option>
<option value="Screenshot">${OptionScreenshot}</option>
<option value="Thumb">${OptionThumb}</option>
</select>
</div>
<div class="availableImagesPaging" style="margin: 0; display: inline-block;"></div>
<div style="margin: 0; display: inline-block; vertical-align: middle; margin-left: 10px;">
<label for="chkAllLanguages">${LabelAllLanguages}</label>
<input type="checkbox" id="chkAllLanguages" data-mini="true" />
</div>
</div>
<div class="availableImagesList"></div>
<div style="text-align: center;">
<a href="#" data-rel="back" data-role="button" data-mini="true" data-inline="true" data-icon="delete">${ButtonClose}</a>
</div>
</div>
</div>
</div>
</body>
</html>

View file

@ -4,8 +4,8 @@
<title>Emby</title> <title>Emby</title>
</head> </head>
<body> <body>
<div id="editItemMetadataPage" data-role="page" class="page libraryPage metadataEditorPage noSecondaryNavPage" data-contextname="${HeaderMetadataManager}" data-require="scripts/editorsidebar,scripts/edititemmetadata,jqmicons"> <div id="editItemMetadataPage" data-role="page" class="page libraryPage metadataEditorPage noSecondaryNavPage" data-contextname="${HeaderMetadataManager}" data-require="scripts/editorsidebar,scripts/edititemmetadata,jqmicons,scripts/edititemsubtitles,scripts/editcollectionitems,scripts/edititemimages">
<div data-role="content editPageContent"> <div>
<div class="editPageSidebar smoothScrollY"> <div class="editPageSidebar smoothScrollY">
<div class="libraryTree"> <div class="libraryTree">
<ul></ul> <ul></ul>
@ -14,28 +14,30 @@
<div class="editPageInnerContent" style="display: none;"> <div class="editPageInnerContent" style="display: none;">
<h1 class="itemName editPageName">&nbsp;</h1> <h1 class="itemName editPageName">&nbsp;</h1>
<br /> <br />
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true"> <paper-tabs>
<a href="#" data-role="button" class="ui-btn-active">${TabMetadata}</a> <paper-tab class="metadataTabButton">${TabMetadata}</paper-tab>
<a id="btnEditSubtitles" style="display: none;" href="#" data-role="button">${TabSubtitles}</a> <paper-tab class="subtitleTabButton">${TabSubtitles}</paper-tab>
<a id="btnEditCollectionTitles" style="display: none;" href="editcollectionitems.html" data-role="button">${TabCollectionTitles}</a> <paper-tab class="collectionItemsTabButton">${TabCollectionTitles}</paper-tab>
<a href="#" data-role="button" id="btnEditImages">${TabImages}</a> <paper-tab class="imagesTabButton">${TabImages}</paper-tab>
</div> </paper-tabs>
<form class="editItemMetadataForm editMetadataForm" style="margin-top: -20px;"> <neon-animated-pages>
<neon-animatable>
<div class="editorTab">
<form class="editItemMetadataForm editMetadataForm">
<div class="metadataFormFields"> <div class="metadataFormFields">
<div> <div style="text-align: center;margin:2em 0 .5em;">
<button class="btnSave" type="submit" data-theme="a" data-icon="check" data-mini="true" data-inline="true">
${ButtonSave} <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> </button>
<button class="btnRefresh btnSimpleRefresh" type="button" data-icon="refresh" data-mini="true" data-inline="true">${ButtonRefresh}</button> </paper-button>
<button class="btnRefresh btnRefreshAdvanced" type="button" data-icon="refresh" data-mini="true" data-inline="true">${ButtonAdvancedRefresh}</button>
<button id="btnIdentify" type="button" data-icon="info" data-mini="true" data-inline="true">${ButtonIdentify}</button> <paper-button raised class="subdued btnRefresh btnRefreshAdvanced"><iron-icon icon="refresh"></iron-icon><span>${ButtonRefresh}</span></paper-button>
<div style="vertical-align: bottom; display: inline-block;"> <paper-button id="btnIdentify" raised class="subdued"><iron-icon icon="info"></iron-icon><span>${ButtonIdentify}</span></paper-button>
<div id="fldDelete" style="display: none;">
<button id="btnDelete" type="button" data-icon="delete" data-mini="true" data-inline="true">${ButtonDelete}</button>
</div>
</div>
</div> </div>
<div style="padding: 10px 0;"> <div style="padding: 10px 0;">
@ -375,13 +377,85 @@
</div> </div>
</div> </div>
<br /> <br />
<button class="btnSave" type="submit" data-theme="a" data-icon="check"> <button type="submit" data-role="none" class="clearButton btnSave">
${ButtonSave} <paper-button raised class="submit block"><iron-icon icon="check"></iron-icon><span>${ButtonSave}</span></paper-button>
</button> </button>
</div> </div>
</form> </form>
</div> </div>
</neon-animatable>
<neon-animatable>
<div class="editorTab subtitleTabContent">
<br />
<div class="readOnlyContent" style="max-width: 700px;">
<div class="subtitleList"></div>
</div>
<h1>${HeaderSearchForSubtitles}</h1>
<form class="subtitleSearchForm">
<div style="display: inline-block; width: 85%;">
<label for="selectLanguage">${LabelLanguage}</label>
<select id="selectLanguage" required="required" data-mini="true"></select>
</div>
<button type="submit" data-icon="search" class="btnSearchSubtitles" data-inline="true" data-iconpos="notext" data-mini="true" style="vertical-align: bottom;">${ButtonSearch}</button>
</form>
<br />
<div class="readOnlyContent" style="max-width: 700px;">
<div class="subtitleResults"></div>
<div class="noSearchResults" style="display: none;">
${MessageNoSubtitleSearchResultsFound}
</div>
</div>
</div>
</neon-animatable>
<neon-animatable>
<div class="editorTab collectionItemsTabContent">
<p style="margin:1.5em 0;">
${EditCollectionItemsHelp}
</p>
<div>
<button type="button" id="btnAddItem" data-icon="plus" data-inline="true" data-mini="true">${ButtonAdd}</button>
<button type="button" id="btnRemoveItems" data-icon="delete" data-inline="true" data-mini="true" disabled="disabled">${ButtonRemove}</button>
</div>
<br />
<div class="collectionItems"></div>
</div>
</neon-animatable>
<neon-animatable>
<div class="editorTab imageEditorTab">
<div style="text-align: center;margin:2em 0 .5em;">
<paper-button raised class="subdued btnBrowseAllImages"><iron-icon icon="cloud"></iron-icon><span>${ButtonBrowseImages}</span></paper-button>
<paper-button raised class="subdued btnOpenUploadMenu"><iron-icon icon="add"></iron-icon><span>${ButtonUpload}</span></paper-button>
</div>
<div id="imagesContainer" style="display: none;">
<h1>${HeaderImages}</h1>
<div id="images">
</div>
<br />
</div>
<div id="backdropsContainer" style="display: none;">
<h1>${HeaderBackdrops}</h1>
<div id="backdrops">
</div>
<br />
</div>
<div id="screenshotsContainer" style="display: none;">
<h1>${Screenshots}</h1>
<div id="screenshots">
</div>
</div>
</div>
</neon-animatable>
</neon-animated-pages>
</div>
</div>
<div data-role="content">
</div> </div>
<div data-role="popup" class="popupIdentify popup" data-theme="a"> <div data-role="popup" class="popupIdentify popup" data-theme="a">
@ -534,6 +608,135 @@
</div> </div>
</div> </div>
<div data-role="popup" class="ui-content popupSubtitleViewer">
<a href="#" data-rel="back" data-role="button" class="ui-btn ui-corner-all ui-shadow ui-btn-b ui-icon-delete ui-btn-icon-notext ui-btn-right">Close</a>
<div class="subtitleViewerContent">
<pre class="subtitleContent" style="margin: 0; border-radius: 0;"></pre>
</div>
</div>
<div data-role="popup" class="popupIdentifyCollection popup" data-theme="a">
<div class="ui-bar-a" style="text-align: center; padding: 0 20px;">
<h3>
${HeaderAddTitles}
</h3>
</div>
<div data-role="content">
<form class="collectionItemSearchForm" style="max-width: initial;">
<div>
<label for="txtLookupName">${LabelName}</label>
<div style="display: inline-block; width: 75%;">
<input type="text" id="txtLookupName" required="required" />
</div>
<button type="submit" data-icon="search" data-mini="true" data-inline="true" data-iconpos="notext">
${ButtonSearch}
</button>
</div>
<div class="collectionItemSearchResults">
</div>
<button id="btnAddItems" type="button" data-icon="plus" data-mini="true">
${ButtonAdd}
</button>
</form>
</div>
</div>
<div data-role="popup" id="popupUpload" data-theme="a">
<form class="uploadItemImageForm" style="max-width: 100%; margin: 0 1.5em 1.5em;">
<h2>${HeaderAddUpdateImage}</h2>
<div>
<p>${LabelJpgPngOnly}</p>
<input type="file" accept="image/*" id="uploadImage" name="uploadImage" />
<div id="imageDropZone" class="imageDropZone">
<h3>${LabelDropImageHere}</h3>
<output id="imageOutput"></output>
</div>
<div id="fldUpload" style="display: none;">
<p data-role="fieldcontain">
<label for="selectImageType">${LabelImageType}</label>
<select id="selectImageType" name="selectImageType">
<option value="Primary">${OptionPrimary}</option>
<option value="Art">${OptionArt}</option>
<option value="Backdrop">${OptionBackdrop}</option>
<option value="Banner">${OptionBanner}</option>
<option value="Box">${OptionBox}</option>
<option value="BoxRear">${OptionBoxRear}</option>
<option value="Disc">${OptionDisc}</option>
<option value="Icon">${OptionIcon}</option>
<option value="Logo">${OptionLogo}</option>
<option value="Menu">${OptionMenu}</option>
<option value="Screenshot">${OptionScreenshot}</option>
<option value="Thumb">${OptionThumb}</option>
</select>
</p>
<button type="submit" data-icon="check" data-theme="b">${ButtonUpload}</button>
</div>
<a data-role="button" data-rel="back" data-icon="delete" onclick="Events.trigger($('#uploadImage').val('')[0], 'change');">${ButtonCancel}</a>
</div>
</form>
</div>
<div data-role="popup" class="popup popupDownload" data-theme="a">
<a href="#" data-rel="back" data-role="button" data-icon="delete" data-iconpos="notext" class="ui-btn-right" data-theme="b">${ButtonClose}</a>
<div class="ui-bar-a" style="text-align: center; padding: 0 20px;">
<h3>${HeaderBrowseOnlineImages}</h3>
</div>
<div data-role="content">
<div style="text-align: center;">
<div style="margin: 0; display: inline-block;">
<label for="selectImageProvider">${LabelSource}</label>
</div>
<div style="margin: 0; display: inline-block;">
<select id="selectImageProvider" name="selectImageProvider" data-mini="true" data-inline="true">
<option value="">${OptionAll}</option>
</select>
</div>
<div style="margin: 0; display: inline-block;">
<label for="selectBrowsableImageType">${LabelImage}</label>
</div>
<div style="margin: 0; display: inline-block;">
<select id="selectBrowsableImageType" name="selectBrowsableImageType" data-mini="true" data-inline="true">
<option value="Primary">${OptionPrimary}</option>
<option value="Art">${OptionArt}</option>
<option value="Backdrop">${OptionBackdrop}</option>
<option value="Banner">${OptionBanner}</option>
<option value="Box">${OptionBox}</option>
<option value="BoxRear">${OptionBoxRear}</option>
<option value="Disc">${OptionDisc}</option>
<option value="Icon">${OptionIcon}</option>
<option value="Logo">${OptionLogo}</option>
<option value="Menu">${OptionMenu}</option>
<option value="Screenshot">${OptionScreenshot}</option>
<option value="Thumb">${OptionThumb}</option>
</select>
</div>
<div class="availableImagesPaging" style="margin: 0; display: inline-block;"></div>
<div style="margin: 0; display: inline-block; vertical-align: middle; margin-left: 10px;">
<label for="chkAllLanguages">${LabelAllLanguages}</label>
<input type="checkbox" id="chkAllLanguages" data-mini="true" />
</div>
</div>
<div class="availableImagesList"></div>
<div style="text-align: center;">
<a href="#" data-rel="back" data-role="button" data-mini="true" data-inline="true" data-icon="delete">${ButtonClose}</a>
</div>
</div>
</div>
</div> </div>
</body> </body>
</html> </html>

View file

@ -1,54 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Emby</title>
</head>
<body>
<div id="editItemSubtitlesPage" data-role="page" class="page libraryPage metadataEditorPage noSecondaryNavPage" data-contextname="${HeaderMetadataManager}" data-require="scripts/editorsidebar,scripts/edititemsubtitles,jqmicons">
<div data-role="content editPageContent">
<div class="editPageSidebar smoothScrollY">
<div class="libraryTree">
<ul></ul>
</div>
</div>
<div class="editPageInnerContent">
<h1 class="itemName editPageName">&nbsp;</h1>
<br />
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
<a id="btnEditMetadata" href="#" data-role="button">${TabMetadata}</a>
<a href="#" data-role="button" class="ui-btn-active">${TabSubtitles}</a>
<a id="btnEditImages" href="#" data-role="button">${TabImages}</a>
</div>
<div class="readOnlyContent" style="max-width: 700px;">
<div class="subtitleList"></div>
</div>
<h1>${HeaderSearchForSubtitles}</h1>
<form class="subtitleSearchForm">
<div style="display: inline-block; width: 85%;">
<label for="selectLanguage">${LabelLanguage}</label>
<select id="selectLanguage" required="required" data-mini="true"></select>
</div>
<button type="submit" data-icon="search" class="btnSearchSubtitles" data-inline="true" data-iconpos="notext" data-mini="true" style="vertical-align: bottom;">${ButtonSearch}</button>
</form>
<br />
<div class="readOnlyContent" style="max-width: 700px;">
<div class="subtitleResults"></div>
<div class="noSearchResults" style="display: none;">
${MessageNoSubtitleSearchResultsFound}
</div>
</div>
</div>
</div>
<div data-role="popup" class="ui-content popupSubtitleViewer">
<a href="#" data-rel="back" data-role="button" class="ui-btn ui-corner-all ui-shadow ui-btn-b ui-icon-delete ui-btn-icon-notext ui-btn-right">Close</a>
<div class="subtitleViewerContent">
<pre class="subtitleContent" style="margin: 0; border-radius: 0;"></pre>
</div>
</div>
</div>
</body>
</html>

View file

@ -2,14 +2,6 @@
var currentItem; var currentItem;
function updateTabs(page, item) {
var query = MetadataEditor.getEditQueryString(item);
$('#btnEditMetadata', page).attr('href', 'edititemmetadata.html?' + query);
$('#btnEditImages', page).attr('href', 'edititemimages.html?' + query);
}
function reload(page) { function reload(page) {
Dashboard.showLoadingMsg(); Dashboard.showLoadingMsg();
@ -22,8 +14,6 @@
LibraryBrowser.renderName(item, $('.itemName', page), true); LibraryBrowser.renderName(item, $('.itemName', page), true);
updateTabs(page, item);
reloadTitles(page, item); reloadTitles(page, item);
}); });
} }
@ -192,7 +182,7 @@
Dashboard.hideLoadingMsg(); Dashboard.hideLoadingMsg();
$('.popupIdentify', page).popup('close'); $('.popupIdentifyCollection', page).popup('close');
reload(page); reload(page);
@ -237,29 +227,14 @@
return false; return false;
} }
$(document).on('pageinitdepends', "#editCollectionTitlesPage", function () { $(document).on('pageinitdepends', "#editItemMetadataPage", function () {
var page = this; var page = this;
$('.libraryTree', page).on('itemclicked', function (event, data) {
if (data.id != currentItem.Id) {
MetadataEditor.currentItemId = data.id;
MetadataEditor.currentItemType = data.itemType;
//Dashboard.navigate('edititemmetadata.html?id=' + data.id);
//$.mobile.urlHistory.ignoreNextHashChange = true;
window.location.hash = 'editItemImagesPage?id=' + data.id;
reload(page);
}
});
$('#btnAddItem', page).on('click', function () { $('#btnAddItem', page).on('click', function () {
var popup = $('.popupIdentify', page).popup('open'); var popup = $('.popupIdentifyCollection', page).popup('open');
$('#txtLookupName', popup).val(''); $('#txtLookupName', popup).val('');
$('.collectionItemSearchResults', popup).empty(); $('.collectionItemSearchResults', popup).empty();
@ -279,17 +254,14 @@
$('.collectionItemSearchForm').off('submit', onSearchFormSubmit).on('submit', onSearchFormSubmit); $('.collectionItemSearchForm').off('submit', onSearchFormSubmit).on('submit', onSearchFormSubmit);
}).on('pagebeforeshowready', "#editCollectionTitlesPage", function () { $(page.querySelector('neon-animated-pages')).on('tabchange', function () {
var page = this; if (parseInt(this.selected) == 2) {
var tabContent = page.querySelector('.collectionItemsTabContent');
reload(page); reload(tabContent);
}
}).on('pagebeforehide', "#editCollectionTitlesPage", function () { });
var page = this;
currentItem = null;
}); });
})(jQuery, document, window, window.FileReader, escape); })(jQuery, document, window, window.FileReader, escape);

View file

@ -8,15 +8,6 @@
var browsableImageType = 'Primary'; var browsableImageType = 'Primary';
var selectedProvider; var selectedProvider;
function updateTabs(page, item) {
var query = MetadataEditor.getEditQueryString(item);
$('#btnEditMetadata', page).attr('href', 'edititemmetadata.html?' + query);
$('#btnEditSubtitles', page).attr('href', 'edititemsubtitles.html?' + query);
$('#btnEditCollectionTitles', page).attr('href', 'editcollectionitems.html?' + query);
}
function getBaseRemoteOptions() { function getBaseRemoteOptions() {
var options = {}; var options = {};
@ -245,20 +236,6 @@
LibraryBrowser.renderName(item, $('.itemName', page), true); LibraryBrowser.renderName(item, $('.itemName', page), true);
updateTabs(page, item);
if (item.Type == "BoxSet") {
$('#btnEditCollectionTitles', page).show();
} else {
$('#btnEditCollectionTitles', page).hide();
}
if (item.MediaType == "Video" && item.LocationType == "FileSystem" && item.Type !== 'TvChannel') {
$('#btnEditSubtitles', page).show();
} else {
$('#btnEditSubtitles', page).hide();
}
ApiClient.getRemoteImageProviders(getBaseRemoteOptions()).done(function (providers) { ApiClient.getRemoteImageProviders(getBaseRemoteOptions()).done(function (providers) {
if (providers.length) { if (providers.length) {
@ -520,25 +497,10 @@
window.EditItemImagesPage = new editItemImages(); window.EditItemImagesPage = new editItemImages();
$(document).on('pageinitdepends', "#editItemImagesPage", function () { $(document).on('pageinitdepends', "#editItemMetadataPage", function () {
var page = this; var page = this;
$('.libraryTree', page).on('itemclicked', function (event, data) {
if (data.id != currentItem.Id) {
MetadataEditor.currentItemId = data.id;
MetadataEditor.currentItemType = data.itemType;
//Dashboard.navigate('edititemmetadata.html?id=' + data.id);
//$.mobile.urlHistory.ignoreNextHashChange = true;
window.location.hash = 'editItemImagesPage?id=' + data.id;
reload(page);
}
});
$('#selectBrowsableImageType', page).on('change', function () { $('#selectBrowsableImageType', page).on('change', function () {
browsableImageType = this.value; browsableImageType = this.value;
@ -578,12 +540,6 @@
reloadBrowsableImages(page); reloadBrowsableImages(page);
}); });
}).on('pageshowready', "#editItemImagesPage", function () {
var page = this;
reload(page);
$('#uploadImage', page).on("change", function () { $('#uploadImage', page).on("change", function () {
setFiles(page, this.files); setFiles(page, this.files);
}); });
@ -605,15 +561,14 @@
return false; return false;
}); });
}).on('pagebeforehide', "#editItemImagesPage", function () { $(page.querySelector('neon-animated-pages')).on('tabchange', function () {
var page = this; if (parseInt(this.selected) == 3) {
var tabContent = page.querySelector('.imageEditorTab');
currentItem = null; reload(tabContent);
}
$('#uploadImage', page).off("change"); });
$("#imageDropZone", page).off('dragover').off('drop');
}); });
})(jQuery, document, window, window.FileReader, escape); })(jQuery, document, window, window.FileReader, escape);

View file

@ -4,15 +4,6 @@
var currentSearchResult; var currentSearchResult;
var metadataEditorInfo; var metadataEditorInfo;
function updateTabs(page, item) {
var query = MetadataEditor.getEditQueryString(item);
$('#btnEditImages', page).attr('href', 'edititemimages.html?' + query);
$('#btnEditSubtitles', page).attr('href', 'edititemsubtitles.html?' + query);
$('#btnEditCollectionTitles', page).attr('href', 'editcollectionitems.html?' + query);
}
function reload(page) { function reload(page) {
unbindItemChanged(page); unbindItemChanged(page);
@ -50,21 +41,19 @@
LibraryBrowser.renderName(item, $('.itemName', page), true); LibraryBrowser.renderName(item, $('.itemName', page), true);
updateTabs(page, item);
setFieldVisibilities(page, item); setFieldVisibilities(page, item);
fillItemInfo(page, item, metadataEditorInfo.ParentalRatingOptions); fillItemInfo(page, item, metadataEditorInfo.ParentalRatingOptions);
if (item.Type == "BoxSet") { if (item.Type == "BoxSet") {
$('#btnEditCollectionTitles', page).show(); $('.collectionItemsTabButton', page).show();
} else { } else {
$('#btnEditCollectionTitles', page).hide(); $('.collectionItemsTabButton', page).hide();
} }
if (item.MediaType == "Video" && item.LocationType == "FileSystem" && item.Type !== 'TvChannel') { if (item.MediaType == "Video" && item.LocationType == "FileSystem" && item.Type !== 'TvChannel') {
$('#btnEditSubtitles', page).show(); $('.subtitleTabButton', page).show();
} else { } else {
$('#btnEditSubtitles', page).hide(); $('.subtitleTabButton', page).hide();
} }
if (item.MediaType == 'Photo') { if (item.MediaType == 'Photo') {
@ -85,21 +74,9 @@
$('#fldTagline', page).hide(); $('#fldTagline', page).hide();
} }
Dashboard.getCurrentUser().done(function (user) {
var moreCommands = LibraryBrowser.getMoreCommands(item, user);
if (moreCommands.indexOf('delete') != -1) {
$('#fldDelete', page).show();
} else {
$('#fldDelete', page).hide();
}
Dashboard.hideLoadingMsg(); Dashboard.hideLoadingMsg();
bindItemChanged(page); bindItemChanged(page);
}); });
});
} }
function renderContentTypeOptions(page, metadataInfo) { function renderContentTypeOptions(page, metadataInfo) {
@ -1447,7 +1424,7 @@
//$.mobile.urlHistory.ignoreNextHashChange = true; //$.mobile.urlHistory.ignoreNextHashChange = true;
window.location.hash = 'editItemMetadataPage?id=' + data.id; window.location.hash = 'editItemMetadataPage?id=' + data.id;
reload(page); $(page.querySelector('neon-animated-pages')).trigger('tabchange');
} }
}); });
@ -1462,14 +1439,34 @@
$('.popupAdvancedRefreshForm').off('submit', EditItemMetadataPage.onRefreshFormSubmit).on('submit', EditItemMetadataPage.onRefreshFormSubmit); $('.popupAdvancedRefreshForm').off('submit', EditItemMetadataPage.onRefreshFormSubmit).on('submit', EditItemMetadataPage.onRefreshFormSubmit);
$('.identifyOptionsForm').off('submit', EditItemMetadataPage.onIdentificationOptionsSubmit).on('submit', EditItemMetadataPage.onIdentificationOptionsSubmit); $('.identifyOptionsForm').off('submit', EditItemMetadataPage.onIdentificationOptionsSubmit).on('submit', EditItemMetadataPage.onIdentificationOptionsSubmit);
$(page.querySelector('paper-tabs')).on('iron-select', function () {
page.querySelector('neon-animated-pages').selected = this.selected;
});
var tabs = page.querySelector('paper-tabs');
var pages = page.querySelector('neon-animated-pages');
configurePaperLibraryTabs(page, tabs, pages);
$(tabs).on('iron-select', function () {
var selected = this.selected;
page.querySelector('neon-animated-pages').selected = selected;
});
$(pages).on('tabchange', function () {
loadTab(page, parseInt(this.selected));
});
}).on('pageshowready', "#editItemMetadataPage", function () { }).on('pageshowready', "#editItemMetadataPage", function () {
var page = this; var page = this;
reload(page);
$(LibraryBrowser).on('itemdeleting', onItemDeleted); $(LibraryBrowser).on('itemdeleting', onItemDeleted);
page.querySelector('paper-tabs').selected = parseInt(getParameterByName('tab') || '0');
page.querySelector('paper-tabs').selected = 0;
}).on('pagebeforehide', "#editItemMetadataPage", function () { }).on('pagebeforehide', "#editItemMetadataPage", function () {
var page = this; var page = this;
@ -1479,5 +1476,35 @@
}); });
function configurePaperLibraryTabs(ownerpage, tabs, pages) {
tabs.hideScrollButtons = true;
$(ownerpage).on('pagebeforeshowready', LibraryBrowser.onTabbedPageBeforeShowReady);
$(pages).on('iron-select', function () {
// When transition animations are used, add a content loading delay to allow the animations to finish
// Otherwise with both operations happening at the same time, it can cause the animation to not run at full speed.
var delay = 500;
var pgs = this;
setTimeout(function () {
$(pgs).trigger('tabchange');
}, delay);
});
}
function loadTab(page, index) {
switch (index) {
case 0:
reload(page);
break;
default:
break;
}
}
})(jQuery, document, window); })(jQuery, document, window);

View file

@ -2,14 +2,6 @@
var currentItem; var currentItem;
function updateTabs(page, item) {
var query = MetadataEditor.getEditQueryString(item);
$('#btnEditMetadata', page).attr('href', 'edititemmetadata.html?' + query);
$('#btnEditImages', page).attr('href', 'edititemimages.html?' + query);
}
function showLocalSubtitles(page, index) { function showLocalSubtitles(page, index) {
Dashboard.showLoadingMsg(); Dashboard.showLoadingMsg();
@ -273,28 +265,12 @@
LibraryBrowser.renderName(item, $('.itemName', page), true); LibraryBrowser.renderName(item, $('.itemName', page), true);
updateTabs(page, item);
fillSubtitleList(page, item); fillSubtitleList(page, item);
Dashboard.hideLoadingMsg(); Dashboard.hideLoadingMsg();
}); });
} }
function onWebSocketMessageReceived(e, data) {
var msg = data;
if (msg.MessageType === "LibraryChanged") {
if (msg.Data.ItemsUpdated.indexOf(currentItem.Id) != -1) {
Logger.log('Item updated - reloading subtitles');
reload($.mobile.activePage);
}
}
}
function onSearchSubmit() { function onSearchSubmit() {
var form = this; var form = this;
@ -305,51 +281,30 @@
return false; return false;
} }
$(document).on('pageinitdepends', "#editItemSubtitlesPage", function () { $(document).on('pageinitdepends', "#editItemMetadataPage", function () {
var page = this; var page = this;
$('.libraryTree', page).on('itemclicked', function (event, data) {
if (data.id != currentItem.Id) {
MetadataEditor.currentItemId = data.id;
MetadataEditor.currentItemType = data.itemType;
//Dashboard.navigate('edititemmetadata.html?id=' + data.id);
//$.mobile.urlHistory.ignoreNextHashChange = true;
window.location.hash = 'editItemSubtitlesPage?id=' + data.id;
reload(page);
}
});
$('.subtitleSearchForm').off('submit', onSearchSubmit).on('submit', onSearchSubmit); $('.subtitleSearchForm').off('submit', onSearchSubmit).on('submit', onSearchSubmit);
}).on('pageshowready', "#editItemSubtitlesPage", function () { $(page.querySelector('neon-animated-pages')).on('tabchange', function () {
var page = this; if (parseInt(this.selected) == 1) {
var tabContent = page.querySelector('.subtitleTabContent');
$('.subtitleResults', page).empty(); $('.subtitleResults', tabContent).empty();
Dashboard.showLoadingMsg(); Dashboard.showLoadingMsg();
reload(page); reload(tabContent);
ApiClient.getCultures().done(function (languages) { ApiClient.getCultures().done(function (languages) {
fillLanguages(page, languages); fillLanguages(tabContent, languages);
});
}
}); });
$(ApiClient).on("websocketmessage", onWebSocketMessageReceived);
}).on('pagebeforehide', "#editItemSubtitlesPage", function () {
var page = this;
currentItem = null;
$(ApiClient).off("websocketmessage", onWebSocketMessageReceived);
}); });
})(jQuery, window, document); })(jQuery, window, document);

View file

@ -132,11 +132,12 @@
$(document).on('pageinitdepends', "#indexPage", function () { $(document).on('pageinitdepends', "#indexPage", function () {
var page = this; var page = this;
var tabContent = page.querySelector('.homeUpcomingTabContent');
$(page.querySelector('neon-animated-pages')).on('tabchange', function () { $(page.querySelector('neon-animated-pages')).on('tabchange', function () {
if (parseInt(this.selected) == 3) { if (parseInt(this.selected) == 3) {
var tabContent = page.querySelector('.homeUpcomingTabContent');
if (LibraryBrowser.needsRefresh(tabContent)) { if (LibraryBrowser.needsRefresh(tabContent)) {
loadUpcoming(tabContent); loadUpcoming(tabContent);
} }

View file

@ -211,7 +211,9 @@
var page = this; var page = this;
var tabs = page.querySelector('paper-tabs'); var tabs = page.querySelector('paper-tabs');
LibraryBrowser.configurePaperLibraryTabs(page, tabs, page.querySelector('neon-animated-pages')); var pages = page.querySelector('neon-animated-pages');
LibraryBrowser.configurePaperLibraryTabs(page, tabs, pages);
$(tabs).on('iron-select', function () { $(tabs).on('iron-select', function () {
var selected = this.selected; var selected = this.selected;
@ -229,7 +231,7 @@
} }
}); });
$(page.querySelector('neon-animated-pages')).on('tabchange', function () { $(pages).on('tabchange', function () {
loadTab(page, parseInt(this.selected)); loadTab(page, parseInt(this.selected));
}); });

View file

@ -88,7 +88,7 @@
$('.btnSync', page).addClass('hide'); $('.btnSync', page).addClass('hide');
} }
var editImagesHref = user.Policy.IsAdministrator ? 'edititemimages.html' + editQuery : null; var editImagesHref = user.Policy.IsAdministrator ? 'edititemmetadata.html' + (editQuery + "&tab=3") : null;
$('#itemImage', page).html(LibraryBrowser.getDetailImageHtml(item, editImagesHref, true)); $('#itemImage', page).html(LibraryBrowser.getDetailImageHtml(item, editImagesHref, true));

View file

@ -133,7 +133,7 @@
function renderImage(page, item, user) { function renderImage(page, item, user) {
var imageHref = user.Policy.IsAdministrator && item.MediaType != 'Photo' ? "edititemimages.html?id=" + item.Id : ""; var imageHref = user.Policy.IsAdministrator && item.MediaType != 'Photo' ? "edititemmetadata.html?tab=3&id=" + item.Id : "";
LibraryBrowser.renderDetailImage(page.querySelector('.detailImageContainer'), item, imageHref); LibraryBrowser.renderDetailImage(page.querySelector('.detailImageContainer'), item, imageHref);
} }
@ -959,7 +959,7 @@
html += '<span>' + type.name + '</span>'; html += '<span>' + type.name + '</span>';
if (user.Policy.IsAdministrator) { if (user.Policy.IsAdministrator) {
html += '<a class="detailSectionHeaderButton" href="editcollectionitems.html?id=' + currentItem.Id + '" data-role="button" data-icon="edit" data-iconpos="notext" data-inline="true">' + Globalize.translate('ButtonEdit') + '</a>'; html += '<a class="detailSectionHeaderButton" href="edititemmetadata.html?tab=2&id=' + currentItem.Id + '" data-role="button" data-icon="edit" data-iconpos="notext" data-inline="true">' + Globalize.translate('ButtonEdit') + '</a>';
} }
html += '</div>'; html += '</div>';

View file

@ -138,18 +138,18 @@
} }
if (!rRow.HasImageTagsPrimary) { if (!rRow.HasImageTagsPrimary) {
html += '<a href="edititemimages.html?id=' + rRow.Id + '"><img src="css/images/editor/missingprimaryimage.png" title="Missing primary image." style="height:16px;" /></a>'; html += '<a href="edititemmetadata.html?tab=3&id=' + rRow.Id + '"><img src="css/images/editor/missingprimaryimage.png" title="Missing primary image." style="height:16px;" /></a>';
} }
if (!rRow.HasImageTagsBackdrop) { if (!rRow.HasImageTagsBackdrop) {
if (rRow.RowType !== "Episode" && rRow.RowType !== "Season" && rRow.MediaType !== "Audio" && rRow.RowType !== "TvChannel" && rRow.RowType !== "MusicAlbum") { if (rRow.RowType !== "Episode" && rRow.RowType !== "Season" && rRow.MediaType !== "Audio" && rRow.RowType !== "TvChannel" && rRow.RowType !== "MusicAlbum") {
html += '<a href="edititemimages.html?id=' + rRow.Id + '"><img src="css/images/editor/missingbackdrop.png" title="Missing backdrop image." style="height:16px;" /></a>'; html += '<a href="edititemmetadata.html?tab=3&id=' + rRow.Id + '"><img src="css/images/editor/missingbackdrop.png" title="Missing backdrop image." style="height:16px;" /></a>';
} }
} }
if (!rRow.HasImageTagsLogo) { if (!rRow.HasImageTagsLogo) {
if (rRow.RowType === "Movie" || rRow.RowType === "Trailer" || rRow.RowType === "Series" || rRow.RowType === "MusicArtist" || rRow.RowType === "BoxSet") { if (rRow.RowType === "Movie" || rRow.RowType === "Trailer" || rRow.RowType === "Series" || rRow.RowType === "MusicArtist" || rRow.RowType === "BoxSet") {
html += '<a href="edititemimages.html?id=' + rRow.Id + '"><img src="css/images/editor/missinglogo.png" title="Missing logo image." style="height:16px;" /></a>'; html += '<a href="edititemmetadata.html?tab=3&id=' + rRow.Id + '"><img src="css/images/editor/missinglogo.png" title="Missing logo image." style="height:16px;" /></a>';
} }
} }
break; break;

View file

@ -6735,7 +6735,6 @@ this._removeChildren();
</script> </script>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:400,300,300italic,400italic,500,500italic,700,700italic">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto+Mono:400,700"> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto+Mono:400,700">
<style is="custom-style"> <style is="custom-style">