mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-13 02:11:30 +00:00
Remove front, want to work on it separately
This commit is contained in:
parent
ae78b00a6b
commit
a8699eb40c
49
wi/wi-front/.gitignore
vendored
49
wi/wi-front/.gitignore
vendored
@ -1,49 +0,0 @@
|
|||||||
# Logs
|
|
||||||
logs
|
|
||||||
*.log
|
|
||||||
npm-debug.log*
|
|
||||||
|
|
||||||
# Runtime data
|
|
||||||
pids
|
|
||||||
*.pid
|
|
||||||
*.seed
|
|
||||||
*.pid.lock
|
|
||||||
|
|
||||||
# Directory for instrumented libs generated by jscoverage/JSCover
|
|
||||||
lib-cov
|
|
||||||
|
|
||||||
# Coverage directory used by tools like istanbul
|
|
||||||
coverage
|
|
||||||
|
|
||||||
# nyc test coverage
|
|
||||||
.nyc_output
|
|
||||||
|
|
||||||
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
|
|
||||||
.grunt
|
|
||||||
|
|
||||||
# node-waf configuration
|
|
||||||
.lock-wscript
|
|
||||||
|
|
||||||
# Compiled binary addons (http://nodejs.org/api/addons.html)
|
|
||||||
build/Release
|
|
||||||
|
|
||||||
# Dependency directories
|
|
||||||
node_modules
|
|
||||||
jspm_packages
|
|
||||||
|
|
||||||
# Optional npm cache directory
|
|
||||||
.npm
|
|
||||||
|
|
||||||
# Optional eslint cache
|
|
||||||
.eslintcache
|
|
||||||
|
|
||||||
# Optional REPL history
|
|
||||||
.node_repl_history
|
|
||||||
|
|
||||||
# Output of 'npm pack'
|
|
||||||
*.tgz
|
|
||||||
|
|
||||||
# Yarn Integrity file
|
|
||||||
.yarn-integrity
|
|
||||||
|
|
||||||
dist
|
|
||||||
@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"api_url": "http://localhost:9080"
|
|
||||||
}
|
|
||||||
@ -1,211 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
|
|
||||||
var del = require('del');
|
|
||||||
var fs = require('fs');
|
|
||||||
var browserify = require('browserify');
|
|
||||||
var gulp = require('gulp');
|
|
||||||
var source = require('vinyl-source-stream');
|
|
||||||
var buffer = require('vinyl-buffer');
|
|
||||||
var uglify = require('gulp-uglify');
|
|
||||||
var sourcemaps = require('gulp-sourcemaps');
|
|
||||||
var gutil = require('gulp-util');
|
|
||||||
var concat = require('gulp-concat');
|
|
||||||
var connect = require('gulp-connect');
|
|
||||||
var templateCache = require('gulp-angular-templatecache');
|
|
||||||
var minifyCSS = require('gulp-cssnano');
|
|
||||||
var minifyHTML = require('gulp-htmlmin');
|
|
||||||
var sass = require('gulp-sass');
|
|
||||||
var gulpsync = require('gulp-sync')(gulp);
|
|
||||||
|
|
||||||
gulp.task('clean:css', function() {
|
|
||||||
return del([
|
|
||||||
'dist/css/**/*'
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
|
|
||||||
gulp.task('clean:javascript', function() {
|
|
||||||
return del([
|
|
||||||
'dist/js/**/*'
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
|
|
||||||
gulp.task('clean', ['clean:css', 'clean:javascript']);
|
|
||||||
|
|
||||||
gulp.task('app:javascript:prod', function () {
|
|
||||||
var b = browserify({
|
|
||||||
entries: 'src/index.js',
|
|
||||||
debug: false
|
|
||||||
});
|
|
||||||
|
|
||||||
return b.transform('babelify', {presets: ["es2015"]})
|
|
||||||
.transform('brfs')
|
|
||||||
.bundle()
|
|
||||||
.pipe(source('bundle.js'))
|
|
||||||
.pipe(buffer())
|
|
||||||
.pipe(sourcemaps.init({loadMaps: true}))
|
|
||||||
.pipe(uglify())
|
|
||||||
.on('error', gutil.log)
|
|
||||||
.pipe(sourcemaps.write('./'))
|
|
||||||
.pipe(gulp.dest('./dist/js/'))
|
|
||||||
.pipe(connect.reload());
|
|
||||||
});
|
|
||||||
|
|
||||||
gulp.task('app:javascript:dev', function () {
|
|
||||||
var b = browserify({
|
|
||||||
entries: 'src/index.js',
|
|
||||||
debug: true
|
|
||||||
});
|
|
||||||
|
|
||||||
return b.transform('babelify', {presets: ["es2015"]})
|
|
||||||
.transform('brfs')
|
|
||||||
.bundle()
|
|
||||||
.pipe(source('bundle.js'))
|
|
||||||
.pipe(buffer())
|
|
||||||
.pipe(sourcemaps.init({loadMaps: true}))
|
|
||||||
.on('error', gutil.log)
|
|
||||||
.pipe(sourcemaps.write('./'))
|
|
||||||
.pipe(gulp.dest('./dist/js/'))
|
|
||||||
.pipe(connect.reload());
|
|
||||||
});
|
|
||||||
|
|
||||||
gulp.task('javascript:dev', ['app:javascript:dev']);
|
|
||||||
gulp.task('javascript:prod', ['app:javascript:prod']);
|
|
||||||
|
|
||||||
var vendor_css = [
|
|
||||||
'node_modules/angular-material/angular-material.min.css',
|
|
||||||
'node_modules/angular-loading-bar/build/loading-bar.min.css',
|
|
||||||
'node_modules/mdi/css/materialdesignicons.min.css',
|
|
||||||
'node_modules/datatables.net-dt/css/jquery.dataTables.css',
|
|
||||||
'node_modules/angular-datatables/dist/css/angular-datatables.min.css'
|
|
||||||
];
|
|
||||||
|
|
||||||
gulp.task('vendor:css:prod', function() {
|
|
||||||
return gulp.src(vendor_css)
|
|
||||||
.pipe(minifyCSS())
|
|
||||||
.pipe(concat('vendor.css'))
|
|
||||||
.pipe(gulp.dest('dist/css'))
|
|
||||||
.pipe(connect.reload());
|
|
||||||
});
|
|
||||||
|
|
||||||
gulp.task('vendor:css:dev', function() {
|
|
||||||
return gulp.src(vendor_css)
|
|
||||||
.pipe(concat('vendor.css'))
|
|
||||||
.pipe(gulp.dest('dist/css'))
|
|
||||||
.pipe(connect.reload());
|
|
||||||
});
|
|
||||||
|
|
||||||
var app_sass = [
|
|
||||||
'src/**/*.scss',
|
|
||||||
];
|
|
||||||
|
|
||||||
gulp.task('app:sass:prod', function() {
|
|
||||||
return gulp.src(app_sass)
|
|
||||||
.pipe(sass().on('error', sass.logError))
|
|
||||||
.pipe(minifyCSS())
|
|
||||||
.pipe(concat('app.css'))
|
|
||||||
.pipe(gulp.dest('dist/css'))
|
|
||||||
.pipe(connect.reload());
|
|
||||||
});
|
|
||||||
|
|
||||||
gulp.task('app:sass:dev', function() {
|
|
||||||
return gulp.src(app_sass)
|
|
||||||
.pipe(sass().on('error', sass.logError))
|
|
||||||
.pipe(concat('app.css'))
|
|
||||||
.pipe(gulp.dest('dist/css'))
|
|
||||||
.pipe(connect.reload());
|
|
||||||
});
|
|
||||||
|
|
||||||
gulp.task('css:prod', ['vendor:css:prod', 'app:sass:prod']);
|
|
||||||
gulp.task('css:dev', ['vendor:css:dev', 'app:sass:dev']);
|
|
||||||
|
|
||||||
var assets_images = [
|
|
||||||
'src/assets/images/**/*',
|
|
||||||
];
|
|
||||||
|
|
||||||
var assets_media = [
|
|
||||||
'src/assets/media/*',
|
|
||||||
];
|
|
||||||
|
|
||||||
gulp.task('assets:images', function() {
|
|
||||||
return gulp.src(assets_images)
|
|
||||||
.pipe(gulp.dest('dist/images'))
|
|
||||||
.pipe(connect.reload());
|
|
||||||
});
|
|
||||||
|
|
||||||
gulp.task('assets:media', function() {
|
|
||||||
return gulp.src(assets_media)
|
|
||||||
.pipe(gulp.dest('dist/media'))
|
|
||||||
.pipe(connect.reload());
|
|
||||||
});
|
|
||||||
|
|
||||||
var assets_fonts = [
|
|
||||||
'node_modules/mdi/fonts/*'
|
|
||||||
];
|
|
||||||
|
|
||||||
gulp.task('assets:fonts', function() {
|
|
||||||
return gulp.src(assets_fonts)
|
|
||||||
.pipe(gulp.dest('dist/fonts'));
|
|
||||||
});
|
|
||||||
|
|
||||||
gulp.task('assets', ['assets:images', 'assets:media', 'assets:fonts']);
|
|
||||||
|
|
||||||
var app_html = [
|
|
||||||
'src/**/*.html'
|
|
||||||
];
|
|
||||||
|
|
||||||
gulp.task('app:html:prod', function() {
|
|
||||||
return gulp.src(app_html)
|
|
||||||
.pipe(minifyHTML({collapseWhitespace: true, removeComments: true}))
|
|
||||||
.pipe(templateCache({standalone: true}))
|
|
||||||
.pipe(gulp.dest('dist/js'))
|
|
||||||
.pipe(connect.reload());
|
|
||||||
});
|
|
||||||
|
|
||||||
gulp.task('app:html:dev', function() {
|
|
||||||
return gulp.src(app_html)
|
|
||||||
.pipe(templateCache({standalone: true}))
|
|
||||||
.pipe(gulp.dest('dist/js'))
|
|
||||||
.pipe(connect.reload());
|
|
||||||
});
|
|
||||||
|
|
||||||
var app_entry = [
|
|
||||||
'src/index.html'
|
|
||||||
];
|
|
||||||
|
|
||||||
gulp.task('app:entry:prod', function() {
|
|
||||||
return gulp.src(app_entry)
|
|
||||||
.pipe(minifyHTML({collapseWhitespace: true, removeComments: true}))
|
|
||||||
.pipe(gulp.dest('dist'))
|
|
||||||
.pipe(connect.reload());
|
|
||||||
});
|
|
||||||
|
|
||||||
gulp.task('app:entry:dev', function() {
|
|
||||||
return gulp.src(app_entry)
|
|
||||||
.pipe(gulp.dest('dist'))
|
|
||||||
.pipe(connect.reload());
|
|
||||||
});
|
|
||||||
|
|
||||||
gulp.task('build:prod', gulpsync.sync(['clean', 'javascript:prod', 'css:prod', 'app:html:prod', 'app:entry:prod', 'assets']));
|
|
||||||
gulp.task('build:dev', gulpsync.sync(['clean', 'javascript:dev', 'css:dev', 'app:html:dev', 'app:entry:dev', 'assets']));
|
|
||||||
gulp.task('build', ['build:prod']);
|
|
||||||
|
|
||||||
gulp.task('live_reload', function() {
|
|
||||||
connect.server({
|
|
||||||
livereload: true,
|
|
||||||
root: 'dist',
|
|
||||||
port: '8000'
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
gulp.task('watch', ['live_reload'], function() {
|
|
||||||
gulp.watch('src/**/*.js', ['app:javascript:dev']);
|
|
||||||
gulp.watch(vendor_css, ['vendor:css:dev']);
|
|
||||||
gulp.watch(app_sass, ['app:sass:dev']);
|
|
||||||
gulp.watch(assets_images, ['assets:images']);
|
|
||||||
gulp.watch(assets_media, ['assets:media']);
|
|
||||||
gulp.watch(assets_fonts, ['assets:fonts']);
|
|
||||||
gulp.watch(app_html, ['app:html:dev']);
|
|
||||||
gulp.watch(app_entry, ['app:entry:dev']);
|
|
||||||
});
|
|
||||||
|
|
||||||
gulp.task('serve', gulpsync.sync(['build:dev', 'watch']));
|
|
||||||
@ -1,43 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "wi-front",
|
|
||||||
"version": "1.0.0",
|
|
||||||
"description": "",
|
|
||||||
"main": "index.js",
|
|
||||||
"scripts": {
|
|
||||||
"test": "echo \"Error: no test specified\" && exit 1"
|
|
||||||
},
|
|
||||||
"author": "",
|
|
||||||
"license": "MIT",
|
|
||||||
"devDependencies": {
|
|
||||||
"babel-preset-es2015": "^6.22.0",
|
|
||||||
"babelify": "^7.3.0",
|
|
||||||
"brfs": "^1.4.3",
|
|
||||||
"browserify": "^13.3.0",
|
|
||||||
"del": "^2.2.2",
|
|
||||||
"gulp": "^3.9.1",
|
|
||||||
"gulp-angular-templatecache": "^2.0.0",
|
|
||||||
"gulp-concat": "^2.6.1",
|
|
||||||
"gulp-connect": "^5.0.0",
|
|
||||||
"gulp-cssnano": "^2.1.2",
|
|
||||||
"gulp-htmlmin": "^3.0.0",
|
|
||||||
"gulp-sass": "^3.1.0",
|
|
||||||
"gulp-sourcemaps": "^2.4.0",
|
|
||||||
"gulp-sync": "^0.1.4",
|
|
||||||
"gulp-uglify": "^2.0.0",
|
|
||||||
"gulp-util": "^3.0.8",
|
|
||||||
"lodash": "^4.17.4",
|
|
||||||
"vinyl-buffer": "^1.0.0",
|
|
||||||
"vinyl-source-stream": "^1.1.0"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"angular": "^1.6.1",
|
|
||||||
"angular-animate": "^1.6.1",
|
|
||||||
"angular-aria": "^1.6.1",
|
|
||||||
"angular-datatables": "^0.6.0",
|
|
||||||
"angular-loading-bar": "^0.9.0",
|
|
||||||
"angular-material": "^1.1.1",
|
|
||||||
"angular-ui-router": "^0.4.2",
|
|
||||||
"mdi": "^1.8.36",
|
|
||||||
"ngstorage": "^0.3.11"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1 +0,0 @@
|
|||||||
<ui-view layout-fill></ui-view>
|
|
||||||
@ -1,15 +0,0 @@
|
|||||||
(function() {
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
var app = angular.module('app');
|
|
||||||
|
|
||||||
app.component('appRoot', {
|
|
||||||
templateUrl: 'app/app.html',
|
|
||||||
controller: ['$state', function($state) {
|
|
||||||
var self = this;
|
|
||||||
|
|
||||||
this.$onInit = function () {
|
|
||||||
};
|
|
||||||
}]
|
|
||||||
});
|
|
||||||
})();
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
(function() {
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
require('./login/login.js');
|
|
||||||
require('./portal/portal.js');
|
|
||||||
})();
|
|
||||||
@ -1,24 +0,0 @@
|
|||||||
<md-content layout-fill layout="column" layout-align="start center">
|
|
||||||
<h2 class="login-title">Login</h2>
|
|
||||||
<form layout="column" class="md-whiteframe-4dp login-panel" ng-submit="$ctrl.doLogin()">
|
|
||||||
<md-input-container class="md-block">
|
|
||||||
<label>Username</label>
|
|
||||||
<input name="username" required ng-model="$ctrl.username" ng-disabled="$ctrl.loggingIn" aria-label="Username">
|
|
||||||
</md-input-container>
|
|
||||||
|
|
||||||
<md-input-container class="md-block">
|
|
||||||
<label>Password</label>
|
|
||||||
<input type="password" name="password" required ng-model="$ctrl.password" ng-disabled="$ctrl.loggingIn" aria-label="Password">
|
|
||||||
</md-input-container>
|
|
||||||
|
|
||||||
<div layout="row">
|
|
||||||
<md-checkbox ng-model="$ctrl.rememberMe" ng-disabled="$ctrl.loggingIn" aria-label="Remember Me">Remember Me</md-checkbox>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<span class="login-error-message" ng-show="$ctrl.error">
|
|
||||||
Unauthorized login.
|
|
||||||
</span>
|
|
||||||
|
|
||||||
<md-button type="submit" class="md-raised md-primary" ng-disabled="!$ctrl.canLogin()">Login</md-button>
|
|
||||||
</form>
|
|
||||||
</md-content>
|
|
||||||
@ -1,52 +0,0 @@
|
|||||||
(function() {
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
var app = angular.module('app');
|
|
||||||
|
|
||||||
app.component('login', {
|
|
||||||
templateUrl: 'app/components/login/login.html',
|
|
||||||
controller: ['$state', 'appConfig', 'loginState', '$http', function($state, appConfig, loginState, $http) {
|
|
||||||
var self = this;
|
|
||||||
self.username = '';
|
|
||||||
self.password = '';
|
|
||||||
self.rememberMe = false;
|
|
||||||
self.doLogin = doLogin;
|
|
||||||
self.canLogin = canLogin;
|
|
||||||
self.loggingIn = false;
|
|
||||||
self.error = false;
|
|
||||||
|
|
||||||
function doLogin() {
|
|
||||||
if(!canLogin()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
self.loggingIn = true;
|
|
||||||
self.error = false;
|
|
||||||
var data = { username: self.username, password: self.password };
|
|
||||||
$http.post(appConfig.config.api_url + '/api/token', data)
|
|
||||||
.then(function(response) {
|
|
||||||
self.loggingIn = false;
|
|
||||||
loginState.login(self.username, response.data, self.rememberMe);
|
|
||||||
}, function(response) {
|
|
||||||
self.loggingIn = false;
|
|
||||||
self.error = true;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function canLogin() {
|
|
||||||
if(self.username.length === 0 || self.password.length === 0 || self.loggingIn) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
self.$onInit = function () {
|
|
||||||
//If logged in just goto the next state
|
|
||||||
if(loginState.isLoggedIn()) {
|
|
||||||
$state.go(loginState.nextState, loginState.nextStateParams);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}]
|
|
||||||
});
|
|
||||||
})();
|
|
||||||
@ -1,16 +0,0 @@
|
|||||||
.login-panel
|
|
||||||
{
|
|
||||||
width: 400px;
|
|
||||||
padding: 28px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.login-title
|
|
||||||
{
|
|
||||||
margin: 3em 0 3em 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.login-error-message
|
|
||||||
{
|
|
||||||
color: rgba(255, 40, 40, 200);
|
|
||||||
padding: 8px;
|
|
||||||
}
|
|
||||||
@ -1,26 +0,0 @@
|
|||||||
<md-content layout-fill>
|
|
||||||
<md-toolbar class="md-hue-2">
|
|
||||||
<div class="md-toolbar-tools">
|
|
||||||
<md-button class="md-icon-button" aria-label="menu">
|
|
||||||
<md-icon class="mdi mdi-menu mdi-24px"></md-icon>
|
|
||||||
</md-button>
|
|
||||||
<h2>
|
|
||||||
<span>EQEmu WI Portal</span>
|
|
||||||
</h2>
|
|
||||||
<span flex></span>
|
|
||||||
<md-menu md-offset="-20 -20">
|
|
||||||
<md-button class="md-icon-button" aria-label="More" ng-click="$ctrl.openMenu($mdOpenMenu, $event)">
|
|
||||||
<md-icon md-menu-origin class="mdi mdi-dots-vertical mdi-24px"></md-icon>
|
|
||||||
</md-button>
|
|
||||||
<md-menu-content width="4">
|
|
||||||
<md-menu-item>
|
|
||||||
<md-button ng-click="$ctrl.logout($event)">
|
|
||||||
<md-iconclass="mdi mdi-power mdi-24px" md-menu-align-target></md-icon>
|
|
||||||
Logout
|
|
||||||
</md-button>
|
|
||||||
</md-menu-item>
|
|
||||||
</md-menu-content>
|
|
||||||
</md-menu>
|
|
||||||
</div>
|
|
||||||
</md-toolbar>
|
|
||||||
</md-content>
|
|
||||||
@ -1,39 +0,0 @@
|
|||||||
(function() {
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
var app = angular.module('app');
|
|
||||||
|
|
||||||
app.component('portal', {
|
|
||||||
templateUrl: 'app/components/portal/portal.html',
|
|
||||||
controller: ['$state', '$mdDialog', 'loginState', function($state, $mdDialog, loginState) {
|
|
||||||
var self = this;
|
|
||||||
self.openMenu = openMenu;
|
|
||||||
self.logout = logout;
|
|
||||||
|
|
||||||
function openMenu($mdOpenMenu, ev) {
|
|
||||||
self.originatorEv = ev;
|
|
||||||
$mdOpenMenu(ev);
|
|
||||||
};
|
|
||||||
|
|
||||||
function logout(ev) {
|
|
||||||
var confirm = $mdDialog.confirm()
|
|
||||||
.title('Logout')
|
|
||||||
.textContent('Are you sure you wish to logout?')
|
|
||||||
.ariaLabel('Logout')
|
|
||||||
.targetEvent(ev)
|
|
||||||
.ok('Logout')
|
|
||||||
.cancel('Cancel');
|
|
||||||
|
|
||||||
$mdDialog.show(confirm).then(function() {
|
|
||||||
loginState.logout();
|
|
||||||
$state.go('login');
|
|
||||||
}, function() {
|
|
||||||
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
self.$onInit = function () {
|
|
||||||
};
|
|
||||||
}]
|
|
||||||
});
|
|
||||||
})();
|
|
||||||
@ -1,24 +0,0 @@
|
|||||||
(function(){
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
var app = angular.module('app');
|
|
||||||
|
|
||||||
app.factory('applyAuthIntercept', ['$injector', function($injector) {
|
|
||||||
return {
|
|
||||||
request: function(config) {
|
|
||||||
if(config.anonOnly) {
|
|
||||||
return config;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!config.headers) {
|
|
||||||
config.headers = { };
|
|
||||||
}
|
|
||||||
|
|
||||||
var loginState = $injector.get('loginState');
|
|
||||||
config.headers.Authorization = 'Bearer ' + loginState.token;
|
|
||||||
|
|
||||||
return config;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}]);
|
|
||||||
})();
|
|
||||||
@ -1,25 +0,0 @@
|
|||||||
(function(){
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
var app = angular.module('app');
|
|
||||||
|
|
||||||
app.factory('checkAuthIntercept', ['$q', '$injector', function($q, $injector) {
|
|
||||||
return {
|
|
||||||
responseError: function(response) {
|
|
||||||
if(response.status === 401) {
|
|
||||||
var $state = $injector.get('$state');
|
|
||||||
var loginState = $injector.get('loginState');
|
|
||||||
|
|
||||||
if($state.current.name !== 'login') {
|
|
||||||
loginState.nextState = $state.current.name;
|
|
||||||
loginState.nextStateParams = {};
|
|
||||||
loginState.logout();
|
|
||||||
$state.go('login');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $q.reject(response);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}]);
|
|
||||||
})();
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
(function() {
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
require('./apply-auth.js');
|
|
||||||
require('./check-auth.js');
|
|
||||||
})();
|
|
||||||
@ -1,21 +0,0 @@
|
|||||||
(function() {
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
var app = angular.module('app');
|
|
||||||
|
|
||||||
app.config(['$stateProvider', '$urlRouterProvider',
|
|
||||||
function($stateProvider, $urlRouterProvider) {
|
|
||||||
$urlRouterProvider.otherwise('/login');
|
|
||||||
|
|
||||||
$stateProvider.state('login', {
|
|
||||||
url: '/login',
|
|
||||||
template: '<login></login>'
|
|
||||||
});
|
|
||||||
|
|
||||||
$stateProvider.state('portal', {
|
|
||||||
url: '/portal',
|
|
||||||
template: '<portal></portal>'
|
|
||||||
});
|
|
||||||
}
|
|
||||||
]);
|
|
||||||
})();
|
|
||||||
@ -1,5 +0,0 @@
|
|||||||
(function() {
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
require('./core.js');
|
|
||||||
})();
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
(function() {
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
var fs = require('fs');
|
|
||||||
var app = angular.module('app');
|
|
||||||
|
|
||||||
app.service('appConfig', function() {
|
|
||||||
this.config = JSON.parse(fs.readFileSync(__dirname + '/../../../config.json', 'utf8'));
|
|
||||||
});
|
|
||||||
})();
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
(function() {
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
require('./config.js');
|
|
||||||
require('./login.js');
|
|
||||||
})();
|
|
||||||
@ -1,78 +0,0 @@
|
|||||||
(function() {
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
var app = angular.module('app');
|
|
||||||
|
|
||||||
app.service('loginState', ['$rootScope', '$http', '$httpParamSerializer', '$state', '$localStorage', '$sessionStorage',
|
|
||||||
function($rootScope, $http, $httpParamSerializer, $state, $localStorage, $sessionStorage) {
|
|
||||||
var self = this;
|
|
||||||
self.isLoggedIn = isLoggedIn;
|
|
||||||
self.logout = logout;
|
|
||||||
self.login = login;
|
|
||||||
self.nextState = 'portal';
|
|
||||||
self.nextStateParams = { };
|
|
||||||
self.token = '';
|
|
||||||
|
|
||||||
function isLoggedIn() {
|
|
||||||
var storage_bucket = null;
|
|
||||||
var token = null;
|
|
||||||
|
|
||||||
if($localStorage.token) {
|
|
||||||
storage_bucket = $localStorage;
|
|
||||||
token = $localStorage.token;
|
|
||||||
} else if($sessionStorage.token) {
|
|
||||||
storage_bucket = $sessionStorage;
|
|
||||||
token = $sessionStorage.token;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(token) {
|
|
||||||
var expires = storage_bucket.expires;
|
|
||||||
var username = storage_bucket.username;
|
|
||||||
var expire_date = new Date(expires);
|
|
||||||
var current_date = new Date();
|
|
||||||
|
|
||||||
if(current_date > expire_date) {
|
|
||||||
self.logout();
|
|
||||||
} else {
|
|
||||||
self.token = token;
|
|
||||||
self.expires = expires;
|
|
||||||
self.username = username;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
function logout() {
|
|
||||||
delete $localStorage.token;
|
|
||||||
delete $localStorage.expires;
|
|
||||||
delete $localStorage.username;
|
|
||||||
delete $sessionStorage.token;
|
|
||||||
delete $sessionStorage.expires;
|
|
||||||
delete $sessionStorage.username;
|
|
||||||
self.wasLoggedInAs = self.username;
|
|
||||||
self.username = null;
|
|
||||||
self.token = null;
|
|
||||||
self.expires = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
function login(username, loginObj, rememberMe) {
|
|
||||||
self.username = username;
|
|
||||||
self.token = loginObj.token;
|
|
||||||
self.expires = loginObj.expires;
|
|
||||||
|
|
||||||
if(rememberMe) {
|
|
||||||
$localStorage.username = self.username;
|
|
||||||
$localStorage.token = self.token;
|
|
||||||
$localStorage.expires = self.expires;
|
|
||||||
} else {
|
|
||||||
$sessionStorage.username = self.username;
|
|
||||||
$sessionStorage.token = self.token;
|
|
||||||
$sessionStorage.expires = self.expires;
|
|
||||||
}
|
|
||||||
|
|
||||||
$state.go(self.nextState, self.nextStateParams);
|
|
||||||
}
|
|
||||||
}]);
|
|
||||||
})();
|
|
||||||
@ -1,19 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
||||||
<meta name="description" content="Web portal for EQEmu WI Front">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
||||||
<title>EQEmu WI Front</title>
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,600,700">
|
|
||||||
<link rel="stylesheet" href="css/vendor.css">
|
|
||||||
<link rel="stylesheet" href="css/app.css">
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<app-root>Loading...</app-root>
|
|
||||||
<script type="text/javascript" src="js/bundle.js"></script>
|
|
||||||
<script type="text/javascript" src="js/templates.js"></script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@ -1,40 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
var $ = global.jQuery = require('jquery');
|
|
||||||
require('datatables.net')(jQuery);
|
|
||||||
|
|
||||||
var angular = require('angular');
|
|
||||||
require('angular-material');
|
|
||||||
require('angular-ui-router');
|
|
||||||
require('angular-loading-bar');
|
|
||||||
require('angular-animate');
|
|
||||||
require('ngstorage');
|
|
||||||
require('angular-datatables');
|
|
||||||
|
|
||||||
var app = angular.module('app', ['ngMaterial', 'ui.router', 'angular-loading-bar', 'ngAnimate' ,'ngStorage', 'templates', 'datatables']);
|
|
||||||
|
|
||||||
app.config(['$sceDelegateProvider', 'cfpLoadingBarProvider', '$animateProvider', '$compileProvider', '$localStorageProvider', '$sessionStorageProvider', '$httpProvider',
|
|
||||||
function($sceDelegateProvider, cfpLoadingBarProvider, $animateProvider, $compileProvider, $localStorageProvider, $sessionStorageProvider, $httpProvider) {
|
|
||||||
$sceDelegateProvider.resourceUrlWhitelist([
|
|
||||||
'self'
|
|
||||||
]);
|
|
||||||
|
|
||||||
$animateProvider.classNameFilter(/^((?!(fa-spinner|fa-cog|fa-refresh|fa-circle-o-notch)).)*$/);
|
|
||||||
|
|
||||||
$compileProvider.preAssignBindingsEnabled(true);
|
|
||||||
|
|
||||||
$localStorageProvider.setKeyPrefix('eqemu_wi_');
|
|
||||||
$sessionStorageProvider.setKeyPrefix('eqemu_wi_');
|
|
||||||
|
|
||||||
$httpProvider.interceptors.push('applyAuthIntercept');
|
|
||||||
$httpProvider.interceptors.push('checkAuthIntercept');
|
|
||||||
}]);
|
|
||||||
|
|
||||||
angular.element(function() {
|
|
||||||
angular.bootstrap(document, ['app']);
|
|
||||||
});
|
|
||||||
|
|
||||||
require('./app/app.js');
|
|
||||||
require('./app/services');
|
|
||||||
require('./app/routes');
|
|
||||||
require('./app/components');
|
|
||||||
require('./app/interceptors');
|
|
||||||
Loading…
x
Reference in New Issue
Block a user