Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F4118479
util.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
util.js
View Options
/* global $ */
/**
* Utility library
*
* @class util
* @singleton
*/
module
.
exports
=
{
/**
* Obtains the correct label for the save button which is project specific. It's either
* "save" or "publish"
*
* @return {string}
*/
saveButtonMessage
()
{
return
mw
.
config
.
get
(
'wgEditSubmitButtonLabelPublish'
)
?
mw
.
msg
(
'mobile-frontend-editor-publish'
)
:
mw
.
msg
(
'mobile-frontend-editor-save'
);
},
/**
* Wrapper class for Promises
*
* @memberof util
* @instance
*/
Promise
:
{
/**
* Wrapper class for the $.when that is compatible with Promise.all
*
* @memberof util
* @param {jQuery.Promise[]} promises
* @instance
* @return {jQuery.Promise}
*/
all
(
promises
)
{
return
$
.
when
.
apply
(
$
,
promises
);
}
},
/**
* Escape a string for use as a css selector
*
* @memberof util
* @instance
* @param {string} selector
* @return {string}
*/
escapeSelector
(
selector
)
{
return
$
.
escapeSelector
(
selector
);
},
/**
* Run method when document is ready.
*
* @memberof util
* @instance
* @param {Function} fn
* @return {jQuery.Object}
*/
docReady
(
fn
)
{
return
$
(
fn
);
},
/**
* Wrapper class for the Deferred method
*
* @memberof util
* @instance
* @return {jQuery.Deferred}
*/
Deferred
()
{
return
$
.
Deferred
();
},
/**
* Adds a class to the document
*
* @memberof util
* @instance
* @return {jQuery.Object} element representing the documentElement
*/
getDocument
()
{
return
$
(
document
.
documentElement
);
},
/**
* Get the window object
*
* @memberof util
* @instance
* @return {jQuery.Object}
*/
getWindow
()
{
return
$
(
window
);
},
/**
* Given some html, create new element(s).
* Unlike jQuery.parseHTML this will return a jQuery object
* not an array.
*
* @memberof util
* @instance
* @param {string} html
* @param {Element} [ctx] Document element to serve as the context
* in which the HTML fragment will be created
* @return {jQuery.Object}
*/
parseHTML
(
html
,
ctx
)
{
ctx
=
ctx
||
document
;
return
$
(
$
.
parseHTML
(
html
,
ctx
)
);
},
/**
* Wrapper for jQuery.extend method. In future this can be bound to Object.assign
* when support allows.
*
* Warning: if only one argument is supplied to util.extend(), this means the target argument
* was omitted. In this case, the jQuery object itself is assumed to be the target.
*
* @memberof util
* @instance
* @return {Object}
*/
extend
()
{
return
$
.
extend
.
apply
(
$
,
arguments
);
},
template
(
source
)
{
return
{
/**
* @ignore
* @return {string} The raw source code of the template
*/
getSource
()
{
return
source
;
},
/**
* @ignore
* @param {Object} data Data to render
* @param {Object} partials Map partial names to Mustache template objects
* @return {string} Rendered HTML
*/
render
(
data
,
partials
)
{
const
partialSource
=
{};
// Map MobileFrontend templates to partial strings
Object
.
keys
(
partials
||
{}
).
forEach
(
(
key
)
=>
{
partialSource
[
key
]
=
partials
[
key
].
getSource
();
}
);
// Use global Mustache which is loaded by mediawiki.template.mustache (a
// dependency of the mobile.startup module)
// eslint-disable-next-line no-undef
return
Mustache
.
render
(
source
.
trim
(),
data
,
partialSource
);
}
};
}
};
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Wed, Aug 19, 02:48 (2 w, 2 d ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
b7/64/cf4462d1a6721b0718369d89e17a
Default Alt Text
util.js (3 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment