3c0ff6f398
This patch improves the readability on how Horizon's application level module `hz.app` is composited and how its dependency modules are organized. The dependency modules come from three sources: 1) Library modules - modules defined in third-party libraries, including angular's extensions 2) Horizon's built-in modules, including modules from `framework` components and modules from `openstack_dashboard` application core components. 3) Horizon's plug-in modules - modules from Horizon's extensions components via Horizon's plug-in mechanism. Horizon's built-in modules are managed as a couple of trees, then only the top modules of each tree should be listed in the Horizon's built-in modules. Change-Id: I989a0b5cc8b24f6b168629f4a8fa5e485dcf1a2d Closes-Bug: #1472098
99 lines
2.5 KiB
JavaScript
99 lines
2.5 KiB
JavaScript
/*
|
|
* Shim for Javascript unit tests; supplying expected global features.
|
|
* This should be removed from the codebase once i18n services are provided.
|
|
* Taken from default i18n file provided by Django.
|
|
*/
|
|
|
|
var horizonPlugInModules = [];
|
|
|
|
|
|
(function (globals) {
|
|
|
|
var django = globals.django || (globals.django = {});
|
|
|
|
|
|
django.pluralidx = function (count) { return (count == 1) ? 0 : 1; };
|
|
|
|
/* gettext identity library */
|
|
|
|
django.gettext = function (msgid) { return msgid; };
|
|
django.ngettext = function (singular, plural, count) { return (count == 1) ? singular : plural; };
|
|
django.gettext_noop = function (msgid) { return msgid; };
|
|
django.pgettext = function (context, msgid) { return msgid; };
|
|
django.npgettext = function (context, singular, plural, count) { return (count == 1) ? singular : plural; };
|
|
|
|
|
|
django.interpolate = function (fmt, obj, named) {
|
|
if (named) {
|
|
return fmt.replace(/%\(\w+\)s/g, function(match){return String(obj[match.slice(2,-2)])});
|
|
} else {
|
|
return fmt.replace(/%s/g, function(match){return String(obj.shift())});
|
|
}
|
|
};
|
|
|
|
|
|
/* formatting library */
|
|
|
|
django.formats = {
|
|
"DATETIME_FORMAT": "N j, Y, P",
|
|
"DATETIME_INPUT_FORMATS": [
|
|
"%Y-%m-%d %H:%M:%S",
|
|
"%Y-%m-%d %H:%M:%S.%f",
|
|
"%Y-%m-%d %H:%M",
|
|
"%Y-%m-%d",
|
|
"%m/%d/%Y %H:%M:%S",
|
|
"%m/%d/%Y %H:%M:%S.%f",
|
|
"%m/%d/%Y %H:%M",
|
|
"%m/%d/%Y",
|
|
"%m/%d/%y %H:%M:%S",
|
|
"%m/%d/%y %H:%M:%S.%f",
|
|
"%m/%d/%y %H:%M",
|
|
"%m/%d/%y"
|
|
],
|
|
"DATE_FORMAT": "N j, Y",
|
|
"DATE_INPUT_FORMATS": [
|
|
"%Y-%m-%d",
|
|
"%m/%d/%Y",
|
|
"%m/%d/%y"
|
|
],
|
|
"DECIMAL_SEPARATOR": ".",
|
|
"FIRST_DAY_OF_WEEK": "0",
|
|
"MONTH_DAY_FORMAT": "F j",
|
|
"NUMBER_GROUPING": "3",
|
|
"SHORT_DATETIME_FORMAT": "m/d/Y P",
|
|
"SHORT_DATE_FORMAT": "m/d/Y",
|
|
"THOUSAND_SEPARATOR": ",",
|
|
"TIME_FORMAT": "P",
|
|
"TIME_INPUT_FORMATS": [
|
|
"%H:%M:%S",
|
|
"%H:%M:%S.%f",
|
|
"%H:%M"
|
|
],
|
|
"YEAR_MONTH_FORMAT": "F Y"
|
|
};
|
|
|
|
django.get_format = function (format_type) {
|
|
var value = django.formats[format_type];
|
|
if (typeof(value) == 'undefined') {
|
|
return format_type;
|
|
} else {
|
|
return value;
|
|
}
|
|
};
|
|
|
|
/* add to global namespace */
|
|
globals.pluralidx = django.pluralidx;
|
|
globals.gettext = django.gettext;
|
|
globals.ngettext = django.ngettext;
|
|
globals.gettext_noop = django.gettext_noop;
|
|
globals.pgettext = django.pgettext;
|
|
globals.npgettext = django.npgettext;
|
|
globals.interpolate = django.interpolate;
|
|
globals.get_format = django.get_format;
|
|
|
|
}(this));
|
|
|
|
|
|
|
|
|