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

update plugin catalog

This commit is contained in:
Luke Pulverenti 2015-08-24 16:37:34 -04:00
parent 65ed0d3d3c
commit 4094adb5a7
11 changed files with 425 additions and 438 deletions

View file

@ -11,403 +11,395 @@
<ul></ul> <ul></ul>
</div> </div>
</div> </div>
<div class="editPageInnerContent" style="display: none;"> <div class="editPageInnerContent">
<h1 class="itemName editPageName">&nbsp;</h1> <h1 class="itemName editPageName">&nbsp;</h1>
<br /> <br />
<paper-tabs> <paper-tabs>
<paper-tab class="metadataTabButton">${TabMetadata}</paper-tab> <paper-tab class="metadataTabButton">${TabMetadata}</paper-tab>
<paper-tab class="subtitleTabButton">${TabSubtitles}</paper-tab> <paper-tab class="subtitleTabButton hide">${TabSubtitles}</paper-tab>
<paper-tab class="collectionItemsTabButton">${TabCollectionTitles}</paper-tab> <paper-tab class="collectionItemsTabButton hide">${TabCollectionTitles}</paper-tab>
<paper-tab class="imagesTabButton">${TabImages}</paper-tab> <paper-tab class="imagesTabButton">${TabImages}</paper-tab>
</paper-tabs> </paper-tabs>
<neon-animated-pages> <div class="editorTab">
<neon-animatable>
<div class="editorTab">
<form class="editItemMetadataForm editMetadataForm"> <form class="editItemMetadataForm editMetadataForm">
<div class="metadataFormFields"> <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;">
<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>
<paper-textarea id="txtOverview" label="${LabelOverview}"></paper-textarea>
</div>
<div id="fldShortOverview" style="display: none;">
<paper-input id="txtShortOverview" type="text" label="${LabelShortOverview}"></paper-input>
</div>
<div id="fldPremiereDate" style="display: none;">
<paper-input id="txtPremiereDate" type="date" label="${LabelReleaseDate}"></paper-input>
</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;">
<paper-input id="txtEndDate" type="date" label="${LabelEndDate}"></paper-input>
</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="time" 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">
<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>
<a data-role="button" data-inline="true" data-mini="true" data-icon="plus" data-iconpos="notext" onclick="EditItemMetadataPage.addElementToEditableListview(this)" style="vertical-align: top;">${ButtonAdd}</a>
</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>
<a data-role="button" data-inline="true" data-mini="true" data-icon="plus" data-iconpos="notext" onclick="EditItemMetadataPage.addElementToEditableListview(this)" style="vertical-align: top;">${ButtonAdd}</a>
</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>
<a data-role="button" data-inline="true" data-mini="true" data-icon="plus" data-iconpos="notext" onclick="EditItemMetadataPage.addElementToEditableListview(this)" style="vertical-align: top;">${ButtonAdd}</a>
</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>
<a data-role="button" data-inline="true" data-mini="true" data-icon="plus" data-iconpos="notext" onclick="EditItemMetadataPage.addElementToEditableListview(this)" style="vertical-align: top;">${ButtonAdd}</a>
</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>
<a data-role="button" data-inline="true" data-mini="true" data-icon="plus" data-iconpos="notext" onclick="EditItemMetadataPage.addElementToEditableListview(this)" style="vertical-align: top;">${ButtonAdd}</a>
</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>
</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="margin:2em 0 .5em;text-align:center;"> <div style="margin:2em 0 .5em;text-align:center;">
<paper-button raised class="subdued btnBrowseAllImages"><iron-icon icon="cloud"></iron-icon><span>${ButtonBrowseImages}</span></paper-button> <paper-button raised class="submit">
<paper-button raised class="subdued btnOpenUploadMenu"><iron-icon icon="add"></iron-icon><span>${ButtonUpload}</span></paper-button> <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>
<div id="imagesContainer" style="display: none;"> <div style="padding: 0 0 10px;">
<h1>${HeaderImages}</h1> <div id="fldContentType" style="display:none;">
<div id="images"> <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;">
<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>
<paper-textarea id="txtOverview" label="${LabelOverview}"></paper-textarea>
</div>
<div id="fldShortOverview" style="display: none;">
<paper-input id="txtShortOverview" type="text" label="${LabelShortOverview}"></paper-input>
</div>
<div id="fldPremiereDate" style="display: none;">
<paper-input id="txtPremiereDate" type="date" label="${LabelReleaseDate}"></paper-input>
</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;">
<paper-input id="txtEndDate" type="date" label="${LabelEndDate}"></paper-input>
</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="time" 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>
<br />
</div> </div>
<div id="backdropsContainer" style="display: none;"> <div class="detailSection" id="collapsibleSpecialEpisodeInfo" style="display: none;">
<h1>${HeaderBackdrops}</h1> <h1>
<div id="backdrops"> ${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>
<br />
</div> </div>
<div id="screenshotsContainer" style="display: none;"> <div class="detailSection">
<h1>${Screenshots}</h1> <h1>
<div id="screenshots"> ${HeaderExternalIds}
</h1>
<div class="detailSectionContent">
<div class="externalIds editorFieldset">
</div>
</div> </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>
<a data-role="button" data-inline="true" data-mini="true" data-icon="plus" data-iconpos="notext" onclick="EditItemMetadataPage.addElementToEditableListview(this)" style="vertical-align: top;">${ButtonAdd}</a>
</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>
<a data-role="button" data-inline="true" data-mini="true" data-icon="plus" data-iconpos="notext" onclick="EditItemMetadataPage.addElementToEditableListview(this)" style="vertical-align: top;">${ButtonAdd}</a>
</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>
<a data-role="button" data-inline="true" data-mini="true" data-icon="plus" data-iconpos="notext" onclick="EditItemMetadataPage.addElementToEditableListview(this)" style="vertical-align: top;">${ButtonAdd}</a>
</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>
<a data-role="button" data-inline="true" data-mini="true" data-icon="plus" data-iconpos="notext" onclick="EditItemMetadataPage.addElementToEditableListview(this)" style="vertical-align: top;">${ButtonAdd}</a>
</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>
<a data-role="button" data-inline="true" data-mini="true" data-icon="plus" data-iconpos="notext" onclick="EditItemMetadataPage.addElementToEditableListview(this)" style="vertical-align: top;">${ButtonAdd}</a>
</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> </div>
</neon-animatable>
</neon-animated-pages> </form>
</div>
<div class="editorTab subtitleTabContent">
<br />
<div class="readOnlyContent" style="max-width: 700px;">
<div class="subtitleList"></div>
</div>
<br/>
<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 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>
<div class="editorTab imageEditorTab">
<div style="margin:2em 0 .5em;text-align:center;">
<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>
</div> </div>
<div data-role="content"> <div data-role="content">

View file

@ -254,7 +254,7 @@
$('.collectionItemSearchForm').off('submit', onSearchFormSubmit).on('submit', onSearchFormSubmit); $('.collectionItemSearchForm').off('submit', onSearchFormSubmit).on('submit', onSearchFormSubmit);
$(page.querySelector('neon-animated-pages')).on('tabchange', function () { $(page.querySelector('paper-tabs')).on('tabchange', function () {
if (parseInt(this.selected) == 2) { if (parseInt(this.selected) == 2) {
var tabContent = page.querySelector('.collectionItemsTabContent'); var tabContent = page.querySelector('.collectionItemsTabContent');

View file

@ -565,7 +565,7 @@
return false; return false;
}); });
$(page.querySelector('neon-animated-pages')).on('tabchange', function () { $(page.querySelector('paper-tabs')).on('tabchange', function () {
if (parseInt(this.selected) == 3) { if (parseInt(this.selected) == 3) {
var tabContent = page.querySelector('.imageEditorTab'); var tabContent = page.querySelector('.imageEditorTab');

View file

@ -47,15 +47,15 @@
fillItemInfo(page, item, metadataEditorInfo.ParentalRatingOptions); fillItemInfo(page, item, metadataEditorInfo.ParentalRatingOptions);
if (item.Type == "BoxSet") { if (item.Type == "BoxSet") {
$('.collectionItemsTabButton', page).show(); page.querySelector('.collectionItemsTabButton').classList.remove('hide');
} else { } else {
$('.collectionItemsTabButton', page).hide(); page.querySelector('.collectionItemsTabButton').classList.add('hide');
} }
if (item.MediaType == "Video" && item.LocationType == "FileSystem" && item.Type !== 'TvChannel') { if (item.MediaType == "Video" && item.LocationType == "FileSystem" && item.Type !== 'TvChannel') {
$('.subtitleTabButton', page).show(); page.querySelector('.subtitleTabButton').classList.remove('hide');
} else { } else {
$('.subtitleTabButton', page).hide(); page.querySelector('.subtitleTabButton').classList.add('hide');
} }
if (item.MediaType == 'Photo') { if (item.MediaType == 'Photo') {
@ -1415,6 +1415,11 @@
}); });
} }
function showTab(page, index) {
$('.editorTab', page).addClass('hide')[index].classList.remove('hide');
}
$(document).on('pageinitdepends', "#editItemMetadataPage", function () { $(document).on('pageinitdepends', "#editItemMetadataPage", function () {
var page = this; var page = this;
@ -1455,7 +1460,7 @@
//$.mobile.urlHistory.ignoreNextHashChange = true; //$.mobile.urlHistory.ignoreNextHashChange = true;
window.location.hash = 'editItemMetadataPage?id=' + data.id; window.location.hash = 'editItemMetadataPage?id=' + data.id;
$(page.querySelector('neon-animated-pages')).trigger('tabchange'); $(page.querySelector('paper-tabs')).trigger('tabchange');
} }
}); });
@ -1470,22 +1475,16 @@
$('.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 tabs = page.querySelector('paper-tabs');
var pages = page.querySelector('neon-animated-pages');
configurePaperLibraryTabs(page, tabs, pages); configurePaperLibraryTabs(page, tabs);
$(tabs).on('iron-select', function () { $(tabs).on('iron-select', function () {
Events.trigger(this, 'tabchange');
}).on('tabchange', function () {
var selected = this.selected; var selected = this.selected;
showTab(page, selected);
page.querySelector('neon-animated-pages').selected = selected;
});
$(pages).on('tabchange', function () {
loadTab(page, parseInt(this.selected)); loadTab(page, parseInt(this.selected));
}); });
@ -1503,15 +1502,7 @@
var selected = parseInt(getParameterByName('tab') || '0'); var selected = parseInt(getParameterByName('tab') || '0');
page.querySelector('paper-tabs').selected = 0; page.querySelector('paper-tabs').selected = selected;
if (selected) {
// Looks like a bug in paper-tabs. It won't set the tab if we try to do it too quickly
setTimeout(function () {
page.querySelector('paper-tabs').selected = selected;
}, 700);
}
}).on('pagebeforehide', "#editItemMetadataPage", function () { }).on('pagebeforehide', "#editItemMetadataPage", function () {
@ -1522,21 +1513,30 @@
}); });
function configurePaperLibraryTabs(ownerpage, tabs, pages) { function configurePaperLibraryTabs(ownerpage, tabs) {
tabs.hideScrollButtons = true; tabs.hideScrollButtons = true;
tabs.noSlide = true;
tabs.noink = true;
$(ownerpage).on('pagebeforeshowready', LibraryBrowser.onTabbedPageBeforeShowReady); $(ownerpage).on('pagebeforeshowready', function () {
$(pages).on('iron-select', function () { var selected = tabs.selected;
// When transition animations are used, add a content loading delay to allow the animations to finish if (selected == null) {
// Otherwise with both operations happening at the same time, it can cause the animation to not run at full speed.
var delay = 500; Logger.log('selected tab is null, checking query string');
var pgs = this;
setTimeout(function () { selected = parseInt(getParameterByName('tab') || '0');
$(pgs).trigger('tabchange');
}, delay); Logger.log('selected tab will be ' + selected);
tabs.selected = selected;
Events.trigger(tabs, 'tabchange');
} else {
Events.trigger(tabs, 'tabchange');
}
}); });
} }
@ -1548,6 +1548,7 @@
reload(page); reload(page);
break; break;
default: default:
reload(page);
break; break;
} }
} }

View file

@ -287,7 +287,7 @@
$('.subtitleSearchForm').off('submit', onSearchSubmit).on('submit', onSearchSubmit); $('.subtitleSearchForm').off('submit', onSearchSubmit).on('submit', onSearchSubmit);
$(page.querySelector('neon-animated-pages')).on('tabchange', function () { $(page.querySelector('paper-tabs')).on('tabchange', function () {
if (parseInt(this.selected) == 1) { if (parseInt(this.selected) == 1) {
var tabContent = page.querySelector('.subtitleTabContent'); var tabContent = page.querySelector('.subtitleTabContent');

View file

@ -402,8 +402,6 @@
}).on('pagebeforeshowready', ".metadataEditorPage", function () { }).on('pagebeforeshowready', ".metadataEditorPage", function () {
window.MetadataEditor = new metadataEditor();
var page = this; var page = this;
Dashboard.getCurrentUser().done(function (user) { Dashboard.getCurrentUser().done(function (user) {
@ -430,6 +428,7 @@
}).on('pageinitdepends', ".metadataEditorPage", function () { }).on('pageinitdepends', ".metadataEditorPage", function () {
Dashboard.importCss('css/metadataeditor.css'); Dashboard.importCss('css/metadataeditor.css');
window.MetadataEditor = new metadataEditor();
}).on('pagebeforehide', ".metadataEditorPage", function () { }).on('pagebeforehide', ".metadataEditorPage", function () {
@ -482,7 +481,6 @@
return query; return query;
}; };
self.loadJsTree = function () { self.loadJsTree = function () {
var deferred = DeferredBuilder.Deferred(); var deferred = DeferredBuilder.Deferred();

View file

@ -336,11 +336,12 @@
requiresSettingStartTimeOnStart = false; requiresSettingStartTimeOnStart = false;
var startTime = getStartTime(val); var startTime = getStartTime(val);
var playNow = false;
if (elem.tagName.toLowerCase() == 'audio') { if (elem.tagName.toLowerCase() == 'audio') {
elem.src = val; elem.src = val;
elem.play(); playNow = true;
} }
else { else {
@ -376,10 +377,12 @@
} else { } else {
elem.src = val; elem.src = val;
elem.autoplay = true;
setTracks(elem, tracks); setTracks(elem, tracks);
$(elem).one("loadedmetadata", onLoadedMetadata); $(elem).one("loadedmetadata", onLoadedMetadata);
playNow = true;
} }
var currentTrackIndex = -1; var currentTrackIndex = -1;
@ -394,6 +397,10 @@
} }
currentSrc = val; currentSrc = val;
if (playNow) {
elem.play();
}
}; };
function setTracks(elem, tracks) { function setTracks(elem, tracks) {

View file

@ -563,9 +563,7 @@
} }
if (user.Policy.IsAdministrator) { if (user.Policy.IsAdministrator) {
if (item.Type != "Recording" && item.Type != "Program") { commands.push('edit');
commands.push('edit');
}
} }
commands.push('refresh'); commands.push('refresh');
@ -1216,9 +1214,7 @@
// itemCommands.push('playmenu'); // itemCommands.push('playmenu');
//} //}
if (item.Type != "Recording" && item.Type != "Program") { itemCommands.push('edit');
itemCommands.push('edit');
}
if (item.LocalTrailerCount) { if (item.LocalTrailerCount) {
itemCommands.push('trailer'); itemCommands.push('trailer');

View file

@ -946,15 +946,17 @@
// This will start the transcoding process before actually feeding the video url into the player // This will start the transcoding process before actually feeding the video url into the player
if ($.browser.safari && !mediaSource.RunTimeTicks) { if ($.browser.safari && !mediaSource.RunTimeTicks) {
Dashboard.showModalLoadingMsg(); Dashboard.showLoadingMsg();
ApiClient.ajax({ ApiClient.ajax({
type: 'GET', type: 'GET',
url: streamInfo.url.replace('master.m3u8', 'live.m3u8') url: streamInfo.url.replace('master.m3u8', 'live.m3u8')
}).always(function () {
Dashboard.hideLoadingMsg();
}).done(function () { }).done(function () {
self.playVideoInternal(item, mediaSource, startPosition, streamInfo, callback); self.playVideoInternal(item, mediaSource, startPosition, streamInfo, callback);
}).fail(function() {
Dashboard.hideModalLoadingMsg();
}); });
} else { } else {
@ -1057,8 +1059,6 @@
}).one("playing.mediaplayerevent", function () { }).one("playing.mediaplayerevent", function () {
Dashboard.hideModalLoadingMsg();
// For some reason this is firing at the start, so don't bind until playback has begun // For some reason this is firing at the start, so don't bind until playback has begun
$(this).on("ended", self.onPlaybackStopped).one('ended', self.playNextAfterEnded); $(this).on("ended", self.onPlaybackStopped).one('ended', self.playNextAfterEnded);
@ -1091,7 +1091,6 @@
}).on("error.mediaplayerevent", function () { }).on("error.mediaplayerevent", function () {
Dashboard.hideModalLoadingMsg();
self.stop(); self.stop();
var errorMsg = Globalize.translate('MessageErrorPlayingVideo'); var errorMsg = Globalize.translate('MessageErrorPlayingVideo');

View file

@ -1018,6 +1018,7 @@
function playInternalPostMediaSourceSelection(item, mediaSource, startPosition, callback) { function playInternalPostMediaSourceSelection(item, mediaSource, startPosition, callback) {
Dashboard.hideModalLoadingMsg();
self.currentMediaSource = mediaSource; self.currentMediaSource = mediaSource;
self.currentItem = item; self.currentItem = item;
@ -1030,7 +1031,6 @@
} else if (item.MediaType === "Audio") { } else if (item.MediaType === "Audio") {
Dashboard.hideModalLoadingMsg();
playAudio(item, self.currentMediaSource, startPosition, callback); playAudio(item, self.currentMediaSource, startPosition, callback);
} }
} }

View file

@ -88,13 +88,6 @@
return -1; return -1;
} }
if (a.installs > b.installs) {
return 1;
}
if (b.installs > a.installs) {
return -1;
}
return 0; return 0;
}); });
@ -108,7 +101,7 @@
html += '<div class="detailSectionHeader">' + currentCategory + '</div>'; html += '<div class="detailSectionHeader">' + currentCategory + '</div>';
var topPlugins = allPlugins.slice(0).sort(function (a, b) { var topPlugins = allPlugins.slice(0).sort(function (a, b) {
if (a.installs > b.installs) { if (a.installs < b.installs) {
return 1; return 1;
} }
if (b.installs > a.installs) { if (b.installs > a.installs) {
@ -129,6 +122,7 @@
}); });
var limit = screen.availWidth >= 1920 ? 15 : 12; var limit = screen.availWidth >= 1920 ? 15 : 12;
for (i = 0, length = Math.min(topPlugins.length, limit) ; i < length; i++) { for (i = 0, length = Math.min(topPlugins.length, limit) ; i < length; i++) {
html += getPluginHtml(topPlugins[i], options, installedPlugins); html += getPluginHtml(topPlugins[i], options, installedPlugins);
} }