diff --git a/Gulpfile.js b/Gulpfile.js index c7a845b3..553197d9 100644 --- a/Gulpfile.js +++ b/Gulpfile.js @@ -5,29 +5,36 @@ var templateCache = require('gulp-angular-templatecache') var globby = require('globby') var template = require('gulp-template') var concat = require('gulp-concat') - var del = require('del') var runSequence = require('run-sequence') - -var rev = require('gulp-rev') var merge = require('merge-stream') +var changed = require('gulp-changed') +var cached = require('gulp-cached') +var remember = require('gulp-remember') +var livereload = require('gulp-livereload') +var childProcess = require('child_process') + +// for Dist +var rev = require('gulp-rev') var ngAnnotate = require('gulp-ng-annotate') var uglify = require('gulp-uglify') var minifyCss = require('gulp-minify-css') -var livereload = require('gulp-livereload') - var config = require('./build.config.js') gulp.task('js', function(){ - return gulp.src(['src/**/*.js']).pipe(gulp.dest('build')) + return gulp.src(['src/**/*.js']) + .pipe(changed('build')) + .pipe(gulp.dest('build')) }) gulp.task('sass', function () { return gulp.src('src/**/*.scss') - .pipe(sass({errLogToConsole: true})) + .pipe(cached('styles')) + .pipe(sass().on('error', sass.logError)) .pipe(autoprefixer()) + .pipe(remember('styles')) .pipe(concat('all.css')) .pipe(gulp.dest('build')) .pipe(livereload()) @@ -63,8 +70,25 @@ gulp.task('index', function () { .pipe(livereload()) }) +gulp.task('vendor', function () { + var vendors = config.vendors + + var vendorFiles = vendors.map(function (vendor) { + return vendor.src + }) + + return gulp.src(vendorFiles) + .pipe(gulp.dest('build/vendor')) +}) + +gulp.task('resources', function () { + return gulp.src('resources/**/*') + .pipe(changed('build/resources')) + .pipe(gulp.dest('build/resources')) +}) + gulp.task('build', function (cb) { - runSequence(['js', 'sass', 'tpls', 'vendor'], 'index', cb) + runSequence(['js', 'sass', 'tpls', 'vendor', 'resources'], 'index', cb) }) gulp.task('watch', function (cb) { @@ -84,16 +108,13 @@ gulp.task('del', function (cb) { }) gulp.task('default', function (cb) { - runSequence('del', 'build', 'watch', cb) -}) - -gulp.task('vendor', function () { - var vendors = config.vendors - - vendorFiles = vendors.map(function (vendor) { - return vendor.src + var spawn = childProcess.spawn('http-server', ['build']) + spawn.stdout.on('data', function (data) { + console.log('OUT: ' + data) + }) + spawn.stderr.on('data', function (data) { + console.log('ERR: ' + data) }) - return gulp.src(vendorFiles) - .pipe(gulp.dest('build/vendor')) + runSequence('del', 'build', 'watch', cb) }) diff --git a/build.config.js b/build.config.js index b6635308..34aef705 100644 --- a/build.config.js +++ b/build.config.js @@ -39,6 +39,11 @@ module.exports = { name:'satellizer', src:'node_modules/satellizer/satellizer.js', cdn:'https://cdn.jsdelivr.net/satellizer/0.10.1/satellizer.min.js' + }, + { + name:'angular-md5', + src:'node_modules/angular-md5/angular-md5.js', + cdn:'https://raw.githubusercontent.com/gdi2290/angular-md5/v0.1.7/angular-md5.min.js' } ] } diff --git a/package.json b/package.json index 48df1d66..0e44d29e 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,7 @@ "@rokt33r/angular-ui-ace": "^0.2.3", "angular": "^1.3.15", "angular-bootstrap": "^0.12.0", + "angular-md5": "^0.1.7", "angular-sanitize": "^1.3.15", "angular-ui-router": "^0.2.15", "font-awesome": "^4.3.0", @@ -42,10 +43,13 @@ "gulp": "^3.8.11", "gulp-angular-templatecache": "^1.6.0", "gulp-autoprefixer": "^2.3.0", + "gulp-cached": "^1.1.0", + "gulp-changed": "^1.2.1", "gulp-concat": "^2.5.2", "gulp-livereload": "^3.8.0", "gulp-minify-css": "^1.1.1", "gulp-ng-annotate": "^0.5.3", + "gulp-remember": "^0.3.0", "gulp-rev": "^4.0.0", "gulp-sass": "^2.0.1", "gulp-template": "^3.0.0", diff --git a/resources/fonts/FontAwesome.otf b/resources/fonts/FontAwesome.otf new file mode 100644 index 00000000..f7936cc1 Binary files /dev/null and b/resources/fonts/FontAwesome.otf differ diff --git a/resources/fonts/fontawesome-webfont.eot b/resources/fonts/fontawesome-webfont.eot new file mode 100644 index 00000000..33b2bb80 Binary files /dev/null and b/resources/fonts/fontawesome-webfont.eot differ diff --git a/resources/fonts/fontawesome-webfont.svg b/resources/fonts/fontawesome-webfont.svg new file mode 100644 index 00000000..1ee89d43 --- /dev/null +++ b/resources/fonts/fontawesome-webfont.svg @@ -0,0 +1,565 @@ + + + \ No newline at end of file diff --git a/resources/fonts/fontawesome-webfont.ttf b/resources/fonts/fontawesome-webfont.ttf new file mode 100644 index 00000000..ed9372f8 Binary files /dev/null and b/resources/fonts/fontawesome-webfont.ttf differ diff --git a/resources/fonts/fontawesome-webfont.woff b/resources/fonts/fontawesome-webfont.woff new file mode 100644 index 00000000..8b280b98 Binary files /dev/null and b/resources/fonts/fontawesome-webfont.woff differ diff --git a/resources/fonts/fontawesome-webfont.woff2 b/resources/fonts/fontawesome-webfont.woff2 new file mode 100644 index 00000000..3311d585 Binary files /dev/null and b/resources/fonts/fontawesome-webfont.woff2 differ diff --git a/src/app.js b/src/app.js new file mode 100644 index 00000000..619add21 --- /dev/null +++ b/src/app.js @@ -0,0 +1,19 @@ +/* global angular */ +angular.module('codexen', [ + 'ngSanitize', + 'ui.select', + 'ui.ace', + 'ui.router', + 'ui.bootstrap', + 'satellizer', + 'angular-md5', + 'templates', + 'codexen.config', + 'codexen.directives', + 'codexen.services', + 'codexen.states']) +angular.module('templates', []) +angular.module('codexen.config', []) +angular.module('codexen.directives', []) +angular.module('codexen.services', []) +angular.module('codexen.states', []) diff --git a/src/config/satellizer.js b/src/config/satellizer.js new file mode 100644 index 00000000..0ea09032 --- /dev/null +++ b/src/config/satellizer.js @@ -0,0 +1,8 @@ +angular.module('codexen.config') + .constant('apiUrl', 'http://localhost:8000/') + .config(function ($authProvider, $httpProvider) { + $authProvider.baseUrl = 'http://localhost:8000/' + + $httpProvider.defaults.useXDomain = true + delete $httpProvider.defaults.headers.common['X-Requested-With'] + }) diff --git a/src/directives/side-nav.js b/src/directives/side-nav.js new file mode 100644 index 00000000..0370f7b2 --- /dev/null +++ b/src/directives/side-nav.js @@ -0,0 +1,41 @@ +angular.module('codexen.directives') + .directive('sideNav', function(){ + return { + templateUrl:'directives/side-nav.tpl.html', + controller:'SideNavController as vm' + } + }) + .controller('SideNavController', function($auth, User, $rootScope, $scope){ + var vm = this + + vm.isAuthenticated = $auth.isAuthenticated() + + var reloadUser = function(){ + if(vm.isAuthenticated){ + User.me().success(function (data){ + console.log('currentUser', data) + vm.currentUser = data.user + }) + } + } + reloadUser() + + vm.signOut = function () { + $auth.logout() + .then(function () { + console.log('Sign Out') + $rootScope.$broadcast('userSignOut') + }) + } + + $scope.$on('userSignIn', function () { + vm.isAuthenticated = true + reloadUser() + }) + + $scope.$on('userSignOut', function () { + vm.isAuthenticated = false + vm.currentUser = null + + }) + }) diff --git a/src/directives/side-nav.tpl.html b/src/directives/side-nav.tpl.html new file mode 100644 index 00000000..152ef9e3 --- /dev/null +++ b/src/directives/side-nav.tpl.html @@ -0,0 +1,26 @@ + +
Side Nav
+ diff --git a/src/index.html b/src/index.html index 41d003e2..a308531b 100644 --- a/src/index.html +++ b/src/index.html @@ -12,9 +12,14 @@