diff --git a/app/assets/javascripts/controllers/home.js b/app/assets/javascripts/controllers/home.js index a4110c975..dfbfae97c 100644 --- a/app/assets/javascripts/controllers/home.js +++ b/app/assets/javascripts/controllers/home.js @@ -10,22 +10,16 @@ */ 'use strict'; -Application.Controllers.controller('HomeController', ['$scope', '$stateParams', 'lastMembersPromise', 'lastProjectsPromise', 'upcomingEventsPromise', 'homeBlogpostPromise', 'twitterNamePromise', - function ($scope, $stateParams, lastMembersPromise, lastProjectsPromise, upcomingEventsPromise, homeBlogpostPromise, twitterNamePromise) { +Application.Controllers.controller('HomeController', ['$scope', '$stateParams', 'lastMembersPromise', 'upcomingEventsPromise', 'twitterNamePromise', + function ($scope, $stateParams, lastMembersPromise, upcomingEventsPromise, twitterNamePromise) { /* PUBLIC SCOPE */ // The last registered members who confirmed their addresses $scope.lastMembers = lastMembersPromise; - // The last projects published/documented on the plateform - $scope.lastProjects = lastProjectsPromise; - // The closest upcoming events $scope.upcomingEvents = upcomingEventsPromise; - // The admin blogpost - $scope.homeBlogpost = homeBlogpostPromise.setting.value; - // Twitter username $scope.twitterName = twitterNamePromise.setting.value; diff --git a/app/assets/javascripts/directives/news.js.erb b/app/assets/javascripts/directives/news.js.erb new file mode 100644 index 000000000..fa7902557 --- /dev/null +++ b/app/assets/javascripts/directives/news.js.erb @@ -0,0 +1,26 @@ +Application.Directives.directive('news', [ 'Setting', + function (Setting) { + return ({ + restrict: 'E', + templateUrl: '<%= asset_path "home/news.html" %>', + link ($scope, element, attributes) { + // The admin blogpost + $scope.homeBlogpost = null; + + /* PRIVATE SCOPE */ + + /** + * Kind of constructor: these actions will be realized first when the directive is loaded + */ + const initialize = function () { + Setting.get({ name: 'home_blogpost' }, function (data) { + $scope.homeBlogpost = data.setting.value; + }) + }; + + // !!! MUST BE CALLED AT THE END of the directive + return initialize(); + } + }); + } +]); diff --git a/app/assets/javascripts/directives/projects.js.erb b/app/assets/javascripts/directives/projects.js.erb new file mode 100644 index 000000000..e70751a84 --- /dev/null +++ b/app/assets/javascripts/directives/projects.js.erb @@ -0,0 +1,26 @@ +Application.Directives.directive('projects', [ 'Project', + function (Project) { + return ({ + restrict: 'E', + templateUrl: '<%= asset_path "home/projects.html" %>', + link ($scope, element, attributes) { + // The last projects published/documented on the plateform + $scope.lastProjects = null; + + /* PRIVATE SCOPE */ + + /** + * Kind of constructor: these actions will be realized first when the directive is loaded + */ + const initialize = function () { + Project.lastPublished(function (data) { + $scope.lastProjects = data; + }) + }; + + // !!! MUST BE CALLED AT THE END of the directive + return initialize(); + } + }); + } +]); diff --git a/app/assets/javascripts/directives/twitter.js.erb b/app/assets/javascripts/directives/twitter.js.erb index 3c3c63dc8..049a3bd3a 100644 --- a/app/assets/javascripts/directives/twitter.js.erb +++ b/app/assets/javascripts/directives/twitter.js.erb @@ -10,9 +10,9 @@ Application.Directives.directive('twitter', [ function () { scope: { profile: '@' }, - templateUrl: '<%= asset_path "shared/_twitter.html" %>', + templateUrl: '<%= asset_path "home/_twitter.html" %>', link ($scope, element, attributes) { - var configProfile = { + const configProfile = { 'profile': { 'screenName': $scope.profile }, 'domId': 'twitter', 'maxTweets': 1, diff --git a/app/assets/javascripts/router.js.erb b/app/assets/javascripts/router.js.erb index eb3ae0b05..6ad47821d 100644 --- a/app/assets/javascripts/router.js.erb +++ b/app/assets/javascripts/router.js.erb @@ -99,10 +99,8 @@ angular.module('application.router', ['ui.router']) }, resolve: { lastMembersPromise: ['Member', function (Member) { return Member.lastSubscribed({ limit: 4 }).$promise; }], - lastProjectsPromise: ['Project', function (Project) { return Project.lastPublished().$promise; }], upcomingEventsPromise: ['Event', function (Event) { return Event.upcoming({ limit: 3 }).$promise; }], - homeBlogpostPromise: ['Setting', function (Setting) { return Setting.get({ name: 'home_blogpost' }).$promise; }], - twitterNamePromise: ['Setting', function (Setting) { return Setting.get({ name: 'twitter_name' }).$promise; }], + twitterNamePromise: ['Setting', function (Setting) { return Setting.get({ name: 'twitter_name' }).$promise; }] } }) .state('app.public.privacy', { diff --git a/app/assets/templates/home.html.erb b/app/assets/templates/home.html.erb index 188737e26..f2d2e77e1 100644 --- a/app/assets/templates/home.html.erb +++ b/app/assets/templates/home.html.erb @@ -1,22 +1,10 @@ - -