1
0
mirror of https://github.com/LaCasemate/fab-manager.git synced 2024-12-03 14:24:23 +01:00
fab-manager/app/assets/javascripts/controllers/home.js

63 lines
2.3 KiB
JavaScript
Raw Normal View History

/* eslint-disable
no-undef,
*/
// TODO: This file was created by bulk-decaffeinate.
// Fix any style issues and re-enable lint.
/*
* decaffeinate suggestions:
* DS102: Remove unnecessary code created because of implicit returns
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
*/
2018-11-21 11:08:53 +01:00
'use strict';
2015-05-05 03:10:25 +02:00
Application.Controllers.controller('HomeController', ['$scope', '$stateParams', 'Twitter', 'lastMembersPromise', 'lastProjectsPromise', 'upcomingEventsPromise', 'homeBlogpostPromise', 'twitterNamePromise',
function ($scope, $stateParams, Twitter, lastMembersPromise, lastProjectsPromise, upcomingEventsPromise, homeBlogpostPromise, twitterNamePromise) {
/* PUBLIC SCOPE */
2015-05-05 03:10:25 +02:00
2018-11-21 10:59:07 +01:00
// The last registered members who confirmed their addresses
2018-11-21 11:08:53 +01:00
$scope.lastMembers = lastMembersPromise;
2015-05-05 03:10:25 +02:00
2018-11-21 10:59:07 +01:00
// The last tweets from the Fablab official twitter account
2018-11-21 11:08:53 +01:00
$scope.lastTweets = [];
2015-05-05 03:10:25 +02:00
2018-11-21 10:59:07 +01:00
// The last projects published/documented on the plateform
2018-11-21 11:08:53 +01:00
$scope.lastProjects = lastProjectsPromise;
2015-05-05 03:10:25 +02:00
2018-11-21 10:59:07 +01:00
// The closest upcoming events
2018-11-21 11:08:53 +01:00
$scope.upcomingEvents = upcomingEventsPromise;
2016-03-23 18:39:41 +01:00
2018-11-21 10:59:07 +01:00
// The admin blogpost
2018-11-21 11:08:53 +01:00
$scope.homeBlogpost = homeBlogpostPromise.setting.value;
2016-03-23 18:39:41 +01:00
2018-11-21 10:59:07 +01:00
// Twitter username
2018-11-21 11:08:53 +01:00
$scope.twitterName = twitterNamePromise.setting.value;
2016-03-23 18:39:41 +01:00
2018-11-21 10:59:07 +01:00
/**
* Test if the provided event run on a single day or not
* @param event {Object} single event from the $scope.upcomingEvents array
* @returns {boolean} false if the event runs on more that 1 day
*/
2018-11-21 11:08:53 +01:00
$scope.isOneDayEvent = event => moment(event.start_date).isSame(event.end_date, 'day');
2015-05-05 03:10:25 +02:00
2018-11-21 10:59:07 +01:00
/* PRIVATE SCOPE */
2015-05-05 03:10:25 +02:00
2018-11-21 10:59:07 +01:00
/**
* Kind of constructor: these actions will be realized first when the controller is loaded
*/
2018-11-21 10:59:07 +01:00
const initialize = function () {
// we retrieve tweets from here instead of ui-router's promise because, if adblock stop the API request,
// this prevent the whole home page to be blocked
2018-11-21 11:08:53 +01:00
$scope.lastTweets = Twitter.query({ limit: 1 });
2016-03-23 18:39:41 +01:00
2018-11-21 10:59:07 +01:00
// if we recieve a token to reset the password as GET parameter, trigger the
// changePassword modal from the parent controller
if ($stateParams.reset_password_token) {
2018-11-21 11:08:53 +01:00
return $scope.$parent.editPassword($stateParams.reset_password_token);
2018-11-21 10:59:07 +01:00
}
2018-11-21 11:08:53 +01:00
};
2015-05-05 03:10:25 +02:00
2018-11-21 10:59:07 +01:00
// !!! MUST BE CALLED AT THE END of the controller
2018-11-21 11:08:53 +01:00
return initialize();
2018-11-21 10:59:07 +01:00
}
2018-11-21 11:08:53 +01:00
]);