From 627ff12d164b26c154da3de9e6d02cfb95787ecb Mon Sep 17 00:00:00 2001 From: Youssef ABIDI Date: Tue, 3 Oct 2017 12:05:03 +0100 Subject: [PATCH] adding auth + main module --- bower.json | 3 +- src/app/pages/.DS_Store | Bin 6148 -> 6148 bytes src/app/pages/authSignIn/auth.service.js | 39 +++++ src/app/pages/authSignIn/authSignIn.html | 35 +++++ src/app/pages/authSignIn/authSignIn.module.js | 22 +++ src/app/pages/authSignIn/authSignInCtrl.js | 49 ++++++ src/app/pages/authSignUp/authSignUp.html | 49 ++++++ src/app/pages/authSignUp/authSignUp.module.js | 22 +++ src/app/pages/authSignUp/authSignUpCtrl.js | 13 ++ src/app/pages/config/config.module.js | 13 ++ src/app/pages/config/routeChange.js | 20 +++ src/app/pages/dashboard/.DS_Store | Bin 0 -> 6148 bytes src/app/pages/dashboard/dashboard.html | 1 + src/app/pages/dashboard/dashboard.module.js | 26 ++++ src/app/pages/main/main.html | 31 ++++ src/app/pages/main/main.module.js | 24 +++ src/app/pages/pages.module.js | 57 ++++++- src/app/pages/services/localStorage.js | 56 +++++++ src/app/pages/services/services.module.js | 12 ++ src/app/pages/surveys/create/createTabCtrl.js | 2 +- src/app/pages/surveys/list/list.controller.js | 4 +- src/app/pages/surveys/surveys.module.js | 8 +- src/app/pages/teams/lists/ListsTabCtrl.js | 4 +- src/app/pages/teams/lists/lists.module.js | 2 +- .../members/composeBox/composeBoxCtrl.js | 2 +- .../teams/members/detail/memberDetail.html | 2 +- src/app/pages/teams/members/members.html | 2 +- src/app/pages/teams/members/members.module.js | 6 +- .../members/membersListing/membersList.html | 4 +- src/app/pages/teams/teams.module.js | 2 +- .../components/baSidebar/baSidebar.service.js | 3 +- src/index.html | 65 +++----- src/sass/auth.scss | 19 +-- src/sass/common.scss | 1 + src/sass/theme/_login.scss | 141 ++++++++++++++++++ 35 files changed, 659 insertions(+), 80 deletions(-) create mode 100644 src/app/pages/authSignIn/auth.service.js create mode 100644 src/app/pages/authSignIn/authSignIn.html create mode 100644 src/app/pages/authSignIn/authSignIn.module.js create mode 100644 src/app/pages/authSignIn/authSignInCtrl.js create mode 100644 src/app/pages/authSignUp/authSignUp.html create mode 100644 src/app/pages/authSignUp/authSignUp.module.js create mode 100644 src/app/pages/authSignUp/authSignUpCtrl.js create mode 100644 src/app/pages/config/config.module.js create mode 100644 src/app/pages/config/routeChange.js create mode 100644 src/app/pages/dashboard/.DS_Store create mode 100644 src/app/pages/dashboard/dashboard.html create mode 100644 src/app/pages/dashboard/dashboard.module.js create mode 100644 src/app/pages/main/main.html create mode 100644 src/app/pages/main/main.module.js create mode 100644 src/app/pages/services/localStorage.js create mode 100644 src/app/pages/services/services.module.js create mode 100644 src/sass/theme/_login.scss diff --git a/bower.json b/bower.json index 67d81ba..3f825f0 100644 --- a/bower.json +++ b/bower.json @@ -56,7 +56,8 @@ "ng-js-tree": "~0.0.7", "angular-ui-select": "^0.19.6", "angular-upload": "^1.0.12", - "ng-tags-input": "^3.2.0" + "ng-tags-input": "^3.2.0", + "lodash": "^4.17.4" }, "resolutions": { "angular": "~1.5.9", diff --git a/src/app/pages/.DS_Store b/src/app/pages/.DS_Store index f0fab09fbd8851eddeb43016df052a5e0ccbeb7c..38d430983b33799e3d66f2e222fd62493176025a 100644 GIT binary patch delta 600 zcmZoMXfc=|#>B!ku~2NHo}wrp0|Nsi1A_nqLoh=oLpnnqgC|4YW=H1b%=I8CE`~&g zQic+S3}k7~oc!dZoctu9JWwA~9FW%d4+cOMHa(#X1!#Jnpy^>_NM^_fTAl`S1Vn8; z%mM~CpyC-w7H~480G(9~bW{>hQzAnVLkg<#3}-+(fSBq3e;~=gfJH}Ad2s>M6TgxQ zax#lc3=D2EGBLBTvaxe;a&dFlb8~SE2y(>+XXKX$mn4>y7CR*tMT2>nDXB?Nc0giD z28n0_2!l znAg?{^mA}XYnnRxMi$g|En2)}>9XZ3jvNE~pMen=$6z1~rD4=@AOlP2lm!=Y=H=w) qr30lIH}f!kXWY!r!OsCqH^8*y`BsJ delta 84 zcmZoMXfc=|#>B)qu~2NHo}wrR0|Nsi1A_nqLotIMLoP!;LkdIb#=_-{j2xQ<*uFDv jR^VV^+04$t&jHl4S&-v9^JIPzN02U%HkQp1B5Rld)BzBU diff --git a/src/app/pages/authSignIn/auth.service.js b/src/app/pages/authSignIn/auth.service.js new file mode 100644 index 0000000..b4a9d65 --- /dev/null +++ b/src/app/pages/authSignIn/auth.service.js @@ -0,0 +1,39 @@ +/** + * @author ayoub + */ +(function () { + 'use strict'; + + angular.module('BlurAdmin.pages.authSignIn') + .factory('AuthService',AuthService); + + /** @ngInject */ + function AuthService($http, $q) { + var apiBaseUrl = "http://localhost:9000" + var endpoint = apiBaseUrl + "/auth"; + + function login(params) { + params = params || {}; + + var access_token = { "access_token" : params.access_token } + var auth = { headers : { 'Authorization': 'Basic ' + btoa(params.email + ":" + params.password)}} + + var deferred = $q.defer(); + $http.post(endpoint, access_token, auth) + .success(function(data) { + deferred.resolve(data); + }).error(function(msg, code) { + deferred.reject(msg); + }); + + return deferred.promise; + + + return $http.post(endpoint, access_token, auth) + } + + return { + login:login + } + } +})(); diff --git a/src/app/pages/authSignIn/authSignIn.html b/src/app/pages/authSignIn/authSignIn.html new file mode 100644 index 0000000..3993ebc --- /dev/null +++ b/src/app/pages/authSignIn/authSignIn.html @@ -0,0 +1,35 @@ + diff --git a/src/app/pages/authSignIn/authSignIn.module.js b/src/app/pages/authSignIn/authSignIn.module.js new file mode 100644 index 0000000..b783ea7 --- /dev/null +++ b/src/app/pages/authSignIn/authSignIn.module.js @@ -0,0 +1,22 @@ +(function() { + 'use strict'; + + angular.module('BlurAdmin.pages.authSignIn', []) + .config(routeConfig); + + /** @ngInject */ + function routeConfig($stateProvider) { + $stateProvider + .state('authSignIn', { + url: '/authSignIn', + templateUrl: 'app/pages/authSignIn/authSignIn.html', + title: 'My Page', + controller: 'authSignInCtrl', + sidebarMeta: { + order: 800, + }, + authenticate: false + }); + } + +})(); diff --git a/src/app/pages/authSignIn/authSignInCtrl.js b/src/app/pages/authSignIn/authSignInCtrl.js new file mode 100644 index 0000000..884eb96 --- /dev/null +++ b/src/app/pages/authSignIn/authSignInCtrl.js @@ -0,0 +1,49 @@ +(function() { + 'use strict'; + + angular.module('BlurAdmin.pages.authSignIn') + .controller('authSignInCtrl', authSignInCtrl); + + /** @ngInject */ + function authSignInCtrl($scope, localStorage, $state, AuthService) { + var vm = this; + + + vm.login = login; + + init(); + + function init() { + localStorage.clear(); + vm.error = "" + } + + function login() { + var userObject = { + email: vm.email, + password: vm.password + }; + AuthService + .login(userObject) + .then( + function (data){ + if (data.token && data.user) { + + localStorage.setObject('user', data.user); + localStorage.setObject('token', data.token); + $state.go('main.dashboard'); + } + console.log("AuthService loggedin",data) + }, + function (error){ + vm.error = "There were an error logging you in" + console.log("Error", error); + } + ); + + } + + + } + +})(); diff --git a/src/app/pages/authSignUp/authSignUp.html b/src/app/pages/authSignUp/authSignUp.html new file mode 100644 index 0000000..42cfdfc --- /dev/null +++ b/src/app/pages/authSignUp/authSignUp.html @@ -0,0 +1,49 @@ + diff --git a/src/app/pages/authSignUp/authSignUp.module.js b/src/app/pages/authSignUp/authSignUp.module.js new file mode 100644 index 0000000..059221d --- /dev/null +++ b/src/app/pages/authSignUp/authSignUp.module.js @@ -0,0 +1,22 @@ +(function() { + 'use strict'; + + angular.module('BlurAdmin.pages.authSignUp', []) + .config(routeConfig); + + /** @ngInject */ + function routeConfig($stateProvider) { + $stateProvider + .state('authSignUp', { + url: '/authSignUp', + templateUrl: 'app/pages/authSignUp/authSignUp.html', + title: 'My Page', + controller: 'authSignUpCtrl', + sidebarMeta: { + order: 800, + }, + authenticate: false + }); + } + +})(); diff --git a/src/app/pages/authSignUp/authSignUpCtrl.js b/src/app/pages/authSignUp/authSignUpCtrl.js new file mode 100644 index 0000000..fcbd6b3 --- /dev/null +++ b/src/app/pages/authSignUp/authSignUpCtrl.js @@ -0,0 +1,13 @@ +(function() { + 'use strict'; + + angular.module('BlurAdmin.pages.authSignUp') + .controller('authSignUpCtrl', authSignUpCtrl); + + /** @ngInject */ + function authSignUpCtrl($scope) { + var vm = this; + + } + +})(); diff --git a/src/app/pages/config/config.module.js b/src/app/pages/config/config.module.js new file mode 100644 index 0000000..428e54a --- /dev/null +++ b/src/app/pages/config/config.module.js @@ -0,0 +1,13 @@ +(function() { + 'use strict'; + + angular.module('BlurAdmin.pages.config', []) + .config(routeConfig); + + /** @ngInject */ + function routeConfig() { + + } + + +})(); diff --git a/src/app/pages/config/routeChange.js b/src/app/pages/config/routeChange.js new file mode 100644 index 0000000..78d1acf --- /dev/null +++ b/src/app/pages/config/routeChange.js @@ -0,0 +1,20 @@ +(function() { + 'use strict'; + + angular.module('BlurAdmin.pages.config') + .run(stateChangeStart); + + /** @ngInject */ + function stateChangeStart($rootScope, $state, localStorage) { + $rootScope.$on("$stateChangeStart", function(event, toState, toParams, fromState, fromParams) { + var login = localStorage.getObject('user'); + var token = localStorage.getObject('token'); + if (toState.authenticate && (_.isEmpty(login) || _.isEmpty(token)) ) { + // User isn’t authenticated + $state.transitionTo("authSignIn"); + event.preventDefault(); + } + }); + } + +})(); diff --git a/src/app/pages/dashboard/.DS_Store b/src/app/pages/dashboard/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..035cf63cb0e37d0ced2d16f66d78af0f4bb68603 GIT binary patch literal 6148 zcmeH~O-chn5QSfB76Cy5Zd~@#mEaAU5EpLs0%jZ`$b1}8kt*nZ z{a4jJA58xMNXvbD11tc{nWRaD2~+cA*GU~LO%|g;k2PM=;(8*`Uu@Fa&$-?;cG%$O z`ZsvP7TsOfKQ&$7a2z3}d+ODPnSIX1r0n$P8RZG>ul|8iNu2gqT z^@)+(o$a}fD^&+qcSo|B8K=(t^>|4(JKM7jM=Gw72Z10kCUEN2h0gz5{xXw~{IN^a zf+^KhW~N6bnZ^w&&{!T_0$9;La%r93pH=3#Qgv`u6t$Z> OH7)`MB(flI1OlHpoGp0( literal 0 HcmV?d00001 diff --git a/src/app/pages/dashboard/dashboard.html b/src/app/pages/dashboard/dashboard.html new file mode 100644 index 0000000..4ff029a --- /dev/null +++ b/src/app/pages/dashboard/dashboard.html @@ -0,0 +1 @@ +Dash \ No newline at end of file diff --git a/src/app/pages/dashboard/dashboard.module.js b/src/app/pages/dashboard/dashboard.module.js new file mode 100644 index 0000000..775bcfe --- /dev/null +++ b/src/app/pages/dashboard/dashboard.module.js @@ -0,0 +1,26 @@ +/** + * @author v.lugovsky + * created on 16.12.2015 + */ +(function () { + 'use strict'; + + angular.module('BlurAdmin.pages.dashboard', []) + .config(routeConfig); + + /** @ngInject */ + function routeConfig($stateProvider) { + $stateProvider + .state('main.dashboard', { + url: '/dashboard', + templateUrl: 'app/pages/dashboard/dashboard.html', + title: 'Dashboard', + sidebarMeta: { + icon: 'ion-android-home', + order: 0, + }, + authenticate: true + }); + } + +})(); diff --git a/src/app/pages/main/main.html b/src/app/pages/main/main.html new file mode 100644 index 0000000..898142d --- /dev/null +++ b/src/app/pages/main/main.html @@ -0,0 +1,31 @@ +
+
+ + + + +
+
+ +
+
+
+ +
+ + +
+ + +
+
+
+
diff --git a/src/app/pages/main/main.module.js b/src/app/pages/main/main.module.js new file mode 100644 index 0000000..c0f69cc --- /dev/null +++ b/src/app/pages/main/main.module.js @@ -0,0 +1,24 @@ +/** + * @author l.azevedo + * created on 29.07.2017 + */ +(function() { + 'use strict'; + + angular.module('BlurAdmin.pages.main', []) + .config(routeConfig); + + /** @ngInject */ + function routeConfig($stateProvider) { + $stateProvider + .state('main', { + url: '/main', + templateUrl: 'app/pages/main/main.html', + redirectTo: 'main.dashboard', + authenticate: true + + + }); + } + +})(); diff --git a/src/app/pages/pages.module.js b/src/app/pages/pages.module.js index 3f7364f..f8064a1 100644 --- a/src/app/pages/pages.module.js +++ b/src/app/pages/pages.module.js @@ -8,15 +8,24 @@ angular.module('BlurAdmin.pages', [ 'ui.router', + 'BlurAdmin.pages.dashboard', + 'BlurAdmin.pages.main', 'BlurAdmin.pages.surveys', 'BlurAdmin.pages.teams', 'BlurAdmin.pages.viewer', - ]) - .config(routeConfig); + 'BlurAdmin.pages.authSignIn', + 'BlurAdmin.pages.authSignUp', + 'BlurAdmin.pages.services', + 'BlurAdmin.pages.config', + //'BlurAdmin.pages.main', + ]).config(routeConfig) + .factory('authInterceptor', authInterceptor); /** @ngInject */ - function routeConfig($urlRouterProvider, baSidebarServiceProvider) { - $urlRouterProvider.otherwise('/dashboard'); + function routeConfig($urlRouterProvider, baSidebarServiceProvider, $httpProvider) { + $urlRouterProvider.otherwise('/authSignIn'); + + $httpProvider.interceptors.push('authInterceptor'); baSidebarServiceProvider.addStaticItem({ title: 'Pages', @@ -40,4 +49,44 @@ }); } + + function authInterceptor($rootScope, $q, localStorage) { + console.log('authInterceptor') + return { + request: function (config) { + config.headers = config.headers || {}; + + if (config.data !== undefined && config.url.indexOf('auth') != -1) { + config.data.access_token = 'AlAoWLue33D1sBrKNHOohXdvYNh2Je9i'; //TODO : get this from the config + } + else if (localStorage.getObject('token')) { + + if (config.data === undefined) { + //Do nothing if data is not originally supplied from the calling method + } + else { + config.data.access_token = localStorage.getObject('token'); + console.log() + } + + if (config.method === 'GET') { + /*if (config.params === undefined) { + config.params = {}; + } + config.params.test = localStorage.getObject('token');*/ + } + //config.headers.Authorization = 'Bearer ' + $window.sessionStorage.token; + } + return config; + }, + responseError: function (rejection) { + if (rejection.status === 401) { + console.log("not authorised"); + localStorage.clear(); + } + return $q.reject(rejection); + } + }; +}; + })(); diff --git a/src/app/pages/services/localStorage.js b/src/app/pages/services/localStorage.js new file mode 100644 index 0000000..9267f62 --- /dev/null +++ b/src/app/pages/services/localStorage.js @@ -0,0 +1,56 @@ +/** + * @author l.azevedo + * created on 29/06/2017 + */ +(function() { + 'use strict'; + + angular.module('BlurAdmin.pages.services') + .service('localStorage', localStorage); + + /** @ngInject */ + function localStorage($window) { + var service = { + set: set, + get: get, + setObject: setObject, + getObject: getObject, + clear: clear + } + + return service; + + function set(key, value) { + if ($window.fakeLocalStorage) { + $window.fakeLocalStorage[key] = value; + } else { + $window.localStorage[key] = value; + } + } + + function get(key, defaultValue) { + return !$window.fakeLocalStorage ? $window.localStorage[key] || defaultValue : $window.fakeLocalStorage[key] || defaultValue; + } + + function setObject(key, value) { + if ($window.fakeLocalStorage) { + $window.fakeLocalStorage[key] = angular.toJson(value); + } else { + $window.localStorage[key] = angular.toJson(value); + } + } + + function getObject(key) { + return !$window.fakeLocalStorage ? angular.fromJson($window.localStorage[key] || '{}') : angular.fromJson($window.fakeLocalStorage[key] || '{}'); + } + + function clear() { + if ($window.fakeLocalStorage) { + $window.fakeLocalStorage = {}; + } else { + $window.localStorage.clear(); + } + } + } + +})(); diff --git a/src/app/pages/services/services.module.js b/src/app/pages/services/services.module.js new file mode 100644 index 0000000..94a296d --- /dev/null +++ b/src/app/pages/services/services.module.js @@ -0,0 +1,12 @@ +(function() { + 'use strict'; + + angular.module('BlurAdmin.pages.services', []) + .config(routeConfig); + + /** @ngInject */ + function routeConfig() { + + } + +})(); diff --git a/src/app/pages/surveys/create/createTabCtrl.js b/src/app/pages/surveys/create/createTabCtrl.js index 8b0c32f..c7130da 100644 --- a/src/app/pages/surveys/create/createTabCtrl.js +++ b/src/app/pages/surveys/create/createTabCtrl.js @@ -257,7 +257,7 @@ $scope.survey.list = $scope.lists.selected; $scope.survey.status = "Sending"; $log.info("sendSurvey",$scope.survey); - $state.transitionTo('surveys.list'/*, {id: item.id}*/); + $state.transitionTo('main.surveys.list'/*, {id: item.id}*/); $scope.saveSurvey(true); diff --git a/src/app/pages/surveys/list/list.controller.js b/src/app/pages/surveys/list/list.controller.js index 1c2c369..53f04e6 100644 --- a/src/app/pages/surveys/list/list.controller.js +++ b/src/app/pages/surveys/list/list.controller.js @@ -23,12 +23,12 @@ function goToCreate() { $log.info("Go to create"); - $state.go('surveys.create'); + $state.go('main.surveys.create'); } function editSurvey(id){ $log.info("Edit"); - $state.go('surveys.edit', {'survey_id': id}) + $state.go('main.surveys.edit', {'survey_id': id}) }; function removeSurvey(id){ diff --git a/src/app/pages/surveys/surveys.module.js b/src/app/pages/surveys/surveys.module.js index 2aae291..52b3af4 100644 --- a/src/app/pages/surveys/surveys.module.js +++ b/src/app/pages/surveys/surveys.module.js @@ -13,7 +13,7 @@ /** @ngInject */ function routeConfig($stateProvider) { $stateProvider - .state('surveys', { + .state('main.surveys', { url: '/surveys', template : '', title: 'Surveys', @@ -21,7 +21,7 @@ icon: 'ion-gear-a', order: 1000, }, - }).state('surveys.create', { + }).state('main.surveys.create', { url: '/create', templateUrl: 'app/pages/surveys/create/create.html', controller: "CreateTabCtrl", @@ -29,12 +29,12 @@ sidebarMeta: { order: 1000, }, - }).state('surveys.edit', { + }).state('main.surveys.edit', { url: '/edit/:survey_id', templateUrl: 'app/pages/surveys/create/create.html', controller: "CreateTabCtrl", title: 'Edit a survey' - }).state('surveys.list', { + }).state('main.surveys.list', { url: '/list', templateUrl: 'app/pages/surveys/list/list.html', controller: "list as vm", diff --git a/src/app/pages/teams/lists/ListsTabCtrl.js b/src/app/pages/teams/lists/ListsTabCtrl.js index a94607d..0c00b88 100644 --- a/src/app/pages/teams/lists/ListsTabCtrl.js +++ b/src/app/pages/teams/lists/ListsTabCtrl.js @@ -169,7 +169,7 @@ if (item && item.isChecked) { vm.activeList = item; vm.errors.noList = false; - $state.transitionTo('teams.lists', {id: item.id}, {notify: false}); + $state.transitionTo('main.teams.lists', {id: item.id}, {notify: false}); angular.forEach(vm.Lists, function(list){ if(item.id != list.id) list.isChecked = false; @@ -201,7 +201,7 @@ vm.activeList = {}; vm.errors.noList = true; vm.listMembers = []; - $state.transitionTo('teams.lists', {notify: false}); + $state.transitionTo('main.teams.lists', {notify: false}); } diff --git a/src/app/pages/teams/lists/lists.module.js b/src/app/pages/teams/lists/lists.module.js index 51b1580..76f9143 100644 --- a/src/app/pages/teams/lists/lists.module.js +++ b/src/app/pages/teams/lists/lists.module.js @@ -11,7 +11,7 @@ /** @ngInject */ function routeConfig($stateProvider,$urlRouterProvider) { $stateProvider - .state('teams.lists', { + .state('main.teams.lists', { url: '/lists/:id', //abstract: true, templateUrl: 'app/pages/teams/lists/lists.html', diff --git a/src/app/pages/teams/members/composeBox/composeBoxCtrl.js b/src/app/pages/teams/members/composeBox/composeBoxCtrl.js index 9c5cb76..338381e 100644 --- a/src/app/pages/teams/members/composeBox/composeBoxCtrl.js +++ b/src/app/pages/teams/members/composeBox/composeBoxCtrl.js @@ -50,7 +50,7 @@ .create(vm.member) .then(function (data){ vm.member = {} - $state.go('teams.members'); + $state.go('main.teams.members'); toastr.info('The member was created successfuly :)', 'Members', { "autoDismiss": true, diff --git a/src/app/pages/teams/members/detail/memberDetail.html b/src/app/pages/teams/members/detail/memberDetail.html index 37688c5..03727e8 100644 --- a/src/app/pages/teams/members/detail/memberDetail.html +++ b/src/app/pages/teams/members/detail/memberDetail.html @@ -5,7 +5,7 @@ - diff --git a/src/app/pages/teams/members/members.html b/src/app/pages/teams/members/members.html index 4c51d20..87402f7 100644 --- a/src/app/pages/teams/members/members.html +++ b/src/app/pages/teams/members/members.html @@ -15,7 +15,7 @@
+ ui-sref="main.teams.members.label({label: t.label})" ng-click="tabCtrl.selectTab(t.label)"> {{t.name}}
diff --git a/src/app/pages/teams/members/members.module.js b/src/app/pages/teams/members/members.module.js index c1e29e6..c935965 100644 --- a/src/app/pages/teams/members/members.module.js +++ b/src/app/pages/teams/members/members.module.js @@ -11,7 +11,7 @@ /** @ngInject */ function routeConfig($stateProvider,$urlRouterProvider) { $stateProvider - .state('teams.members', { + .state('main.teams.members', { url: '/members', //abstract: true, templateUrl: 'app/pages/teams/members/members.html', @@ -21,13 +21,13 @@ sidebarMeta: { order: 0, }, - }).state('teams.members.label', { + }).state('main.teams.members.label', { url: '/:label', templateUrl: 'app/pages/teams/members/membersListing/membersList.html', title: 'Members', controller: "MembersListCtrl", controllerAs: "listCtrl" - }).state('teams.members.detail', { + }).state('main.teams.members.detail', { url: '/:id', templateUrl: 'app/pages/teams/members/detail/memberDetail.html', title: 'Detail', diff --git a/src/app/pages/teams/members/membersListing/membersList.html b/src/app/pages/teams/members/membersListing/membersList.html index 5abfc46..cad563c 100644 --- a/src/app/pages/teams/members/membersListing/membersList.html +++ b/src/app/pages/teams/members/membersListing/membersList.html @@ -34,11 +34,11 @@
- + - +
{{m.name}}
{{l}}
diff --git a/src/app/pages/teams/teams.module.js b/src/app/pages/teams/teams.module.js index fa98b42..1bd3923 100644 --- a/src/app/pages/teams/teams.module.js +++ b/src/app/pages/teams/teams.module.js @@ -15,7 +15,7 @@ /** @ngInject */ function routeConfig($stateProvider) { $stateProvider - .state('teams', { + .state('main.teams', { url: '/teams', template : '', abstract: true, diff --git a/src/app/theme/components/baSidebar/baSidebar.service.js b/src/app/theme/components/baSidebar/baSidebar.service.js index 3c19627..b3631d7 100644 --- a/src/app/theme/components/baSidebar/baSidebar.service.js +++ b/src/app/theme/components/baSidebar/baSidebar.service.js @@ -73,7 +73,8 @@ return { name: s.name, title: s.title, - level: (s.name.match(/\./g) || []).length, + //level: (s.name.match(/\./g) || []).length, + level: ((s.name.match(/\./g) || []).length - 1), order: meta.order, icon: meta.icon, stateRef: s.name, diff --git a/src/index.html b/src/index.html index 21ac58e..e602006 100644 --- a/src/index.html +++ b/src/index.html @@ -1,5 +1,6 @@ + @@ -23,57 +24,29 @@ + + -
-
+
- - + + + + + + -
-
- -
-
-
+ + + + -
- - -
- - -
- -
-
-
- - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/src/sass/auth.scss b/src/sass/auth.scss index 6969ab9..8d4f138 100644 --- a/src/sass/auth.scss +++ b/src/sass/auth.scss @@ -3,7 +3,6 @@ @import "theme/_layout.scss"; @import 'theme/buttons.scss'; @import 'app/form.scss'; - html { min-height: 520px; height: 100%; @@ -15,14 +14,17 @@ body { } $text-color: #ffffff; - -.form-control, .form-control:focus { +.form-control, +.form-control:focus { @include placeholderStyle($text-color, 0.9); background-color: rgba(0, 0, 0, .4); border-radius: 5px; color: $text-color; } -.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control { + +.form-control[disabled], +.form-control[readonly], +fieldset[disabled] .form-control { @include placeholderStyle($text-color, 0.6); } @@ -57,12 +59,10 @@ $text-color: #ffffff; color: $primary-dark; } } - .control-label { padding-top: 11px; color: $text-color; } - .form-group { margin-bottom: 12px; } @@ -105,18 +105,19 @@ a.forgot-pass { text-align: center; display: block; position: relative; - & > span { + &>span { display: table-cell; width: 30%; white-space: nowrap; padding: 0 24px; color: $text-color; - & > span { + &>span { margin-top: -12px; display: block; } } - &:before, &:after { + &:before, + &:after { border-top: solid 1px $text-color; content: ""; height: 1px; diff --git a/src/sass/common.scss b/src/sass/common.scss index df04ce9..552b18e 100644 --- a/src/sass/common.scss +++ b/src/sass/common.scss @@ -1,3 +1,4 @@ @import 'theme/conf/mixins'; @import 'theme/conf/colorScheme/mint'; @import 'theme/conf/variables'; +@import 'theme/_login.scss'; diff --git a/src/sass/theme/_login.scss b/src/sass/theme/_login.scss new file mode 100644 index 0000000..8c1b57b --- /dev/null +++ b/src/sass/theme/_login.scss @@ -0,0 +1,141 @@ +.login { + min-height: 520px; + @include main-background(); + height: 100%; +} + +$text-color: #ffffff; +.login .form-control, +.login .form-control:focus { + @include placeholderStyle($text-color, 0.9); + background-color: rgba(0, 0, 0, .4); + border-radius: 5px; + color: $text-color; +} + +.login .form-control[disabled], +.login .form-control[readonly], +fieldset[disabled] .form-control { + @include placeholderStyle($text-color, 0.6); +} + +.auth-main { + display: flex; + align-items: center; + height: 100%; + width: 100%; +} + +.login .auth-block { + width: 540px; + margin: 150px auto; + border-radius: 5px; + @include bg-translucent-dark(0.55); + color: #fff; + padding: 32px; + h1 { + font-weight: $font-light; + margin-bottom: 28px; + text-align: center; + } + p { + font-size: 16px; + } + a { + text-decoration: none; + outline: none; + transition: all 0.2s ease; + color: $primary; + &:hover { + color: $primary-dark; + } + } + .control-label { + padding-top: 11px; + color: $text-color; + } + .form-group { + margin-bottom: 12px; + } +} + +.login .auth-input { + width: 300px; + margin-bottom: 24px; + input { + display: block; + width: 100%; + border: none; + font-size: 16px; + padding: 4px 10px; + outline: none; + } +} + +.login a.forgot-pass { + display: block; + text-align: right; + margin-bottom: -20px; + float: right; + z-index: 2; + position: relative; +} + +.login .auth-link { + display: block; + font-size: 16px; + text-align: center; + margin-bottom: 33px; +} + +.login .auth-sep { + margin-top: 36px; + margin-bottom: 24px; + line-height: 20px; + font-size: 16px; + text-align: center; + display: block; + position: relative; + &>span { + display: table-cell; + width: 30%; + white-space: nowrap; + padding: 0 24px; + color: $text-color; + &>span { + margin-top: -12px; + display: block; + } + } + &:before, + &:after { + border-top: solid 1px $text-color; + content: ""; + height: 1px; + width: 35%; + display: table-cell; + } +} + +.login .al-share-auth { + text-align: center; + .al-share { + float: none; + margin: 0; + padding: 0; + display: inline-block; + li { + margin-left: 24px; + &:first-child { + margin-left: 0; + } + i { + font-size: 24px; + } + } + } +} + +.login .btn-auth { + color: #ffffff!important; +} \ No newline at end of file