mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
strip out jqm panel
This commit is contained in:
parent
1fcfbcab7e
commit
0e6672699e
26 changed files with 785 additions and 788 deletions
|
@ -4,7 +4,7 @@
|
|||
<title>Emby</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="channelItemsPage" data-role="page" class="page libraryPage channelsPage noSecondaryNavPage" data-contextname="${HeaderChannels}" data-require="scripts/channelitems" data-backbutton="true" data-menubutton="false">
|
||||
<div id="channelItemsPage" data-role="page" class="page libraryPage channelsPage noSecondaryNavPage" data-contextname="${HeaderChannels}" data-require="jqmpanel,scripts/channelitems" data-backbutton="true" data-menubutton="false">
|
||||
|
||||
<div data-role="content">
|
||||
<div class="viewSettings">
|
||||
|
|
|
@ -572,7 +572,7 @@ select {
|
|||
}
|
||||
|
||||
.largePanel {
|
||||
width: 270px;
|
||||
width: 270px !important;
|
||||
}
|
||||
|
||||
/* Make panels larger */
|
||||
|
@ -587,7 +587,7 @@ select {
|
|||
@media all and (min-width: 340px) {
|
||||
|
||||
.largePanel {
|
||||
width: 300px;
|
||||
width: 300px !important;
|
||||
}
|
||||
|
||||
/* Make panels larger */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title>Emby</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="episodesPage" data-role="page" class="page libraryPage" data-require="scripts/episodes,jqmicons">
|
||||
<div id="episodesPage" data-role="page" class="page libraryPage" data-require="jqmpanel,scripts/episodes,jqmicons">
|
||||
|
||||
<div class="libraryViewNav scopedLibraryViewNav">
|
||||
<a href="tvrecommended.html"><iron-icon icon="info"></iron-icon>${TabSuggestions}</a>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title>Emby</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="gameGenresPage" data-role="page" class="page libraryPage listPage" data-require="scripts/gamegenrepage">
|
||||
<div id="gameGenresPage" data-role="page" class="page libraryPage listPage" data-require="jqmpanel,scripts/gamegenrepage">
|
||||
<div class="libraryViewNav scopedLibraryViewNav">
|
||||
<a href="gamesrecommended.html">${TabSuggestions}</a>
|
||||
<a href="games.html">${TabGames}</a>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title>Emby</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="gamesPage" data-role="page" class="page libraryPage listPage" data-require="jqmcollapsible,scripts/gamespage,scripts/queryfilters">
|
||||
<div id="gamesPage" data-role="page" class="page libraryPage listPage" data-require="jqmpanel,jqmcollapsible,scripts/gamespage,scripts/queryfilters">
|
||||
<div class="libraryViewNav scopedLibraryViewNav">
|
||||
<a href="gamesrecommended.html">${TabSuggestions}</a>
|
||||
<a href="#" class="ui-btn-active">${TabGames}</a>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title>Emby</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="gameStudiosPage" data-role="page" class="page libraryPage listPage" data-require="scripts/gamestudiospage">
|
||||
<div id="gameStudiosPage" data-role="page" class="page libraryPage listPage" data-require="jqmpanel,scripts/gamestudiospage">
|
||||
<div class="libraryViewNav scopedLibraryViewNav">
|
||||
<a href="gamesrecommended.html">${TabSuggestions}</a>
|
||||
<a href="games.html">${TabGames}</a>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="itemListPage" data-role="page" class="page libraryPage folderListPage noSecondaryNavPage" data-require="scripts/itemlistpage">
|
||||
<div id="itemListPage" data-role="page" class="page libraryPage folderListPage noSecondaryNavPage" data-require="jqmpanel,scripts/itemlistpage">
|
||||
<div class="alphabetPicker">
|
||||
</div>
|
||||
<div data-role="content" class="itemListContent">
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title>Emby</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="liveTvSuggestedPage" data-dom-cache="true" data-role="page" class="page libraryPage liveTvPage pageWithAbsoluteTabs" data-contextname="${HeaderLiveTv}" data-backdroptype="series,movie" data-require="scripts/livetvsuggested,livetvcss,scripts/livetvcomponents">
|
||||
<div id="liveTvSuggestedPage" data-dom-cache="true" data-role="page" class="page libraryPage liveTvPage pageWithAbsoluteTabs" data-contextname="${HeaderLiveTv}" data-backdroptype="series,movie" data-require="jqmpanel,scripts/livetvsuggested,livetvcss,scripts/livetvcomponents">
|
||||
|
||||
<div class="libraryViewNav libraryViewNavWithMinHeight">
|
||||
<paper-tabs hidescrollbuttons>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title>Emby</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="moviesPage" data-role="page" data-dom-cache="true" class="page libraryPage backdropPage pageWithAbsoluteTabs collectionEditorPage" data-backdroptype="movie" data-require="jqmcollapsible,scripts/moviesrecommended">
|
||||
<div id="moviesPage" data-role="page" data-dom-cache="true" class="page libraryPage backdropPage pageWithAbsoluteTabs collectionEditorPage" data-backdroptype="movie" data-require="jqmpanel,jqmcollapsible,scripts/moviesrecommended">
|
||||
|
||||
<div class="libraryViewNav libraryViewNavWithMinHeight">
|
||||
<paper-tabs hidescrollbuttons noink>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title>Emby</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="musicRecommendedPage" data-dom-cache="true" data-role="page" class="page libraryPage backdropPage pageWithAbsoluteTabs" data-backdroptype="musicartist" data-require="jqmcollapsible,scripts/musicrecommended">
|
||||
<div id="musicRecommendedPage" data-dom-cache="true" data-role="page" class="page libraryPage backdropPage pageWithAbsoluteTabs" data-backdroptype="musicartist" data-require="jqmpanel,jqmcollapsible,scripts/musicrecommended">
|
||||
<div class="libraryViewNav libraryViewNavWithMinHeight">
|
||||
<paper-tabs hidescrollbuttons noink>
|
||||
<paper-tab><iron-icon icon="info"></iron-icon>${TabSuggestions}</paper-tab>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title>Emby</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="libraryReportManagerPage" data-role="page" class="page libraryPage noSecondaryNavPage reportsPage" data-contextname="${HeaderReports}" data-require="jqmcollapsible,jqmtable,scripts/reports,detailtablecss,jqmicons">
|
||||
<div id="libraryReportManagerPage" data-role="page" class="page libraryPage noSecondaryNavPage reportsPage" data-contextname="${HeaderReports}" data-require="jqmpanel,jqmcollapsible,jqmtable,scripts/reports,detailtablecss,jqmicons">
|
||||
<div data-role="content">
|
||||
<div style="text-align: center;">
|
||||
<div class="viewControls">
|
||||
|
|
|
@ -205,7 +205,9 @@
|
|||
window.BoxSetEditor = {
|
||||
|
||||
showPanel: function (items) {
|
||||
require(['jqmpanel'], function () {
|
||||
showCollectionPanel(items);
|
||||
});
|
||||
},
|
||||
|
||||
supportsAddingToCollection: function (item) {
|
||||
|
|
|
@ -207,7 +207,10 @@
|
|||
window.PlaylistManager = {
|
||||
|
||||
showPanel: function (items) {
|
||||
|
||||
require(['jqmpanel'], function() {
|
||||
showNewPlaylistPanel(items);
|
||||
});
|
||||
},
|
||||
|
||||
supportsPlaylists: function (item) {
|
||||
|
|
|
@ -44,8 +44,6 @@ var Dashboard = {
|
|||
//$.mobile.collapsible.prototype.options.contentTheme = "a";
|
||||
|
||||
// Make panels a little larger than the defaults
|
||||
$.mobile.panel.prototype.options.classes.modalOpen = "largePanelModalOpen ui-panel-dismiss-open";
|
||||
$.mobile.panel.prototype.options.classes.panel = "largePanel ui-panel";
|
||||
|
||||
//$.event.special.swipe.verticalDistanceThreshold = 40;
|
||||
//$.mobile.page.prototype.options.domCache = true;
|
||||
|
@ -787,6 +785,7 @@ var Dashboard = {
|
|||
|
||||
showUserFlyout: function () {
|
||||
|
||||
require(['jqmpanel', 'jqmicons'], function () {
|
||||
var html = '<div data-role="panel" data-position="right" data-display="overlay" id="userFlyout" data-position-fixed="true" data-theme="a">';
|
||||
|
||||
html += '<h3 class="userHeader">';
|
||||
|
@ -812,8 +811,7 @@ var Dashboard = {
|
|||
ConnectionManager.user(window.ApiClient).done(function (user) {
|
||||
Dashboard.updateUserFlyout(elem, user);
|
||||
});
|
||||
|
||||
require(['jqmicons']);
|
||||
});
|
||||
},
|
||||
|
||||
updateUserFlyout: function (elem, user) {
|
||||
|
@ -2118,6 +2116,14 @@ var AppInfo = {};
|
|||
return {};
|
||||
});
|
||||
|
||||
define("jqmpanel", ["thirdparty/jquerymobile-1.4.5/jqm.panel"], function () {
|
||||
$.mobile.panel.prototype.options.classes.modalOpen = "largePanelModalOpen ui-panel-dismiss-open";
|
||||
$.mobile.panel.prototype.options.classes.panel = "largePanel ui-panel";
|
||||
|
||||
Dashboard.importCss('thirdparty/jquerymobile-1.4.5/jqm.panel.css');
|
||||
return {};
|
||||
});
|
||||
|
||||
define("hammer", ["bower_components/hammerjs/hammer.min"], function (Hammer) {
|
||||
return Hammer;
|
||||
});
|
||||
|
|
|
@ -196,7 +196,7 @@
|
|||
|
||||
function showSyncMenu(options) {
|
||||
|
||||
requirejs(["scripts/registrationservices", "jqmcollapsible"], function () {
|
||||
requirejs(["scripts/registrationservices", "jqmcollapsible", "jqmpanel"], function () {
|
||||
RegistrationServices.validateFeature('sync').done(function () {
|
||||
showSyncMenuInternal(options);
|
||||
});
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title>${TitleAdvanced}</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="serverSecurityPage" data-role="page" class="page type-interior advancedConfigurationPage" data-require="jqmtable,scripts/serversecurity,detailtablecss">
|
||||
<div id="serverSecurityPage" data-role="page" class="page type-interior advancedConfigurationPage" data-require="jqmpanel,jqmtable,scripts/serversecurity,detailtablecss">
|
||||
|
||||
<div data-role="content">
|
||||
<div class="content-primary">
|
||||
|
|
238
dashboard-ui/thirdparty/jquerymobile-1.4.5/jqm.panel.css
vendored
Normal file
238
dashboard-ui/thirdparty/jquerymobile-1.4.5/jqm.panel.css
vendored
Normal file
|
@ -0,0 +1,238 @@
|
|||
/* Panel */
|
||||
.ui-panel {
|
||||
width: 17em;
|
||||
min-height: 100%;
|
||||
max-height: none;
|
||||
border-width: 0;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
display: block;
|
||||
}
|
||||
.ui-panel-closed {
|
||||
width: 0;
|
||||
max-height: 100%;
|
||||
overflow: hidden;
|
||||
visibility: hidden;
|
||||
left: 0;
|
||||
clip: rect(1px,1px,1px,1px);
|
||||
}
|
||||
.ui-panel-fixed {
|
||||
position: fixed;
|
||||
bottom: -1px; /* Fixes gap on Chrome for Android */
|
||||
padding-bottom: 1px;
|
||||
}
|
||||
.ui-panel-display-reveal {
|
||||
z-index: 1;
|
||||
}
|
||||
.ui-panel-display-push {
|
||||
z-index: 999;
|
||||
}
|
||||
.ui-panel-display-overlay {
|
||||
z-index: 1001; /* Fixed toolbars have z-index 1000 */
|
||||
}
|
||||
.ui-panel-inner {
|
||||
padding: 1em;
|
||||
}
|
||||
|
||||
/* Container, page and wrapper */
|
||||
.ui-panel-page-container {
|
||||
overflow-x: visible;
|
||||
}
|
||||
.ui-panel-page-container-themed .ui-page-active {
|
||||
background: none;
|
||||
}
|
||||
.ui-panel-wrapper {
|
||||
position: relative;
|
||||
min-height: inherit;
|
||||
border: 0;
|
||||
overflow-x: hidden;
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
/* Fixed toolbars */
|
||||
.ui-panel-fixed-toolbar {
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
/* Dismiss */
|
||||
.ui-panel-dismiss {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 100%;
|
||||
z-index: 1002;
|
||||
display: none;
|
||||
}
|
||||
.ui-panel-dismiss-open {
|
||||
display: block;
|
||||
}
|
||||
|
||||
/* Animate class is added to panel, wrapper and fixed toolbars */
|
||||
.ui-panel-animate {
|
||||
-webkit-transition: -webkit-transform 300ms ease;
|
||||
-webkit-transition-duration: 300ms;
|
||||
-moz-transition: -moz-transform 300ms ease;
|
||||
transition: transform 300ms ease;
|
||||
}
|
||||
|
||||
/* Fix for Windows Phone issue #6349: unset the transition for transforms in case of fixed toolbars. */
|
||||
@media screen and ( max-device-width: 768px ) {
|
||||
.ui-page-header-fixed .ui-panel-animate.ui-panel-wrapper,
|
||||
.ui-page-footer-fixed .ui-panel-animate.ui-panel-wrapper,
|
||||
.ui-panel-animate.ui-panel-fixed-toolbar {
|
||||
-ms-transition: none;
|
||||
}
|
||||
/* We need a transitionend event ... */
|
||||
.ui-panel-animate.ui-panel-fixed-toolbar {
|
||||
-ms-transition: -ms-transform 1ms;
|
||||
-ms-transform: rotate(0deg);
|
||||
}
|
||||
}
|
||||
|
||||
/* Hardware acceleration for smoother transitions on WebKit browsers */
|
||||
.ui-panel-animate.ui-panel:not(.ui-panel-display-reveal) {
|
||||
-webkit-backface-visibility: hidden;
|
||||
-webkit-transform: translate3d(0,0,0);
|
||||
}
|
||||
|
||||
/* Panel positioning (for overlay and push) */
|
||||
/* Panel left closed */
|
||||
.ui-panel-position-left {
|
||||
left: -17em;
|
||||
}
|
||||
/* Panel left closed animated */
|
||||
.ui-panel-animate.ui-panel-position-left.ui-panel-display-overlay,
|
||||
.ui-panel-animate.ui-panel-position-left.ui-panel-display-push {
|
||||
left: 0;
|
||||
-webkit-transform: translate3d(-17em,0,0);
|
||||
-moz-transform: translate3d(-17em,0,0);
|
||||
transform: translate3d(-17em,0,0);
|
||||
}
|
||||
/* Panel left open */
|
||||
.ui-panel-position-left.ui-panel-display-reveal, /* Unset "panel left closed" for reveal */
|
||||
.ui-panel-open.ui-panel-position-left {
|
||||
left: 0;
|
||||
}
|
||||
/* Panel left open animated */
|
||||
.ui-panel-animate.ui-panel-open.ui-panel-position-left.ui-panel-display-overlay,
|
||||
.ui-panel-animate.ui-panel-open.ui-panel-position-left.ui-panel-display-push {
|
||||
-webkit-transform: translate3d(0,0,0);
|
||||
transform: translate3d(0,0,0);
|
||||
-moz-transform: none;
|
||||
}
|
||||
/* Panel right closed */
|
||||
.ui-panel-position-right {
|
||||
right: -17em;
|
||||
}
|
||||
/* Panel right closed animated */
|
||||
.ui-panel-animate.ui-panel-position-right.ui-panel-display-overlay,
|
||||
.ui-panel-animate.ui-panel-position-right.ui-panel-display-push {
|
||||
right: 0;
|
||||
-webkit-transform: translate3d(17em,0,0);
|
||||
-moz-transform: translate3d(17em,0,0);
|
||||
transform: translate3d(17em,0,0);
|
||||
}
|
||||
/* Panel right open */
|
||||
.ui-panel-position-right.ui-panel-display-reveal, /* Unset "panel right closed" for reveal */
|
||||
.ui-panel-position-right.ui-panel-open {
|
||||
right: 0;
|
||||
}
|
||||
/* Panel right open animated */
|
||||
.ui-panel-animate.ui-panel-open.ui-panel-position-right.ui-panel-display-overlay,
|
||||
.ui-panel-animate.ui-panel-open.ui-panel-position-right.ui-panel-display-push {
|
||||
-webkit-transform: translate3d(0,0,0);
|
||||
transform: translate3d(0,0,0);
|
||||
-moz-transform: none;
|
||||
}
|
||||
|
||||
/* Wrapper and fixed toolbars positioning (for reveal and push) */
|
||||
/* Panel left open */
|
||||
.ui-panel-page-content-position-left {
|
||||
left: 17em;
|
||||
right: -17em;
|
||||
}
|
||||
/* Panel left open animated */
|
||||
.ui-panel-animate.ui-panel-page-content-position-left {
|
||||
left: 0;
|
||||
right: 0;
|
||||
-webkit-transform: translate3d(17em,0,0);
|
||||
-moz-transform: translate3d(17em,0,0);
|
||||
transform: translate3d(17em,0,0);
|
||||
}
|
||||
/* Panel right open */
|
||||
.ui-panel-page-content-position-right {
|
||||
left: -17em;
|
||||
right: 17em;
|
||||
}
|
||||
/* Panel right open animated */
|
||||
.ui-panel-animate.ui-panel-page-content-position-right {
|
||||
left: 0;
|
||||
right: 0;
|
||||
-webkit-transform: translate3d(-17em,0,0);
|
||||
-moz-transform: translate3d(-17em,0,0);
|
||||
transform: translate3d(-17em,0,0);
|
||||
}
|
||||
|
||||
/* Dismiss model open */
|
||||
.ui-panel-dismiss-open.ui-panel-dismiss-position-left {
|
||||
left: 17em;
|
||||
}
|
||||
.ui-panel-dismiss-open.ui-panel-dismiss-position-right {
|
||||
right: 17em;
|
||||
}
|
||||
|
||||
/* Shadows and borders */
|
||||
.ui-panel-display-reveal {
|
||||
-webkit-box-shadow: inset -5px 0 5px rgba(0,0,0,.15);
|
||||
-moz-box-shadow: inset -5px 0 5px rgba(0,0,0,.15);
|
||||
box-shadow: inset -5px 0 5px rgba(0,0,0,.15);
|
||||
}
|
||||
.ui-panel-position-right.ui-panel-display-reveal {
|
||||
-webkit-box-shadow: inset 5px 0 5px rgba(0,0,0,.15);
|
||||
-moz-box-shadow: inset 5px 0 5px rgba(0,0,0,.15);
|
||||
box-shadow: inset 5px 0 5px rgba(0,0,0,.15);
|
||||
}
|
||||
.ui-panel-display-overlay {
|
||||
-webkit-box-shadow: 5px 0 5px rgba(0,0,0,.15);
|
||||
-moz-box-shadow: 5px 0 5px rgba(0,0,0,.15);
|
||||
box-shadow: 5px 0 5px rgba(0,0,0,.15);
|
||||
}
|
||||
.ui-panel-position-right.ui-panel-display-overlay {
|
||||
-webkit-box-shadow: -5px 0 5px rgba(0,0,0,.15);
|
||||
-moz-box-shadow: -5px 0 5px rgba(0,0,0,.15);
|
||||
box-shadow: -5px 0 5px rgba(0,0,0,.15);
|
||||
}
|
||||
.ui-panel-open.ui-panel-position-left.ui-panel-display-push {
|
||||
border-right-width: 1px;
|
||||
margin-right: -1px;
|
||||
}
|
||||
.ui-panel-page-content-position-left.ui-panel-page-content-display-push {
|
||||
margin-left: 1px;
|
||||
width: auto;
|
||||
}
|
||||
.ui-panel-open.ui-panel-position-right.ui-panel-display-push {
|
||||
border-left-width: 1px;
|
||||
margin-left: -1px;
|
||||
}
|
||||
.ui-panel-page-content-position-right.ui-panel-page-content-display-push {
|
||||
margin-right: 1px;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
/* Responsive: wrap on wide viewports once open */
|
||||
@media (min-width:55em) {
|
||||
.ui-responsive-panel .ui-panel-page-content-open.ui-panel-page-content-position-left {
|
||||
margin-right: 17em;
|
||||
}
|
||||
.ui-responsive-panel .ui-panel-page-content-open.ui-panel-page-content-position-right {
|
||||
margin-left: 17em;
|
||||
}
|
||||
.ui-responsive-panel .ui-panel-page-content-open {
|
||||
width: auto;
|
||||
}
|
||||
.ui-responsive-panel .ui-panel-dismiss-display-push,
|
||||
.ui-responsive-panel.ui-page-active ~ .ui-panel-dismiss-display-push {
|
||||
display: none;
|
||||
}
|
||||
}
|
493
dashboard-ui/thirdparty/jquerymobile-1.4.5/jqm.panel.js
vendored
Normal file
493
dashboard-ui/thirdparty/jquerymobile-1.4.5/jqm.panel.js
vendored
Normal file
|
@ -0,0 +1,493 @@
|
|||
(function ($, undefined) {
|
||||
|
||||
$.widget("mobile.panel", {
|
||||
options: {
|
||||
classes: {
|
||||
panel: "ui-panel",
|
||||
panelOpen: "ui-panel-open",
|
||||
panelClosed: "ui-panel-closed",
|
||||
panelFixed: "ui-panel-fixed",
|
||||
panelInner: "ui-panel-inner",
|
||||
modal: "ui-panel-dismiss",
|
||||
modalOpen: "ui-panel-dismiss-open",
|
||||
pageContainer: "ui-panel-page-container",
|
||||
pageWrapper: "ui-panel-wrapper",
|
||||
pageFixedToolbar: "ui-panel-fixed-toolbar",
|
||||
pageContentPrefix: "ui-panel-page-content", /* Used for wrapper and fixed toolbars position, display and open classes. */
|
||||
animate: "ui-panel-animate"
|
||||
},
|
||||
animate: true,
|
||||
theme: null,
|
||||
position: "left",
|
||||
dismissible: true,
|
||||
display: "reveal", //accepts reveal, push, overlay
|
||||
swipeClose: true,
|
||||
positionFixed: false
|
||||
},
|
||||
|
||||
_closeLink: null,
|
||||
_parentPage: null,
|
||||
_page: null,
|
||||
_modal: null,
|
||||
_panelInner: null,
|
||||
_wrapper: null,
|
||||
_fixedToolbars: null,
|
||||
|
||||
_create: function () {
|
||||
var el = this.element,
|
||||
parentPage = el.closest(".ui-page, :jqmData(role='page')");
|
||||
|
||||
// expose some private props to other methods
|
||||
$.extend(this, {
|
||||
_closeLink: el.find(":jqmData(rel='close')"),
|
||||
_parentPage: (parentPage.length > 0) ? parentPage : false,
|
||||
_openedPage: null,
|
||||
_page: this._getPage,
|
||||
_panelInner: this._getPanelInner(),
|
||||
_fixedToolbars: this._getFixedToolbars
|
||||
});
|
||||
if (this.options.display !== "overlay") {
|
||||
this._getWrapper();
|
||||
}
|
||||
this._addPanelClasses();
|
||||
|
||||
// if animating, add the class to do so
|
||||
if ($.support.cssTransform3d && !!this.options.animate) {
|
||||
this.element.addClass(this.options.classes.animate);
|
||||
}
|
||||
|
||||
this._bindUpdateLayout();
|
||||
this._bindCloseEvents();
|
||||
this._bindLinkListeners();
|
||||
this._bindPageEvents();
|
||||
|
||||
if (!!this.options.dismissible) {
|
||||
this._createModal();
|
||||
}
|
||||
|
||||
this._bindSwipeEvents();
|
||||
},
|
||||
|
||||
_getPanelInner: function () {
|
||||
var panelInner = this.element.find("." + this.options.classes.panelInner);
|
||||
|
||||
if (panelInner.length === 0) {
|
||||
panelInner = this.element.children().wrapAll("<div class='" + this.options.classes.panelInner + "' />").parent();
|
||||
}
|
||||
|
||||
return panelInner;
|
||||
},
|
||||
|
||||
_createModal: function () {
|
||||
var self = this,
|
||||
target = self._parentPage ? self._parentPage.parent() : self.element.parent();
|
||||
|
||||
self._modal = $("<div class='" + self.options.classes.modal + "'></div>")
|
||||
.on("mousedown", function () {
|
||||
self.close();
|
||||
})
|
||||
.appendTo(target);
|
||||
},
|
||||
|
||||
_getPage: function () {
|
||||
var page = this._openedPage || this._parentPage || $("." + $.mobile.activePageClass);
|
||||
|
||||
return page;
|
||||
},
|
||||
|
||||
_getWrapper: function () {
|
||||
var wrapper = this._page().find("." + this.options.classes.pageWrapper);
|
||||
if (wrapper.length === 0) {
|
||||
wrapper = this._page().children(".ui-header:not(.ui-header-fixed), .ui-content:not(.ui-popup), .ui-footer:not(.ui-footer-fixed)")
|
||||
.wrapAll("<div class='" + this.options.classes.pageWrapper + "'></div>")
|
||||
.parent();
|
||||
}
|
||||
|
||||
this._wrapper = wrapper;
|
||||
},
|
||||
|
||||
_getFixedToolbars: function () {
|
||||
var extFixedToolbars = $("body").children(".ui-header-fixed, .ui-footer-fixed"),
|
||||
intFixedToolbars = this._page().find(".ui-header-fixed, .ui-footer-fixed"),
|
||||
fixedToolbars = extFixedToolbars.add(intFixedToolbars).addClass(this.options.classes.pageFixedToolbar);
|
||||
|
||||
return fixedToolbars;
|
||||
},
|
||||
|
||||
_getPosDisplayClasses: function (prefix) {
|
||||
return prefix + "-position-" + this.options.position + " " + prefix + "-display-" + this.options.display;
|
||||
},
|
||||
|
||||
_getPanelClasses: function () {
|
||||
var panelClasses = this.options.classes.panel +
|
||||
" " + this._getPosDisplayClasses(this.options.classes.panel) +
|
||||
" " + this.options.classes.panelClosed +
|
||||
" " + "ui-body-" + (this.options.theme ? this.options.theme : "inherit");
|
||||
|
||||
if (!!this.options.positionFixed) {
|
||||
panelClasses += " " + this.options.classes.panelFixed;
|
||||
}
|
||||
|
||||
return panelClasses;
|
||||
},
|
||||
|
||||
_addPanelClasses: function () {
|
||||
this.element.addClass(this._getPanelClasses());
|
||||
},
|
||||
|
||||
_handleCloseClick: function (event) {
|
||||
if (!event.isDefaultPrevented()) {
|
||||
this.close();
|
||||
}
|
||||
},
|
||||
|
||||
_bindCloseEvents: function () {
|
||||
this._on(this._closeLink, {
|
||||
"click": "_handleCloseClick"
|
||||
});
|
||||
|
||||
this._on({
|
||||
"click a:jqmData(ajax='false')": "_handleCloseClick"
|
||||
});
|
||||
},
|
||||
|
||||
_positionPanel: function (scrollToTop) {
|
||||
var self = this,
|
||||
panelInnerHeight = self._panelInner.outerHeight(),
|
||||
expand = panelInnerHeight > $.mobile.getScreenHeight();
|
||||
|
||||
if (expand || !self.options.positionFixed) {
|
||||
if (expand) {
|
||||
self._unfixPanel();
|
||||
$.mobile.resetActivePageHeight(panelInnerHeight);
|
||||
}
|
||||
if (scrollToTop) {
|
||||
this.window[0].scrollTo(0, $.mobile.defaultHomeScroll);
|
||||
}
|
||||
} else {
|
||||
self._fixPanel();
|
||||
}
|
||||
},
|
||||
|
||||
_bindFixListener: function () {
|
||||
this._on($(window), { "resize": "_positionPanel" });
|
||||
},
|
||||
|
||||
_unbindFixListener: function () {
|
||||
this._off($(window), "resize");
|
||||
},
|
||||
|
||||
_unfixPanel: function () {
|
||||
if (!!this.options.positionFixed && $.support.fixedPosition) {
|
||||
this.element.removeClass(this.options.classes.panelFixed);
|
||||
}
|
||||
},
|
||||
|
||||
_fixPanel: function () {
|
||||
if (!!this.options.positionFixed && $.support.fixedPosition) {
|
||||
this.element.addClass(this.options.classes.panelFixed);
|
||||
}
|
||||
},
|
||||
|
||||
_bindUpdateLayout: function () {
|
||||
var self = this;
|
||||
|
||||
self.element.on("updatelayout", function (/* e */) {
|
||||
if (self._open) {
|
||||
self._positionPanel();
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
_bindLinkListeners: function () {
|
||||
this._on("body", {
|
||||
"click a": "_handleClick"
|
||||
});
|
||||
|
||||
},
|
||||
|
||||
_handleClick: function (e) {
|
||||
var link,
|
||||
panelId = this.element.attr("id");
|
||||
|
||||
if (e.currentTarget.href.split("#")[1] === panelId && panelId !== undefined) {
|
||||
|
||||
e.preventDefault();
|
||||
link = $(e.target);
|
||||
if (link.hasClass("ui-btn")) {
|
||||
link.addClass($.mobile.activeBtnClass);
|
||||
this.element.one("panelopen panelclose", function () {
|
||||
link.removeClass($.mobile.activeBtnClass);
|
||||
});
|
||||
}
|
||||
this.toggle();
|
||||
}
|
||||
},
|
||||
|
||||
_bindSwipeEvents: function () {
|
||||
var self = this,
|
||||
area = self._modal ? self.element.add(self._modal) : self.element;
|
||||
|
||||
// on swipe, close the panel
|
||||
if (!!self.options.swipeClose) {
|
||||
if (self.options.position === "left") {
|
||||
area.on("swipeleft.panel", function (/* e */) {
|
||||
self.close();
|
||||
});
|
||||
} else {
|
||||
area.on("swiperight.panel", function (/* e */) {
|
||||
self.close();
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
_bindPageEvents: function () {
|
||||
var self = this;
|
||||
|
||||
this.document
|
||||
// Close the panel if another panel on the page opens
|
||||
.on("panelbeforeopen", function (e) {
|
||||
if (self._open && e.target !== self.element[0]) {
|
||||
self.close();
|
||||
}
|
||||
})
|
||||
// On escape, close? might need to have a target check too...
|
||||
.on("keyup.panel", function (e) {
|
||||
if (e.keyCode === 27 && self._open) {
|
||||
self.close();
|
||||
}
|
||||
});
|
||||
if (!this._parentPage && this.options.display !== "overlay") {
|
||||
this._on(this.document, {
|
||||
"pageshow": function () {
|
||||
this._openedPage = null;
|
||||
this._getWrapper();
|
||||
}
|
||||
});
|
||||
}
|
||||
// Clean up open panels after page hide
|
||||
if (self._parentPage) {
|
||||
this.document.on("pagehide", ":jqmData(role='page')", function () {
|
||||
if (self._open) {
|
||||
self.close(true);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
this.document.on("pagebeforehide", function () {
|
||||
if (self._open) {
|
||||
self.close(true);
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
// state storage of open or closed
|
||||
_open: false,
|
||||
_pageContentOpenClasses: null,
|
||||
_modalOpenClasses: null,
|
||||
|
||||
open: function (immediate) {
|
||||
if (!this._open) {
|
||||
var self = this,
|
||||
o = self.options,
|
||||
|
||||
_openPanel = function () {
|
||||
self._off(self.document, "panelclose");
|
||||
self._page().jqmData("panel", "open");
|
||||
|
||||
if ($.support.cssTransform3d && !!o.animate && o.display !== "overlay") {
|
||||
self._wrapper.addClass(o.classes.animate);
|
||||
self._fixedToolbars().addClass(o.classes.animate);
|
||||
}
|
||||
|
||||
if (!immediate && $.support.cssTransform3d && !!o.animate) {
|
||||
(self._wrapper || self.element)
|
||||
.animationComplete(complete, "transition");
|
||||
} else {
|
||||
setTimeout(complete, 0);
|
||||
}
|
||||
|
||||
if (o.theme && o.display !== "overlay") {
|
||||
self._page().parent()
|
||||
.addClass(o.classes.pageContainer + "-themed " + o.classes.pageContainer + "-" + o.theme);
|
||||
}
|
||||
|
||||
self.element
|
||||
.removeClass(o.classes.panelClosed)
|
||||
.addClass(o.classes.panelOpen);
|
||||
|
||||
self._positionPanel(true);
|
||||
|
||||
self._pageContentOpenClasses = self._getPosDisplayClasses(o.classes.pageContentPrefix);
|
||||
|
||||
if (o.display !== "overlay") {
|
||||
self._page().parent().addClass(o.classes.pageContainer);
|
||||
self._wrapper.addClass(self._pageContentOpenClasses);
|
||||
self._fixedToolbars().addClass(self._pageContentOpenClasses);
|
||||
}
|
||||
|
||||
self._modalOpenClasses = self._getPosDisplayClasses(o.classes.modal) + " " + o.classes.modalOpen;
|
||||
if (self._modal) {
|
||||
self._modal
|
||||
.addClass(self._modalOpenClasses)
|
||||
.height(Math.max(self._modal.height(), self.document.height()));
|
||||
}
|
||||
},
|
||||
complete = function () {
|
||||
|
||||
// Bail if the panel was closed before the opening animation has completed
|
||||
if (!self._open) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (o.display !== "overlay") {
|
||||
self._wrapper.addClass(o.classes.pageContentPrefix + "-open");
|
||||
self._fixedToolbars().addClass(o.classes.pageContentPrefix + "-open");
|
||||
}
|
||||
|
||||
self._bindFixListener();
|
||||
|
||||
self._trigger("open");
|
||||
|
||||
self._openedPage = self._page();
|
||||
};
|
||||
|
||||
self._trigger("beforeopen");
|
||||
|
||||
if (self._page().jqmData("panel") === "open") {
|
||||
self._on(self.document, {
|
||||
"panelclose": _openPanel
|
||||
});
|
||||
} else {
|
||||
_openPanel();
|
||||
}
|
||||
|
||||
self._open = true;
|
||||
}
|
||||
},
|
||||
|
||||
close: function (immediate) {
|
||||
if (this._open) {
|
||||
var self = this,
|
||||
o = this.options,
|
||||
|
||||
_closePanel = function () {
|
||||
|
||||
self.element.removeClass(o.classes.panelOpen);
|
||||
|
||||
if (o.display !== "overlay") {
|
||||
self._wrapper.removeClass(self._pageContentOpenClasses);
|
||||
self._fixedToolbars().removeClass(self._pageContentOpenClasses);
|
||||
}
|
||||
|
||||
if (!immediate && $.support.cssTransform3d && !!o.animate) {
|
||||
(self._wrapper || self.element)
|
||||
.animationComplete(complete, "transition");
|
||||
} else {
|
||||
setTimeout(complete, 0);
|
||||
}
|
||||
|
||||
if (self._modal) {
|
||||
self._modal
|
||||
.removeClass(self._modalOpenClasses)
|
||||
.height("");
|
||||
}
|
||||
},
|
||||
complete = function () {
|
||||
if (o.theme && o.display !== "overlay") {
|
||||
self._page().parent().removeClass(o.classes.pageContainer + "-themed " + o.classes.pageContainer + "-" + o.theme);
|
||||
}
|
||||
|
||||
self.element.addClass(o.classes.panelClosed);
|
||||
|
||||
if (o.display !== "overlay") {
|
||||
self._page().parent().removeClass(o.classes.pageContainer);
|
||||
self._wrapper.removeClass(o.classes.pageContentPrefix + "-open");
|
||||
self._fixedToolbars().removeClass(o.classes.pageContentPrefix + "-open");
|
||||
}
|
||||
|
||||
if ($.support.cssTransform3d && !!o.animate && o.display !== "overlay") {
|
||||
self._wrapper.removeClass(o.classes.animate);
|
||||
self._fixedToolbars().removeClass(o.classes.animate);
|
||||
}
|
||||
|
||||
self._fixPanel();
|
||||
self._unbindFixListener();
|
||||
$.mobile.resetActivePageHeight();
|
||||
|
||||
self._page().jqmRemoveData("panel");
|
||||
|
||||
self._trigger("close");
|
||||
|
||||
self._openedPage = null;
|
||||
};
|
||||
|
||||
self._trigger("beforeclose");
|
||||
|
||||
_closePanel();
|
||||
|
||||
self._open = false;
|
||||
}
|
||||
},
|
||||
|
||||
toggle: function () {
|
||||
this[this._open ? "close" : "open"]();
|
||||
},
|
||||
|
||||
_destroy: function () {
|
||||
var otherPanels,
|
||||
o = this.options,
|
||||
multiplePanels = ($("body > :mobile-panel").length + $.mobile.activePage.find(":mobile-panel").length) > 1;
|
||||
|
||||
if (o.display !== "overlay") {
|
||||
|
||||
// remove the wrapper if not in use by another panel
|
||||
otherPanels = $("body > :mobile-panel").add($.mobile.activePage.find(":mobile-panel"));
|
||||
if (otherPanels.not(".ui-panel-display-overlay").not(this.element).length === 0) {
|
||||
this._wrapper.children().unwrap();
|
||||
}
|
||||
|
||||
if (this._open) {
|
||||
|
||||
this._fixedToolbars().removeClass(o.classes.pageContentPrefix + "-open");
|
||||
|
||||
if ($.support.cssTransform3d && !!o.animate) {
|
||||
this._fixedToolbars().removeClass(o.classes.animate);
|
||||
}
|
||||
|
||||
this._page().parent().removeClass(o.classes.pageContainer);
|
||||
|
||||
if (o.theme) {
|
||||
this._page().parent().removeClass(o.classes.pageContainer + "-themed " + o.classes.pageContainer + "-" + o.theme);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!multiplePanels) {
|
||||
|
||||
this.document.off("panelopen panelclose");
|
||||
|
||||
}
|
||||
|
||||
if (this._open) {
|
||||
this._page().jqmRemoveData("panel");
|
||||
}
|
||||
|
||||
this._panelInner.children().unwrap();
|
||||
|
||||
this.element
|
||||
.removeClass([this._getPanelClasses(), o.classes.panelOpen, o.classes.animate].join(" "))
|
||||
.off("swipeleft.panel swiperight.panel")
|
||||
.off("panelbeforeopen")
|
||||
.off("panelhide")
|
||||
.off("keyup.panel")
|
||||
.off("updatelayout");
|
||||
|
||||
if (this._modal) {
|
||||
this._modal.remove();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
})(jQuery);
|
File diff suppressed because one or more lines are too long
|
@ -5655,498 +5655,4 @@ $.widget( "mobile.checkboxradio", $.extend( {
|
|||
};
|
||||
})( jQuery );
|
||||
|
||||
(function( $, undefined ) {
|
||||
|
||||
$.widget( "mobile.panel", {
|
||||
options: {
|
||||
classes: {
|
||||
panel: "ui-panel",
|
||||
panelOpen: "ui-panel-open",
|
||||
panelClosed: "ui-panel-closed",
|
||||
panelFixed: "ui-panel-fixed",
|
||||
panelInner: "ui-panel-inner",
|
||||
modal: "ui-panel-dismiss",
|
||||
modalOpen: "ui-panel-dismiss-open",
|
||||
pageContainer: "ui-panel-page-container",
|
||||
pageWrapper: "ui-panel-wrapper",
|
||||
pageFixedToolbar: "ui-panel-fixed-toolbar",
|
||||
pageContentPrefix: "ui-panel-page-content", /* Used for wrapper and fixed toolbars position, display and open classes. */
|
||||
animate: "ui-panel-animate"
|
||||
},
|
||||
animate: true,
|
||||
theme: null,
|
||||
position: "left",
|
||||
dismissible: true,
|
||||
display: "reveal", //accepts reveal, push, overlay
|
||||
swipeClose: true,
|
||||
positionFixed: false
|
||||
},
|
||||
|
||||
_closeLink: null,
|
||||
_parentPage: null,
|
||||
_page: null,
|
||||
_modal: null,
|
||||
_panelInner: null,
|
||||
_wrapper: null,
|
||||
_fixedToolbars: null,
|
||||
|
||||
_create: function() {
|
||||
var el = this.element,
|
||||
parentPage = el.closest( ".ui-page, :jqmData(role='page')" );
|
||||
|
||||
// expose some private props to other methods
|
||||
$.extend( this, {
|
||||
_closeLink: el.find( ":jqmData(rel='close')" ),
|
||||
_parentPage: ( parentPage.length > 0 ) ? parentPage : false,
|
||||
_openedPage: null,
|
||||
_page: this._getPage,
|
||||
_panelInner: this._getPanelInner(),
|
||||
_fixedToolbars: this._getFixedToolbars
|
||||
});
|
||||
if ( this.options.display !== "overlay" ){
|
||||
this._getWrapper();
|
||||
}
|
||||
this._addPanelClasses();
|
||||
|
||||
// if animating, add the class to do so
|
||||
if ( $.support.cssTransform3d && !!this.options.animate ) {
|
||||
this.element.addClass( this.options.classes.animate );
|
||||
}
|
||||
|
||||
this._bindUpdateLayout();
|
||||
this._bindCloseEvents();
|
||||
this._bindLinkListeners();
|
||||
this._bindPageEvents();
|
||||
|
||||
if ( !!this.options.dismissible ) {
|
||||
this._createModal();
|
||||
}
|
||||
|
||||
this._bindSwipeEvents();
|
||||
},
|
||||
|
||||
_getPanelInner: function() {
|
||||
var panelInner = this.element.find( "." + this.options.classes.panelInner );
|
||||
|
||||
if ( panelInner.length === 0 ) {
|
||||
panelInner = this.element.children().wrapAll( "<div class='" + this.options.classes.panelInner + "' />" ).parent();
|
||||
}
|
||||
|
||||
return panelInner;
|
||||
},
|
||||
|
||||
_createModal: function() {
|
||||
var self = this,
|
||||
target = self._parentPage ? self._parentPage.parent() : self.element.parent();
|
||||
|
||||
self._modal = $( "<div class='" + self.options.classes.modal + "'></div>" )
|
||||
.on( "mousedown", function() {
|
||||
self.close();
|
||||
})
|
||||
.appendTo( target );
|
||||
},
|
||||
|
||||
_getPage: function() {
|
||||
var page = this._openedPage || this._parentPage || $( "." + $.mobile.activePageClass );
|
||||
|
||||
return page;
|
||||
},
|
||||
|
||||
_getWrapper: function() {
|
||||
var wrapper = this._page().find( "." + this.options.classes.pageWrapper );
|
||||
if ( wrapper.length === 0 ) {
|
||||
wrapper = this._page().children( ".ui-header:not(.ui-header-fixed), .ui-content:not(.ui-popup), .ui-footer:not(.ui-footer-fixed)" )
|
||||
.wrapAll( "<div class='" + this.options.classes.pageWrapper + "'></div>" )
|
||||
.parent();
|
||||
}
|
||||
|
||||
this._wrapper = wrapper;
|
||||
},
|
||||
|
||||
_getFixedToolbars: function() {
|
||||
var extFixedToolbars = $( "body" ).children( ".ui-header-fixed, .ui-footer-fixed" ),
|
||||
intFixedToolbars = this._page().find( ".ui-header-fixed, .ui-footer-fixed" ),
|
||||
fixedToolbars = extFixedToolbars.add( intFixedToolbars ).addClass( this.options.classes.pageFixedToolbar );
|
||||
|
||||
return fixedToolbars;
|
||||
},
|
||||
|
||||
_getPosDisplayClasses: function( prefix ) {
|
||||
return prefix + "-position-" + this.options.position + " " + prefix + "-display-" + this.options.display;
|
||||
},
|
||||
|
||||
_getPanelClasses: function() {
|
||||
var panelClasses = this.options.classes.panel +
|
||||
" " + this._getPosDisplayClasses( this.options.classes.panel ) +
|
||||
" " + this.options.classes.panelClosed +
|
||||
" " + "ui-body-" + ( this.options.theme ? this.options.theme : "inherit" );
|
||||
|
||||
if ( !!this.options.positionFixed ) {
|
||||
panelClasses += " " + this.options.classes.panelFixed;
|
||||
}
|
||||
|
||||
return panelClasses;
|
||||
},
|
||||
|
||||
_addPanelClasses: function() {
|
||||
this.element.addClass( this._getPanelClasses() );
|
||||
},
|
||||
|
||||
_handleCloseClick: function( event ) {
|
||||
if ( !event.isDefaultPrevented() ) {
|
||||
this.close();
|
||||
}
|
||||
},
|
||||
|
||||
_bindCloseEvents: function() {
|
||||
this._on( this._closeLink, {
|
||||
"click": "_handleCloseClick"
|
||||
});
|
||||
|
||||
this._on({
|
||||
"click a:jqmData(ajax='false')": "_handleCloseClick"
|
||||
});
|
||||
},
|
||||
|
||||
_positionPanel: function( scrollToTop ) {
|
||||
var self = this,
|
||||
panelInnerHeight = self._panelInner.outerHeight(),
|
||||
expand = panelInnerHeight > $.mobile.getScreenHeight();
|
||||
|
||||
if ( expand || !self.options.positionFixed ) {
|
||||
if ( expand ) {
|
||||
self._unfixPanel();
|
||||
$.mobile.resetActivePageHeight( panelInnerHeight );
|
||||
}
|
||||
if ( scrollToTop ) {
|
||||
this.window[ 0 ].scrollTo( 0, $.mobile.defaultHomeScroll );
|
||||
}
|
||||
} else {
|
||||
self._fixPanel();
|
||||
}
|
||||
},
|
||||
|
||||
_bindFixListener: function() {
|
||||
this._on( $( window ), { "resize": "_positionPanel" });
|
||||
},
|
||||
|
||||
_unbindFixListener: function() {
|
||||
this._off($(window), "resize");
|
||||
},
|
||||
|
||||
_unfixPanel: function() {
|
||||
if ( !!this.options.positionFixed && $.support.fixedPosition ) {
|
||||
this.element.removeClass( this.options.classes.panelFixed );
|
||||
}
|
||||
},
|
||||
|
||||
_fixPanel: function() {
|
||||
if ( !!this.options.positionFixed && $.support.fixedPosition ) {
|
||||
this.element.addClass( this.options.classes.panelFixed );
|
||||
}
|
||||
},
|
||||
|
||||
_bindUpdateLayout: function() {
|
||||
var self = this;
|
||||
|
||||
self.element.on( "updatelayout", function(/* e */) {
|
||||
if ( self._open ) {
|
||||
self._positionPanel();
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
_bindLinkListeners: function() {
|
||||
this._on( "body", {
|
||||
"click a": "_handleClick"
|
||||
});
|
||||
|
||||
},
|
||||
|
||||
_handleClick: function( e ) {
|
||||
var link,
|
||||
panelId = this.element.attr( "id" );
|
||||
|
||||
if ( e.currentTarget.href.split( "#" )[ 1 ] === panelId && panelId !== undefined ) {
|
||||
|
||||
e.preventDefault();
|
||||
link = $( e.target );
|
||||
if ( link.hasClass( "ui-btn" ) ) {
|
||||
link.addClass( $.mobile.activeBtnClass );
|
||||
this.element.one( "panelopen panelclose", function() {
|
||||
link.removeClass( $.mobile.activeBtnClass );
|
||||
});
|
||||
}
|
||||
this.toggle();
|
||||
}
|
||||
},
|
||||
|
||||
_bindSwipeEvents: function() {
|
||||
var self = this,
|
||||
area = self._modal ? self.element.add( self._modal ) : self.element;
|
||||
|
||||
// on swipe, close the panel
|
||||
if ( !!self.options.swipeClose ) {
|
||||
if ( self.options.position === "left" ) {
|
||||
area.on( "swipeleft.panel", function(/* e */) {
|
||||
self.close();
|
||||
});
|
||||
} else {
|
||||
area.on( "swiperight.panel", function(/* e */) {
|
||||
self.close();
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
_bindPageEvents: function() {
|
||||
var self = this;
|
||||
|
||||
this.document
|
||||
// Close the panel if another panel on the page opens
|
||||
.on( "panelbeforeopen", function( e ) {
|
||||
if ( self._open && e.target !== self.element[ 0 ] ) {
|
||||
self.close();
|
||||
}
|
||||
})
|
||||
// On escape, close? might need to have a target check too...
|
||||
.on( "keyup.panel", function( e ) {
|
||||
if ( e.keyCode === 27 && self._open ) {
|
||||
self.close();
|
||||
}
|
||||
});
|
||||
if ( !this._parentPage && this.options.display !== "overlay" ) {
|
||||
this._on( this.document, {
|
||||
"pageshow": function() {
|
||||
this._openedPage = null;
|
||||
this._getWrapper();
|
||||
}
|
||||
});
|
||||
}
|
||||
// Clean up open panels after page hide
|
||||
if ( self._parentPage ) {
|
||||
this.document.on( "pagehide", ":jqmData(role='page')", function() {
|
||||
if ( self._open ) {
|
||||
self.close( true );
|
||||
}
|
||||
});
|
||||
} else {
|
||||
this.document.on( "pagebeforehide", function() {
|
||||
if ( self._open ) {
|
||||
self.close( true );
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
// state storage of open or closed
|
||||
_open: false,
|
||||
_pageContentOpenClasses: null,
|
||||
_modalOpenClasses: null,
|
||||
|
||||
open: function( immediate ) {
|
||||
if ( !this._open ) {
|
||||
var self = this,
|
||||
o = self.options,
|
||||
|
||||
_openPanel = function() {
|
||||
self._off( self.document , "panelclose" );
|
||||
self._page().jqmData( "panel", "open" );
|
||||
|
||||
if ( $.support.cssTransform3d && !!o.animate && o.display !== "overlay" ) {
|
||||
self._wrapper.addClass( o.classes.animate );
|
||||
self._fixedToolbars().addClass( o.classes.animate );
|
||||
}
|
||||
|
||||
if ( !immediate && $.support.cssTransform3d && !!o.animate ) {
|
||||
( self._wrapper || self.element )
|
||||
.animationComplete( complete, "transition" );
|
||||
} else {
|
||||
setTimeout( complete, 0 );
|
||||
}
|
||||
|
||||
if ( o.theme && o.display !== "overlay" ) {
|
||||
self._page().parent()
|
||||
.addClass( o.classes.pageContainer + "-themed " + o.classes.pageContainer + "-" + o.theme );
|
||||
}
|
||||
|
||||
self.element
|
||||
.removeClass( o.classes.panelClosed )
|
||||
.addClass( o.classes.panelOpen );
|
||||
|
||||
self._positionPanel( true );
|
||||
|
||||
self._pageContentOpenClasses = self._getPosDisplayClasses( o.classes.pageContentPrefix );
|
||||
|
||||
if ( o.display !== "overlay" ) {
|
||||
self._page().parent().addClass( o.classes.pageContainer );
|
||||
self._wrapper.addClass( self._pageContentOpenClasses );
|
||||
self._fixedToolbars().addClass( self._pageContentOpenClasses );
|
||||
}
|
||||
|
||||
self._modalOpenClasses = self._getPosDisplayClasses( o.classes.modal ) + " " + o.classes.modalOpen;
|
||||
if ( self._modal ) {
|
||||
self._modal
|
||||
.addClass( self._modalOpenClasses )
|
||||
.height( Math.max( self._modal.height(), self.document.height() ) );
|
||||
}
|
||||
},
|
||||
complete = function() {
|
||||
|
||||
// Bail if the panel was closed before the opening animation has completed
|
||||
if ( !self._open ) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ( o.display !== "overlay" ) {
|
||||
self._wrapper.addClass( o.classes.pageContentPrefix + "-open" );
|
||||
self._fixedToolbars().addClass( o.classes.pageContentPrefix + "-open" );
|
||||
}
|
||||
|
||||
self._bindFixListener();
|
||||
|
||||
self._trigger( "open" );
|
||||
|
||||
self._openedPage = self._page();
|
||||
};
|
||||
|
||||
self._trigger( "beforeopen" );
|
||||
|
||||
if ( self._page().jqmData( "panel" ) === "open" ) {
|
||||
self._on( self.document, {
|
||||
"panelclose": _openPanel
|
||||
});
|
||||
} else {
|
||||
_openPanel();
|
||||
}
|
||||
|
||||
self._open = true;
|
||||
}
|
||||
},
|
||||
|
||||
close: function( immediate ) {
|
||||
if ( this._open ) {
|
||||
var self = this,
|
||||
o = this.options,
|
||||
|
||||
_closePanel = function() {
|
||||
|
||||
self.element.removeClass( o.classes.panelOpen );
|
||||
|
||||
if ( o.display !== "overlay" ) {
|
||||
self._wrapper.removeClass( self._pageContentOpenClasses );
|
||||
self._fixedToolbars().removeClass( self._pageContentOpenClasses );
|
||||
}
|
||||
|
||||
if ( !immediate && $.support.cssTransform3d && !!o.animate ) {
|
||||
( self._wrapper || self.element )
|
||||
.animationComplete( complete, "transition" );
|
||||
} else {
|
||||
setTimeout( complete, 0 );
|
||||
}
|
||||
|
||||
if ( self._modal ) {
|
||||
self._modal
|
||||
.removeClass( self._modalOpenClasses )
|
||||
.height( "" );
|
||||
}
|
||||
},
|
||||
complete = function() {
|
||||
if ( o.theme && o.display !== "overlay" ) {
|
||||
self._page().parent().removeClass( o.classes.pageContainer + "-themed " + o.classes.pageContainer + "-" + o.theme );
|
||||
}
|
||||
|
||||
self.element.addClass( o.classes.panelClosed );
|
||||
|
||||
if ( o.display !== "overlay" ) {
|
||||
self._page().parent().removeClass( o.classes.pageContainer );
|
||||
self._wrapper.removeClass( o.classes.pageContentPrefix + "-open" );
|
||||
self._fixedToolbars().removeClass( o.classes.pageContentPrefix + "-open" );
|
||||
}
|
||||
|
||||
if ( $.support.cssTransform3d && !!o.animate && o.display !== "overlay" ) {
|
||||
self._wrapper.removeClass( o.classes.animate );
|
||||
self._fixedToolbars().removeClass( o.classes.animate );
|
||||
}
|
||||
|
||||
self._fixPanel();
|
||||
self._unbindFixListener();
|
||||
$.mobile.resetActivePageHeight();
|
||||
|
||||
self._page().jqmRemoveData( "panel" );
|
||||
|
||||
self._trigger( "close" );
|
||||
|
||||
self._openedPage = null;
|
||||
};
|
||||
|
||||
self._trigger( "beforeclose" );
|
||||
|
||||
_closePanel();
|
||||
|
||||
self._open = false;
|
||||
}
|
||||
},
|
||||
|
||||
toggle: function() {
|
||||
this[ this._open ? "close" : "open" ]();
|
||||
},
|
||||
|
||||
_destroy: function() {
|
||||
var otherPanels,
|
||||
o = this.options,
|
||||
multiplePanels = ( $( "body > :mobile-panel" ).length + $.mobile.activePage.find( ":mobile-panel" ).length ) > 1;
|
||||
|
||||
if ( o.display !== "overlay" ) {
|
||||
|
||||
// remove the wrapper if not in use by another panel
|
||||
otherPanels = $( "body > :mobile-panel" ).add( $.mobile.activePage.find( ":mobile-panel" ) );
|
||||
if ( otherPanels.not( ".ui-panel-display-overlay" ).not( this.element ).length === 0 ) {
|
||||
this._wrapper.children().unwrap();
|
||||
}
|
||||
|
||||
if ( this._open ) {
|
||||
|
||||
this._fixedToolbars().removeClass( o.classes.pageContentPrefix + "-open" );
|
||||
|
||||
if ( $.support.cssTransform3d && !!o.animate ) {
|
||||
this._fixedToolbars().removeClass( o.classes.animate );
|
||||
}
|
||||
|
||||
this._page().parent().removeClass( o.classes.pageContainer );
|
||||
|
||||
if ( o.theme ) {
|
||||
this._page().parent().removeClass( o.classes.pageContainer + "-themed " + o.classes.pageContainer + "-" + o.theme );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( !multiplePanels ) {
|
||||
|
||||
this.document.off( "panelopen panelclose" );
|
||||
|
||||
}
|
||||
|
||||
if ( this._open ) {
|
||||
this._page().jqmRemoveData( "panel" );
|
||||
}
|
||||
|
||||
this._panelInner.children().unwrap();
|
||||
|
||||
this.element
|
||||
.removeClass( [ this._getPanelClasses(), o.classes.panelOpen, o.classes.animate ].join( " " ) )
|
||||
.off( "swipeleft.panel swiperight.panel" )
|
||||
.off( "panelbeforeopen" )
|
||||
.off( "panelhide" )
|
||||
.off( "keyup.panel" )
|
||||
.off( "updatelayout" );
|
||||
|
||||
if ( this._modal ) {
|
||||
this._modal.remove();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
})( jQuery );
|
||||
|
||||
}));
|
File diff suppressed because one or more lines are too long
|
@ -835,242 +835,3 @@ fieldset.ui-controlgroup {
|
|||
overflow: hidden;
|
||||
clip: rect(1px,1px,1px,1px);
|
||||
}
|
||||
|
||||
/* Panel */
|
||||
.ui-panel {
|
||||
width: 17em;
|
||||
min-height: 100%;
|
||||
max-height: none;
|
||||
border-width: 0;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
display: block;
|
||||
}
|
||||
.ui-panel-closed {
|
||||
width: 0;
|
||||
max-height: 100%;
|
||||
overflow: hidden;
|
||||
visibility: hidden;
|
||||
left: 0;
|
||||
clip: rect(1px,1px,1px,1px);
|
||||
}
|
||||
.ui-panel-fixed {
|
||||
position: fixed;
|
||||
bottom: -1px; /* Fixes gap on Chrome for Android */
|
||||
padding-bottom: 1px;
|
||||
}
|
||||
.ui-panel-display-reveal {
|
||||
z-index: 1;
|
||||
}
|
||||
.ui-panel-display-push {
|
||||
z-index: 999;
|
||||
}
|
||||
.ui-panel-display-overlay {
|
||||
z-index: 1001; /* Fixed toolbars have z-index 1000 */
|
||||
}
|
||||
.ui-panel-inner {
|
||||
padding: 1em;
|
||||
}
|
||||
|
||||
/* Container, page and wrapper */
|
||||
.ui-panel-page-container {
|
||||
overflow-x: visible;
|
||||
}
|
||||
.ui-panel-page-container-themed .ui-page-active {
|
||||
background: none;
|
||||
}
|
||||
.ui-panel-wrapper {
|
||||
position: relative;
|
||||
min-height: inherit;
|
||||
border: 0;
|
||||
overflow-x: hidden;
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
/* Fixed toolbars */
|
||||
.ui-panel-fixed-toolbar {
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
/* Dismiss */
|
||||
.ui-panel-dismiss {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 100%;
|
||||
z-index: 1002;
|
||||
display: none;
|
||||
}
|
||||
.ui-panel-dismiss-open {
|
||||
display: block;
|
||||
}
|
||||
|
||||
/* Animate class is added to panel, wrapper and fixed toolbars */
|
||||
.ui-panel-animate {
|
||||
-webkit-transition: -webkit-transform 300ms ease;
|
||||
-webkit-transition-duration: 300ms;
|
||||
-moz-transition: -moz-transform 300ms ease;
|
||||
transition: transform 300ms ease;
|
||||
}
|
||||
|
||||
/* Fix for Windows Phone issue #6349: unset the transition for transforms in case of fixed toolbars. */
|
||||
@media screen and ( max-device-width: 768px ) {
|
||||
.ui-page-header-fixed .ui-panel-animate.ui-panel-wrapper,
|
||||
.ui-page-footer-fixed .ui-panel-animate.ui-panel-wrapper,
|
||||
.ui-panel-animate.ui-panel-fixed-toolbar {
|
||||
-ms-transition: none;
|
||||
}
|
||||
/* We need a transitionend event ... */
|
||||
.ui-panel-animate.ui-panel-fixed-toolbar {
|
||||
-ms-transition: -ms-transform 1ms;
|
||||
-ms-transform: rotate(0deg);
|
||||
}
|
||||
}
|
||||
|
||||
/* Hardware acceleration for smoother transitions on WebKit browsers */
|
||||
.ui-panel-animate.ui-panel:not(.ui-panel-display-reveal) {
|
||||
-webkit-backface-visibility: hidden;
|
||||
-webkit-transform: translate3d(0,0,0);
|
||||
}
|
||||
|
||||
/* Panel positioning (for overlay and push) */
|
||||
/* Panel left closed */
|
||||
.ui-panel-position-left {
|
||||
left: -17em;
|
||||
}
|
||||
/* Panel left closed animated */
|
||||
.ui-panel-animate.ui-panel-position-left.ui-panel-display-overlay,
|
||||
.ui-panel-animate.ui-panel-position-left.ui-panel-display-push {
|
||||
left: 0;
|
||||
-webkit-transform: translate3d(-17em,0,0);
|
||||
-moz-transform: translate3d(-17em,0,0);
|
||||
transform: translate3d(-17em,0,0);
|
||||
}
|
||||
/* Panel left open */
|
||||
.ui-panel-position-left.ui-panel-display-reveal, /* Unset "panel left closed" for reveal */
|
||||
.ui-panel-open.ui-panel-position-left {
|
||||
left: 0;
|
||||
}
|
||||
/* Panel left open animated */
|
||||
.ui-panel-animate.ui-panel-open.ui-panel-position-left.ui-panel-display-overlay,
|
||||
.ui-panel-animate.ui-panel-open.ui-panel-position-left.ui-panel-display-push {
|
||||
-webkit-transform: translate3d(0,0,0);
|
||||
transform: translate3d(0,0,0);
|
||||
-moz-transform: none;
|
||||
}
|
||||
/* Panel right closed */
|
||||
.ui-panel-position-right {
|
||||
right: -17em;
|
||||
}
|
||||
/* Panel right closed animated */
|
||||
.ui-panel-animate.ui-panel-position-right.ui-panel-display-overlay,
|
||||
.ui-panel-animate.ui-panel-position-right.ui-panel-display-push {
|
||||
right: 0;
|
||||
-webkit-transform: translate3d(17em,0,0);
|
||||
-moz-transform: translate3d(17em,0,0);
|
||||
transform: translate3d(17em,0,0);
|
||||
}
|
||||
/* Panel right open */
|
||||
.ui-panel-position-right.ui-panel-display-reveal, /* Unset "panel right closed" for reveal */
|
||||
.ui-panel-position-right.ui-panel-open {
|
||||
right: 0;
|
||||
}
|
||||
/* Panel right open animated */
|
||||
.ui-panel-animate.ui-panel-open.ui-panel-position-right.ui-panel-display-overlay,
|
||||
.ui-panel-animate.ui-panel-open.ui-panel-position-right.ui-panel-display-push {
|
||||
-webkit-transform: translate3d(0,0,0);
|
||||
transform: translate3d(0,0,0);
|
||||
-moz-transform: none;
|
||||
}
|
||||
|
||||
/* Wrapper and fixed toolbars positioning (for reveal and push) */
|
||||
/* Panel left open */
|
||||
.ui-panel-page-content-position-left {
|
||||
left: 17em;
|
||||
right: -17em;
|
||||
}
|
||||
/* Panel left open animated */
|
||||
.ui-panel-animate.ui-panel-page-content-position-left {
|
||||
left: 0;
|
||||
right: 0;
|
||||
-webkit-transform: translate3d(17em,0,0);
|
||||
-moz-transform: translate3d(17em,0,0);
|
||||
transform: translate3d(17em,0,0);
|
||||
}
|
||||
/* Panel right open */
|
||||
.ui-panel-page-content-position-right {
|
||||
left: -17em;
|
||||
right: 17em;
|
||||
}
|
||||
/* Panel right open animated */
|
||||
.ui-panel-animate.ui-panel-page-content-position-right {
|
||||
left: 0;
|
||||
right: 0;
|
||||
-webkit-transform: translate3d(-17em,0,0);
|
||||
-moz-transform: translate3d(-17em,0,0);
|
||||
transform: translate3d(-17em,0,0);
|
||||
}
|
||||
|
||||
/* Dismiss model open */
|
||||
.ui-panel-dismiss-open.ui-panel-dismiss-position-left {
|
||||
left: 17em;
|
||||
}
|
||||
.ui-panel-dismiss-open.ui-panel-dismiss-position-right {
|
||||
right: 17em;
|
||||
}
|
||||
|
||||
/* Shadows and borders */
|
||||
.ui-panel-display-reveal {
|
||||
-webkit-box-shadow: inset -5px 0 5px rgba(0,0,0,.15);
|
||||
-moz-box-shadow: inset -5px 0 5px rgba(0,0,0,.15);
|
||||
box-shadow: inset -5px 0 5px rgba(0,0,0,.15);
|
||||
}
|
||||
.ui-panel-position-right.ui-panel-display-reveal {
|
||||
-webkit-box-shadow: inset 5px 0 5px rgba(0,0,0,.15);
|
||||
-moz-box-shadow: inset 5px 0 5px rgba(0,0,0,.15);
|
||||
box-shadow: inset 5px 0 5px rgba(0,0,0,.15);
|
||||
}
|
||||
.ui-panel-display-overlay {
|
||||
-webkit-box-shadow: 5px 0 5px rgba(0,0,0,.15);
|
||||
-moz-box-shadow: 5px 0 5px rgba(0,0,0,.15);
|
||||
box-shadow: 5px 0 5px rgba(0,0,0,.15);
|
||||
}
|
||||
.ui-panel-position-right.ui-panel-display-overlay {
|
||||
-webkit-box-shadow: -5px 0 5px rgba(0,0,0,.15);
|
||||
-moz-box-shadow: -5px 0 5px rgba(0,0,0,.15);
|
||||
box-shadow: -5px 0 5px rgba(0,0,0,.15);
|
||||
}
|
||||
.ui-panel-open.ui-panel-position-left.ui-panel-display-push {
|
||||
border-right-width: 1px;
|
||||
margin-right: -1px;
|
||||
}
|
||||
.ui-panel-page-content-position-left.ui-panel-page-content-display-push {
|
||||
margin-left: 1px;
|
||||
width: auto;
|
||||
}
|
||||
.ui-panel-open.ui-panel-position-right.ui-panel-display-push {
|
||||
border-left-width: 1px;
|
||||
margin-left: -1px;
|
||||
}
|
||||
.ui-panel-page-content-position-right.ui-panel-page-content-display-push {
|
||||
margin-right: 1px;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
/* Responsive: wrap on wide viewports once open */
|
||||
@media (min-width:55em) {
|
||||
.ui-responsive-panel .ui-panel-page-content-open.ui-panel-page-content-position-left {
|
||||
margin-right: 17em;
|
||||
}
|
||||
.ui-responsive-panel .ui-panel-page-content-open.ui-panel-page-content-position-right {
|
||||
margin-left: 17em;
|
||||
}
|
||||
.ui-responsive-panel .ui-panel-page-content-open {
|
||||
width: auto;
|
||||
}
|
||||
.ui-responsive-panel .ui-panel-dismiss-display-push,
|
||||
.ui-responsive-panel.ui-page-active ~ .ui-panel-dismiss-display-push {
|
||||
display: none;
|
||||
}
|
||||
}
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -4,7 +4,7 @@
|
|||
<title>Emby</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="tvPeoplePage" data-role="page" class="page libraryPage" data-require="scripts/tvpeople">
|
||||
<div id="tvPeoplePage" data-role="page" class="page libraryPage" data-require="jqmpanel,scripts/tvpeople">
|
||||
<div class="libraryViewNav scopedLibraryViewNav">
|
||||
<a href="tvrecommended.html"><iron-icon icon="info"></iron-icon>${TabSuggestions}</a>
|
||||
<a href="tvlatest.html"><iron-icon icon="new-releases"></iron-icon>${TabLatest}</a>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title>Emby</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="tvShowsPage" data-role="page" class="page libraryPage" data-require="jqmcollapsible,scripts/tvshows,scripts/queryfilters">
|
||||
<div id="tvShowsPage" data-role="page" class="page libraryPage" data-require="jqmpanel,jqmcollapsible,scripts/tvshows,scripts/queryfilters">
|
||||
<div class="libraryViewNav scopedLibraryViewNav">
|
||||
<a href="tvrecommended.html"><iron-icon icon="info"></iron-icon>${TabSuggestions}</a>
|
||||
<a href="tvlatest.html"><iron-icon icon="new-releases"></iron-icon>${TabLatest}</a>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue