main.js 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. 'use strict';
  2. /* Controllers */
  3. angular.module('app')
  4. .controller('AppCtrl', ['$scope', '$translate', '$localStorage', '$window',
  5. function( $scope, $translate, $localStorage, $window ) {
  6. // add 'ie' classes to html
  7. var isIE = !!navigator.userAgent.match(/MSIE/i);
  8. isIE && angular.element($window.document.body).addClass('ie');
  9. isSmartDevice( $window ) && angular.element($window.document.body).addClass('smart');
  10. // config
  11. $scope.app = {
  12. name: 'Angulr',
  13. version: '1.3.3',
  14. // for chart colors
  15. color: {
  16. primary: '#7266ba',
  17. info: '#23b7e5',
  18. success: '#27c24c',
  19. warning: '#fad733',
  20. danger: '#f05050',
  21. light: '#e8eff0',
  22. dark: '#3a3f51',
  23. black: '#1c2b36'
  24. },
  25. settings: {
  26. themeID: 1,
  27. navbarHeaderColor: 'bg-black',
  28. navbarCollapseColor: 'bg-white-only',
  29. asideColor: 'bg-black',
  30. headerFixed: true,
  31. asideFixed: false,
  32. asideFolded: false,
  33. asideDock: false,
  34. container: false
  35. }
  36. }
  37. // save settings to local storage
  38. if ( angular.isDefined($localStorage.settings) ) {
  39. $scope.app.settings = $localStorage.settings;
  40. } else {
  41. $localStorage.settings = $scope.app.settings;
  42. }
  43. $scope.$watch('app.settings', function(){
  44. if( $scope.app.settings.asideDock && $scope.app.settings.asideFixed ){
  45. // aside dock and fixed must set the header fixed.
  46. $scope.app.settings.headerFixed = true;
  47. }
  48. // save to local storage
  49. $localStorage.settings = $scope.app.settings;
  50. }, true);
  51. // angular translate
  52. $scope.lang = { isopen: false };
  53. $scope.langs = {en:'English', de_DE:'German', it_IT:'Italian'};
  54. $scope.selectLang = $scope.langs[$translate.proposedLanguage()] || "English";
  55. $scope.setLang = function(langKey, $event) {
  56. // set the current lang
  57. $scope.selectLang = $scope.langs[langKey];
  58. // You can change the language during runtime
  59. $translate.use(langKey);
  60. $scope.lang.isopen = !$scope.lang.isopen;
  61. };
  62. function isSmartDevice( $window )
  63. {
  64. // Adapted from http://www.detectmobilebrowsers.com
  65. var ua = $window['navigator']['userAgent'] || $window['navigator']['vendor'] || $window['opera'];
  66. // Checks for iOs, Android, Blackberry, Opera Mini, and Windows mobile devices
  67. return (/iPhone|iPod|iPad|Silk|Android|BlackBerry|Opera Mini|IEMobile/).test(ua);
  68. }
  69. }]);