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

Merge pull request #634 from dkanada/controllers

Move more controllers to a sane directory structure
This commit is contained in:
Vasily 2020-01-13 11:15:23 +03:00 committed by GitHub
commit 5b46f0263a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
40 changed files with 104 additions and 160 deletions

View file

@ -1,10 +1,7 @@
<div id="addPluginPage" data-role="page" class="page type-interior pluginConfigurationPage" data-backbutton="true"> <div id="addPluginPage" data-role="page" class="page type-interior pluginConfigurationPage" data-backbutton="true">
<div> <div>
<div class="content-primary"> <div class="content-primary">
<div class="readOnlyContent"> <div class="readOnlyContent">
<div class="verticalSection"> <div class="verticalSection">
<div class="sectionTitleContainer flex align-items-center"> <div class="sectionTitleContainer flex align-items-center">
<h1 class="sectionTitle pluginName"></h1> <h1 class="sectionTitle pluginName"></h1>
@ -13,9 +10,7 @@
<p id="tagline" style="font-style: italic;"></p> <p id="tagline" style="font-style: italic;"></p>
<p id="pPreviewImage"></p> <p id="pPreviewImage"></p>
<p id="overview"></p> <p id="overview"></p>
</div> </div>
<div class="verticalSection"> <div class="verticalSection">
@ -27,12 +22,12 @@
<select id="selectVersion" name="selectVersion" is="emby-select" label="${LabelSelectVersionToInstall}"></select> <select id="selectVersion" name="selectVersion" is="emby-select" label="${LabelSelectVersionToInstall}"></select>
</div> </div>
<p id="btnInstallDiv" class="hide"> <div id="btnInstallDiv" class="hide">
<button is="emby-button" type="submit" id="btnInstall" class="raised button-submit block"> <button is="emby-button" type="submit" id="btnInstall" class="raised button-submit block">
<span>${Install}</span> <span>${Install}</span>
</button> </button>
<div class="fieldDescription">${ServerRestartNeededAfterPluginInstall}</div> <div class="fieldDescription">${ServerRestartNeededAfterPluginInstall}</div>
</p> </div>
<p id="nonServerMsg"></p> <p id="nonServerMsg"></p>
</form> </form>
</div> </div>

View file

@ -2,9 +2,7 @@
<div> <div>
<div class="content-primary"> <div class="content-primary">
<div class="detailSectionHeader"> <div class="detailSectionHeader">
<h2 style="margin:.6em 0;vertical-align:middle;display:inline-block;"> <h2 style="margin:.6em 0;vertical-align:middle;display:inline-block;">${HeaderApiKeys}</h2>
${HeaderApiKeys}
</h2>
<button is="emby-button" type="button" class="fab btnNewKey submit" style="margin-left:1em;" title="${ButtonAdd}"> <button is="emby-button" type="button" class="fab btnNewKey submit" style="margin-left:1em;" title="${ButtonAdd}">
<i class="md-icon">add</i> <i class="md-icon">add</i>
</button> </button>
@ -24,4 +22,4 @@
</table> </table>
</div> </div>
</div> </div>
</div> </div>

View file

@ -105,10 +105,8 @@
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="dashboardFooter"> <div class="dashboardFooter">
@ -118,5 +116,4 @@
</div> </div>
</div> </div>
</div> </div>
</div> </div>

View file

@ -1,10 +1,7 @@
<div id="dashboardGeneralPage" data-role="page" class="page type-interior dashboardHomePage"> <div id="dashboardGeneralPage" data-role="page" class="page type-interior dashboardHomePage">
<div> <div>
<div class="content-primary"> <div class="content-primary">
<form class="dashboardGeneralForm"> <form class="dashboardGeneralForm">
<div class="verticalSection"> <div class="verticalSection">
<div class="sectionTitleContainer flex align-items-center"> <div class="sectionTitleContainer flex align-items-center">
<h2 class="sectionTitle">${TabSettings}</h2> <h2 class="sectionTitle">${TabSettings}</h2>
@ -31,9 +28,7 @@
<input is="emby-checkbox" type="checkbox" id="chkAutoRunWebApp" /> <input is="emby-checkbox" type="checkbox" id="chkAutoRunWebApp" />
<span>${LaunchWebAppOnStartup}</span> <span>${LaunchWebAppOnStartup}</span>
</label> </label>
<div class="fieldDescription checkboxFieldDescription"> <div class="fieldDescription checkboxFieldDescription">${LaunchWebAppOnStartupHelp}</div>
${LaunchWebAppOnStartupHelp}
</div>
</div> </div>
</div> </div>
@ -94,7 +89,6 @@
</button> </button>
</div> </div>
</form> </form>
</div> </div>
</div> </div>
</div> </div>

View file

@ -1,11 +1,7 @@
<div id="devicePage" data-role="page" class="page type-interior devicesPage noSecondaryNavPage"> <div id="devicePage" data-role="page" class="page type-interior devicesPage noSecondaryNavPage">
<div> <div>
<div class="content-primary"> <div class="content-primary">
<form class="deviceForm"> <form class="deviceForm">
<div class="verticalSection verticalSection-extrabottompadding"> <div class="verticalSection verticalSection-extrabottompadding">
<div class="sectionTitleContainer flex align-items-center"> <div class="sectionTitleContainer flex align-items-center">
<h2 class="sectionTitle reportedName"></h2> <h2 class="sectionTitle reportedName"></h2>
@ -18,10 +14,11 @@
</div> </div>
</div> </div>
<div> <div>
<button is="emby-button" type="submit" class="raised button-submit block"><span>${ButtonSave}</span></button> <button is="emby-button" type="submit" class="raised button-submit block">
<span>${ButtonSave}</span>
</button>
</div> </div>
</form> </form>
</div> </div>
</div> </div>
</div> </div>

View file

@ -7,9 +7,7 @@
<a is="emby-linkbutton" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/server/devices.html">${Help}</a> <a is="emby-linkbutton" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/server/devices.html">${Help}</a>
</div> </div>
</div> </div>
<div is="emby-itemscontainer" class="devicesList vertical-wrap" data-multiselect="false"></div>
<div is="emby-itemscontainer" class="devicesList vertical-wrap" data-multiselect="false">
</div>
</div> </div>
</div> </div>
</div> </div>

View file

@ -22,6 +22,7 @@
</select> </select>
<div class="fieldDescription">${LabelHardwareAccelerationTypeHelp}</div> <div class="fieldDescription">${LabelHardwareAccelerationTypeHelp}</div>
</div> </div>
<div class="inputContainer hide fldVaapiDevice"> <div class="inputContainer hide fldVaapiDevice">
<input is="emby-input" type="text" id="txtVaapiDevice" label="${LabelVaapiDevice}" /> <input is="emby-input" type="text" id="txtVaapiDevice" label="${LabelVaapiDevice}" />
<div class="fieldDescription">${LabelVaapiDeviceHelp}</div> <div class="fieldDescription">${LabelVaapiDeviceHelp}</div>
@ -142,9 +143,11 @@
</div> </div>
<div> <div>
<button is="emby-button" type="submit" class="raised button-submit block"><span>${ButtonSave}</span></button> <button is="emby-button" type="submit" class="raised button-submit block">
<span>${ButtonSave}</span>
</button>
</div> </div>
</form> </form>
</div> </div>
</div> </div>
</div> </div>

View file

@ -1,9 +1,6 @@
<div data-role="page" id="forgotPasswordPage" class="page standalonePage forgotPasswordPage"> <div data-role="page" id="forgotPasswordPage" class="page standalonePage forgotPasswordPage">
<div> <div>
<form class="forgotPasswordForm" style="text-align: center; margin: 0 auto;"> <form class="forgotPasswordForm" style="text-align: center; margin: 0 auto;">
<div style="text-align: left;"> <div style="text-align: left;">
<h1>${HeaderForgotPassword}</h1> <h1>${HeaderForgotPassword}</h1>
@ -23,6 +20,5 @@
</div> </div>
</div> </div>
</form> </form>
</div> </div>
</div> </div>

View file

@ -1,9 +1,6 @@
<div data-role="page" class="page standalonePage forgotPasswordPinPage"> <div data-role="page" class="page standalonePage forgotPasswordPinPage">
<div> <div>
<form class="forgotPasswordPinForm" style="text-align: center; margin: 0 auto;"> <form class="forgotPasswordPinForm" style="text-align: center; margin: 0 auto;">
<div style="text-align: left;"> <div style="text-align: left;">
<h2>${HeaderPasswordReset}</h2> <h2>${HeaderPasswordReset}</h2>
@ -22,6 +19,5 @@
</div> </div>
</div> </div>
</form> </form>
</div> </div>
</div> </div>

View file

@ -47,11 +47,11 @@
<div class="fieldDescription checkboxFieldDescription">${OptionSaveMetadataAsHiddenHelp}</div> <div class="fieldDescription checkboxFieldDescription">${OptionSaveMetadataAsHiddenHelp}</div>
</div> </div>
<br /> <br/>
<button is="emby-button" type="submit" class="raised button-submit block"> <button is="emby-button" type="submit" class="raised button-submit block">
<span>${ButtonSave}</span> <span>${ButtonSave}</span>
</button> </button>
</form> </form>
</div> </div>
</div> </div>
</div> </div>

View file

@ -1,11 +1,7 @@
<div id="loginPage" data-role="page" class="page standalonePage" data-backbutton="false"> <div id="loginPage" data-role="page" class="page standalonePage" data-backbutton="false">
<div class="padded-left padded-right padded-bottom-page"> <div class="padded-left padded-right padded-bottom-page">
<form class="manualLoginForm hide" style="margin: 0 auto;"> <form class="manualLoginForm hide" style="margin: 0 auto;">
<h1 style="margin-top:1em;text-align: left;">${HeaderPleaseSignIn}</h1> <h1 style="margin-top:1em;text-align: left;">${HeaderPleaseSignIn}</h1>
<div style="height:0; overflow: hidden;"> <div style="height:0; overflow: hidden;">
<input type="text" name="fakeusernameremembered" tabindex="-1" /> <input type="text" name="fakeusernameremembered" tabindex="-1" />
<input type="password" name="fakepasswordremembered" tabindex="-1" /> <input type="password" name="fakepasswordremembered" tabindex="-1" />
@ -27,13 +23,14 @@
<button is="emby-button" type="submit" class="raised button-submit block"> <button is="emby-button" type="submit" class="raised button-submit block">
<span>${ButtonSignIn}</span> <span>${ButtonSignIn}</span>
</button> </button>
<div style="margin-top:.5em;"> <div style="margin-top:.5em;">
<button is="emby-button" type="button" class="raised cancel block btnCancel"> <button is="emby-button" type="button" class="raised cancel block btnCancel">
<span>${ButtonCancel}</span> <span>${ButtonCancel}</span>
</button> </button>
</div> </div>
<br /> <br/>
<br /> <br/>
</form> </form>
<div class="visualLoginForm" style="text-align: center;"> <div class="visualLoginForm" style="text-align: center;">
@ -56,6 +53,5 @@
<p class="disclaimer" style="text-align: center; margin-top: 2em;"></p> <p class="disclaimer" style="text-align: center; margin-top: 2em;"></p>
</div> </div>
</div> </div>
</div> </div>

View file

@ -1,5 +1,4 @@
{ {
"name": "Jellyfin", "name": "Jellyfin",
"description": "Jellyfin: the Free Software Media System.", "description": "Jellyfin: the Free Software Media System.",
"lang": "en-US", "lang": "en-US",
@ -8,7 +7,8 @@
"theme_color": "#101010", "theme_color": "#101010",
"background_color": "#101010", "background_color": "#101010",
"display": "standalone", "display": "standalone",
"icons": [{ "icons": [
{
"sizes": "72x72", "sizes": "72x72",
"src": "touchicon72.png", "src": "touchicon72.png",
"type": "image/png" "type": "image/png"

View file

@ -1,7 +1,6 @@
<div id="scheduledTaskPage" data-role="page" class="page type-interior scheduledTasksConfigurationPage"> <div id="scheduledTaskPage" data-role="page" class="page type-interior scheduledTasksConfigurationPage">
<div> <div>
<div class="content-primary"> <div class="content-primary">
<div class="verticalSection"> <div class="verticalSection">
<div class="sectionTitleContainer flex align-items-center"> <div class="sectionTitleContainer flex align-items-center">
<h2 class="sectionTitle taskName"></h2> <h2 class="sectionTitle taskName"></h2>
@ -12,9 +11,7 @@
<div class="readOnlyContent"> <div class="readOnlyContent">
<div> <div>
<h2 style="vertical-align: middle; display: inline-block;"> <h2 style="vertical-align: middle; display: inline-block;">${HeaderTaskTriggers}</h2>
${HeaderTaskTriggers}
</h2>
<button is="emby-button" type="button" class="fab fab-mini btnAddTrigger submit" style="margin-left: 1em;" title="${ButtonAddScheduledTaskTrigger}"> <button is="emby-button" type="button" class="fab fab-mini btnAddTrigger submit" style="margin-left: 1em;" title="${ButtonAddScheduledTaskTrigger}">
<i class="md-icon">add</i> <i class="md-icon">add</i>
</button> </button>

View file

@ -1,5 +1,4 @@
<div id="scheduledTasksPage" data-role="page" class="page type-interior scheduledTasksConfigurationPage"> <div id="scheduledTasksPage" data-role="page" class="page type-interior scheduledTasksConfigurationPage">
<style> <style>
.taskProgressOuter { .taskProgressOuter {
height: 6px; height: 6px;
@ -15,8 +14,7 @@
</style> </style>
<div> <div>
<div class="content-primary"> <div class="content-primary">
<div class="divScheduledTasks readOnlyContent"></div> <div class="divScheduledTasks readOnlyContent"></div>
</div> </div>
</div> </div>
</div> </div>

View file

@ -16,44 +16,72 @@ define([
function defineRoute(newRoute) { function defineRoute(newRoute) {
var path = newRoute.path; var path = newRoute.path;
console.log("Defining route: " + path); console.log("defining route: " + path);
newRoute.dictionary = "core"; newRoute.dictionary = "core";
Emby.Page.addRoute(path, newRoute); Emby.Page.addRoute(path, newRoute);
} }
console.log("Defining core routes"); console.log("defining core routes");
defineRoute({ defineRoute({
path: "/addplugin.html", path: "/addplugin.html",
autoFocus: false, autoFocus: false,
roles: "admin", roles: "admin",
controller: "addpluginpage" controller: "dashboard/plugins/add"
}); });
defineRoute({ defineRoute({
path: "/autoorganizelog.html", path: "/mypreferencesmenu.html",
roles: "admin"
});
defineRoute({
path: "/channelsettings.html",
autoFocus: false, autoFocus: false,
roles: "admin" transition: "fade",
controller: "user/menu"
});
defineRoute({
path: "/myprofile.html",
autoFocus: false,
transition: "fade",
controller: "user/profile"
}); });
defineRoute({ defineRoute({
path: "/addserver.html", path: "/addserver.html",
autoFocus: false, autoFocus: false,
anonymous: true, anonymous: true,
startup: true, startup: true,
controller: "addserver" controller: "auth/addserver"
}); });
defineRoute({
path: "/mypreferencesdisplay.html",
autoFocus: false,
transition: "fade",
controller: "user/display"
});
defineRoute({
path: "/mypreferenceshome.html",
autoFocus: false,
transition: "fade",
controller: "user/home"
});
defineRoute({
path: "/mypreferencesplayback.html",
autoFocus: false,
transition: "fade",
controller: "user/playback"
});
defineRoute({
path: "/mypreferencessubtitles.html",
autoFocus: false,
transition: "fade",
controller: "user/subtitles"
});
defineRoute({ defineRoute({
path: "/dashboard.html", path: "/dashboard.html",
autoFocus: false, autoFocus: false,
roles: "admin", roles: "admin",
controller: "dashboardpage" controller: "dashboard/dashboard"
}); });
defineRoute({ defineRoute({
path: "/dashboardgeneral.html", path: "/dashboardgeneral.html",
controller: "dashboardgeneral", controller: "dashboard/general",
autoFocus: false, autoFocus: false,
roles: "admin" roles: "admin"
}); });
@ -61,7 +89,7 @@ define([
path: "/networking.html", path: "/networking.html",
autoFocus: false, autoFocus: false,
roles: "admin", roles: "admin",
controller: "networking" controller: "dashboard/networking"
}); });
defineRoute({ defineRoute({
path: "/devices.html", path: "/devices.html",
@ -108,14 +136,14 @@ define([
path: "/forgotpassword.html", path: "/forgotpassword.html",
anonymous: true, anonymous: true,
startup: true, startup: true,
controller: "forgotpassword" controller: "auth/forgotpassword"
}); });
defineRoute({ defineRoute({
path: "/forgotpasswordpin.html", path: "/forgotpasswordpin.html",
autoFocus: false, autoFocus: false,
anonymous: true, anonymous: true,
startup: true, startup: true,
controller: "forgotpasswordpin" controller: "auth/forgotpasswordpin"
}); });
defineRoute({ defineRoute({
path: "/home.html", path: "/home.html",
@ -191,19 +219,14 @@ define([
defineRoute({ defineRoute({
path: "/log.html", path: "/log.html",
roles: "admin", roles: "admin",
controller: "logpage" controller: "dashboard/logs"
}); });
defineRoute({ defineRoute({
path: "/login.html", path: "/login.html",
autoFocus: false, autoFocus: false,
anonymous: true, anonymous: true,
startup: true, startup: true,
controller: "loginpage" controller: "auth/login"
});
defineRoute({
path: "/metadataadvanced.html",
autoFocus: false,
roles: "admin"
}); });
defineRoute({ defineRoute({
path: "/metadataimages.html", path: "/metadataimages.html",
@ -229,57 +252,21 @@ define([
autoFocus: false, autoFocus: false,
transition: "fade" transition: "fade"
}); });
defineRoute({
path: "/mypreferencesmenu.html",
autoFocus: false,
transition: "fade",
controller: "user/menu"
});
defineRoute({
path: "/myprofile.html",
autoFocus: false,
transition: "fade",
controller: "user/profile"
});
defineRoute({
path: "/mypreferencesdisplay.html",
autoFocus: false,
transition: "fade",
controller: "user/display"
});
defineRoute({
path: "/mypreferenceshome.html",
autoFocus: false,
transition: "fade",
controller: "user/home"
});
defineRoute({
path: "/mypreferencesplayback.html",
autoFocus: false,
transition: "fade",
controller: "user/playback"
});
defineRoute({
path: "/mypreferencessubtitles.html",
autoFocus: false,
transition: "fade",
controller: "user/subtitles"
});
defineRoute({ defineRoute({
path: "/notificationsetting.html", path: "/notificationsetting.html",
autoFocus: false, autoFocus: false,
roles: "admin", roles: "admin",
controller: "notificationsetting" controller: "dashboard/notifications/notification"
}); });
defineRoute({ defineRoute({
path: "/notificationsettings.html", path: "/notificationsettings.html",
controller: "notificationsettings", controller: "dashboard/notifications/notifications",
autoFocus: false, autoFocus: false,
roles: "admin" roles: "admin"
}); });
defineRoute({ defineRoute({
path: "/nowplaying.html", path: "/nowplaying.html",
controller: "nowplayingpage", controller: "playback/nowplaying",
autoFocus: false, autoFocus: false,
transition: "fade", transition: "fade",
fullscreen: true, fullscreen: true,
@ -296,25 +283,25 @@ define([
path: "/availableplugins.html", path: "/availableplugins.html",
autoFocus: false, autoFocus: false,
roles: "admin", roles: "admin",
controller: "availableplugins" controller: "dashboard/plugins/available"
}); });
defineRoute({ defineRoute({
path: "/installedplugins.html", path: "/installedplugins.html",
autoFocus: false, autoFocus: false,
roles: "admin", roles: "admin",
controller: "installedplugins" controller: "dashboard/plugins/installed"
}); });
defineRoute({ defineRoute({
path: "/scheduledtask.html", path: "/scheduledtask.html",
autoFocus: false, autoFocus: false,
roles: "admin", roles: "admin",
controller: "scheduledtaskpage" controller: "dashboard/scheduledtasks/scheduledtask"
}); });
defineRoute({ defineRoute({
path: "/scheduledtasks.html", path: "/scheduledtasks.html",
autoFocus: false, autoFocus: false,
roles: "admin", roles: "admin",
controller: "scheduledtaskspage" controller: "dashboard/scheduledtasks/scheduledtasks"
}); });
defineRoute({ defineRoute({
path: "/search.html", path: "/search.html",
@ -325,7 +312,7 @@ define([
autoFocus: false, autoFocus: false,
anonymous: true, anonymous: true,
startup: true, startup: true,
controller: "selectserver" controller: "auth/selectserver"
}); });
defineRoute({ defineRoute({
path: "/serveractivity.html", path: "/serveractivity.html",
@ -345,11 +332,6 @@ define([
roles: "admin", roles: "admin",
controller: "streamingsettings" controller: "streamingsettings"
}); });
defineRoute({
path: "/support.html",
autoFocus: false,
roles: "admin"
});
defineRoute({ defineRoute({
path: "/tv.html", path: "/tv.html",
autoFocus: false, autoFocus: false,
@ -391,17 +373,18 @@ define([
roles: "admin", roles: "admin",
controller: "userprofilespage" controller: "userprofilespage"
}); });
defineRoute({ defineRoute({
path: "/wizardremoteaccess.html", path: "/wizardremoteaccess.html",
autoFocus: false, autoFocus: false,
anonymous: true, anonymous: true,
controller: "wizardremoteaccess" controller: "wizard/remoteaccess"
}); });
defineRoute({ defineRoute({
path: "/wizardfinish.html", path: "/wizardfinish.html",
autoFocus: false, autoFocus: false,
anonymous: true, anonymous: true,
controller: "wizardfinishpage" controller: "wizard/finish"
}); });
defineRoute({ defineRoute({
path: "/wizardlibrary.html", path: "/wizardlibrary.html",
@ -413,24 +396,25 @@ define([
path: "/wizardsettings.html", path: "/wizardsettings.html",
autoFocus: false, autoFocus: false,
anonymous: true, anonymous: true,
controller: "wizardsettings" controller: "wizard/settings"
}); });
defineRoute({ defineRoute({
path: "/wizardstart.html", path: "/wizardstart.html",
autoFocus: false, autoFocus: false,
anonymous: true, anonymous: true,
controller: "wizardstart" controller: "wizard/start"
}); });
defineRoute({ defineRoute({
path: "/wizarduser.html", path: "/wizarduser.html",
controller: "wizarduserpage", controller: "wizard/user",
autoFocus: false, autoFocus: false,
anonymous: true anonymous: true
}); });
defineRoute({ defineRoute({
path: "/videoosd.html", path: "/videoosd.html",
transition: "fade", transition: "fade",
controller: "videoosd", controller: "playback/videoosd",
autoFocus: false, autoFocus: false,
type: "video-osd", type: "video-osd",
supportsThemeMedia: true, supportsThemeMedia: true,
@ -444,6 +428,7 @@ define([
enableContentQueryString: true, enableContentQueryString: true,
roles: "admin" roles: "admin"
}); });
defineRoute({ defineRoute({
path: "/", path: "/",
isDefaultRoute: true, isDefaultRoute: true,

View file

@ -2,13 +2,11 @@
<div> <div>
<div class="content-primary"> <div class="content-primary">
<div class="verticalSection"> <div class="verticalSection">
<h2 class="sectionTitle"> <h2 class="sectionTitle"></h2>
</h2>
</div> </div>
<div class="readOnlyContent"> <div class="readOnlyContent">
<div class="paperList activityItems" data-activitylimit="100"> <div class="paperList activityItems" data-activitylimit="100"></div>
</div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>

View file

@ -1,27 +1,19 @@
<div id="videoOsdPage" data-role="page" class="page libraryPage" data-backbutton="true"> <div id="videoOsdPage" data-role="page" class="page libraryPage" data-backbutton="true">
<div class="pageContainer flex"> <div class="pageContainer flex"></div>
<div class="upNextContainer hide"></div>
</div>
<div class="upNextContainer hide">
</div>
<div class="videoOsdBottom videoOsdBottom-maincontrols"> <div class="videoOsdBottom videoOsdBottom-maincontrols">
<div class="osdPoster"></div>
<div class="osdPoster">
</div>
<div class="osdControls"> <div class="osdControls">
<div class="osdTextContainer osdMainTextContainer"> <div class="osdTextContainer osdMainTextContainer">
<h3 class="osdTitle"></h3> <h3 class="osdTitle"></h3>
<div class="osdMediaInfo"></div> <div class="osdMediaInfo"></div>
<div class="osdMediaStatus hide"> <div class="osdMediaStatus hide">
<i class="md-icon animate">autorenew</i> <span>${FetchingData}</span> <i class="md-icon animate">autorenew</i>
<span>${FetchingData}</span>
</div> </div>
</div> </div>
<div class="osdTextContainer osdSecondaryMediaInfo"> <div class="osdTextContainer osdSecondaryMediaInfo"></div>
</div>
<div class="flex flex-direction-row align-items-center"> <div class="flex flex-direction-row align-items-center">
<div class="osdTextContainer startTimeText" style="margin: 0 .25em 0 0;"></div> <div class="osdTextContainer startTimeText" style="margin: 0 .25em 0 0;"></div>
@ -76,7 +68,11 @@
<i class="xlargePaperIconButton md-icon">airplay</i> <i class="xlargePaperIconButton md-icon">airplay</i>
</button> </button>
<div class="osdTimeText"><span class="osdPositionText"></span><span class="osdDurationText"></span><span class="endsAtText"></span></div> <div class="osdTimeText">
<span class="osdPositionText"></span>
<span class="osdDurationText"></span>
<span class="endsAtText"></span>
</div>
<div class="volumeButtons hide-mouse-idle-tv"> <div class="volumeButtons hide-mouse-idle-tv">
<button is="paper-icon-button-light" class="buttonMute autoSize" title="${Mute} (m)"> <button is="paper-icon-button-light" class="buttonMute autoSize" title="${Mute} (m)">