diff --git a/src/main/resources/static/frontend/app/index.html b/src/main/resources/static/frontend/app/index.html index 59849b0ff290a90b5ddff0bd8594c495aed71f7f..2c923ae206d560d0edaadbbfb81c47b48dd9970a 100644 --- a/src/main/resources/static/frontend/app/index.html +++ b/src/main/resources/static/frontend/app/index.html @@ -1,239 +1,253 @@ -<!doctype html> -<html class="no-js"> -<head> - <meta charset="utf-8"> - <title>Brain Project Portal</title> - <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> - <meta name="viewport" - content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no"> - <meta name="apple-mobile-web-app-capable" content="yes"> - <meta name="apple-touch-fullscreen" content="yes"> - <meta name="description" content="Human Brain Project"> - - <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700|EB+Garamond|Open+Sans+Condensed:300,700' rel='stylesheet' type='text/css'> - <link href='https://fonts.googleapis.com/css?family=Lato:400,700|Roboto+Slab:400,700|Inconsolata:400,700' rel='stylesheet' type='text/css'> - - - <!-- Place favicon.ico and apple-touch-icon.png in the root directory --> - <!-- build:css(app) styles/vendor.css --> - <!-- bower:css --> - <link rel="stylesheet" href="bower_components/font-awesome/css/font-awesome.css" /> - <link rel="stylesheet" href="bower_components/themify-icons/themify-icons.css" /> - <link rel="stylesheet" href="bower_components/themify-icons/ie7/ie7.css" /> - <link rel="stylesheet" href="bower_components/angular-bootstrap-colorpicker/css/colorpicker.css" /> - <link rel="stylesheet" href="bower_components/iCheck/skins/all.css" /> - <link rel="stylesheet" href="bower_components/angular-ui-select/dist/select.min.css"> - <link rel="stylesheet" href="bower_components/gridster/dist/jquery.gridster.css"> - <link rel="stylesheet" href="bower_components/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.css" /> - - <!-- endbower --> - <!-- endbuild --> - - <link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/select2/3.4.5/select2.css"> - - <!-- build:css(.tmp) styles/main.css --> - <link rel="stylesheet" href="styles/css/custom.css" /> - <!--<link rel="stylesheet" href="styles/css/styles.css" /> --> - <!-- endbuild --> - - <!-- prochtml:remove:dist --> - <link href="styles/less/styles.less" rel="stylesheet/less" media="all"> - <!-- /prochtml --> - - <!-- prochtml:remove:dist --> - <script type="text/javascript">less = { env: 'development'};</script> - <script type="text/javascript" src="bower_components/less/dist/less.js"></script> - <!-- /prochtml --> -</head> -<body ng-app="chuvApp" class="ng-cloak" ng-cloak to-top-on-load> - -<!-- Add your site or application content here --> -<header id="topnav" class="navbar navbar-default navbar-fixed-top fixed" change-on-scroll role="banner" - ng-include="'scripts/app/header/header.html'" ng-controller="HeaderController" ng-show="!isNewVisitor()"></header> -<div id="wrapper"> - <div id="layout-static"> - <div class="static-content-wrapper"> - <div class="static-content"> - <div class="page-content" ui-view class="mainview-animation animated"></div> - </div> - <footer id="footer" role="contentinfo" ng-cloak ng-show="!isNewVisitor()"> - <div class="clearfix container-fluid"> - <div class="row"> - <ul class="list-unstyled list-inline col-md-6"> - <li><h6 class="copyright">© 2015 Human Brain Project. All right reserved</h6></li> - </ul> - <div class="col-md-6 text-right"> - <a href="http://www.virtua.ch/" targe="_blank">Powered by V//</a> - </div> - </div> - </div> - </footer> - </div> - </div> -</div> - - -<!-- Google Analytics: change UA-XXXXX-X to be your site's ID --> -<script> - /*!function(A,n,g,u,l,a,r){A.GoogleAnalyticsObject=l,A[l]=A[l]||function(){ - (A[l].q=A[l].q||[]).push(arguments)},A[l].l=+new Date,a=n.createElement(g), - r=n.getElementsByTagName(g)[0],a.src=u,r.parentNode.insertBefore(a,r) - }(window,document,'script','//www.google-analytics.com/analytics.js','ga'); - - ga('create', 'UA-XXXXX-X'); - ga('send', 'pageview');*/ -</script> - -<!-- build:js(app) scripts/vendor.js --> -<!-- bower:js --> -<script src="bower_components/jquery/dist/jquery.js"></script> -<script src="bower_components/javascript-detect-element-resize/jquery.resize.js"></script> -<script src="bower_components/angular/angular.js"></script> -<script src="bower_components/bootstrap/dist/js/bootstrap.js"></script> -<script src="bower_components/angular-animate/angular-animate.js"></script> -<script src="bower_components/angular-cookies/angular-cookies.js"></script> -<script src="bower_components/angular-resource/angular-resource.js"></script> -<script src="bower_components/angular-route/angular-route.js"></script> -<script src="bower_components/angular-sanitize/angular-sanitize.js"></script> -<script src="bower_components/angular-touch/angular-touch.js"></script> -<script src="bower_components/angular-translate/angular-translate.js"></script> -<script src="bower_components/angular-translate-loader-partial/angular-translate-loader-partial.js"></script> -<script src="bower_components/angular-translate-loader-static-files/angular-translate-loader-static-files.js"></script> -<script src="bower_components/angular-translate-storage-cookie/angular-translate-storage-cookie.js"></script> -<script src="bower_components/angular-ui-router/release/angular-ui-router.js"></script> -<script src="bower_components/tinymce-dist/tinymce.min.js"></script> -<script src="bower_components/angular-ui-tinymce/src/tinymce.js"></script> -<script src="bower_components/highcharts-ng/dist/highcharts-ng.js"></script> -<script src="bower_components/highcharts/highcharts.js"></script> -<script src="bower_components/highcharts/highcharts-more.js"></script> -<script src="bower_components/highcharts/modules/exporting.js"></script> -<script src="bower_components/highmaps/modules/map.js"></script> -<script src="bower_components/underscore/underscore.js"></script> -<script src="bower_components/angular-dynamic-locale/src/tmhDynamicLocale.js"></script> -<script src="bower_components/themify-icons/ie7/ie7.js"></script> -<script src="bower_components/moment/moment.js"></script> -<script src="bower_components/angular-moment/angular-moment.js"></script> -<script src="bower_components/angular-bootstrap-colorpicker/js/bootstrap-colorpicker-module.js"></script> -<script src="bower_components/gsap/src/uncompressed/TweenMax.js"></script> -<script src="bower_components/iCheck/icheck.js"></script> -<script src="bower_components/angular-ui-select/dist/select.js"></script> -<script src="bower_components/gridster/dist/jquery.gridster.with-extras.js"></script> -<script src="bower_components/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.js"></script> -<script src="bower_components/angular-bootstrap/ui-bootstrap-tpls.js"></script> -<script src="bower_components/jquery.ui/ui/jquery.ui.core.js"></script> -<script src="bower_components/jquery.ui/ui/jquery.ui.widget.js"></script> -<script src="bower_components/jquery.ui/ui/jquery.ui.mouse.js"></script> -<script src="bower_components/jquery.ui/ui/jquery.ui.sortable.js"></script> -<script src="bower_components/angular-utf8-base64/angular-utf8-base64.min.js"></script> -<!-- endbower --> -<script type='text/javascript' src='styles/plugins/wijets/wijets.js'></script> -<!-- endbuild --> - -<!-- build:js({.tmp,app}) scripts/scripts.js --> -<script src="scripts/app/app.js"></script> -<script src="scripts/app/app.config.js"></script> - -<!-- Components --> -<script src="scripts/components/hightlight/hightlight.filter.js"></script> - -<!-- Header --> -<script src="scripts/app/header/header.module.js"></script> -<script src="scripts/app/header/header.controller.js"></script> - -<!-- Home --> -<script src="scripts/app/home/home.module.js"></script> -<script src="scripts/app/home/home.router.js"></script> -<script src="scripts/app/home/home.controller.js"></script> - -<!-- Apps --> -<script src="scripts/app/hbpapps/hbpapps.module.js"></script> -<script src="scripts/app/hbpapps/hbpapps.controller.js"></script> - -<!-- Articles --> -<script src="scripts/app/articles/articles.module.js"></script> -<script src="scripts/app/articles/articles.service.js"></script> -<script src="scripts/app/articles/articles.controller.js"></script> - -<!-- Users --> -<script src="scripts/app/users/users.module.js"></script> -<script src="scripts/app/users/users.controller.js"></script> -<script src="scripts/app/users/users.service.js"></script> - -<!-- Requests --> -<script src="scripts/app/requests/requests.module.js"></script> -<script src="scripts/app/requests/requests.service.js"></script> -<script src="scripts/app/requests/requests.controller.js"></script> - -<!-- Models --> -<script src="scripts/app/models/model.module.js"></script> -<script src="scripts/app/models/model.router.js"></script> -<script src="scripts/app/models/model.controller.js"></script> -<script src="scripts/app/models/model.service.js"></script> -<script src="scripts/app/models/criteria/criteria.controller.js"></script> -<script src="scripts/app/models/chart/chart.controller.js"></script> -<script src="scripts/app/models/configuration/configuration.controller.js"></script> -<script src="scripts/app/models/footer/model-footer.controller.js"></script> - -<!-- Criteria --> -<script src="scripts/components/criteria/criteria.module.js"></script> -<script src="scripts/components/criteria/criteria.service.js"></script> -<script src="scripts/components/criteria/groups.service.js"></script> -<script src="scripts/components/criteria/variables.service.js"></script> -<script src="scripts/components/criteria/chained-select.directive.js"></script> - -<!-- Util --> -<script src="scripts/components/util/util-module.js"></script> -<script src="scripts/components/util/http-interceptor-service.js"></script> -<script src="scripts/components/util/chart-util.service.js"></script> -<script src="scripts/components/util/modal-util.service.js"></script> - -<!-- Header --> -<script src="scripts/components/header/header-module.js"></script> -<script src="scripts/components/header/header-scroll.js"></script> - -<!-- Button --> -<script src="scripts/components/button/button-module.js"></script> -<script src="scripts/components/button/button-rounded.js"></script> -<script src="scripts/components/button/carrousel-button.js"></script> - -<!-- Checkbox --> -<script src="scripts/components/checkbox/checkbox-module.js"></script> -<script src="scripts/components/checkbox/icheckbox.js"></script> - -<!-- Filters --> -<script src="scripts/components/date/from-now.filter.js"></script> - -<!-- Carrousel --> -<script src="scripts/components/carrousel/carrousel-module.js"></script> -<script src="scripts/components/carrousel/carrousel.js"></script> - -<!-- My data --> -<script src="scripts/app/mydata/mydata.module.js"></script> -<script src="scripts/app/mydata/mydata.controller.js"></script> - -<!-- Profile --> -<script src="scripts/app/profile/profile.module.js"></script> -<script src="scripts/app/profile/profile.controller.js"></script> - -<!-- Scrollbar --> -<script src="scripts/components/scrollbar/scrollbar-module.js"></script> -<script src="scripts/components/scrollbar/scrollbar.js"></script> - -<!-- Login --> -<script src="scripts/app/login/login.module.js"></script> -<script src="scripts/app/login/login.controller.js"></script> - -<!-- Widgets --> -<script src="scripts/components/widget/widget.module.js"></script> -<script src="scripts/components/widget/widget.service.js"></script> - -<!-- Toolbar --> -<script src="scripts/components/toolbar/toolbar.module.js"></script> -<script src="scripts/components/toolbar/toolbar.js"></script> - -<!-- endbuild --> - -<script type="text/javascript" src="https://www.dropbox.com/static/api/2/dropins.js" id="dropboxjs" data-app-key="7wew0rj0gh2qcik"></script> -<script type="text/javascript" src="http://code.highcharts.com/mapdata/custom/world.js"></script> -</body> -</html> +<!doctype html> +<html class="no-js"> +<head> + <meta charset="utf-8"> + <title>Brain Project Portal</title> + <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> + <meta name="viewport" + content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no"> + <meta name="apple-mobile-web-app-capable" content="yes"> + <meta name="apple-touch-fullscreen" content="yes"> + <meta name="description" content="Human Brain Project"> + + <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700|EB+Garamond|Open+Sans+Condensed:300,700' rel='stylesheet' type='text/css'> + <link href='https://fonts.googleapis.com/css?family=Lato:400,700|Roboto+Slab:400,700|Inconsolata:400,700' rel='stylesheet' type='text/css'> + + + <!-- Place favicon.ico and apple-touch-icon.png in the root directory --> + <!-- build:css(app) styles/vendor.css --> + <!-- bower:css --> + <link rel="stylesheet" href="bower_components/font-awesome/css/font-awesome.css" /> + <link rel="stylesheet" href="bower_components/themify-icons/themify-icons.css" /> + <link rel="stylesheet" href="bower_components/themify-icons/ie7/ie7.css" /> + <link rel="stylesheet" href="bower_components/angular-bootstrap-colorpicker/css/colorpicker.css" /> + <link rel="stylesheet" href="bower_components/iCheck/skins/all.css" /> + <link rel="stylesheet" href="bower_components/angular-ui-select/dist/select.min.css"> + <link rel="stylesheet" href="bower_components/gridster/dist/jquery.gridster.css"> + <link rel="stylesheet" href="bower_components/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.css" /> + + <!-- endbower --> + <!-- endbuild --> + + <link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/select2/3.4.5/select2.css"> + + <!-- build:css(.tmp) styles/main.css --> + <link rel="stylesheet" href="styles/css/custom.css" /> + <!--<link rel="stylesheet" href="styles/css/styles.css" /> --> + <!-- endbuild --> + + <!-- prochtml:remove:dist --> + <link href="styles/less/styles.less" rel="stylesheet/less" media="all"> + <!-- /prochtml --> + + <!-- prochtml:remove:dist --> + <script type="text/javascript">less = { env: 'development'};</script> + <script type="text/javascript" src="bower_components/less/dist/less.js"></script> + <!-- /prochtml --> +</head> +<body ng-app="chuvApp" class="ng-cloak" ng-cloak to-top-on-load> + +<!-- Add your site or application content here --> +<!--<header id="topnav" class="navbar navbar-default navbar-fixed-top fixed" change-on-scroll role="banner" + ng-include="'scripts/app/header/header.html'" ng-controller="HeaderController" ng-show="!isNewVisitor()"></header>--> +<header id="topnav" class="navbar navbar-default navbar-fixed-top fixed" change-on-scroll role="banner" + ng-include="'scripts/app/header/header.html'" ng-controller="HeaderController"></header> +<div id="wrapper"> + <div id="layout-static"> + <div class="static-content-wrapper"> + <div class="static-content"> + <div class="page-content" ui-view class="mainview-animation animated"></div> + </div> + <footer id="footer" role="contentinfo" ng-cloak> + <div class="clearfix container-fluid"> + <div class="row"> + <ul class="list-unstyled list-inline col-md-6"> + <li><h6 class="copyright">© 2015 Human Brain Project. All right reserved</h6></li> + </ul> + <div class="col-md-6 text-right"> + <a href="http://www.virtua.ch/" targe="_blank">Powered by V//</a> + </div> + </div> + </div> + </footer> + <!--<footer id="footer" role="contentinfo" ng-cloak ng-show="!isNewVisitor()"> + <div class="clearfix container-fluid"> + <div class="row"> + <ul class="list-unstyled list-inline col-md-6"> + <li><h6 class="copyright">© 2015 Human Brain Project. All right reserved</h6></li> + </ul> + <div class="col-md-6 text-right"> + <a href="http://www.virtua.ch/" targe="_blank">Powered by V//</a> + </div> + </div> + </div> + </footer>--> + </div> + </div> +</div> + + +<!-- Google Analytics: change UA-XXXXX-X to be your site's ID --> +<script> + /*!function(A,n,g,u,l,a,r){A.GoogleAnalyticsObject=l,A[l]=A[l]||function(){ + (A[l].q=A[l].q||[]).push(arguments)},A[l].l=+new Date,a=n.createElement(g), + r=n.getElementsByTagName(g)[0],a.src=u,r.parentNode.insertBefore(a,r) + }(window,document,'script','//www.google-analytics.com/analytics.js','ga'); + + ga('create', 'UA-XXXXX-X'); + ga('send', 'pageview');*/ +</script> + +<!-- build:js(app) scripts/vendor.js --> +<!-- bower:js --> +<script src="bower_components/jquery/dist/jquery.js"></script> +<script src="bower_components/javascript-detect-element-resize/jquery.resize.js"></script> +<script src="bower_components/angular/angular.js"></script> +<script src="bower_components/bootstrap/dist/js/bootstrap.js"></script> +<script src="bower_components/angular-animate/angular-animate.js"></script> +<script src="bower_components/angular-cookies/angular-cookies.js"></script> +<script src="bower_components/angular-resource/angular-resource.js"></script> +<script src="bower_components/angular-route/angular-route.js"></script> +<script src="bower_components/angular-sanitize/angular-sanitize.js"></script> +<script src="bower_components/angular-touch/angular-touch.js"></script> +<script src="bower_components/angular-translate/angular-translate.js"></script> +<script src="bower_components/angular-translate-loader-partial/angular-translate-loader-partial.js"></script> +<script src="bower_components/angular-translate-loader-static-files/angular-translate-loader-static-files.js"></script> +<script src="bower_components/angular-translate-storage-cookie/angular-translate-storage-cookie.js"></script> +<script src="bower_components/angular-ui-router/release/angular-ui-router.js"></script> +<script src="bower_components/tinymce-dist/tinymce.min.js"></script> +<script src="bower_components/angular-ui-tinymce/src/tinymce.js"></script> +<script src="bower_components/highcharts-ng/dist/highcharts-ng.js"></script> +<script src="bower_components/highcharts/highcharts.js"></script> +<script src="bower_components/highcharts/highcharts-more.js"></script> +<script src="bower_components/highcharts/modules/exporting.js"></script> +<script src="bower_components/highmaps/modules/map.js"></script> +<script src="bower_components/underscore/underscore.js"></script> +<script src="bower_components/angular-dynamic-locale/src/tmhDynamicLocale.js"></script> +<script src="bower_components/themify-icons/ie7/ie7.js"></script> +<script src="bower_components/moment/moment.js"></script> +<script src="bower_components/angular-moment/angular-moment.js"></script> +<script src="bower_components/angular-bootstrap-colorpicker/js/bootstrap-colorpicker-module.js"></script> +<script src="bower_components/gsap/src/uncompressed/TweenMax.js"></script> +<script src="bower_components/iCheck/icheck.js"></script> +<script src="bower_components/angular-ui-select/dist/select.js"></script> +<script src="bower_components/gridster/dist/jquery.gridster.with-extras.js"></script> +<script src="bower_components/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.js"></script> +<script src="bower_components/angular-bootstrap/ui-bootstrap-tpls.js"></script> +<script src="bower_components/jquery.ui/ui/jquery.ui.core.js"></script> +<script src="bower_components/jquery.ui/ui/jquery.ui.widget.js"></script> +<script src="bower_components/jquery.ui/ui/jquery.ui.mouse.js"></script> +<script src="bower_components/jquery.ui/ui/jquery.ui.sortable.js"></script> +<script src="bower_components/angular-utf8-base64/angular-utf8-base64.min.js"></script> +<!-- endbower --> +<script type='text/javascript' src='styles/plugins/wijets/wijets.js'></script> +<!-- endbuild --> + +<!-- build:js({.tmp,app}) scripts/scripts.js --> +<script src="scripts/app/app.js"></script> +<script src="scripts/app/app.config.js"></script> + +<!-- Components --> +<script src="scripts/components/hightlight/hightlight.filter.js"></script> + +<!-- Header --> +<script src="scripts/app/header/header.module.js"></script> +<script src="scripts/app/header/header.controller.js"></script> + +<!-- Home --> +<script src="scripts/app/home/home.module.js"></script> +<script src="scripts/app/home/home.router.js"></script> +<script src="scripts/app/home/home.controller.js"></script> + +<!-- Apps --> +<script src="scripts/app/hbpapps/hbpapps.module.js"></script> +<script src="scripts/app/hbpapps/hbpapps.controller.js"></script> + +<!-- Articles --> +<script src="scripts/app/articles/articles.module.js"></script> +<script src="scripts/app/articles/articles.service.js"></script> +<script src="scripts/app/articles/articles.controller.js"></script> + +<!-- Users --> +<script src="scripts/app/users/users.module.js"></script> +<script src="scripts/app/users/users.controller.js"></script> +<script src="scripts/app/users/users.service.js"></script> + +<!-- Requests --> +<script src="scripts/app/requests/requests.module.js"></script> +<script src="scripts/app/requests/requests.service.js"></script> +<script src="scripts/app/requests/requests.controller.js"></script> + +<!-- Models --> +<script src="scripts/app/models/model.module.js"></script> +<script src="scripts/app/models/model.router.js"></script> +<script src="scripts/app/models/model.controller.js"></script> +<script src="scripts/app/models/model.service.js"></script> +<script src="scripts/app/models/criteria/criteria.controller.js"></script> +<script src="scripts/app/models/chart/chart.controller.js"></script> +<script src="scripts/app/models/configuration/configuration.controller.js"></script> +<script src="scripts/app/models/footer/model-footer.controller.js"></script> + +<!-- Criteria --> +<script src="scripts/components/criteria/criteria.module.js"></script> +<script src="scripts/components/criteria/criteria.service.js"></script> +<script src="scripts/components/criteria/groups.service.js"></script> +<script src="scripts/components/criteria/variables.service.js"></script> +<script src="scripts/components/criteria/chained-select.directive.js"></script> + +<!-- Util --> +<script src="scripts/components/util/util-module.js"></script> +<script src="scripts/components/util/http-interceptor-service.js"></script> +<script src="scripts/components/util/chart-util.service.js"></script> +<script src="scripts/components/util/modal-util.service.js"></script> + +<!-- Header --> +<script src="scripts/components/header/header-module.js"></script> +<script src="scripts/components/header/header-scroll.js"></script> + +<!-- Button --> +<script src="scripts/components/button/button-module.js"></script> +<script src="scripts/components/button/button-rounded.js"></script> +<script src="scripts/components/button/carrousel-button.js"></script> + +<!-- Checkbox --> +<script src="scripts/components/checkbox/checkbox-module.js"></script> +<script src="scripts/components/checkbox/icheckbox.js"></script> + +<!-- Filters --> +<script src="scripts/components/date/from-now.filter.js"></script> + +<!-- Carrousel --> +<script src="scripts/components/carrousel/carrousel-module.js"></script> +<script src="scripts/components/carrousel/carrousel.js"></script> + +<!-- My data --> +<script src="scripts/app/mydata/mydata.module.js"></script> +<script src="scripts/app/mydata/mydata.controller.js"></script> + +<!-- Profile --> +<script src="scripts/app/profile/profile.module.js"></script> +<script src="scripts/app/profile/profile.controller.js"></script> + +<!-- Scrollbar --> +<script src="scripts/components/scrollbar/scrollbar-module.js"></script> +<script src="scripts/components/scrollbar/scrollbar.js"></script> + +<!-- Login --> +<script src="scripts/app/login/login.module.js"></script> +<script src="scripts/app/login/login.controller.js"></script> + +<!-- Widgets --> +<script src="scripts/components/widget/widget.module.js"></script> +<script src="scripts/components/widget/widget.service.js"></script> + +<!-- Toolbar --> +<script src="scripts/components/toolbar/toolbar.module.js"></script> +<script src="scripts/components/toolbar/toolbar.js"></script> + +<!-- endbuild --> + +<script type="text/javascript" src="https://www.dropbox.com/static/api/2/dropins.js" id="dropboxjs" data-app-key="7wew0rj0gh2qcik"></script> +<script type="text/javascript" src="http://code.highcharts.com/mapdata/custom/world.js"></script> +</body> +</html> diff --git a/src/main/resources/static/frontend/app/scripts/app/articles/articles.controller.js b/src/main/resources/static/frontend/app/scripts/app/articles/articles.controller.js index f6051c76170c1135892a149795d7e7acc691daf9..9bcc00db918d7aa84cf4f8df61a226f5713219f5 100644 --- a/src/main/resources/static/frontend/app/scripts/app/articles/articles.controller.js +++ b/src/main/resources/static/frontend/app/scripts/app/articles/articles.controller.js @@ -1,178 +1,178 @@ -/** - * Created by Florent PERINEL on 12/08/2015. - */ -'use strict'; - -angular.module('chuvApp.articles') - -/** - * Show and form articles controller - */ - .controller('ArticleController', ['$scope', '$translatePartialLoader', '$translate', '$location', '$stateParams', 'Article', 'User', 'Model','backendUrl','ModalUtil', - function ($scope, $translatePartialLoader, $translate, $location, $stateParams, Article, User, Model, backendUrl, ModalUtil) { - - /** - * Initialize controller - */ - $scope.init = function () { - - $translatePartialLoader.addPart('articles'); - $translatePartialLoader.addPart('requests'); - $translate.refresh(); - $scope.loadArticle(); - $scope.loadModels(); - }; - - $scope.query = null; - - $scope.getLanguageCodeForTinyMCE = function () { - if ($translate.use() === 'fr') { - return "fr_FR"; - } else { - return "en_GB"; - } - }; - - $scope.editorContentOption = { - inline: false, - toolbar: "undo redo | styleselect bold italic underline strikethrough | forecolor backcolor | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | eqneditor | link image", - plugins: "advlist anchor autolink autosave bbcode charmap code colorpicker contextmenu " + - "directionality emoticons fullpage fullscreen hr image insertdatetime layer legacyoutput link lists " + - "importcss media nonbreaking noneditable pagebreak paste preview print save searchreplace spellchecker " + - "tabfocus table template textcolor textpattern visualblocks visualchars wordcount eqneditor", - external_plugins: { - "eqneditor": "/libs/tinymce/plugins/eqneditor/plugin.min.js" - }, - language: $scope.getLanguageCodeForTinyMCE(), - paste_data_images: true, - language_url: "/libs/tinymce/langs/" + $scope.getLanguageCodeForTinyMCE() + ".js", - height: 500 - }; - - /** - * Return true if is a creation action - * @returns {boolean} - */ - $scope.isNew = function () { - return $stateParams.slug == null && $stateParams.action == null; - }; - - /** - * Return the action code - * @returns {boolean} - */ - $scope.isReadOnly = function () { - return $stateParams.action === 'show'; - }; - - /** - * Save article - */ - $scope.save = function () { - $scope.article.date = new Date().toISOString(); - $scope.publishArticle ? $scope.article.status = 'published' : $scope.article.status = 'closed'; - if ($scope.isNew()) { - $scope.article = Article.save($scope.article,function(){ - $location.path("/home"); - }); - } else { - $scope.article = Article.update($scope.article,function(){ - $location.path("/home"); - }); - } - - }; - - /** - * Load article object in controller - */ - $scope.loadArticle = function () { - if (!$scope.isNew()) { - $scope.article = Article.get({slug:$stateParams.slug}); - } else { - $scope.article = { - status: "draft" - }; - } - }; - - /** - * Load models objects in controller - */ - $scope.loadModels = function (params) { - if(!params){ - params = {team:1}; - } - $scope.models = Model.query(params); - }; - - /** - * push pdf file to drop box - * @param article - */ - $scope.saveToDropbox = function(article){ - var options={ - // Success is called once all files have been successfully added to the user's - // Dropbox, although they may not have synced to the user's devices yet. - success: function () { - // Indicate to the user that the files have been saved. - alert("Success! Files saved to your Dropbox."); - }, - // Error is called in the event of an unexpected response from the server - // hosting the files, such as not being able to find a file. This callback is - // also called if there is an error on Dropbox or if the user is over quota. - error: function (errorMessage) { - alert(errorMessage); - } - }; - // local url not working for dev=> var baseUrl="http://chuv-backend.redfroggy.fr"; - var baseUrl=backendUrl; - - var slug = article.slug; - // todo used apikey of current user - Dropbox.save(baseUrl+"/articles/"+slug+".pdf?apikey=adminapikey", slug+".pdf", options); - }; - - $scope.showModal = function(article){ - ModalUtil.showModal($scope,article); - }; - - $scope.onChangeMine = function(checked){ - $scope.loadModels({team: checked ? 0 : 1,own:checked ? 1 : 0}); - }; - - // Init - $scope.init(); - }]); - - -angular.module('chuvApp.articles').controller('ArticleModalController', ['$scope','$modalInstance', '$modal', 'item', function ($scope,$modalInstance,$modal, item) { - $scope.article = item.article; - - $scope.closeModal = function(){ - $modalInstance.dismiss('cancel'); - }; - } -]); - -angular.module('chuvApp.articles').controller('ArticlesController', ['$scope','Article','ModalUtil','User',function ($scope,Article,ModalUtil,User) { - $scope.articles = Article.query({team:1,own:0,status:'published',valid:1}); - - $scope.showModal = function(article){ - ModalUtil.showModal($scope,article); - }; - - /** - * Return true if object has been created by current user - * @param obj - * @returns {boolean} - */ - $scope.isMine = function(obj) { - return User.hasCurrent() ? obj.createdBy.id == User.current().id : false; - }; - - $scope.isAuthorized = function(article){ - return $scope.isMine(article); - } -} -]); +/** + * Created by Florent PERINEL on 12/08/2015. + */ +'use strict'; + +angular.module('chuvApp.articles') + +/** + * Show and form articles controller + */ + .controller('ArticleController', ['$scope', '$translatePartialLoader', '$translate', '$location', '$stateParams', 'Article', 'User', 'Model','backendUrl','ModalUtil', + function ($scope, $translatePartialLoader, $translate, $location, $stateParams, Article, User, Model, backendUrl, ModalUtil) { + + /** + * Initialize controller + */ + $scope.init = function () { + + $translatePartialLoader.addPart('articles'); + $translatePartialLoader.addPart('requests'); + $translate.refresh(); + $scope.loadArticle(); + $scope.loadModels(); + }; + + $scope.query = null; + + $scope.getLanguageCodeForTinyMCE = function () { + if ($translate.use() === 'fr') { + return "fr_FR"; + } else { + return "en_GB"; + } + }; + + $scope.editorContentOption = { + inline: false, + toolbar: "undo redo | styleselect bold italic underline strikethrough | forecolor backcolor | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | eqneditor | link image", + plugins: "advlist anchor autolink autosave bbcode charmap code colorpicker contextmenu " + + "directionality emoticons fullpage fullscreen hr image insertdatetime layer legacyoutput link lists " + + "importcss media nonbreaking noneditable pagebreak paste preview print save searchreplace spellchecker " + + "tabfocus table template textcolor textpattern visualblocks visualchars wordcount eqneditor", + external_plugins: { + "eqneditor": "/frontend/app/libs/tinymce/plugins/eqneditor/plugin.min.js" + }, + language: $scope.getLanguageCodeForTinyMCE(), + paste_data_images: true, + language_url: "/frontend/app/libs/tinymce/langs/" + $scope.getLanguageCodeForTinyMCE() + ".js", + height: 500 + }; + + /** + * Return true if is a creation action + * @returns {boolean} + */ + $scope.isNew = function () { + return $stateParams.slug == null && $stateParams.action == null; + }; + + /** + * Return the action code + * @returns {boolean} + */ + $scope.isReadOnly = function () { + return $stateParams.action === 'show'; + }; + + /** + * Save article + */ + $scope.save = function () { + $scope.article.date = new Date().toISOString(); + $scope.publishArticle ? $scope.article.status = 'published' : $scope.article.status = 'closed'; + if ($scope.isNew()) { + $scope.article = Article.save($scope.article,function(){ + $location.path("/home"); + }); + } else { + $scope.article = Article.update($scope.article,function(){ + $location.path("/home"); + }); + } + + }; + + /** + * Load article object in controller + */ + $scope.loadArticle = function () { + if (!$scope.isNew()) { + $scope.article = Article.get({slug:$stateParams.slug}); + } else { + $scope.article = { + status: "draft" + }; + } + }; + + /** + * Load models objects in controller + */ + $scope.loadModels = function (params) { + if(!params){ + params = {team:1}; + } + $scope.models = Model.query(params); + }; + + /** + * push pdf file to drop box + * @param article + */ + $scope.saveToDropbox = function(article){ + var options={ + // Success is called once all files have been successfully added to the user's + // Dropbox, although they may not have synced to the user's devices yet. + success: function () { + // Indicate to the user that the files have been saved. + alert("Success! Files saved to your Dropbox."); + }, + // Error is called in the event of an unexpected response from the server + // hosting the files, such as not being able to find a file. This callback is + // also called if there is an error on Dropbox or if the user is over quota. + error: function (errorMessage) { + alert(errorMessage); + } + }; + // local url not working for dev=> var baseUrl="http://chuv-backend.redfroggy.fr"; + var baseUrl=backendUrl; + + var slug = article.slug; + // todo used apikey of current user + Dropbox.save(baseUrl+"/articles/"+slug+".pdf?apikey=adminapikey", slug+".pdf", options); + }; + + $scope.showModal = function(article){ + ModalUtil.showModal($scope,article); + }; + + $scope.onChangeMine = function(checked){ + $scope.loadModels({team: checked ? 0 : 1,own:checked ? 1 : 0}); + }; + + // Init + $scope.init(); + }]); + + +angular.module('chuvApp.articles').controller('ArticleModalController', ['$scope','$modalInstance', '$modal', 'item', function ($scope,$modalInstance,$modal, item) { + $scope.article = item.article; + + $scope.closeModal = function(){ + $modalInstance.dismiss('cancel'); + }; + } +]); + +angular.module('chuvApp.articles').controller('ArticlesController', ['$scope','Article','ModalUtil','User',function ($scope,Article,ModalUtil,User) { + $scope.articles = Article.query({team:1,own:0,status:'published',valid:1}); + + $scope.showModal = function(article){ + ModalUtil.showModal($scope,article); + }; + + /** + * Return true if object has been created by current user + * @param obj + * @returns {boolean} + */ + $scope.isMine = function(obj) { + return User.hasCurrent() ? obj.createdBy.id == User.current().id : false; + }; + + $scope.isAuthorized = function(article){ + return $scope.isMine(article); + } +} +]); diff --git a/src/main/resources/static/frontend/app/scripts/app/home/home.html b/src/main/resources/static/frontend/app/scripts/app/home/home.html index 5276422dec321afa763de764a4717e5aaf0184b4..7ba2ddc5b394153aaca98b982818dc7a2fe6f0fb 100644 --- a/src/main/resources/static/frontend/app/scripts/app/home/home.html +++ b/src/main/resources/static/frontend/app/scripts/app/home/home.html @@ -1,4 +1,4 @@ -<div class="container-fluid intro-container" ng-show="isNewVisitor()"> +<!--<div class="container-fluid intro-container" ng-show="isNewVisitor()"> <a href="" ng-click="closePanel($event)" class="trigger-close-intro"> <i class="ti ti-close"></i> </a> @@ -23,9 +23,10 @@ <a class="trigger-intro" ng-click="animateIntro()"> <i class="ti ti-arrow-down"></i> </a> -</div> +</div>--> -<div class="container-fluid mt" ng-show="!isNewVisitor()"> +<!--<div class="container-fluid mt" ng-show="!isNewVisitor()">--> +<div class="container-fluid mt"> <div class="row"> <div class="col-md-3"> <div class="info-tile tile-orange">