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

remove paper inputs

This commit is contained in:
Luke Pulverenti 2016-08-21 15:18:58 -04:00
parent 4a296d5125
commit 0ffbd3d563
12 changed files with 445 additions and 456 deletions

View file

@ -11,7 +11,7 @@
box-sizing: border-box;
/* Remove select styling */
/* Font size must the 16px or larger to prevent iOS page zoom on focus */
font-size: inherit;
font-size: 110%;
/* General select styles: change as needed */
font-family: inherit;
font-weight: inherit;
@ -34,7 +34,7 @@
.inputLabel-float {
transform-origin: left top;
transform: scale(1.3,1.3) translateY(86%);
transform: scale(1.25,1.25) translateY(94%);
}
.inputLabelFocused {

View file

@ -48,7 +48,7 @@
label.classList.add('inputLabel');
label.classList.add('inputLabelUnfocused');
var instanceSupportsFloat = supportsFloatingLabel && this.type != 'date';
var instanceSupportsFloat = supportsFloatingLabel && this.type != 'date' && this.type != 'time';
label.htmlFor = this.id;
parentNode.insertBefore(label, this);

View file

@ -11,7 +11,7 @@
box-sizing: border-box;
/* Remove select styling */
/* Font size must the 16px or larger to prevent iOS page zoom on focus */
font-size: inherit;
font-size: 110%;
/* General select styles: change as needed */
font-family: inherit;
font-weight: inherit;

View file

@ -1,4 +1,4 @@
define(['jQuery','paper-checkbox', 'listViewStyle', 'paper-input', 'paper-checkbox'], function ($) {
define(['jQuery','paper-checkbox', 'listViewStyle', 'emby-input', 'emby-select'], function ($) {
return function (page, providerId, options) {

View file

@ -13,15 +13,15 @@
<!-- Terrible, but this hidden field prevents the yellow background in chrome -->
<div style="height:0; overflow: hidden;"><input type="text" name="fakeusernameremembered" tabindex="-1" /><input type="password" name="fakepasswordremembered" tabindex="-1" /></div>
<div>
<div>
<paper-input class="txtUser" label="${LabelUsername}" required="required" autocomplete="off"></paper-input>
<br/>
<div class="inputContainer">
<input is="emby-input" class="txtUser" label="${LabelUsername}" required="required" autocomplete="off"/>
</div>
<div>
<paper-input class="txtPass" label="${LabelPassword}" required="required" autocomplete="off" type="password"></paper-input>
<div class="inputContainer">
<input is="emby-input" class="txtPass" label="${LabelPassword}" required="required" autocomplete="off" type="password"/>
</div>
<div>
<button is="emby-button" type="submit" class="raised submit block"><i class="md-icon">check</i><span>${ButtonSave}</span></button>
</div>
</div>
</form>
@ -39,21 +39,17 @@
</div>
<form class="formListings">
<div>
<div>
<div class="selectContainer">
<br />
<label for="selectCountry" class="selectLabel">${LabelCountry}</label>
<select id="selectCountry" data-mini="true" required="required"></select>
<select is="emby-select" id="selectCountry" data-mini="true" required="required" label="${LabelCountry}"></select>
</div>
<div class="inputContainer">
<input is="emby-input" class="txtZipCode" label="${LabelZipCode}" required="required"/>
</div>
<div class="selectContainer">
<select is="emby-select" id="selectListing" data-mini="true" required="required" label="${LabelLineup}"></select>
</div>
<div>
<paper-input class="txtZipCode" label="${LabelZipCode}" required="required"></paper-input>
</div>
<div>
<br />
<label for="selectListing" class="selectLabel">${LabelLineup}</label>
<select id="selectListing" data-mini="true" required="required"></select>
</div>
<div>
<br />
<paper-checkbox class="chkAllTuners">${OptionEnableForAllTuners}</paper-checkbox>
<div class="selectTunersSection hide">
<br /><br />

View file

@ -1,54 +1,62 @@
<div id="liveTvSettingsPage" data-role="page" class="page type-interior liveTvPage withTabs" data-helpurl="https://github.com/MediaBrowser/Wiki/wiki/Live%20TV" data-require="jqmlistview,scripts/livetvsettings,paper-checkbox,paper-input,emby-collapse,emby-button">
<div id="liveTvSettingsPage" data-role="page" class="page type-interior liveTvPage withTabs" data-helpurl="https://github.com/MediaBrowser/Wiki/wiki/Live%20TV" data-require="scripts/livetvsettings,paper-checkbox,emby-input,emby-select,emby-collapse,emby-button">
<div data-role="content">
<div class="content-primary">
<form class="liveTvSettingsForm">
<ul data-role="listview" class="ulForm">
<li>
<label for="selectGuideDays" class="selectLabel">${LabelNumberOfGuideDays}</label>
<select id="selectGuideDays" data-mini="true">
<option value="">${OptionAutomatic}</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
</select>
<div class="fieldDescription">${LabelNumberOfGuideDaysHelp}</div>
</li>
</ul>
<div class="selectContainer">
<select is="emby-select" id="selectGuideDays" label="${LabelNumberOfGuideDays}">
<option value="">${OptionAutomatic}</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
</select>
<div class="fieldDescription">${LabelNumberOfGuideDaysHelp}</div>
</div>
<div class="paperCheckboxList">
<label>${LabelEnableInternetMetadataForTvPrograms}</label>
<paper-checkbox id="chkMovies">${OptionTVMovies}</paper-checkbox>
</div>
<div>
<br />
<paper-input id="txtRecordingPath" label="${LabelRecordingPath}" style="width:84%;display:inline-block;"></paper-input>
<button type="button" is="paper-icon-button-light" id="btnSelectRecordingPath" title="${ButtonSelectDirectory}" class="autoSize"><i class="md-icon">search</i></button>
<br />
<div class="inputContainer">
<div style="display: flex; align-items: center;">
<div style="flex-grow:1;">
<input is="emby-input" id="txtRecordingPath" label="${LabelRecordingPath}" required="required" autocomplete="off" />
</div>
<button type="button" is="paper-icon-button-light" id="btnSelectRecordingPath" title="${ButtonSelectDirectory}"><i class="md-icon">search</i></button>
</div>
<div class="fieldDescription">${LabelRecordingPathHelp}</div>
</div>
<br />
<div>
<paper-checkbox id="chkEnableRecordingSubfolders">${OptionEnableRecordingSubfolders}</paper-checkbox>
</div>
<div>
<br />
<paper-input id="txtMovieRecordingPath" label="${LabelMovieRecordingPath}" style="width:84%;display:inline-block;"></paper-input>
<button type="button" is="paper-icon-button-light" id="btnSelectMovieRecordingPath" title="${ButtonSelectDirectory}" class="autoSize"><i class="md-icon">search</i></button>
</div>
<div>
<paper-input id="txtSeriesRecordingPath" label="${LabelSeriesRecordingPath}" style="width:84%;display:inline-block;"></paper-input>
<button type="button" is="paper-icon-button-light" id="btnSelectSeriesRecordingPath" title="${ButtonSelectDirectory}" class="autoSize"><i class="md-icon">search</i></button>
</div>
<br />
<br />
<div class="inputContainer">
<div style="display: flex; align-items: center;">
<div style="flex-grow:1;">
<input is="emby-input" id="txtMovieRecordingPath" label="${LabelMovieRecordingPath}" required="required" autocomplete="off" />
</div>
<button type="button" is="paper-icon-button-light" id="btnSelectMovieRecordingPath" title="${ButtonSelectDirectory}"><i class="md-icon">search</i></button>
</div>
</div>
<div class="inputContainer">
<div style="display: flex; align-items: center;">
<div style="flex-grow:1;">
<input is="emby-input" id="txtSeriesRecordingPath" label="${LabelSeriesRecordingPath}" required="required" autocomplete="off" />
</div>
<button type="button" is="paper-icon-button-light" id="btnSelectSeriesRecordingPath" title="${ButtonSelectDirectory}"><i class="md-icon">search</i></button>
</div>
</div>
<div>
<paper-checkbox id="chkOrganize">${OptionSendRecordingsToAutoOrganize}</paper-checkbox>
</div>
@ -65,23 +73,19 @@
<div class="fieldDescription paperCheckboxFieldDescription">${OptionConvertRecordingPreserveAudioHelp}</div>
</div>
<br />
<br />
<div>
<h1>${HeaderDefaultPadding}</h1>
<div>
<paper-input type="number" id="txtPrePaddingMinutes" pattern="[0-9]*" required="required" min="0" step="1" label="${LabelPrePaddingMinutes}"></paper-input>
<div class="inputContainer">
<input is="emby-input" type="number" id="txtPrePaddingMinutes" pattern="[0-9]*" required="required" min="0" step="1" label="${LabelPrePaddingMinutes}"/>
</div>
<div>
<paper-input type="number" id="txtPostPaddingMinutes" pattern="[0-9]*" required="required" min="0" step="1" label="${LabelPostPaddingMinutes}"></paper-input>
<div class="inputContainer">
<input is="emby-input" type="number" id="txtPostPaddingMinutes" pattern="[0-9]*" required="required" min="0" step="1" label="${LabelPostPaddingMinutes}"/>
</div>
</div>
<br />
<br />
<ul data-role="listview" class="ulForm">
<li>
<button is="emby-button" type="submit" class="raised submit block"><i class="md-icon">check</i><span>${ButtonSave}</span></button>
</li>
</ul>
<div>
<button is="emby-button" type="submit" class="raised submit block"><i class="md-icon">check</i><span>${ButtonSave}</span></button>
</div>
</form>
</div>
</div>

View file

@ -1,42 +1,36 @@
<div id="liveTvTunerProviderHdHomerunPage" data-role="page" class="page type-interior liveTvSettingsPage withTabs" data-helpurl="https://github.com/MediaBrowser/Wiki/wiki/Live%20TV" data-require="scripts/livetvtunerprovider-hdhomerun,paper-input,paper-checkbox,emby-button">
<div id="liveTvTunerProviderHdHomerunPage" data-role="page" class="page type-interior liveTvSettingsPage withTabs" data-helpurl="https://github.com/MediaBrowser/Wiki/wiki/Live%20TV" data-require="scripts/livetvtunerprovider-hdhomerun,emby-input,paper-checkbox,emby-button">
<div data-role="content">
<div class="content-primary">
<div class="readOnlyContent" style="margin-top: 2em;">
<form>
<h1>HD Homerun</h1>
<form>
<div>
<div>
<paper-input class="txtDevicePath" label="${LabelTunerIpAddress}" required="required"></paper-input>
</div>
<div>
<br />
<paper-checkbox class="chkEnabled" checked>${LabelEnableThisTuner}</paper-checkbox>
<div class="fieldDescription paperCheckboxFieldDescription">${LabelEnableThisTunerHelp}</div>
</div>
<div>
<br />
<paper-checkbox class="chkFavorite">${LabelImportOnlyFavoriteChannels}</paper-checkbox>
<div class="fieldDescription paperCheckboxFieldDescription">${ImportFavoriteChannelsHelp}</div>
</div>
<div>
<br />
<paper-checkbox class="chkTranscode">${LabelAllowHWTranscoding}</paper-checkbox>
<div class="fieldDescription paperCheckboxFieldDescription">${AllowHWTranscodingHelp}</div>
</div>
<br />
<p>${DrmChannelsNotImported}</p>
<br />
<div>
<button is="emby-button" type="submit" class="raised submit block"><i class="md-icon">check</i><span>${ButtonSave}</span></button>
<button is="emby-button" type="button" class="raised cancel block btnCancel" onclick="history.back();"><i class="md-icon">close</i><span>${ButtonCancel}</span></button>
</div>
</div>
</form>
</div>
<div class="inputContainer">
<input is="emby-input" class="txtDevicePath" label="${LabelTunerIpAddress}" required="required" />
</div>
<div>
<paper-checkbox class="chkEnabled" checked>${LabelEnableThisTuner}</paper-checkbox>
<div class="fieldDescription paperCheckboxFieldDescription">${LabelEnableThisTunerHelp}</div>
</div>
<div>
<br />
<paper-checkbox class="chkFavorite">${LabelImportOnlyFavoriteChannels}</paper-checkbox>
<div class="fieldDescription paperCheckboxFieldDescription">${ImportFavoriteChannelsHelp}</div>
</div>
<div>
<br />
<paper-checkbox class="chkTranscode">${LabelAllowHWTranscoding}</paper-checkbox>
<div class="fieldDescription paperCheckboxFieldDescription">${AllowHWTranscodingHelp}</div>
</div>
<br />
<p>${DrmChannelsNotImported}</p>
<br />
<div>
<button is="emby-button" type="submit" class="raised submit block"><i class="md-icon">check</i><span>${ButtonSave}</span></button>
<button is="emby-button" type="button" class="raised cancel block btnCancel" onclick="history.back();"><i class="md-icon">close</i><span>${ButtonCancel}</span></button>
</div>
</form>
</div>
</div>
</div>

View file

@ -1,26 +1,24 @@
<div id="liveTvTunerProviderM3UPage" data-role="page" class="page type-interior liveTvSettingsPage withTabs" data-helpurl="https://github.com/MediaBrowser/Wiki/wiki/Live%20TV" data-require="scripts/livetvtunerprovider-m3u,paper-input,emby-button">
<div id="liveTvTunerProviderM3UPage" data-role="page" class="page type-interior liveTvSettingsPage withTabs" data-helpurl="https://github.com/MediaBrowser/Wiki/wiki/Live%20TV" data-require="scripts/livetvtunerprovider-m3u,emby-input,emby-button">
<div data-role="content">
<div class="content-primary">
<div class="readOnlyContent" style="margin-top: 2em;">
<form>
<h1>M3U Setup</h1>
<form>
<div>
<div>
<paper-input class="txtDevicePath" label="${LabelFileOrUrl}" required="required" style="width:85%;display:inline-block;"></paper-input>
<button type="button" is="paper-icon-button-light" id="btnSelectPath" title="${ButtonSelectDirectory}" class="autoSize"><i class="md-icon">search</i></button>
</div>
<br />
<div>
<button is="emby-button" type="submit" class="raised submit block"><i class="md-icon">check</i><span>${ButtonSave}</span></button>
<button is="emby-button" type="button" class="raised cancel block btnCancel" onclick="history.back();"><i class="md-icon">close</i><span>${ButtonCancel}</span></button>
<div class="inputContainer">
<div style="display: flex; align-items: center;">
<div style="flex-grow:1;">
<input is="emby-input" class="txtDevicePath" label="${LabelFileOrUrl}" required="required" autocomplete="off" />
</div>
<button type="button" is="paper-icon-button-light" id="btnSelectPath" class="autoSize"><i class="md-icon">search</i></button>
</div>
</form>
</div>
</div>
<div>
<button is="emby-button" type="submit" class="raised submit block"><i class="md-icon">check</i><span>${ButtonSave}</span></button>
<button is="emby-button" type="button" class="raised cancel block btnCancel" onclick="history.back();"><i class="md-icon">close</i><span>${ButtonCancel}</span></button>
</div>
</form>
</div>
</div>
</div>

View file

@ -1,4 +1,4 @@
<div id="metadataImagesConfigurationPage" data-role="page" class="page type-interior metadataConfigurationPage withTabs" data-require="emby-collapse,scripts/metadataimagespage,paper-checkbox,emby-button">
<div id="metadataImagesConfigurationPage" data-role="page" class="page type-interior metadataConfigurationPage withTabs" data-require="emby-collapse,scripts/metadataimagespage,paper-checkbox,emby-button,emby-input,emby-select">
<div data-role="content">
@ -6,12 +6,10 @@
<div class="tabContent">
<form class="metadataImagesConfigurationForm">
<div>
<label for="selectItemType" class="selectLabel">${LabelCustomizeOptionsPerMediaType}</label>
<select id="selectItemType" data-mini="true"></select>
<div class="selectContainer">
<select is="emby-select" id="selectItemType" data-mini="true" label="${LabelCustomizeOptionsPerMediaType}"></select>
</div>
<br />
<br />
<div class="metadataReaders" style="margin-bottom: 2em;">
</div>
<div class="metadataSavers" style="margin-bottom: 2em;">
@ -24,22 +22,21 @@
<div is="emby-collapse" title="${HeaderImageSettings}">
<div class="collapseContent">
<div class="backdropFields" style="margin-bottom: 2em; display: none;">
<div>
<paper-input type="number" id="txtMaxBackdrops" pattern="[0-9]*" required="required" min="0" label="${LabelMaxBackdropsPerItem}"></paper-input>
<div class="inputContainer">
<input is="emby-input" type="number" id="txtMaxBackdrops" pattern="[0-9]*" required="required" min="0" label="${LabelMaxBackdropsPerItem}"/>
</div>
<br />
<div>
<paper-input type="number" id="txtMinBackdropDownloadWidth" pattern="[0-9]*" required="required" min="0" label="${LabelMinBackdropDownloadWidth}"></paper-input>
<div class="inputContainer">
<input is="emby-input" type="number" id="txtMinBackdropDownloadWidth" pattern="[0-9]*" required="required" min="0" label="${LabelMinBackdropDownloadWidth}"/>
</div>
</div>
<div class="screenshotFields" style="margin-bottom: 2em; display: none;">
<div>
<paper-input type="number" id="txtMaxScreenshots" pattern="[0-9]*" required="required" min="0" label="${LabelMaxScreenshotsPerItem}"></paper-input>
<div class="inputContainer">
<input is="emby-input" type="number" id="txtMaxScreenshots" pattern="[0-9]*" required="required" min="0" label="${LabelMaxScreenshotsPerItem}"/>
</div>
<div>
<paper-input type="number" id="txtMinScreenshotDownloadWidth" pattern="[0-9]*" required="required" min="0" label="${LabelMinScreenshotDownloadWidth}"></paper-input>
<div class="inputContainer">
<input is="emby-input" type="number" id="txtMinScreenshotDownloadWidth" pattern="[0-9]*" required="required" min="0" label="${LabelMinScreenshotDownloadWidth}"/>
</div>
</div>

View file

@ -1,4 +1,4 @@
<div id="scheduledTaskPage" data-role="page" class="page type-interior scheduledTasksConfigurationPage" data-helpurl="https://github.com/MediaBrowser/Wiki/wiki/Scheduled%20tasks" data-require="jQuery,jqmpopup,scripts/scheduledtaskpage,paper-input,emby-button">
<div id="scheduledTaskPage" data-role="page" class="page type-interior scheduledTasksConfigurationPage" data-helpurl="https://github.com/MediaBrowser/Wiki/wiki/Scheduled%20tasks" data-require="jQuery,jqmpopup,scripts/scheduledtaskpage,emby-input,emby-button,emby-select">
<div data-role="content">
<div class="content-primary">
@ -25,67 +25,60 @@
<h3>${HeaderAddScheduledTaskTrigger}</h3>
</div>
<div data-role="content">
<br />
<ul data-role="listview" class="ulForm">
<li>
<label for="selectTriggerType" class="selectLabel">${LabelTriggerType}</label>
<select id="selectTriggerType" name="selectTriggerType" onchange="ScheduledTaskPage.refreshTriggerFields(this.value);">
<option value="DailyTrigger">${OptionDaily}</option>
<option value="WeeklyTrigger">${OptionWeekly}</option>
<option value="IntervalTrigger">${OptionOnInterval}</option>
<option value="StartupTrigger">${OptionOnAppStartup}</option>
<option value="SystemEventTrigger">${OptionAfterSystemEvent}</option>
</select>
</li>
<li id="fldDayOfWeek">
<label for="selectDayOfWeek" class="selectLabel">${LabelDay}</label>
<select id="selectDayOfWeek" name="selectDayOfWeek">
<option value="Sunday">${OptionSunday}</option>
<option value="Monday">${OptionMonday}</option>
<option value="Tuesday">${OptionTuesday}</option>
<option value="Wednesday">${OptionWednesday}</option>
<option value="Thursday">${OptionThursday}</option>
<option value="Friday">${OptionFriday}</option>
<option value="Saturday">${OptionSaturday}</option>
</select>
</li>
<li id="fldTimeOfDay">
<paper-input type="time" id="txtTimeOfDay" name="txtTimeOfDay" required="required" label="${LabelTime}"></paper-input>
<div class="fieldDescription timeFieldExample"></div>
</li>
<li id="fldSelectSystemEvent">
<label for="selectSystemEvent" class="selectLabel">${LabelEvent}</label>
<select id="selectSystemEvent" name="selectSystemEvent">
<option value="WakeFromSleep">${OptionWakeFromSleep}</option>
</select>
</li>
<li id="fldSelectInterval">
<label for="selectInterval" class="selectLabel">${LabelEveryXMinutes}</label>
<select id="selectInterval">
<option value="9000000000">15 minutes</option>
<option value="18000000000">30 minutes</option>
<option value="27000000000">45 minutes</option>
<option value="36000000000">1 hour</option>
<option value="72000000000">2 hours</option>
<option value="108000000000">3 hours</option>
<option value="144000000000">4 hours</option>
<option value="216000000000">6 hours</option>
<option value="288000000000">8 hours</option>
<option value="432000000000">12 hours</option>
</select>
</li>
<li>
<paper-input id="txtTimeLimit" type="number" pattern="[0-9]*" min="1" step=".5" label="${LabelTimeLimitHours}"></paper-input>
</li>
<li>
<button type="submit" data-theme="b" data-icon="check">
${ButtonAdd}
</button>
<button type="button" data-icon="delete" onclick="$(this).parents('.popup').popup('close');">
${ButtonCancel}
</button>
</li>
</ul>
<div class="selectContainer">
<select is="emby-select" id="selectTriggerType" name="selectTriggerType" label="${LabelTriggerType}" onchange="ScheduledTaskPage.refreshTriggerFields(this.value);">
<option value="DailyTrigger">${OptionDaily}</option>
<option value="WeeklyTrigger">${OptionWeekly}</option>
<option value="IntervalTrigger">${OptionOnInterval}</option>
<option value="StartupTrigger">${OptionOnAppStartup}</option>
<option value="SystemEventTrigger">${OptionAfterSystemEvent}</option>
</select>
</div>
<div id="fldDayOfWeek" class="selectContainer">
<select is="emby-select" id="selectDayOfWeek" name="selectDayOfWeek" label="${LabelDay}">
<option value="Sunday">${OptionSunday}</option>
<option value="Monday">${OptionMonday}</option>
<option value="Tuesday">${OptionTuesday}</option>
<option value="Wednesday">${OptionWednesday}</option>
<option value="Thursday">${OptionThursday}</option>
<option value="Friday">${OptionFriday}</option>
<option value="Saturday">${OptionSaturday}</option>
</select>
</div>
<div id="fldTimeOfDay" class="inputContainer">
<input is="emby-input" type="time" id="txtTimeOfDay" name="txtTimeOfDay" required="required" label="${LabelTime}"/>
<div class="fieldDescription timeFieldExample"></div>
</div>
<div id="fldSelectSystemEvent" class="selectContainer">
<select is="emby-select" id="selectSystemEvent" name="selectSystemEvent" label="${LabelEvent}">
<option value="WakeFromSleep">${OptionWakeFromSleep}</option>
</select>
</div>
<div id="fldSelectInterval" class="selectContainer">
<select is="emby-select" id="selectInterval" label="${LabelEveryXMinutes}">
<option value="9000000000">15 minutes</option>
<option value="18000000000">30 minutes</option>
<option value="27000000000">45 minutes</option>
<option value="36000000000">1 hour</option>
<option value="72000000000">2 hours</option>
<option value="108000000000">3 hours</option>
<option value="144000000000">4 hours</option>
<option value="216000000000">6 hours</option>
<option value="288000000000">8 hours</option>
<option value="432000000000">12 hours</option>
</select>
</div>
<div class="inputContainer">
<input is="emby-input" id="txtTimeLimit" type="number" pattern="[0-9]*" min="1" step=".5" label="${LabelTimeLimitHours}"/>
</div>
<div>
<button type="submit" data-theme="b" data-icon="check">
${ButtonAdd}
</button>
<button type="button" data-icon="delete" onclick="$(this).parents('.popup').popup('close');">
${ButtonCancel}
</button>
</div>
</div>
</form>
</div>

View file

@ -1,333 +1,340 @@
// Array Remove - By John Resig (MIT Licensed)
Array.prototype.remove = function (from, to) {
var rest = this.slice((to || from) + 1 || this.length);
this.length = from < 0 ? this.length + from : from;
return this.push.apply(this, rest);
};
define(['jQuery'], function ($) {
var ScheduledTaskPage = {
// Array Remove - By John Resig (MIT Licensed)
Array.prototype.remove = function (from, to) {
var rest = this.slice((to || from) + 1 || this.length);
this.length = from < 0 ? this.length + from : from;
return this.push.apply(this, rest);
};
refreshScheduledTask: function () {
Dashboard.showLoadingMsg();
window.ScheduledTaskPage = {
var id = getParameterByName('id');
refreshScheduledTask: function () {
Dashboard.showLoadingMsg();
var id = getParameterByName('id');
ApiClient.getScheduledTask(id).then(ScheduledTaskPage.loadScheduledTask);
},
ApiClient.getScheduledTask(id).then(ScheduledTaskPage.loadScheduledTask);
},
loadScheduledTask: function (task) {
loadScheduledTask: function (task) {
var page = $($.mobile.activePage)[0];
var page = $($.mobile.activePage)[0];
$('.taskName', page).html(task.Name);
$('.taskName', page).html(task.Name);
$('#pTaskDescription', page).html(task.Description);
$('#pTaskDescription', page).html(task.Description);
require(['listViewStyle'], function () {
ScheduledTaskPage.loadTaskTriggers(page, task);
});
require(['listViewStyle'], function () {
ScheduledTaskPage.loadTaskTriggers(page, task);
});
Dashboard.hideLoadingMsg();
},
Dashboard.hideLoadingMsg();
},
loadTaskTriggers: function (context, task) {
loadTaskTriggers: function (context, task) {
var html = '';
var html = '';
html += '<div class="paperList">';
html += '<div class="paperList">';
for (var i = 0, length = task.Triggers.length; i < length; i++) {
for (var i = 0, length = task.Triggers.length; i < length; i++) {
var trigger = task.Triggers[i];
var trigger = task.Triggers[i];
html += '<div class="listItem">';
html += '<div class="listItem">';
html += '<i class="md-icon listItemIcon">schedule</i>';
html += '<i class="md-icon listItemIcon">schedule</i>';
html += '<div class="listItemBody two-line">';
html += "<div class='listItemBodyText'>" + ScheduledTaskPage.getTriggerFriendlyName(trigger) + "</div>";
if (trigger.MaxRuntimeMs) {
html += '<div class="listItemBodyText secondary">';
var hours = trigger.MaxRuntimeMs / 3600000;
if (hours == 1) {
html += Globalize.translate('ValueTimeLimitSingleHour');
if (trigger.MaxRuntimeMs) {
html += '<div class="listItemBody two-line">';
} else {
html += Globalize.translate('ValueTimeLimitMultiHour', hours);
html += '<div class="listItemBody">';
}
html += "<div class='listItemBodyText'>" + ScheduledTaskPage.getTriggerFriendlyName(trigger) + "</div>";
if (trigger.MaxRuntimeMs) {
html += '<div class="listItemBodyText secondary">';
var hours = trigger.MaxRuntimeMs / 3600000;
if (hours == 1) {
html += Globalize.translate('ValueTimeLimitSingleHour');
} else {
html += Globalize.translate('ValueTimeLimitMultiHour', hours);
}
html += '</div>';
}
html += '</div>';
html += '<button type="button" is="paper-icon-button-light" title="' + Globalize.translate('ButtonDelete') + '" onclick="ScheduledTaskPage.confirmDeleteTrigger(' + i + ');"><i class="md-icon">delete</i></button>';
html += '</div>';
}
html += '</div>';
html += '<button type="button" is="paper-icon-button-light" title="' + Globalize.translate('ButtonDelete') + '" onclick="ScheduledTaskPage.confirmDeleteTrigger(' + i + ');"><i class="md-icon">delete</i></button>';
context.querySelector('.taskTriggers').innerHTML = html;
},
html += '</div>';
}
getTriggerFriendlyName: function (trigger) {
html += '</div>';
context.querySelector('.taskTriggers').innerHTML = html;
},
getTriggerFriendlyName: function (trigger) {
if (trigger.Type == 'DailyTrigger') {
return 'Daily at ' + ScheduledTaskPage.getDisplayTime(trigger.TimeOfDayTicks);
}
if (trigger.Type == 'WeeklyTrigger') {
return trigger.DayOfWeek + 's at ' + ScheduledTaskPage.getDisplayTime(trigger.TimeOfDayTicks);
}
if (trigger.Type == 'SystemEventTrigger') {
if (trigger.SystemEvent == 'WakeFromSleep') {
return 'On wake from sleep';
}
}
if (trigger.Type == 'IntervalTrigger') {
var hours = trigger.IntervalTicks / 36000000000;
if (hours == .25) {
return "Every 15 minutes";
}
if (hours == .5) {
return "Every 30 minutes";
}
if (hours == .75) {
return "Every 45 minutes";
}
if (hours == 1) {
return "Every hour";
if (trigger.Type == 'DailyTrigger') {
return 'Daily at ' + ScheduledTaskPage.getDisplayTime(trigger.TimeOfDayTicks);
}
return 'Every ' + hours + ' hours';
}
if (trigger.Type == 'WeeklyTrigger') {
if (trigger.Type == 'StartupTrigger') {
return 'On application startup';
}
return trigger.DayOfWeek + 's at ' + ScheduledTaskPage.getDisplayTime(trigger.TimeOfDayTicks);
}
return trigger.Type;
},
if (trigger.Type == 'SystemEventTrigger') {
getDisplayTime: function (ticks) {
if (trigger.SystemEvent == 'WakeFromSleep') {
return 'On wake from sleep';
}
}
var hours = ticks / 36000000000;
if (trigger.Type == 'IntervalTrigger') {
if (hours < 1) {
hours = 0;
}
var hours = trigger.IntervalTicks / 36000000000;
hours = Math.floor(hours);
if (hours == .25) {
return "Every 15 minutes";
}
if (hours == .5) {
return "Every 30 minutes";
}
if (hours == .75) {
return "Every 45 minutes";
}
if (hours == 1) {
return "Every hour";
}
ticks -= (hours * 36000000000);
return 'Every ' + hours + ' hours';
}
var minutes = Math.floor((ticks / 600000000));
if (trigger.Type == 'StartupTrigger') {
return 'On application startup';
}
var suffix = "am";
return trigger.Type;
},
if (hours > 11) {
suffix = "pm";
}
getDisplayTime: function (ticks) {
hours = hours % 12;
var hours = ticks / 36000000000;
if (hours == 0) {
hours = 12;
}
if (hours < 1) {
hours = 0;
}
if (minutes < 10) {
minutes = '0' + minutes;
}
hours = Math.floor(hours);
return hours + ':' + minutes + ' ' + suffix;
},
ticks -= (hours * 36000000000);
showAddTriggerPopup: function () {
var minutes = Math.floor((ticks / 600000000));
var page = $.mobile.activePage;
var suffix = "am";
$('#selectTriggerType', page).val('DailyTrigger').trigger('change');
if (hours > 11) {
suffix = "pm";
}
$('#popupAddTrigger', page).on("popupafteropen", function () {
$('#addTriggerForm input:first', this).focus();
}).popup("open").on("popupafterclose", function () {
hours = hours % 12;
$('#addTriggerForm', page).off("submit");
$(this).off("popupafterclose");
});
},
if (hours == 0) {
hours = 12;
}
confirmDeleteTrigger: function (index) {
if (minutes < 10) {
minutes = '0' + minutes;
}
require(['confirm'], function (confirm) {
confirm(Globalize.translate('MessageDeleteTaskTrigger'), Globalize.translate('HeaderDeleteTaskTrigger')).then(function () {
ScheduledTaskPage.deleteTrigger(index);
return hours + ':' + minutes + ' ' + suffix;
},
showAddTriggerPopup: function () {
var page = $.mobile.activePage;
$('#selectTriggerType', page).val('DailyTrigger').trigger('change');
$('#popupAddTrigger', page).on("popupafteropen", function () {
$('#addTriggerForm input:first', this).focus();
}).popup("open").on("popupafterclose", function () {
$('#addTriggerForm', page).off("submit");
$(this).off("popupafterclose");
});
});
},
},
deleteTrigger: function (index) {
confirmDeleteTrigger: function (index) {
Dashboard.showLoadingMsg();
require(['confirm'], function (confirm) {
confirm(Globalize.translate('MessageDeleteTaskTrigger'), Globalize.translate('HeaderDeleteTaskTrigger')).then(function () {
ScheduledTaskPage.deleteTrigger(index);
});
});
},
var id = getParameterByName('id');
deleteTrigger: function (index) {
Dashboard.showLoadingMsg();
var id = getParameterByName('id');
ApiClient.getScheduledTask(id).then(function (task) {
ApiClient.getScheduledTask(id).then(function (task) {
task.Triggers.remove(index);
task.Triggers.remove(index);
ApiClient.updateScheduledTaskTriggers(task.Id, task.Triggers).then(function () {
ApiClient.updateScheduledTaskTriggers(task.Id, task.Triggers).then(function () {
ScheduledTaskPage.refreshScheduledTask();
ScheduledTaskPage.refreshScheduledTask();
});
});
},
refreshTriggerFields: function (triggerType) {
var page = $.mobile.activePage;
if (triggerType == 'DailyTrigger') {
$('#fldTimeOfDay', page).show();
$('#fldDayOfWeek', page).hide();
$('#fldSelectSystemEvent', page).hide();
$('#fldSelectInterval', page).hide();
$('#txtTimeOfDay', page).attr('required', 'required');
}
else if (triggerType == 'WeeklyTrigger') {
$('#fldTimeOfDay', page).show();
$('#fldDayOfWeek', page).show();
$('#fldSelectSystemEvent', page).hide();
$('#fldSelectInterval', page).hide();
$('#txtTimeOfDay', page).attr('required', 'required');
}
else if (triggerType == 'SystemEventTrigger') {
$('#fldTimeOfDay', page).hide();
$('#fldDayOfWeek', page).hide();
$('#fldSelectSystemEvent', page).show();
$('#fldSelectInterval', page).hide();
$('#txtTimeOfDay', page).removeAttr('required');
}
else if (triggerType == 'IntervalTrigger') {
$('#fldTimeOfDay', page).hide();
$('#fldDayOfWeek', page).hide();
$('#fldSelectSystemEvent', page).hide();
$('#fldSelectInterval', page).show();
$('#txtTimeOfDay', page).removeAttr('required');
}
else if (triggerType == 'StartupTrigger') {
$('#fldTimeOfDay', page).hide();
$('#fldDayOfWeek', page).hide();
$('#fldSelectSystemEvent', page).hide();
$('#fldSelectInterval', page).hide();
$('#txtTimeOfDay', page).removeAttr('required');
}
},
getTriggerToAdd: function () {
var page = $.mobile.activePage;
var trigger = {
Type: $('#selectTriggerType', page).val()
};
if (trigger.Type == 'DailyTrigger') {
trigger.TimeOfDayTicks = ScheduledTaskPage.getTimeOfDayTicks($('#txtTimeOfDay', page).val());
}
else if (trigger.Type == 'WeeklyTrigger') {
trigger.DayOfWeek = $('#selectDayOfWeek', page).val();
trigger.TimeOfDayTicks = ScheduledTaskPage.getTimeOfDayTicks($('#txtTimeOfDay', page).val());
}
else if (trigger.Type == 'SystemEventTrigger') {
trigger.SystemEvent = $('#selectSystemEvent', page).val();
}
else if (trigger.Type == 'IntervalTrigger') {
trigger.IntervalTicks = $('#selectInterval', page).val();
}
var timeLimit = $('#txtTimeLimit', page).val() || '0';
timeLimit = parseFloat(timeLimit) * 3600000;
trigger.MaxRuntimeMs = timeLimit || null;
return trigger;
},
getTimeOfDayTicks: function (val) {
var vals = val.split(':');
var hours = vals[0];
var minutes = vals[1].split(' ')[0];
// Add hours
var ticks = hours * 60 * 60 * 1000 * 10000;
ticks += minutes * 60 * 1000 * 10000;
return ticks;
}
};
(function () {
function onSubmit() {
Dashboard.showLoadingMsg();
var id = getParameterByName('id');
ApiClient.getScheduledTask(id).then(function (task) {
task.Triggers.push(ScheduledTaskPage.getTriggerToAdd());
ApiClient.updateScheduledTaskTriggers(task.Id, task.Triggers).then(function () {
$('#popupAddTrigger').popup('close');
ScheduledTaskPage.refreshScheduledTask();
});
});
});
},
refreshTriggerFields: function (triggerType) {
var page = $.mobile.activePage;
if (triggerType == 'DailyTrigger') {
$('#fldTimeOfDay', page).show();
$('#fldDayOfWeek', page).hide();
$('#fldSelectSystemEvent', page).hide();
$('#fldSelectInterval', page).hide();
$('#txtTimeOfDay', page).attr('required', 'required');
return false;
}
else if (triggerType == 'WeeklyTrigger') {
$('#fldTimeOfDay', page).show();
$('#fldDayOfWeek', page).show();
$('#fldSelectSystemEvent', page).hide();
$('#fldSelectInterval', page).hide();
$('#txtTimeOfDay', page).attr('required', 'required');
}
$(document).on('pageinit', "#scheduledTaskPage", function () {
else if (triggerType == 'SystemEventTrigger') {
$('#fldTimeOfDay', page).hide();
$('#fldDayOfWeek', page).hide();
$('#fldSelectSystemEvent', page).show();
$('#fldSelectInterval', page).hide();
$('#txtTimeOfDay', page).removeAttr('required');
}
var page = this;
else if (triggerType == 'IntervalTrigger') {
$('#fldTimeOfDay', page).hide();
$('#fldDayOfWeek', page).hide();
$('#fldSelectSystemEvent', page).hide();
$('#fldSelectInterval', page).show();
$('#txtTimeOfDay', page).removeAttr('required');
}
$('.addTriggerForm').off('submit', onSubmit).on('submit', onSubmit);
else if (triggerType == 'StartupTrigger') {
$('#fldTimeOfDay', page).hide();
$('#fldDayOfWeek', page).hide();
$('#fldSelectSystemEvent', page).hide();
$('#fldSelectInterval', page).hide();
$('#txtTimeOfDay', page).removeAttr('required');
}
},
page.querySelector('.timeFieldExample').innerHTML = Globalize.translate('ValueExample', '1:00 PM');
getTriggerToAdd: function () {
var page = $.mobile.activePage;
var trigger = {
Type: $('#selectTriggerType', page).val()
};
if (trigger.Type == 'DailyTrigger') {
trigger.TimeOfDayTicks = ScheduledTaskPage.getTimeOfDayTicks($('#txtTimeOfDay', page).val());
}
else if (trigger.Type == 'WeeklyTrigger') {
trigger.DayOfWeek = $('#selectDayOfWeek', page).val();
trigger.TimeOfDayTicks = ScheduledTaskPage.getTimeOfDayTicks($('#txtTimeOfDay', page).val());
}
else if (trigger.Type == 'SystemEventTrigger') {
trigger.SystemEvent = $('#selectSystemEvent', page).val();
}
else if (trigger.Type == 'IntervalTrigger') {
trigger.IntervalTicks = $('#selectInterval', page).val();
}
var timeLimit = $('#txtTimeLimit', page).val() || '0';
timeLimit = parseFloat(timeLimit) * 3600000;
trigger.MaxRuntimeMs = timeLimit || null;
return trigger;
},
getTimeOfDayTicks: function (val) {
var vals = val.split(':');
var hours = vals[0];
var minutes = vals[1].split(' ')[0];
// Add hours
var ticks = hours * 60 * 60 * 1000 * 10000;
ticks += minutes * 60 * 1000 * 10000;
return ticks;
}
};
(function () {
function onSubmit() {
Dashboard.showLoadingMsg();
var id = getParameterByName('id');
ApiClient.getScheduledTask(id).then(function (task) {
task.Triggers.push(ScheduledTaskPage.getTriggerToAdd());
ApiClient.updateScheduledTaskTriggers(task.Id, task.Triggers).then(function () {
$('#popupAddTrigger').popup('close');
ScheduledTaskPage.refreshScheduledTask();
});
}).on('pageshow', "#scheduledTaskPage", function () {
ScheduledTaskPage.refreshScheduledTask();
});
return false;
}
$(document).on('pageinit', "#scheduledTaskPage", function () {
var page = this;
$('.addTriggerForm').off('submit', onSubmit).on('submit', onSubmit);
page.querySelector('.timeFieldExample').innerHTML = Globalize.translate('ValueExample', '1:00 PM');
}).on('pageshow', "#scheduledTaskPage", function () {
ScheduledTaskPage.refreshScheduledTask();
});
})();
})();
});

View file

@ -2247,7 +2247,7 @@
"ButtonLocalRefresh": "Local refresh",
"ButtonAddMissingData": "Add missing data only",
"ButtonFullRefresh": "Full refresh",
"ValueExample": "1:00 PM",
"ValueExample": "Example: {0}",
"OptionEnableAnonymousUsageReporting": "Enable anonymous usage reporting",
"OptionEnableAnonymousUsageReportingHelp": "Allow Emby to collect anonymous data such as installed plugins, the version numbers of your Emby apps, etc. This information is only used for the purpose of improving the software.",
"LabelFileOrUrl": "File or url:",