pip-webui
Version:
HTML5 UI for LOB applications
166 lines (134 loc) • 6.19 kB
JavaScript
(function (angular) {
'use strict';
var content = [
{title: 'Authentication', state: 'auth', url: '/auth',
controller: 'AuthController', templateUrl: 'auth.html'
},
{title: 'Rest', state: 'rest', url: '/rest',
controller: 'RestController', templateUrl: 'rest.html'
},
{title: 'Session', state: 'session', url: '/session',
controller: 'SessionController', templateUrl: 'session.html'
},
{title: 'Cache', state: 'cache', url: '/cache', controller: 'CacheController', templateUrl: 'cache.html'}
],
thisModule = angular.module('appRestServices',
[
// 3rd Party Modules
'ui.router', 'ui.utils', 'ngResource', 'ngAria', 'ngCookies', 'ngSanitize', 'ngMessages',
'ngMaterial', 'wu.masonry', 'LocalStorageModule', 'angularFileUpload', 'ngAnimate',
'pipCore', 'pipRest', 'pipData', 'pipSessionCache',
'pipWebuiTests',
// Sample Application Modules
'appRestServices.Rest', 'appRestServices.Session', 'appRestServices.Auth', 'appRestServices.Cache'
]
);
thisModule.config(function (pipTranslateProvider, $stateProvider, $urlRouterProvider) {
// String translations
pipTranslateProvider.translations('en', {
'APPLICATION_TITLE': 'WebUI Sampler',
'blue': 'Blue Theme',
'green': 'Green Theme',
'pink': 'Pink Theme',
'grey': 'Grey Theme'
});
pipTranslateProvider.translations('ru', {
'APPLICATION_TITLE': 'WebUI Демонстратор',
'blue': 'Голубая тема',
'green': 'Зеленая тема',
'pink': 'Розовая тема',
'grey': 'Серая тема'
});
var i, contentItem;
for (i = 0; i < content.length; i++) {
contentItem = content[i];
$stateProvider.state(contentItem.state, contentItem);
}
$urlRouterProvider.otherwise('/auth');
});
thisModule.controller('AppController',
function ($scope, $rootScope, $state, $mdSidenav, pipTranslate, pipSession, pipRest, pipTestAccount) {
$scope.languages = ['en', 'ru'];
$scope.themes = ['blue', 'green', 'pink', 'grey'];
$scope.serverUrl = pipTestAccount.getServerUrl();
$scope.sampleAccount = pipTestAccount.getSamplerAccount();
$scope.selected = {
theme: 'blue',
tab: 0
};
$scope.content = content;
$scope.menuOpened = false;
$scope.onLanguageClick = onLanguageClick;
$scope.onThemeClick = onThemeClick;
$scope.onSwitchPage = onSwitchPage;
$scope.onToggleMenu = onToggleMenu;
$scope.isActiveState = isActiveState;
// Update page after language changed
$rootScope.$on('languageChanged', function (event) {
// console.log('Reloading...');
// console.log($state.current);
// console.log($state.params);
$state.reload();
});
// Update page after theme changed
$rootScope.$on('themeChanged', function (event) {
$state.reload();
});
// Connect to server
openConnection();
return;
// --------------------------------------------------------------------------------------------------
function onLanguageClick(language) {
pipTranslate.use(language);
}
function onThemeClick(theme) {
$rootScope.$theme = theme;
}
function onSwitchPage(state) {
$mdSidenav('left').close();
$state.go(state);
}
function onToggleMenu() {
$mdSidenav('left').toggle();
}
function isActiveState(state) {
return $state.current.name === state;
}
function openConnection() {
pipSession.signin(
{
serverUrl: $scope.serverUrl,
email: $scope.sampleAccount.email,
password: $scope.sampleAccount.password
},
function (user) {
// pipToasts.showNotification('Signed in as ' + user.name, ['ok'])
},
function (err) {
// console.error(err);
if (err && err.status === 400 &&
err.data && err.data.code === 1106) {
pipRest.signup($scope.serverUrl).call(
{
name: $scope.sampleAccount.name,
email: $scope.sampleAccount.email,
password: $scope.sampleAccount.password,
language: $scope.sampleAccount.language
},
function (user) {
pipSession.open($scope.serverUrl, user, false);
// pipToasts.showNotification('Signed up as ' + user.name, ['ok'])
}/*,
function (error) {
// pipToasts.showError('Failed to signed in');
}*/
);
} else {
// pipToasts.showError('Failed to signed in');
}
}
);
}
}
);
})(window.angular);