Skip to content

Instantly share code, notes, and snippets.

@wallynm
Created October 17, 2014 02:45
Show Gist options
  • Save wallynm/73de502662d09c80b5e3 to your computer and use it in GitHub Desktop.
Save wallynm/73de502662d09c80b5e3 to your computer and use it in GitHub Desktop.
requirejs.config({
// Set burst to prevent any kind of cache
urlArgs : "bust=" + (new Date()).getTime(),
waitSeconds : 0,
paths: {
//CORE INCLUDES
jquery : 'public/plugins/jquery/jquery.min',
backbone : 'public/plugins/backbone/backbone',
marionette : 'public/plugins/backbone/backbone.marionette',
less : 'public/plugins/less/less-1.7.5.min',
bootstrap : 'public/plugins/bootstrap/js/bootstrap.min',
subroute : 'public/plugins/backbone/backbone.marionette.subrouter.min',
tpl : 'public/plugins/backbone/tpl',
text : 'public/plugins/backbone/text',
Validation : 'public/plugins/backbone/backbone.validation',
validateBootstrap : 'public/plugins/backbone/backbone.validate.bootstrap',
underscore : 'public/plugins/backbone/underscore',
bootstrapDialog : 'public/plugins/bootstrap-dialog/js/bootstrap-dialog',
bootstrapTypeAHead: 'public/plugins/bootstrap/js/bootstrap-typeahead',
config : 'public/plugins/helper',
Backstep : 'public/plugins/backbone/backstep',
//BACKGRID
Backgrid : 'public/plugins/backgrid/backgrid.min',
BackgridAllCell : 'public/plugins/backgrid/backgrid-select-all.min',
BackgridPaginator : 'public/plugins/backgrid/backgrid.paginator',
BackgridFilter : 'public/plugins/backgrid/backgrid-filter',
PageableCollection: 'public/plugins/backbone/backbone.pageable',
bootstrapWizard : 'public/plugins/bootstrap/js/bootstrap.wizard',
lunr : 'public/plugins/backgrid/lunr.min',
EachRow : 'public/plugins/backgrid/each-row',
ControlClick : 'public/plugins/backgrid/control-click-1.1',
//PLUGINS
select2 : 'public/plugins/select2/select2.3.5.0',
ddslick : 'public/plugins/ddslick/jquery.ddslick.min',
resize : 'public/plugins/resize/jquery.resize.min',
moment : 'public/plugins/moment/moment.min',
ionsound : 'public/plugins/ion-sound/ion.sound.min',
mention : 'public/plugins/mention/mention',
notify : 'public/plugins/notify/notify',
jQueryFileUpload : 'public/plugins/fileupload/js/jquery.fileupload',
jQueryUIWidget : 'public/plugins/fileupload/js/vendor/jquery.ui.widget',
notifications : 'public/plugins/notifications',
mousetrap : 'public/plugins/mousetrap/mousetrap.min',
knob : 'public/plugins/charts/knob/jquery.knob',
excanvas : 'public/plugins/charts/knob/excanvas',
highcharts : 'public/plugins/charts/highcharts/js/highcharts',
highchartsExport : 'public/plugins/charts/highcharts/print/exporting',
ExportCSV : 'public/plugins/charts/highcharts/print/export-csv',
date : 'public/plugins/datepicker/date',
datepicker : 'public/plugins/datepicker/daterangepicker',
loadmask : 'public/plugins/loadmask/jquery.loadmask',
systemAlert : 'public/plugins/system-alert',
chardin : 'public/plugins/chardin/js/chardinjs.min',
jqueryCookie : 'public/plugins/jquery-cookie/jquery.cookie',
jqueryFittext : 'public/plugins/fittext/jquery.fittext',
i18next : 'public/plugins/i18next/i18next-1.7.4.min',
mousewheel : 'public/plugins/perfectscrollbar/jquery.mousewheel',
perfectScrollbar : 'public/plugins/perfectscrollbar/perfectscrollbar.min',
// MODULES
dashboardModule : 'frontend/modules/dashboard/router',
mainApp : 'public/core/router',
// MODULES
mainApp : 'public/core/router',
inputsModule : 'frontend/inputs/router',
notificationsModule : 'frontend/notifications/router',
pagesModule : 'frontend/pages/router',
iconsModule : 'frontend/icons/router',
graphModule : 'frontend/graphs/router'
},
shim: {
backbone: {
deps: ["jquery", "underscore"],
exports: "Backbone"
},
Less: {
deps: ["jquery"],
exports: "less"
},
Validation: {
deps: ["backbone"],
exports: "backbone"
},
Backgrid: {
deps: ["backbone"],
exports: "Backgrid"
},
PageableCollection: {
deps: ["backbone"],
exports: "backbone"
},
BackgridPaginator: {
deps: ["Backgrid"],
exports: "BackgridPaginator"
},
BackgridAllCell:{
deps: ["Backgrid"],
exports: "BackgridAllCell"
},
BackgridFilter:{
deps: ["Backgrid", "lunr"],
exports: "Backgrid"
},
EachRow: {
deps: ["Backgrid"],
exports: "EachRow"
},
validateBootstrap: {
deps: ["Validation"],
exports: "validateBootstrap"
},
config:{
deps: ["jquery"],
},
bootstrap:{
deps: ["jquery"],
exports: "bootstrap"
},
bootstrapTypeAHead:{
deps: ["bootstrap","jquery"],
exports: "bootstrapTypeAHead"
},
subroute:{
deps: ["backbone", "jquery"],
exports: "subroute"
},
select2:{
deps: ["jquery", "bootstrap"]
},
mousewheel:{
deps:["jquery"]
},
perfectScrollbar:{
deps: ["jquery", "mousewheel"]
},
resize:{
deps:["jquery"]
},
excanvas : {
deps:["jquery"]
},
knob : {
deps:["excanvas"],
exports: "knob"
},
highcharts : {
deps:["jquery"]
},
highchartsExport: {
deps: ["highcharts"],
exports: "highcharts"
},
ExportCSV: {
deps:["highchartsExport"]
},
ionsound:{
deps:["jquery"]
},
mention:{
deps:["jquery","bootstrap"]
},
date:{
deps:["jquery"],
},
datepicker:{
deps:["jquery", "bootstrap", "date"],
exports: "daterangepicker"
},
jQueryFileUpload:{
deps:["jquery","bootstrap", "jQueryUIWidget"],
exports: "jQueryFileUpload"
},
notifications:{
exports: "notifications"
},
mousetrap: {
exports: "mousetrap"
},
notify:{
deps: ["jquery", "bootstrap"]
},
loadmask:{
deps: ["jquery"]
},
systemAlert:{
exports: "systemAlert"
},
chardin:{
deps: ["jquery"]
},
jqueryCookie:{
deps: ["jquery"]
},
bootstrapDialog : {
deps: ["jquery", "bootstrap"]
},
i18next: {
deps:["jquery"],
exports: "i18next"
}
}
});
define([
'underscore',
'subroute',
'bootstrap',
'bootstrapDialog',
'text',
'config',
'resize',
'ControlClick',
'jqueryCookie',
'chardin',
'systemAlert',
'perfectScrollbar',
'highcharts',
'knob',
'less',
'select2',
'datepicker',
'date',
'loadmask'],
function () {
window.App = new Backbone.Marionette.Application();
require(function (AppRouter, AppController) {
//Organize Application into regions corresponding to DOM elements
//Regions can contain views, Layouts, or subregions nested as necessary
App.addRegions({
headerRegion:"header",
mainRegion:"#main"
});
App.addInitializer(function () {
Backbone.history.start();
});
var modularRouter = Marionette.SubRouter.extend({
controller: {
invokeDashboard: function(){
alert('123')
},
invokeInputs: function(){
console.log('invokeInputs');
require(['inputsModule'], function () {
console.log('initialize -- inputsModule');
MyApp.Routers.inputs = new MyApp.Routers.inputs("inputs");
});
},
invokeNotifications: function(){
console.log('invokeNotifications');
require(['notificationsModule'], function () {
console.log('initialize -- invokeNotifications');
MyApp.Routers.notifications = new MyApp.Routers.notifications("notifications");
});
},
invokeIcons: function(){
console.log('invokeIcons');
require(['iconsModule'], function () {
console.log('initialize -- invokeIcons');
MyApp.Routers.icons = new MyApp.Routers.icons("icons");
});
},
invokePages: function(){
console.log('invokePages');
require(['pagesModule'], function () {
console.log('initialize -- invokePages');
MyApp.Routers.pages = new MyApp.Routers.pages("pages");
});
},
invokeGraphs: function(){
console.log('invokeGraphs');
require(['graphModule'], function () {
console.log('initialize -- invokePages');
MyApp.Routers.graphs = new MyApp.Routers.graphs("graphs");
});
}
},
appRoutes: {
"teste/abc" : "invokeDashboard",
"inputs/*subroute" : "invokeInputs",
"notifications/*subroute" : "invokeNotifications",
"icons/*subroute" : "invokeIcons",
"pages/*subroute" : "invokePages",
"graphs/*subroute" : "invokeGraphs"
}
});
App.subrouter = new modularRouter("teste");
App.start();
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment