mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
fix now playing background
This commit is contained in:
parent
c7fa2299da
commit
def595ff8a
26 changed files with 603 additions and 695 deletions
203
dashboard-ui/thirdparty/jquerymobile-1.4.5/jqm.listview.js
vendored
Normal file
203
dashboard-ui/thirdparty/jquerymobile-1.4.5/jqm.listview.js
vendored
Normal file
|
@ -0,0 +1,203 @@
|
|||
(function ($, undefined) {
|
||||
|
||||
var getAttr = $.mobile.getAttribute;
|
||||
|
||||
$.widget("mobile.listview", $.extend({
|
||||
|
||||
options: {
|
||||
theme: null,
|
||||
countTheme: null, /* Deprecated in 1.4 */
|
||||
dividerTheme: null,
|
||||
icon: "carat-r",
|
||||
splitIcon: "carat-r",
|
||||
splitTheme: null,
|
||||
corners: true,
|
||||
shadow: true,
|
||||
inset: false
|
||||
},
|
||||
|
||||
_create: function () {
|
||||
var t = this,
|
||||
listviewClasses = "";
|
||||
|
||||
listviewClasses += t.options.inset ? " ui-listview-inset" : "";
|
||||
|
||||
if (!!t.options.inset) {
|
||||
listviewClasses += t.options.corners ? " ui-corner-all" : "";
|
||||
listviewClasses += t.options.shadow ? " ui-shadow" : "";
|
||||
}
|
||||
|
||||
// create listview markup
|
||||
t.element.addClass(" ui-listview" + listviewClasses);
|
||||
|
||||
t.refresh(true);
|
||||
},
|
||||
|
||||
// TODO: Remove in 1.5
|
||||
_findFirstElementByTagName: function (ele, nextProp, lcName, ucName) {
|
||||
var dict = {};
|
||||
dict[lcName] = dict[ucName] = true;
|
||||
while (ele) {
|
||||
if (dict[ele.nodeName]) {
|
||||
return ele;
|
||||
}
|
||||
ele = ele[nextProp];
|
||||
}
|
||||
return null;
|
||||
},
|
||||
// TODO: Remove in 1.5
|
||||
_addThumbClasses: function (containers) {
|
||||
var i, img, len = containers.length;
|
||||
for (i = 0; i < len; i++) {
|
||||
img = $(this._findFirstElementByTagName(containers[i].firstChild, "nextSibling", "img", "IMG"));
|
||||
if (img.length) {
|
||||
$(this._findFirstElementByTagName(img[0].parentNode, "parentNode", "li", "LI")).addClass(img.hasClass("ui-li-icon") ? "ui-li-has-icon" : "ui-li-has-thumb");
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
_getChildrenByTagName: function (ele, lcName, ucName) {
|
||||
var results = [],
|
||||
dict = {};
|
||||
dict[lcName] = dict[ucName] = true;
|
||||
ele = ele.firstChild;
|
||||
while (ele) {
|
||||
if (dict[ele.nodeName]) {
|
||||
results.push(ele);
|
||||
}
|
||||
ele = ele.nextSibling;
|
||||
}
|
||||
return $(results);
|
||||
},
|
||||
|
||||
_beforeListviewRefresh: $.noop,
|
||||
_afterListviewRefresh: $.noop,
|
||||
|
||||
refresh: function (create) {
|
||||
var buttonClass, pos, numli, item, itemClass, itemTheme, itemIcon, icon, a,
|
||||
isDivider, startCount, newStartCount, value, last, splittheme, splitThemeClass, spliticon,
|
||||
altButtonClass, dividerTheme, li,
|
||||
o = this.options,
|
||||
$list = this.element,
|
||||
ol = !!$.nodeName($list[0], "ol"),
|
||||
start = $list.attr("start"),
|
||||
itemClassDict = {},
|
||||
countBubbles = $list.find(".ui-li-count"),
|
||||
countTheme = getAttr($list[0], "counttheme") || this.options.countTheme,
|
||||
countThemeClass = countTheme ? "ui-body-" + countTheme : "ui-body-inherit";
|
||||
|
||||
if (o.theme) {
|
||||
$list.addClass("ui-group-theme-" + o.theme);
|
||||
}
|
||||
|
||||
// Check if a start attribute has been set while taking a value of 0 into account
|
||||
if (ol && (start || start === 0)) {
|
||||
startCount = parseInt(start, 10) - 1;
|
||||
$list.css("counter-reset", "listnumbering " + startCount);
|
||||
}
|
||||
|
||||
this._beforeListviewRefresh();
|
||||
|
||||
li = this._getChildrenByTagName($list[0], "li", "LI");
|
||||
|
||||
for (pos = 0, numli = li.length; pos < numli; pos++) {
|
||||
item = li.eq(pos);
|
||||
itemClass = "";
|
||||
|
||||
if (create || item[0].className.search(/\bui-li-static\b|\bui-li-divider\b/) < 0) {
|
||||
a = this._getChildrenByTagName(item[0], "a", "A");
|
||||
isDivider = (getAttr(item[0], "role") === "list-divider");
|
||||
value = item.attr("value");
|
||||
itemTheme = getAttr(item[0], "theme");
|
||||
|
||||
if (a.length && a[0].className.search(/\bui-btn\b/) < 0 && !isDivider) {
|
||||
itemIcon = getAttr(item[0], "icon");
|
||||
icon = (itemIcon === false) ? false : (itemIcon || o.icon);
|
||||
|
||||
// TODO: Remove in 1.5 together with links.js (links.js / .ui-link deprecated in 1.4)
|
||||
a.removeClass("ui-link");
|
||||
|
||||
buttonClass = "ui-btn";
|
||||
|
||||
if (itemTheme) {
|
||||
buttonClass += " ui-btn-" + itemTheme;
|
||||
}
|
||||
|
||||
if (a.length > 1) {
|
||||
itemClass = "ui-li-has-alt";
|
||||
|
||||
last = a.last();
|
||||
splittheme = getAttr(last[0], "theme") || o.splitTheme || getAttr(item[0], "theme", true);
|
||||
splitThemeClass = splittheme ? " ui-btn-" + splittheme : "";
|
||||
spliticon = getAttr(last[0], "icon") || getAttr(item[0], "icon") || o.splitIcon;
|
||||
altButtonClass = "ui-btn ui-btn-icon-notext ui-icon-" + spliticon + splitThemeClass;
|
||||
|
||||
last
|
||||
.attr("title", $.trim(last.getEncodedText()))
|
||||
.addClass(altButtonClass)
|
||||
.empty();
|
||||
|
||||
// Reduce to the first anchor, because only the first gets the buttonClass
|
||||
a = a.first();
|
||||
} else if (icon) {
|
||||
buttonClass += " ui-btn-icon-right ui-icon-" + icon;
|
||||
}
|
||||
|
||||
// Apply buttonClass to the (first) anchor
|
||||
a.addClass(buttonClass);
|
||||
} else if (isDivider) {
|
||||
dividerTheme = (getAttr(item[0], "theme") || o.dividerTheme || o.theme);
|
||||
|
||||
itemClass = "ui-li-divider ui-bar-" + (dividerTheme ? dividerTheme : "inherit");
|
||||
|
||||
item.attr("role", "heading");
|
||||
} else if (a.length <= 0) {
|
||||
itemClass = "ui-li-static ui-body-" + (itemTheme ? itemTheme : "inherit");
|
||||
}
|
||||
if (ol && value) {
|
||||
newStartCount = parseInt(value, 10) - 1;
|
||||
|
||||
item.css("counter-reset", "listnumbering " + newStartCount);
|
||||
}
|
||||
}
|
||||
|
||||
// Instead of setting item class directly on the list item
|
||||
// at this point in time, push the item into a dictionary
|
||||
// that tells us what class to set on it so we can do this after this
|
||||
// processing loop is finished.
|
||||
|
||||
if (!itemClassDict[itemClass]) {
|
||||
itemClassDict[itemClass] = [];
|
||||
}
|
||||
|
||||
itemClassDict[itemClass].push(item[0]);
|
||||
}
|
||||
|
||||
// Set the appropriate listview item classes on each list item.
|
||||
// The main reason we didn't do this
|
||||
// in the for-loop above is because we can eliminate per-item function overhead
|
||||
// by calling addClass() and children() once or twice afterwards. This
|
||||
// can give us a significant boost on platforms like WP7.5.
|
||||
|
||||
for (itemClass in itemClassDict) {
|
||||
$(itemClassDict[itemClass]).addClass(itemClass);
|
||||
}
|
||||
|
||||
countBubbles.each(function () {
|
||||
$(this).closest("li").addClass("ui-li-has-count");
|
||||
});
|
||||
if (countThemeClass) {
|
||||
countBubbles.not("[class*='ui-body-']").addClass(countThemeClass);
|
||||
}
|
||||
|
||||
// Deprecated in 1.4. From 1.5 you have to add class ui-li-has-thumb or ui-li-has-icon to the LI.
|
||||
this._addThumbClasses(li);
|
||||
this._addThumbClasses(li.find(".ui-btn"));
|
||||
|
||||
this._afterListviewRefresh();
|
||||
|
||||
this._addFirstLastClasses(li, this._getVisibles(li, create), create);
|
||||
}
|
||||
}, $.mobile.behaviors.addFirstLastClasses));
|
||||
|
||||
})(jQuery);
|
Loading…
Add table
Add a link
Reference in a new issue