304 lines
13 KiB
JavaScript
304 lines
13 KiB
JavaScript
/*
|
|
Loads all js files via require.js
|
|
*/
|
|
define(function () {
|
|
|
|
function loadCss(url) {
|
|
var link = document.createElement("link");
|
|
link.type = "text/css";
|
|
link.rel = "stylesheet";
|
|
link.href = url;
|
|
document.getElementsByTagName("head")[0].appendChild(link);
|
|
};
|
|
|
|
return {
|
|
loadCss: loadCss,
|
|
getConfig: function (baseUrl) {
|
|
|
|
var
|
|
params = this.getParams(),
|
|
f = params.f,
|
|
c = params.c;
|
|
|
|
var
|
|
jqueryui_ver = '1.10.3',
|
|
// jqueryui_ver = '1.9.1',
|
|
bs2_ver = '232',
|
|
bs3_ver = '300',
|
|
//path aliases
|
|
paths = {
|
|
"bootstrap": "../test/libs/bootstrap"+(f === 'bootstrap2' ? bs2_ver : bs3_ver),
|
|
|
|
// "jqueryui": "../test/libs/jquery-ui-"+jqueryui_ver+".custom",
|
|
"jqueryui_js": "../test/libs/jquery-ui-"+jqueryui_ver+".custom/js/jquery-ui-"+jqueryui_ver+".custom",
|
|
|
|
"dateui_js": "inputs/dateui/jquery-ui-datepicker/js/jquery-ui-"+jqueryui_ver+".custom",
|
|
|
|
"poshytip": "../test/libs/poshytip",
|
|
|
|
"test": "../test"
|
|
},
|
|
|
|
shim = {
|
|
'containers/editable-container': {
|
|
deps: ['require', 'editable-form/editable-form-utils', 'editable-form/editable-form'],
|
|
init: function(require) {
|
|
loadCss(require.toUrl("./editable-container.css"));
|
|
}
|
|
},
|
|
|
|
//inline container
|
|
'containers/editable-inline': ['containers/editable-container'],
|
|
|
|
'element/editable-element': {
|
|
deps: ['require'], //here should be dynamically added container
|
|
init: function(require) {
|
|
loadCss(require.toUrl("./editable-element.css"));
|
|
}
|
|
},
|
|
/*
|
|
common inputs
|
|
*/
|
|
'editable-form/editable-form': {
|
|
deps: ['require',
|
|
'inputs/text',
|
|
'inputs/textarea',
|
|
'inputs/select',
|
|
'inputs/checklist',
|
|
'inputs/html5types',
|
|
'inputs/combodate/combodate',
|
|
'inputs-ext/address/address',
|
|
'inputs/select2/select2'],
|
|
init: function(require) {
|
|
loadCss(require.toUrl("./editable-form.css"));
|
|
}
|
|
},
|
|
'inputs/select': ['inputs/list'],
|
|
'inputs/checklist': ['inputs/list'],
|
|
'inputs/list': ['inputs/abstract'],
|
|
'inputs/text': ['inputs/abstract'],
|
|
'inputs/textarea': ['inputs/abstract'],
|
|
'inputs/abstract': ['editable-form/editable-form-utils'],
|
|
'inputs/html5types': ['inputs/text'],
|
|
'inputs/combodate/combodate': ['inputs/abstract', 'inputs/combodate/lib/combodate', 'inputs/combodate/lib/moment.min'],
|
|
//moment 1.7.2
|
|
//'inputs/combodate/combodate': ['inputs/abstract', 'inputs/combodate/lib/combodate', 'inputs/combodate/lib/moment.min.1.7.2'],
|
|
'inputs/typeahead': ['inputs/list'],
|
|
|
|
|
|
/* ------------------------------
|
|
bootstrap
|
|
------------------------------ */
|
|
'bootstrap/js/bootstrap': {
|
|
deps: ['require'],
|
|
init: function(require) {
|
|
loadCss(require.toUrl("../css/bootstrap.css"));
|
|
//add responsive css for bs2
|
|
if(f === 'bootstrap2') {
|
|
loadCss(require.toUrl("../css/bootstrap-responsive.css"));
|
|
}
|
|
}
|
|
},
|
|
'editable-form/editable-form-bootstrap': [
|
|
'editable-form/editable-form',
|
|
'bootstrap/js/bootstrap'
|
|
],
|
|
'editable-form/editable-form-bootstrap3': [
|
|
'editable-form/editable-form',
|
|
'bootstrap/js/bootstrap'
|
|
],
|
|
'containers/editable-popover': [
|
|
'containers/editable-inline',
|
|
'bootstrap/js/bootstrap'
|
|
],
|
|
'containers/editable-popover3': [
|
|
'containers/editable-inline',
|
|
'bootstrap/js/bootstrap'
|
|
],
|
|
'inputs/date/date': {
|
|
deps: ['require',
|
|
'bootstrap/js/bootstrap',
|
|
'inputs/abstract',
|
|
'inputs/date/bootstrap-datepicker/js/bootstrap-datepicker'],
|
|
init: function(require) {
|
|
loadCss(require.toUrl("./bootstrap-datepicker/css/datepicker.css"));
|
|
}
|
|
},
|
|
'inputs/datetime/datetime': {
|
|
deps: ['require',
|
|
'bootstrap/js/bootstrap',
|
|
'inputs/abstract',
|
|
'inputs/datetime/bootstrap-datetimepicker/js/bootstrap-datetimepicker'],
|
|
init: function(require) {
|
|
loadCss(require.toUrl("./bootstrap-datetimepicker/css/datetimepicker.css"));
|
|
}
|
|
},
|
|
|
|
//wysihtml5
|
|
// 'inputs-ext/wysihtml5/bootstrap-wysihtml5-0.0.2/bootstrap-wysihtml5-0.0.2.min': ['inputs-ext/wysihtml5/bootstrap-wysihtml5-0.0.2/wysihtml5-0.3.0.min'],
|
|
'inputs-ext/wysihtml5/bootstrap-wysihtml5-0.0.2/bootstrap-wysihtml5-0.0.2': ['inputs-ext/wysihtml5/bootstrap-wysihtml5-0.0.2/wysihtml5-0.3.0'],
|
|
'inputs-ext/wysihtml5/wysihtml5': {
|
|
deps: ['require',
|
|
'bootstrap/js/bootstrap',
|
|
'inputs/abstract',
|
|
// 'inputs-ext/wysihtml5/bootstrap-wysihtml5-0.0.2/bootstrap-wysihtml5-0.0.2.min'],
|
|
'inputs-ext/wysihtml5/bootstrap-wysihtml5-0.0.2/bootstrap-wysihtml5-0.0.2'],
|
|
init: function(require) {
|
|
loadCss(require.toUrl("./bootstrap-wysihtml5-0.0.2/bootstrap-wysihtml5-0.0.2.css"));
|
|
//loadCss(require.toUrl("./bootstrap-wysihtml5-0.0.2/wysiwyg-color.css"));
|
|
}
|
|
},
|
|
|
|
//select2
|
|
'inputs/select2/select2': {
|
|
deps: ['require',
|
|
'inputs/select2/lib/select2',
|
|
'inputs/abstract'],
|
|
init: function(require) {
|
|
loadCss(require.toUrl("./lib/select2.css"));
|
|
if (f === 'bootstrap2' || f === 'bootstrap3') {
|
|
loadCss(require.toUrl("./lib/select2-bootstrap.css"));
|
|
}
|
|
}
|
|
},
|
|
|
|
//datefield
|
|
'inputs/date/datefield': ['inputs/date/date'],
|
|
|
|
//datetimefield
|
|
'inputs/datetime/datetimefield': ['inputs/datetime/datetime'],
|
|
|
|
/* ------------------------------
|
|
jqueryui
|
|
------------------------------ */
|
|
'jqueryui_js': {
|
|
deps: ['require'],
|
|
//temp: test simultaneous jquery-ui with bootstrap
|
|
//deps: ['require', 'bootstrap/js/bootstrap'],
|
|
init: function(require) {
|
|
//loadCss(require.toUrl("../css/redmond/jquery-ui-1.10.1.custom.css"));
|
|
loadCss(require.toUrl("../test/libs/jquery-ui-"+jqueryui_ver+".custom/css/redmond/jquery-ui-"+jqueryui_ver+".custom.css"));
|
|
}
|
|
},
|
|
'editable-form/editable-form-jqueryui': [
|
|
'editable-form/editable-form',
|
|
'jqueryui_js'
|
|
],
|
|
'containers/editable-tooltip': [
|
|
'containers/editable-inline',
|
|
'jqueryui_js'
|
|
],
|
|
'inputs/dateui/dateui': ['inputs/abstract'],
|
|
'inputs/dateui/dateuifield': ['inputs/dateui/dateui'],
|
|
|
|
|
|
/* ------------------------------
|
|
plain
|
|
------------------------------ */
|
|
'containers/editable-poshytip': [
|
|
'containers/editable-inline',
|
|
'poshytip/jquery.poshytip'
|
|
],
|
|
'poshytip/jquery.poshytip': {
|
|
deps: ['require'],
|
|
init: function(require) {
|
|
loadCss(require.toUrl("./tip-yellowsimple/tip-yellowsimple.css"));
|
|
}
|
|
},
|
|
'dateui_js': {
|
|
deps: ['require'],
|
|
init: function(require) {
|
|
//loadCss(require.toUrl('../css/redmond/jquery-ui-'+jqueryui_ver+'.custom.css'));
|
|
loadCss(require.toUrl('inputs/dateui/jquery-ui-datepicker/css/redmond/jquery-ui-'+jqueryui_ver+'.custom.css'));
|
|
}
|
|
},
|
|
|
|
|
|
/* ------------------------------
|
|
inputs-ext
|
|
------------------------------ */
|
|
'inputs-ext/address/address': {
|
|
deps: ['require', 'inputs/abstract'],
|
|
init: function(require) {
|
|
loadCss(require.toUrl("./address.css"));
|
|
}
|
|
},
|
|
'inputs-ext/typeaheadjs/typeaheadjs': {
|
|
deps: [
|
|
'require',
|
|
'inputs/text',
|
|
'inputs-ext/typeaheadjs/lib/typeahead'
|
|
],
|
|
init: function(require) {
|
|
loadCss(require.toUrl("./lib/typeahead.js-bootstrap.css"));
|
|
}
|
|
}
|
|
};
|
|
|
|
/*
|
|
modify shim for bootstrap, jqueryui or plain
|
|
*/
|
|
if(f === 'bootstrap3') {
|
|
//bootstrap 3
|
|
shim['editable-form/editable-form'].deps = shim['editable-form/editable-form'].deps.concat(
|
|
[
|
|
'inputs/date/datefield',
|
|
'inputs/datetime/datetimefield',
|
|
'inputs-ext/typeaheadjs/typeaheadjs'
|
|
//'inputs-ext/wysihtml5/wysihtml5',
|
|
//'inputs/typeahead'
|
|
]);
|
|
|
|
shim['element/editable-element'].deps.push('editable-form/editable-form-bootstrap3');
|
|
shim['element/editable-element'].deps.push('containers/editable-popover3');
|
|
} else if(f === 'bootstrap2') {
|
|
//bootstrap 2
|
|
shim['editable-form/editable-form'].deps = shim['editable-form/editable-form'].deps.concat(
|
|
[
|
|
'inputs/date/datefield',
|
|
'inputs/datetime/datetimefield',
|
|
'inputs-ext/wysihtml5/wysihtml5',
|
|
'inputs/typeahead'
|
|
]);
|
|
shim['element/editable-element'].deps.push('editable-form/editable-form-bootstrap');
|
|
shim['element/editable-element'].deps.push('containers/editable-popover');
|
|
} else if(f === 'jqueryui') {
|
|
//jqueryui
|
|
shim['editable-form/editable-form'].deps.push('inputs/dateui/dateuifield');
|
|
shim['element/editable-element'].deps.push('editable-form/editable-form-jqueryui');
|
|
shim['element/editable-element'].deps.push('containers/editable-tooltip');
|
|
} else {
|
|
//plain
|
|
shim['editable-form/editable-form'].deps.push('inputs/dateui/dateuifield');
|
|
shim['inputs/dateui/dateui'].push('dateui_js');
|
|
shim['element/editable-element'].deps.push('containers/editable-poshytip');
|
|
}
|
|
|
|
|
|
/*
|
|
return requirejs config
|
|
*/
|
|
|
|
return {
|
|
baseUrl: baseUrl,
|
|
paths: paths,
|
|
shim: shim
|
|
};
|
|
},
|
|
|
|
getParams: function() {
|
|
var url = window.location.href, f, c;
|
|
if(url.match(/f=jqueryui/i)) {
|
|
f = 'jqueryui';
|
|
} else if(url.match(/f=plain/i)) {
|
|
f = 'plain';
|
|
} else if(url.match(/f=bootstrap3/i) || url.match(/f=bs3/i)) {
|
|
f = 'bootstrap3';
|
|
} else {
|
|
f = 'bootstrap2';
|
|
}
|
|
c = url.match(/c=inline/i) ? 'inline' : 'popup';
|
|
return {f: f, c: c};
|
|
}
|
|
}
|
|
}); |