mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
remove button markup
This commit is contained in:
parent
c58b7f3469
commit
aed5226fe5
32 changed files with 217 additions and 643 deletions
|
@ -386,10 +386,6 @@
|
|||
// data-ignored
|
||||
ignoreContentEnabled: false,
|
||||
|
||||
buttonMarkup: {
|
||||
hoverDelay: 200
|
||||
},
|
||||
|
||||
// disable the alteration of the dynamic base tag or links in the case
|
||||
// that a dynamic base tag isn't supported
|
||||
dynamicBaseEnabled: true,
|
||||
|
@ -801,13 +797,6 @@ $.ui.ie = !!/msie [\w.]+/.exec( navigator.userAgent.toLowerCase() );
|
|||
$.mobile.links( this );
|
||||
}
|
||||
|
||||
var thisElem = this[0];
|
||||
|
||||
// Run buttonmarkup
|
||||
if ( $.fn.buttonMarkup ) {
|
||||
$(thisElem.querySelectorAll($.fn.buttonMarkup.initSelector)).jqmEnhanceable().buttonMarkup();
|
||||
}
|
||||
|
||||
// Enhance widgets
|
||||
$.each( $.mobile.widgets, function( name, constructor ) {
|
||||
|
||||
|
@ -1092,7 +1081,6 @@ $.extend( $.support, {
|
|||
cssPseudoElement: !!propExists( "content" ),
|
||||
touchOverflow: !!propExists( "overflowScrolling" ),
|
||||
cssTransform3d: transform3dTest(),
|
||||
boxShadow: !!propExists( "boxShadow" ) && !bb,
|
||||
fixedPosition: true,
|
||||
scrollTop: ("pageXOffset" in window ||
|
||||
"scrollTop" in document.documentElement ||
|
||||
|
@ -1119,11 +1107,6 @@ $.mobile.ajaxBlacklist =
|
|||
// Opera Mini
|
||||
operamini;
|
||||
|
||||
// For ruling out shadows via css
|
||||
if ( !$.support.boxShadow ) {
|
||||
$( "html" ).addClass( "ui-noboxshadow" );
|
||||
}
|
||||
|
||||
})( jQuery );
|
||||
|
||||
|
||||
|
@ -1337,264 +1320,6 @@ if ( !$.support.boxShadow ) {
|
|||
$.fn.animationComplete.defaultDuration = 1000;
|
||||
})( jQuery );
|
||||
|
||||
|
||||
// buttonMarkup is deprecated as of 1.4.0 and will be removed in 1.5.0.
|
||||
|
||||
(function( $, undefined ) {
|
||||
|
||||
// General policy: Do not access data-* attributes except during enhancement.
|
||||
// In all other cases we determine the state of the button exclusively from its
|
||||
// className. That's why optionsToClasses expects a full complement of options,
|
||||
// and the jQuery plugin completes the set of options from the default values.
|
||||
|
||||
// Map classes to buttonMarkup boolean options - used in classNameToOptions()
|
||||
var reverseBoolOptionMap = {
|
||||
"ui-shadow" : "shadow",
|
||||
"ui-corner-all" : "corners",
|
||||
"ui-btn-inline" : "inline",
|
||||
"ui-shadow-icon" : "iconshadow", /* TODO: Remove in 1.5 */
|
||||
"ui-mini" : "mini"
|
||||
},
|
||||
getAttrFixed = function() {
|
||||
var ret = $.mobile.getAttribute.apply( this, arguments );
|
||||
|
||||
return ( ret == null ? undefined : ret );
|
||||
},
|
||||
capitalLettersRE = /[A-Z]/g;
|
||||
|
||||
// optionsToClasses:
|
||||
// @options: A complete set of options to convert to class names.
|
||||
// @existingClasses: extra classes to add to the result
|
||||
//
|
||||
// Converts @options to buttonMarkup classes and returns the result as an array
|
||||
// that can be converted to an element's className with .join( " " ). All
|
||||
// possible options must be set inside @options. Use $.fn.buttonMarkup.defaults
|
||||
// to get a complete set and use $.extend to override your choice of options
|
||||
// from that set.
|
||||
function optionsToClasses( options, existingClasses ) {
|
||||
var classes = existingClasses ? existingClasses : [];
|
||||
|
||||
// Add classes to the array - first ui-btn
|
||||
classes.push( "ui-btn" );
|
||||
|
||||
// If there is a theme
|
||||
if ( options.theme ) {
|
||||
classes.push( "ui-btn-" + options.theme );
|
||||
}
|
||||
|
||||
// If there's an icon, add the icon-related classes
|
||||
if ( options.icon ) {
|
||||
classes = classes.concat([
|
||||
"ui-icon-" + options.icon,
|
||||
"ui-btn-icon-" + options.iconpos
|
||||
]);
|
||||
if ( options.iconshadow ) {
|
||||
classes.push( "ui-shadow-icon" ); /* TODO: Remove in 1.5 */
|
||||
}
|
||||
}
|
||||
|
||||
// Add the appropriate class for each boolean option
|
||||
if ( options.inline ) {
|
||||
classes.push( "ui-btn-inline" );
|
||||
}
|
||||
if ( options.shadow ) {
|
||||
classes.push( "ui-shadow" );
|
||||
}
|
||||
if ( options.corners ) {
|
||||
classes.push( "ui-corner-all" );
|
||||
}
|
||||
if ( options.mini ) {
|
||||
classes.push( "ui-mini" );
|
||||
}
|
||||
|
||||
// Create a string from the array and return it
|
||||
return classes;
|
||||
}
|
||||
|
||||
// classNameToOptions:
|
||||
// @classes: A string containing a .className-style space-separated class list
|
||||
//
|
||||
// Loops over @classes and calculates an options object based on the
|
||||
// buttonMarkup-related classes it finds. It records unrecognized classes in an
|
||||
// array.
|
||||
//
|
||||
// Returns: An object containing the following items:
|
||||
//
|
||||
// "options": buttonMarkup options found to be present because of the
|
||||
// presence/absence of corresponding classes
|
||||
//
|
||||
// "unknownClasses": a string containing all the non-buttonMarkup-related
|
||||
// classes found in @classes
|
||||
//
|
||||
// "alreadyEnhanced": A boolean indicating whether the ui-btn class was among
|
||||
// those found to be present
|
||||
function classNameToOptions( classes ) {
|
||||
var idx, map, unknownClass,
|
||||
alreadyEnhanced = false,
|
||||
noIcon = true,
|
||||
o = {
|
||||
icon: "",
|
||||
inline: false,
|
||||
shadow: false,
|
||||
corners: false,
|
||||
iconshadow: false,
|
||||
mini: false
|
||||
},
|
||||
unknownClasses = [];
|
||||
|
||||
classes = classes.split( " " );
|
||||
|
||||
// Loop over the classes
|
||||
for ( idx = 0 ; idx < classes.length ; idx++ ) {
|
||||
|
||||
// Assume it's an unrecognized class
|
||||
unknownClass = true;
|
||||
|
||||
// Recognize boolean options from the presence of classes
|
||||
map = reverseBoolOptionMap[ classes[ idx ] ];
|
||||
if ( map !== undefined ) {
|
||||
unknownClass = false;
|
||||
o[ map ] = true;
|
||||
|
||||
// Recognize the presence of an icon and establish the icon position
|
||||
} else if ( classes[ idx ].indexOf( "ui-btn-icon-" ) === 0 ) {
|
||||
unknownClass = false;
|
||||
noIcon = false;
|
||||
o.iconpos = classes[ idx ].substring( 12 );
|
||||
|
||||
// Establish which icon is present
|
||||
} else if ( classes[ idx ].indexOf( "ui-icon-" ) === 0 ) {
|
||||
unknownClass = false;
|
||||
o.icon = classes[ idx ].substring( 8 );
|
||||
|
||||
// Establish the theme - this recognizes one-letter theme swatch names
|
||||
} else if ( classes[ idx ].indexOf( "ui-btn-" ) === 0 && classes[ idx ].length === 8 ) {
|
||||
unknownClass = false;
|
||||
o.theme = classes[ idx ].substring( 7 );
|
||||
|
||||
// Recognize that this element has already been buttonMarkup-enhanced
|
||||
} else if ( classes[ idx ] === "ui-btn" ) {
|
||||
unknownClass = false;
|
||||
alreadyEnhanced = true;
|
||||
}
|
||||
|
||||
// If this class has not been recognized, add it to the list
|
||||
if ( unknownClass ) {
|
||||
unknownClasses.push( classes[ idx ] );
|
||||
}
|
||||
}
|
||||
|
||||
// If a "ui-btn-icon-*" icon position class is absent there cannot be an icon
|
||||
if ( noIcon ) {
|
||||
o.icon = "";
|
||||
}
|
||||
|
||||
return {
|
||||
options: o,
|
||||
unknownClasses: unknownClasses,
|
||||
alreadyEnhanced: alreadyEnhanced
|
||||
};
|
||||
}
|
||||
|
||||
function camelCase2Hyphenated( c ) {
|
||||
return "-" + c.toLowerCase();
|
||||
}
|
||||
|
||||
// $.fn.buttonMarkup:
|
||||
// DOM: gets/sets .className
|
||||
//
|
||||
// @options: options to apply to the elements in the jQuery object
|
||||
// @overwriteClasses: boolean indicating whether to honour existing classes
|
||||
//
|
||||
// Calculates the classes to apply to the elements in the jQuery object based on
|
||||
// the options passed in. If @overwriteClasses is true, it sets the className
|
||||
// property of each element in the jQuery object to the buttonMarkup classes
|
||||
// it calculates based on the options passed in.
|
||||
//
|
||||
// If you wish to preserve any classes that are already present on the elements
|
||||
// inside the jQuery object, including buttonMarkup-related classes that were
|
||||
// added by a previous call to $.fn.buttonMarkup() or during page enhancement
|
||||
// then you should omit @overwriteClasses or set it to false.
|
||||
$.fn.buttonMarkup = function( options, overwriteClasses ) {
|
||||
var idx, data, el, retrievedOptions, optionKey,
|
||||
defaults = $.fn.buttonMarkup.defaults;
|
||||
|
||||
for ( idx = 0 ; idx < this.length ; idx++ ) {
|
||||
el = this[ idx ];
|
||||
data = overwriteClasses ?
|
||||
|
||||
// Assume this element is not enhanced and ignore its classes
|
||||
{ alreadyEnhanced: false, unknownClasses: [] } :
|
||||
|
||||
// Otherwise analyze existing classes to establish existing options and
|
||||
// classes
|
||||
classNameToOptions( el.className );
|
||||
|
||||
retrievedOptions = $.extend( {},
|
||||
|
||||
// If the element already has the class ui-btn, then we assume that
|
||||
// it has passed through buttonMarkup before - otherwise, the options
|
||||
// returned by classNameToOptions do not correctly reflect the state of
|
||||
// the element
|
||||
( data.alreadyEnhanced ? data.options : {} ),
|
||||
|
||||
// Finally, apply the options passed in
|
||||
options );
|
||||
|
||||
// If this is the first call on this element, retrieve remaining options
|
||||
// from the data-attributes
|
||||
if ( !data.alreadyEnhanced ) {
|
||||
for ( optionKey in defaults ) {
|
||||
if ( retrievedOptions[ optionKey ] === undefined ) {
|
||||
retrievedOptions[ optionKey ] = getAttrFixed( el,
|
||||
optionKey.replace( capitalLettersRE, camelCase2Hyphenated )
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
el.className = optionsToClasses(
|
||||
|
||||
// Merge all the options and apply them as classes
|
||||
$.extend( {},
|
||||
|
||||
// The defaults form the basis
|
||||
defaults,
|
||||
|
||||
// Add the computed options
|
||||
retrievedOptions
|
||||
),
|
||||
|
||||
// ... and re-apply any unrecognized classes that were found
|
||||
data.unknownClasses ).join( " " );
|
||||
if ( el.tagName.toLowerCase() !== "button" ) {
|
||||
el.setAttribute( "role", "button" );
|
||||
}
|
||||
}
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
// buttonMarkup defaults. This must be a complete set, i.e., a value must be
|
||||
// given here for all recognized options
|
||||
$.fn.buttonMarkup.defaults = {
|
||||
icon: "",
|
||||
iconpos: "left",
|
||||
theme: null,
|
||||
inline: false,
|
||||
shadow: true,
|
||||
corners: true,
|
||||
iconshadow: false, /* TODO: Remove in 1.5. Option deprecated in 1.4. */
|
||||
mini: false
|
||||
};
|
||||
|
||||
$.extend( $.fn.buttonMarkup, {
|
||||
initSelector: "a[data-role='button'], button:not([data-role='none'])"
|
||||
});
|
||||
|
||||
})( jQuery );
|
||||
|
||||
|
||||
/*!
|
||||
* jQuery UI Widget c0ab71056b936627e8a7821f03c044aec6280a40
|
||||
* http://jqueryui.com
|
||||
|
@ -3956,7 +3681,6 @@ $.widget( "mobile.page", {
|
|||
|
||||
if (contentElem.classList.contains('type-interior')) {
|
||||
dependencies = dependencies || [];
|
||||
dependencies.push('jqmicons');
|
||||
dependencies.push('jqmpopup');
|
||||
dependencies.push('jqmlistview');
|
||||
dependencies.push('jqmcollapsible');
|
||||
|
@ -4757,8 +4481,7 @@ $.widget( "mobile.page", {
|
|||
|
||||
|
||||
(function( $, window, undefined ) {
|
||||
var $html = $( "html" ),
|
||||
$window = $.mobile.window;
|
||||
var $window = $.mobile.window;
|
||||
|
||||
// trigger mobileinit event - useful hook for configuring $.mobile settings before they're used
|
||||
$( window.document ).trigger( "mobileinit" );
|
||||
|
|
|
@ -293,76 +293,6 @@ button.ui-btn-icon-notext,
|
|||
}
|
||||
|
||||
|
||||
.ui-field-contain,
|
||||
.ui-mobile fieldset.ui-field-contain {
|
||||
display: block;
|
||||
position: relative;
|
||||
overflow: visible;
|
||||
clear: both;
|
||||
padding: .8em 0;
|
||||
}
|
||||
.ui-field-contain > label ~ [class*="ui-"],
|
||||
.ui-field-contain .ui-controlgroup-controls {
|
||||
margin: 0;
|
||||
}
|
||||
.ui-field-contain:last-child {
|
||||
border-bottom-width: 0;
|
||||
}
|
||||
@media (min-width: 28em) {
|
||||
.ui-field-contain,
|
||||
.ui-mobile fieldset.ui-field-contain {
|
||||
padding: 0;
|
||||
margin: 1em 0;
|
||||
border-bottom-width: 0;
|
||||
}
|
||||
.ui-field-contain:before,
|
||||
.ui-field-contain:after {
|
||||
content: "";
|
||||
display: table;
|
||||
}
|
||||
.ui-field-contain:after {
|
||||
clear: both;
|
||||
}
|
||||
.ui-field-contain > label,
|
||||
.ui-field-contain .ui-controlgroup-label,
|
||||
.ui-field-contain > .ui-rangeslider > label {
|
||||
float: left;
|
||||
width: 20%;
|
||||
margin: .5em 2% 0 0;
|
||||
}
|
||||
.ui-popup .ui-field-contain > label,
|
||||
.ui-popup .ui-field-contain .ui-controlgroup-label,
|
||||
.ui-popup .ui-field-contain > .ui-rangeslider > label {
|
||||
float: none;
|
||||
width: auto;
|
||||
margin: 0 0 .4em;
|
||||
}
|
||||
.ui-field-contain > label ~ [class*="ui-"],
|
||||
.ui-field-contain .ui-controlgroup-controls {
|
||||
float: left;
|
||||
width: 78%;
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
/* ui-hide-label deprecated in 1.4. TODO: Remove in 1.5 */
|
||||
.ui-hide-label > label ~ [class*="ui-"],
|
||||
.ui-hide-label .ui-controlgroup-controls,
|
||||
.ui-popup .ui-field-contain > label ~ [class*="ui-"],
|
||||
.ui-popup .ui-field-contain .ui-controlgroup-controls {
|
||||
float: none;
|
||||
width: 100%;
|
||||
}
|
||||
.ui-field-contain > label ~ .ui-btn-inline {
|
||||
width: auto;
|
||||
margin-right: .625em;
|
||||
}
|
||||
.ui-field-contain > label ~ .ui-btn-inline.ui-btn-icon-notext {
|
||||
width: 1.75em;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* content configurations. */
|
||||
.ui-grid-a,
|
||||
.ui-grid-b,
|
||||
|
|
|
@ -19,9 +19,7 @@ html {
|
|||
body,
|
||||
button,
|
||||
.ui-btn {
|
||||
font-size: 1em;
|
||||
line-height: 1.3;
|
||||
font-family: sans-serif /*{global-font-family}*/;
|
||||
line-height: 1.3 /*{global-font-family}*/;
|
||||
}
|
||||
legend {
|
||||
color: inherit;
|
||||
|
@ -35,13 +33,7 @@ div.ui-controlgroup-label {
|
|||
|
||||
/* Separators
|
||||
-----------------------------------------------------------------------------------------------------------*/
|
||||
/* Field contain separator (< 28em) */
|
||||
.ui-field-contain {
|
||||
border-bottom-color: #828282;
|
||||
border-bottom-color: rgba(0,0,0,.15);
|
||||
border-bottom-width: 1px;
|
||||
border-bottom-style: solid;
|
||||
}
|
||||
|
||||
|
||||
/* Table opt-in classes: strokes between each row, and alternating row stripes */
|
||||
/* Classes table-stroke and table-stripe are deprecated in 1.4. */
|
||||
|
@ -533,23 +525,4 @@ button[disabled] {
|
|||
.ui-btn:focus,
|
||||
.ui-btn.ui-focus {
|
||||
outline: 0;
|
||||
}
|
||||
/* Unset box-shadow in browsers that don't do it right */
|
||||
.ui-noboxshadow .ui-shadow,
|
||||
.ui-noboxshadow .ui-shadow-inset,
|
||||
.ui-noboxshadow .ui-overlay-shadow,
|
||||
.ui-noboxshadow .ui-shadow-icon.ui-btn:after,
|
||||
.ui-noboxshadow .ui-shadow-icon .ui-btn:after,
|
||||
.ui-noboxshadow .ui-focus,
|
||||
.ui-noboxshadow .ui-btn:focus,
|
||||
.ui-noboxshadow input:focus,
|
||||
.ui-noboxshadow .ui-panel {
|
||||
-webkit-box-shadow: none !important;
|
||||
-moz-box-shadow: none !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
.ui-noboxshadow .ui-btn:focus,
|
||||
.ui-noboxshadow .ui-focus {
|
||||
outline-width: 1px;
|
||||
outline-style: auto;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue