diff --git a/app/admin/controllers/fourth.js b/app/admin/controllers/fourth.js new file mode 100755 index 0000000..056133f --- /dev/null +++ b/app/admin/controllers/fourth.js @@ -0,0 +1,15 @@ +/** + * Created with IntelliJ IDEA. + * User: Mateusz + * Date: 15.11.12 + * Time: 22:38 + */ + +'use strict'; + +define([], function () { + + return ['FourthController', function ($scope) { + $scope.message = "I'm the 4th controller!"; + }] +}) diff --git a/app/admin/partials/admin.html b/app/admin/partials/admin.html new file mode 100755 index 0000000..7929a9e --- /dev/null +++ b/app/admin/partials/admin.html @@ -0,0 +1,7 @@ +
+

{{message}}

+

{{message}}

+

{{message}}

+

Still - {{message}}

+
+ diff --git a/app/css/app.css b/app/css/app.css old mode 100644 new mode 100755 diff --git a/app/css/bootstrap.css b/app/css/bootstrap.css old mode 100644 new mode 100755 diff --git a/app/index.html b/app/index.html old mode 100644 new mode 100755 index c423a55..9112905 --- a/app/index.html +++ b/app/index.html @@ -11,10 +11,13 @@
view1 view2 + admin
+ + diff --git a/app/js/app.js b/app/js/app.js old mode 100644 new mode 100755 index 429e554..ff966a1 --- a/app/js/app.js +++ b/app/js/app.js @@ -6,10 +6,12 @@ */ 'use strict'; -define(['angular', 'utils/route-config'], function (angular, routeConfig, lazyDirectives) { +define(['angular', 'utils/route-config'], function (angular, routeConfig) { - return angular.module('myApp', [], function ($compileProvider, $controllerProvider) { + return angular.module('myApp', [], function ($provide, $compileProvider, $controllerProvider, $filterProvider) { + routeConfig.setProvide($provide); routeConfig.setCompileProvider($compileProvider); routeConfig.setControllerProvider($controllerProvider); + routeConfig.setFilterProvider($filterProvider); }) }); diff --git a/app/js/controllers/first.js b/app/js/controllers/first.js old mode 100644 new mode 100755 index af3d151..160dddc --- a/app/js/controllers/first.js +++ b/app/js/controllers/first.js @@ -11,6 +11,8 @@ define([], function () { function FirstController($scope) { $scope.message = "I'm the 1st controller!"; + $scope.greeting = "Hello world!"; + } return FirstController; diff --git a/app/js/controllers/second.js b/app/js/controllers/second.js old mode 100644 new mode 100755 index d20e40e..89c2c09 --- a/app/js/controllers/second.js +++ b/app/js/controllers/second.js @@ -9,8 +9,8 @@ define([], function () { - function SecondController($scope) { - $scope.message = "I'm the 2nd controller!"; + function SecondController($scope, tester) { + $scope.message = "I'm the 2nd controller! " + tester; } return SecondController; diff --git a/app/js/controllers/third.js b/app/js/controllers/third.js new file mode 100755 index 0000000..cca66e5 --- /dev/null +++ b/app/js/controllers/third.js @@ -0,0 +1,15 @@ +/** + * Created with IntelliJ IDEA. + * User: Mateusz + * Date: 15.11.12 + * Time: 22:38 + */ + +'use strict'; + +define([], function () { + + return ['ThirdController', function ($scope) { + $scope.message = "I'm the 3rd controller!"; + }] +}) diff --git a/app/js/directives/version.js b/app/js/directives/version.js old mode 100644 new mode 100755 diff --git a/app/js/filters/reverse.js b/app/js/filters/reverse.js new file mode 100644 index 0000000..52c946a --- /dev/null +++ b/app/js/filters/reverse.js @@ -0,0 +1,28 @@ +/** + * Created with JetBrains WebStorm. + * User: avivcallander + * Date: 3/31/13 + * Time: 4:40 PM + * To change this template use File | Settings | File Templates. + */ + + +'use strict'; + +define([], function () { + + return ['reverse', function() { + return function(input, uppercase) { + var out = ""; + for (var i = 0; i < input.length; i++) { + out = input.charAt(i) + out; + } + // conditional based on optional argument + if (uppercase) { + out = out.toUpperCase(); + } + return out; + }}]; +}) + + diff --git a/app/js/main.js b/app/js/main.js old mode 100644 new mode 100755 diff --git a/app/js/routes.js b/app/js/routes.js old mode 100644 new mode 100755 index 5bd14b7..39298a1 --- a/app/js/routes.js +++ b/app/js/routes.js @@ -10,8 +10,9 @@ define(['app', 'utils/route-config'], function (app, routeConfig) { return app.config(function ($routeProvider) { - $routeProvider.when('/view1', routeConfig.config('../partials/view1.html', 'controllers/first')); - $routeProvider.when('/view2', routeConfig.config('../partials/view2.html', 'controllers/second', ['directives/version'])); + $routeProvider.when('/view1', routeConfig.config('../partials/view1.html', 'controllers/first', null, {directives: ['directives/version'], services: [], filters: ['filters/reverse']})); + $routeProvider.when('/view2', routeConfig.config('../partials/view2.html', 'controllers/second', null, {directives: ['directives/version'], services: ['services/tester'], filters: []})); + $routeProvider.when('/admin', routeConfig.config('../admin/partials/admin.html', 'controllers/second', ['controllers/third', '../admin/controllers/fourth'])); $routeProvider.otherwise({redirectTo:'/view1'}); }); diff --git a/app/js/services/tester.js b/app/js/services/tester.js new file mode 100755 index 0000000..693d11b --- /dev/null +++ b/app/js/services/tester.js @@ -0,0 +1,13 @@ +/** + * Created with IntelliJ IDEA. + * User: Mateusz + * Date: 22.11.12 + * Time: 22:04 + */ + +'use strict'; + +define([], function () { + + return ['tester', 'test service via value return'] +}) \ No newline at end of file diff --git a/app/js/utils/lazy-directives.js b/app/js/utils/lazy-directives.js old mode 100644 new mode 100755 index 26f110e..56b0a46 --- a/app/js/utils/lazy-directives.js +++ b/app/js/utils/lazy-directives.js @@ -14,14 +14,19 @@ define([], function () { } function register(directive) { - if (!$compileProvider) { - throw new Error("$compileProvider is not set!"); + if(directive){ + if (!$compileProvider) { + throw new Error("$compileProvider is not set!"); + } + $compileProvider.directive.apply(null, directive); + }else{ + $compileProvider.directive.apply = null; } - $compileProvider.directive.apply(null, directive); + } return { - setCompileProvider:setCompileProvider, - register:register + setCompileProvider: setCompileProvider, + register: register } }) diff --git a/app/js/utils/lazy-filters.js b/app/js/utils/lazy-filters.js new file mode 100755 index 0000000..d888821 --- /dev/null +++ b/app/js/utils/lazy-filters.js @@ -0,0 +1,25 @@ +define([], function () { + + var $filterProvider; + + function setFilterProvider(value) { + $filterProvider = value; + } + + function register(filter) { + if(filter){ + if (!$filterProvider) { + throw new Error("$setProvide is not set!"); + } + $filterProvider.register(filter[0], filter[1]); + }else{ + $filterProvider.register = null; + } + + } + + return { + setFilterProvider: setFilterProvider, + register: register + } +}) diff --git a/app/js/utils/lazy-services.js b/app/js/utils/lazy-services.js new file mode 100755 index 0000000..4ee4c95 --- /dev/null +++ b/app/js/utils/lazy-services.js @@ -0,0 +1,26 @@ +define([], function () { + + var $provide; + + function setProvide(value) { + $provide = value; + } + + function register(service) { + if (service) { + if (!$provide) { + throw new Error("$setProvide is not set!"); + } + $provide.value(service[0], service[1]); + } else { + $provide.value = null; + } + + } + + + return { + setProvide: setProvide, + register: register + } +}) diff --git a/app/js/utils/route-config.js b/app/js/utils/route-config.js old mode 100644 new mode 100755 index b86c340..bf3c4e8 --- a/app/js/utils/route-config.js +++ b/app/js/utils/route-config.js @@ -5,10 +5,12 @@ * Time: 22:38 */ -define(['utils/lazy-directives'], function (lazyDirectives) { +define(['utils/lazy-directives', 'utils/lazy-services', 'utils/lazy-filters'], function (lazyDirectives, lazyServices, lazyFilters) { var $controllerProvider, - $compileProvider; + $compileProvider, + $provide, + $filterProvider; function setControllerProvider(value) { $controllerProvider = value; @@ -19,7 +21,25 @@ define(['utils/lazy-directives'], function (lazyDirectives) { lazyDirectives.setCompileProvider(value); } - function config(templateUrl, controllerName, directives) { + function setProvide(value) { + $provide = value; + lazyServices.setProvide(value); + } + + function setFilterProvider(value) { + $filterProvider = value; + lazyFilters.setFilterProvider(value); + } + + // Use this as a guide to extend... current "services" is only value provide + // Services should use factory + //$provide.value('a', 123); + //$provide.factory('a', function() { return 123; }); + //$compileProvider.directive('directiveName', ...); + //$filterProvider.register('filterName', ...); + + + function config(templateUrl, controllerName, controllers, lazyResources) { if (!$controllerProvider) { throw new Error("$controllerProvider is not set!"); } @@ -33,28 +53,56 @@ define(['utils/lazy-directives'], function (lazyDirectives) { }; routeDefinition.controller = controllerName; routeDefinition.resolve = { - delay:function ($q, $rootScope) { + delay: function ($q, $rootScope) { defer = $q.defer(); if (!html) { - var dependencies = [controllerName, "text!" + templateUrl]; - if (directives) { - dependencies = dependencies.concat(directives); + var dependencies = ["text!" + templateUrl, controllerName]; + if (controllers) { + dependencies = dependencies.concat(controllers); + } + if (lazyResources) { + dependencies = dependencies.concat(lazyResources.directives); + dependencies = dependencies.concat(lazyResources.services); + dependencies = dependencies.concat(lazyResources.filters); } require(dependencies, function () { - var controller = arguments[0], - template = arguments[1]; - for (var i = 2; i < arguments.length; i++) { - lazyDirectives.register(arguments[i]); - } + // TODO fix this mess + var template = arguments[0]; + $controllerProvider.register(controllerName, arguments[1]); + var baseNumber = 2 + (controllers == null ? 0 : controllers.length); + var directiveNumber = (lazyResources.directives == null ? 0 : lazyResources.directives.length); + var serviceNumber = (lazyResources.services == null ? 0 : lazyResources.services.length); + var filterNumber = (lazyResources.filters == null ? 0 : lazyResources.filters.length); - $controllerProvider.register(controllerName, controller); - html = template; - defer.resolve(); - $rootScope.$apply() - }) + if (controllers) { + for (var i = 2; i < baseNumber; i++) { + $controllerProvider.register(arguments[i][0], arguments[i][1]); + } + } + if (lazyResources.directives) { + for (var i = (baseNumber); i < baseNumber + directiveNumber; i++) { + lazyDirectives.register(arguments[i]); + } + } + if (lazyResources.services) { + for (var i = (baseNumber) + directiveNumber; i < baseNumber + directiveNumber + serviceNumber; i++) { + lazyServices.register(arguments[i]); + } + } + if (lazyResources.filters) { + for (var i = (baseNumber) + directiveNumber + serviceNumber; i < baseNumber + directiveNumber + serviceNumber + filterNumber; i++) { + lazyFilters.register(arguments[i]); + } + } + html = template; + defer.resolve(); + $rootScope.$apply() + } + ) - } else { + } + else { defer.resolve(); } return defer.promise; @@ -65,9 +113,11 @@ define(['utils/lazy-directives'], function (lazyDirectives) { } return { - setControllerProvider:setControllerProvider, - setCompileProvider:setCompileProvider, - config:config + setControllerProvider: setControllerProvider, + setCompileProvider: setCompileProvider, + setProvide: setProvide, + setFilterProvider: setFilterProvider, + config: config } }) diff --git a/app/lib/angular/angular-bootstrap-prettify.js b/app/lib/angular/angular-bootstrap-prettify.js old mode 100644 new mode 100755 diff --git a/app/lib/angular/angular-bootstrap.js b/app/lib/angular/angular-bootstrap.js old mode 100644 new mode 100755 diff --git a/app/lib/angular/angular-cookies.js b/app/lib/angular/angular-cookies.js old mode 100644 new mode 100755 diff --git a/app/lib/angular/angular-cookies.min.js b/app/lib/angular/angular-cookies.min.js old mode 100644 new mode 100755 diff --git a/app/lib/angular/angular-loader.js b/app/lib/angular/angular-loader.js old mode 100644 new mode 100755 diff --git a/app/lib/angular/angular-loader.min.js b/app/lib/angular/angular-loader.min.js old mode 100644 new mode 100755 diff --git a/app/lib/angular/angular-resource.js b/app/lib/angular/angular-resource.js old mode 100644 new mode 100755 diff --git a/app/lib/angular/angular-resource.min.js b/app/lib/angular/angular-resource.min.js old mode 100644 new mode 100755 diff --git a/app/lib/angular/angular-sanitize.js b/app/lib/angular/angular-sanitize.js old mode 100644 new mode 100755 diff --git a/app/lib/angular/angular-sanitize.min.js b/app/lib/angular/angular-sanitize.min.js old mode 100644 new mode 100755 diff --git a/app/lib/angular/angular.js b/app/lib/angular/angular.js old mode 100644 new mode 100755 diff --git a/app/lib/angular/angular.min.js b/app/lib/angular/angular.min.js old mode 100644 new mode 100755 diff --git a/app/lib/angular/version.txt b/app/lib/angular/version.txt old mode 100644 new mode 100755 diff --git a/app/lib/jquery/jquery.js b/app/lib/jquery/jquery.js old mode 100644 new mode 100755 diff --git a/app/lib/require/require.js b/app/lib/require/require.js old mode 100644 new mode 100755 diff --git a/app/lib/require/text.js b/app/lib/require/text.js old mode 100644 new mode 100755 diff --git a/app/partials/view1.html b/app/partials/view1.html old mode 100644 new mode 100755 index 92257b3..ffa58ed --- a/app/partials/view1.html +++ b/app/partials/view1.html @@ -1,3 +1,5 @@

{{message}}

+ No filter: {{greeting}}
+ Reverse: {{greeting|reverse}}
diff --git a/app/partials/view2.html b/app/partials/view2.html old mode 100644 new mode 100755