From 4cc2f6e51dd97235d4e79a1e1d8e9affc406d489 Mon Sep 17 00:00:00 2001 From: Andrea Reginato Date: Tue, 20 May 2014 17:43:51 +0200 Subject: [PATCH 01/30] First fersion of oauth-ng documentation --- Gruntfile.js | 413 --------- LICENSE | 20 - README.md | 51 +- app/.buildignore | 1 - app/.htaccess | 543 ------------ app/404.html | 157 ---- app/favicon.ico | Bin 4904 -> 0 bytes app/images/configurations.png | Bin 74437 -> 0 bytes app/images/examples.png | Bin 96540 -> 0 bytes app/images/glyphicons-halflings-white.png | Bin 8777 -> 0 bytes app/images/glyphicons-halflings.png | Bin 12727 -> 0 bytes app/images/index-header.png | Bin 262282 -> 0 bytes app/index.html | 42 - app/robots.txt | 3 - app/scripts/app.js | 16 - app/scripts/directives/oauth.js | 98 --- app/scripts/interceptors/oauth-interceptor.js | 28 - app/scripts/services/access-token.js | 151 ---- app/scripts/services/endpoint.js | 48 -- app/scripts/services/profile.js | 13 - app/styles/main.css | 798 ------------------ app/views/templates/button.html | 5 - app/views/templates/default.html | 5 - bower.json | 28 - dist/ng-oauth.js | 361 -------- dist/ng-oauth.min.js | 2 - dist/views/templates/button.html | 5 - dist/views/templates/default.html | 5 - index.html | 465 ++++++++++ karma.conf.js | 64 -- package.json | 55 -- public/icons/LICENSE.txt | 21 + public/icons/README.txt | 75 ++ public/icons/config.json | 118 +++ public/icons/css/animation.css | 85 ++ public/icons/css/slate-codes.css | 19 + public/icons/css/slate-embedded.css | 72 ++ public/icons/css/slate-ie7-codes.css | 19 + public/icons/css/slate-ie7.css | 30 + public/icons/css/slate.css | 70 ++ public/icons/demo.html | 290 +++++++ public/icons/font/slate.eot | Bin 0 -> 8428 bytes public/icons/font/slate.svg | 29 + public/icons/font/slate.ttf | Bin 0 -> 8272 bytes public/icons/font/slate.woff | Bin 0 -> 4880 bytes public/images/application.png | Bin 0 -> 35603 bytes public/images/result.png | Bin 0 -> 37383 bytes public/images/yeoman.png | Bin 0 -> 62397 bytes public/style.css | 227 +++++ test/runner.html | 10 - test/spec/directives/oauth.js | 259 ------ test/spec/services/access-token.js | 196 ----- test/spec/services/endpoint.js | 59 -- test/spec/services/profile.js | 85 -- 54 files changed, 1532 insertions(+), 3509 deletions(-) delete mode 100644 Gruntfile.js delete mode 100644 LICENSE delete mode 100644 app/.buildignore delete mode 100644 app/.htaccess delete mode 100644 app/404.html delete mode 100644 app/favicon.ico delete mode 100644 app/images/configurations.png delete mode 100644 app/images/examples.png delete mode 100644 app/images/glyphicons-halflings-white.png delete mode 100644 app/images/glyphicons-halflings.png delete mode 100644 app/images/index-header.png delete mode 100644 app/index.html delete mode 100644 app/robots.txt delete mode 100644 app/scripts/app.js delete mode 100644 app/scripts/directives/oauth.js delete mode 100644 app/scripts/interceptors/oauth-interceptor.js delete mode 100644 app/scripts/services/access-token.js delete mode 100644 app/scripts/services/endpoint.js delete mode 100644 app/scripts/services/profile.js delete mode 100644 app/styles/main.css delete mode 100644 app/views/templates/button.html delete mode 100644 app/views/templates/default.html delete mode 100644 bower.json delete mode 100644 dist/ng-oauth.js delete mode 100644 dist/ng-oauth.min.js delete mode 100644 dist/views/templates/button.html delete mode 100644 dist/views/templates/default.html create mode 100644 index.html delete mode 100644 karma.conf.js delete mode 100644 package.json create mode 100644 public/icons/LICENSE.txt create mode 100644 public/icons/README.txt create mode 100644 public/icons/config.json create mode 100644 public/icons/css/animation.css create mode 100644 public/icons/css/slate-codes.css create mode 100644 public/icons/css/slate-embedded.css create mode 100644 public/icons/css/slate-ie7-codes.css create mode 100644 public/icons/css/slate-ie7.css create mode 100644 public/icons/css/slate.css create mode 100644 public/icons/demo.html create mode 100644 public/icons/font/slate.eot create mode 100644 public/icons/font/slate.svg create mode 100644 public/icons/font/slate.ttf create mode 100644 public/icons/font/slate.woff create mode 100644 public/images/application.png create mode 100644 public/images/result.png create mode 100644 public/images/yeoman.png create mode 100644 public/style.css delete mode 100644 test/runner.html delete mode 100644 test/spec/directives/oauth.js delete mode 100644 test/spec/services/access-token.js delete mode 100644 test/spec/services/endpoint.js delete mode 100644 test/spec/services/profile.js diff --git a/Gruntfile.js b/Gruntfile.js deleted file mode 100644 index d856080..0000000 --- a/Gruntfile.js +++ /dev/null @@ -1,413 +0,0 @@ -// Generated on 2014-03-14 using generator-angular 0.7.1 -'use strict'; - -// # Globbing -// for performance reasons we're only matching one level down: -// 'test/spec/{,*/}*.js' -// use this if you want to recursively match all subfolders: -// 'test/spec/**/*.js' - -module.exports = function (grunt) { - - // Load grunt tasks automatically - require('load-grunt-tasks')(grunt); - - // Time how long tasks take. Can help when optimizing build times - require('time-grunt')(grunt); - - // configurable paths - var yeomanConfig = { - app: 'app', - dist: 'dist', - test: 'test' - }; - - try { - var component = require('./bower.json') - yeomanConfig.name = component.name || 'no-name'; - yeomanConfig.version = component.version || '0.0.0.undefined'; - } catch (e) {} - - - // Define the configuration for all the tasks - grunt.initConfig({ - - // Project settings - yeoman: yeomanConfig, - - // Watches files for changes and runs tasks based on the changed files - watch: { - js: { - files: ['<%= yeoman.app %>/scripts/{,*/}*.js'], - tasks: [], - options: { - livereload: true - } - }, - jsTest: { - files: ['test/spec/{,*/}*.js'], - tasks: ['newer:jshint:test', 'karma'] - }, - styles: { - files: ['<%= yeoman.app %>/styles/{,*/}*.css'], - tasks: ['newer:copy:styles', 'autoprefixer'] - }, - gruntfile: { - files: ['Gruntfile.js'] - }, - livereload: { - options: { - livereload: '<%= connect.options.livereload %>' - }, - files: [ - '<%= yeoman.app %>/{,*/}*.html', - '.tmp/styles/{,*/}*.css', - '<%= yeoman.app %>/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}' - ] - } - }, - - // The actual grunt server settings - connect: { - options: { - port: 9000, - // Change this to '0.0.0.0' to access the server from outside. - hostname: 'localhost', - livereload: 35729 - }, - livereload: { - options: { - open: true, - base: [ - '.tmp', - 'test', - '<%= yeoman.app %>' - ] - } - }, - test: { - options: { - port: 9001, - base: [ - '.tmp', - 'test', - '<%= yeoman.app %>' - ] - } - }, - dist: { - options: { - base: '<%= yeoman.dist %>' - } - } - }, - - // Make sure code styles are up to par and there are no obvious mistakes - jshint: { - options: { - jshintrc: '.jshintrc', - reporter: require('jshint-stylish') - }, - all: [ - 'Gruntfile.js', - '<%= yeoman.app %>/scripts/{,*/}*.js' - ], - test: { - options: { - jshintrc: 'test/.jshintrc' - }, - src: ['test/spec/{,*/}*.js'] - } - }, - - // Empties folders to start fresh - clean: { - dist: { - files: [{ - dot: true, - src: [ - '.tmp', - '<%= yeoman.dist %>/*', - '!<%= yeoman.dist %>/.git*' - ] - }] - }, - server: '.tmp' - }, - - // Add vendor prefixed styles - autoprefixer: { - options: { - browsers: ['last 1 version'] - }, - dist: { - files: [{ - expand: true, - cwd: '.tmp/styles/', - src: '{,*/}*.css', - dest: '.tmp/styles/' - }] - } - }, - - // Automatically inject Bower components into the app - 'bower-install': { - app: { - html: '<%= yeoman.app %>/index.html', - ignorePath: '<%= yeoman.app %>/' - } - }, - - // Renames files for browser caching purposes - rev: { - dist: { - files: { - src: [ - '<%= yeoman.dist %>/scripts/{,*/}*.js', - '<%= yeoman.dist %>/styles/{,*/}*.css', - '<%= yeoman.dist %>/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}', - '<%= yeoman.dist %>/styles/fonts/*' - ] - } - } - }, - - // Reads HTML for usemin blocks to enable smart builds that automatically - // concat, minify and revision files. Creates configurations in memory so - // additional tasks can operate on them - useminPrepare: { - html: '<%= yeoman.app %>/index.html', - options: { - dest: '<%= yeoman.dist %>' - } - }, - - // Performs rewrites based on rev and the useminPrepare configuration - usemin: { - html: ['<%= yeoman.dist %>/{,*/}*.html'], - css: ['<%= yeoman.dist %>/styles/{,*/}*.css'], - options: { - assetsDirs: ['<%= yeoman.dist %>'] - } - }, - - // The following *-min tasks produce minified files in the dist folder - imagemin: { - dist: { - files: [{ - //expand: true, - //cwd: '<%= yeoman.app %>/images', - //src: '{,*/}*.{png,jpg,jpeg,gif}', - //dest: '<%= yeoman.dist %>/images' - }] - } - }, - svgmin: { - dist: { - files: [{ - expand: true, - cwd: '<%= yeoman.app %>/images', - src: '{,*/}*.svg', - dest: '<%= yeoman.dist %>/images' - }] - } - }, - htmlmin: { - dist: { - options: { - collapseWhitespace: true, - collapseBooleanAttributes: true, - removeCommentsFromCDATA: true, - removeOptionalTags: true - }, - files: [{ - expand: true, - cwd: '<%= yeoman.dist %>', - src: ['*.html', 'views/{,*/}*.html'], - dest: '<%= yeoman.dist %>' - }] - } - }, - - // Allow the use of non-minsafe AngularJS files. Automatically makes it - // minsafe compatible so Uglify does not destroy the ng references - ngmin: { - dist: { - files: [{ - expand: true, - cwd: '.tmp/concat/scripts', - src: '*.js', - dest: '.tmp/concat/scripts' - }] - } - }, - - // Replace Google CDN references - cdnify: { - dist: { - html: ['<%= yeoman.dist %>/*.html'] - } - }, - - // Copies remaining files to places other tasks can use - copy: { - dist: { - files: [{ - expand: true, - dot: true, - cwd: '<%= yeoman.app %>', - dest: '<%= yeoman.dist %>', - src: [ - //'*.{ico,png,txt}', - //'.htaccess', - //'*.html', - 'views/{,*/}*.html', - //'bower_components/**/*', - //'images/{,*/}*.{webp}', - //'fonts/*' - ] - }, { - //expand: true, - //cwd: '.tmp/images', - //dest: '<%= yeoman.dist %>/images', - //src: ['generated/*'] - }] - }, - styles: { - //expand: true, - //cwd: '<%= yeoman.app %>/styles', - //dest: '.tmp/styles/', - //src: '{,*/}*.css' - } - }, - - // Run some tasks in parallel to speed up the build process - concurrent: { - server: [ - 'copy:styles' - ], - test: [ - 'copy:styles' - ], - dist: [ - 'copy:styles', - 'imagemin', - 'svgmin' - ] - }, - - // By default, your `index.html`'s will take care of - // minification. These next options are pre-configured if you do not wish - // to use the Usemin blocks. - // cssmin: { - // dist: { - // files: { - // '<%= yeoman.dist %>/styles/main.css': [ - // '.tmp/styles/{,*/}*.css', - // '<%= yeoman.app %>/styles/{,*/}*.css' - // ] - // } - // } - // }, - - //uglify: { - //options: { - //banner: '/* <%= yeoman.name %> - v<%= yeoman.version %> - ' + '<%= grunt.template.today("yyyy-mm-dd") %> */\n\n' - //} - //}, - - uglify: { - options: { - banner: '/* <%= yeoman.name %> - v<%= yeoman.version %> - ' + '<%= grunt.template.today("yyyy-mm-dd") %> */\n' - }, - dist: { - files: { - '<%= yeoman.dist %>/<%= yeoman.name %>.min.js': [ - '<%= yeoman.dist %>/<%= yeoman.name %>.js' - ] - } - } - }, - concat: { - options: { - banner: '/* <%= yeoman.name %> - v<%= yeoman.version %> - ' + '<%= grunt.template.today("yyyy-mm-dd") %> */\n\n' - }, - dist: { - files: { - '<%= yeoman.dist %>/<%= yeoman.name %>.js': [ - '.tmp/scripts/{,*/}*.js', - '<%= yeoman.app %>/scripts/{,*/}*.js' - ] - } - } - }, - - // Test settings - karma: { - unit: { - configFile: 'karma.conf.js', - singleRun: false - } - }, - 'string-replace': { - dist: { - files: { - './': 'dist/**/*.*' - }, - options: { - replacements: [{ - pattern: /views\/templates\/default\.html/g, - replacement: 'bower_components/oauth-ng/dist/views/templates/default.html' - }] - } - } - } - - }); - - - grunt.registerTask('serve', function (target) { - if (target === 'dist') { - return grunt.task.run(['build', 'connect:dist:keepalive']); - } - - grunt.task.run([ - 'clean:server', - 'bower-install', - 'concurrent:server', - 'autoprefixer', - 'connect:livereload', - 'watch' - ]); - }); - - grunt.registerTask('server', function () { - grunt.log.warn('The `server` task has been deprecated. Use `grunt serve` to start a server.'); - grunt.task.run(['serve']); - }); - - grunt.registerTask('test', [ - 'clean:server', - 'concurrent:test', - 'autoprefixer', - 'connect:test', - 'karma' - ]); - - grunt.registerTask('build', [ - 'clean:dist', - 'copy', - 'useminPrepare', - 'concat', - 'ngmin', - 'uglify', - 'concat', - 'string-replace', - ]); - - grunt.registerTask('default', [ - 'newer:jshint', - 'test', - 'build' - ]); -}; diff --git a/LICENSE b/LICENSE deleted file mode 100644 index e893381..0000000 --- a/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013 Andrea Reginato - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md index a6a6813..41e7b38 100644 --- a/README.md +++ b/README.md @@ -1,63 +1,36 @@ -# Angular OAuth 2.0 Directive +# AngularJS directive for OAuth 2.0 -AngularJS directive for [OAuth 2.0 Implicit Flow](http://tools.ietf.org/html/rfc6749#section-1.3.2). - - -## Documentation +Source code for the AngularJS directive for OAuth 2.0 [website](http://andreareginato.github.com/oauth-ng). +[![lelylan-ng](http://i.imgur.com/dLN4isF.png)](http://andreareginato.github.com/oauth-ng) ## Contributing Fork the repo on github and send a pull requests with topic branches. -Do not forget to provide specs to your contribution. - -### Setup - -* Fork and clone the repository -* Run `npm install` - -### Unit tests (karma) - -* `grunt karma:unit` - -### Creating your own distribution -* Fork and clone the repository -* Run `npm install` -* Run `grunt build` - -The new distribution files will be created in the `dist/` folder. - -### Coding guidelines - -Follow [github](https://github.com/styleguide/) guidelines. ### Feedback Use the [issue tracker](http://github.com/andreareginato/oauth-ng/issues) for bugs. -[Mail](mailto:touch@lelylan.com) or [Tweet](http://twitter.com/lelylan) us for any idea -that can improve the project. +[Mail](mailto:andreareginato@gmail.com) or [Tweet](http://twitter.com/andreareginato) +us for any idea that can improve the project. -### Links +## Links * [GIT Repository](http://github.com/andreareginato/oauth-ng) -* [Lelylan Dev Center](http://dev.lelylan.com) - +* [The OAuth Bible](http://oauthbible.com/) +* [Lelylan](http://lelylan.com) ## Authors [Andrea Reginato](http://twitter.com/andreareginato) +[Lelylan Dev Team](http://twitter.com/lelylan) ## Contributors -Special thanks to all [contributors](https://github.com/andreareginato/oauth-ng/contributors) +Special thanks to all [contributors](https://github.com/lelylan/lelylan-ng/contributors) for submitting patches. -## Changelog - -See [CHANGELOG](https://github.com/andreareginato/oauth-ng/blob/master/CHANGELOG.md) - -## Copyright +## License -Copyright (c) 2014 [Lelylan](http://lelylan.com). -See [LICENSE](https://github.com/andreareginato/oauth-ng/blob/master/LICENSE.md) for details. +See [license](https://github.com/lelylan/lelylan-ng/blob/master/LICENSE.md). diff --git a/app/.buildignore b/app/.buildignore deleted file mode 100644 index fc98b8e..0000000 --- a/app/.buildignore +++ /dev/null @@ -1 +0,0 @@ -*.coffee \ No newline at end of file diff --git a/app/.htaccess b/app/.htaccess deleted file mode 100644 index cb84cb9..0000000 --- a/app/.htaccess +++ /dev/null @@ -1,543 +0,0 @@ -# Apache Configuration File - -# (!) Using `.htaccess` files slows down Apache, therefore, if you have access -# to the main server config file (usually called `httpd.conf`), you should add -# this logic there: http://httpd.apache.org/docs/current/howto/htaccess.html. - -# ############################################################################## -# # CROSS-ORIGIN RESOURCE SHARING (CORS) # -# ############################################################################## - -# ------------------------------------------------------------------------------ -# | Cross-domain AJAX requests | -# ------------------------------------------------------------------------------ - -# Enable cross-origin AJAX requests. -# http://code.google.com/p/html5security/wiki/CrossOriginRequestSecurity -# http://enable-cors.org/ - -# -# Header set Access-Control-Allow-Origin "*" -# - -# ------------------------------------------------------------------------------ -# | CORS-enabled images | -# ------------------------------------------------------------------------------ - -# Send the CORS header for images when browsers request it. -# https://developer.mozilla.org/en/CORS_Enabled_Image -# http://blog.chromium.org/2011/07/using-cross-domain-images-in-webgl-and.html -# http://hacks.mozilla.org/2011/11/using-cors-to-load-webgl-textures-from-cross-domain-images/ - - - - - SetEnvIf Origin ":" IS_CORS - Header set Access-Control-Allow-Origin "*" env=IS_CORS - - - - -# ------------------------------------------------------------------------------ -# | Web fonts access | -# ------------------------------------------------------------------------------ - -# Allow access from all domains for web fonts - - - - Header set Access-Control-Allow-Origin "*" - - - - -# ############################################################################## -# # ERRORS # -# ############################################################################## - -# ------------------------------------------------------------------------------ -# | 404 error prevention for non-existing redirected folders | -# ------------------------------------------------------------------------------ - -# Prevent Apache from returning a 404 error for a rewrite if a directory -# with the same name does not exist. -# http://httpd.apache.org/docs/current/content-negotiation.html#multiviews -# http://www.webmasterworld.com/apache/3808792.htm - -Options -MultiViews - -# ------------------------------------------------------------------------------ -# | Custom error messages / pages | -# ------------------------------------------------------------------------------ - -# You can customize what Apache returns to the client in case of an error (see -# http://httpd.apache.org/docs/current/mod/core.html#errordocument), e.g.: - -ErrorDocument 404 /404.html - - -# ############################################################################## -# # INTERNET EXPLORER # -# ############################################################################## - -# ------------------------------------------------------------------------------ -# | Better website experience | -# ------------------------------------------------------------------------------ - -# Force IE to render pages in the highest available mode in the various -# cases when it may not: http://hsivonen.iki.fi/doctype/ie-mode.pdf. - - - Header set X-UA-Compatible "IE=edge" - # `mod_headers` can't match based on the content-type, however, we only - # want to send this header for HTML pages and not for the other resources - - Header unset X-UA-Compatible - - - -# ------------------------------------------------------------------------------ -# | Cookie setting from iframes | -# ------------------------------------------------------------------------------ - -# Allow cookies to be set from iframes in IE. - -# -# Header set P3P "policyref=\"/w3c/p3p.xml\", CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\"" -# - -# ------------------------------------------------------------------------------ -# | Screen flicker | -# ------------------------------------------------------------------------------ - -# Stop screen flicker in IE on CSS rollovers (this only works in -# combination with the `ExpiresByType` directives for images from below). - -# BrowserMatch "MSIE" brokenvary=1 -# BrowserMatch "Mozilla/4.[0-9]{2}" brokenvary=1 -# BrowserMatch "Opera" !brokenvary -# SetEnvIf brokenvary 1 force-no-vary - - -# ############################################################################## -# # MIME TYPES AND ENCODING # -# ############################################################################## - -# ------------------------------------------------------------------------------ -# | Proper MIME types for all files | -# ------------------------------------------------------------------------------ - - - - # Audio - AddType audio/mp4 m4a f4a f4b - AddType audio/ogg oga ogg - - # JavaScript - # Normalize to standard type (it's sniffed in IE anyways): - # http://tools.ietf.org/html/rfc4329#section-7.2 - AddType application/javascript js jsonp - AddType application/json json - - # Video - AddType video/mp4 mp4 m4v f4v f4p - AddType video/ogg ogv - AddType video/webm webm - AddType video/x-flv flv - - # Web fonts - AddType application/font-woff woff - AddType application/vnd.ms-fontobject eot - - # Browsers usually ignore the font MIME types and sniff the content, - # however, Chrome shows a warning if other MIME types are used for the - # following fonts. - AddType application/x-font-ttf ttc ttf - AddType font/opentype otf - - # Make SVGZ fonts work on iPad: - # https://twitter.com/FontSquirrel/status/14855840545 - AddType image/svg+xml svg svgz - AddEncoding gzip svgz - - # Other - AddType application/octet-stream safariextz - AddType application/x-chrome-extension crx - AddType application/x-opera-extension oex - AddType application/x-shockwave-flash swf - AddType application/x-web-app-manifest+json webapp - AddType application/x-xpinstall xpi - AddType application/xml atom rdf rss xml - AddType image/webp webp - AddType image/x-icon ico - AddType text/cache-manifest appcache manifest - AddType text/vtt vtt - AddType text/x-component htc - AddType text/x-vcard vcf - - - -# ------------------------------------------------------------------------------ -# | UTF-8 encoding | -# ------------------------------------------------------------------------------ - -# Use UTF-8 encoding for anything served as `text/html` or `text/plain`. -AddDefaultCharset utf-8 - -# Force UTF-8 for certain file formats. - - AddCharset utf-8 .atom .css .js .json .rss .vtt .webapp .xml - - - -# ############################################################################## -# # URL REWRITES # -# ############################################################################## - -# ------------------------------------------------------------------------------ -# | Rewrite engine | -# ------------------------------------------------------------------------------ - -# Turning on the rewrite engine and enabling the `FollowSymLinks` option is -# necessary for the following directives to work. - -# If your web host doesn't allow the `FollowSymlinks` option, you may need to -# comment it out and use `Options +SymLinksIfOwnerMatch` but, be aware of the -# performance impact: http://httpd.apache.org/docs/current/misc/perf-tuning.html#symlinks - -# Also, some cloud hosting services require `RewriteBase` to be set: -# http://www.rackspace.com/knowledge_center/frequently-asked-question/why-is-mod-rewrite-not-working-on-my-site - - - Options +FollowSymlinks - # Options +SymLinksIfOwnerMatch - RewriteEngine On - # RewriteBase / - - -# ------------------------------------------------------------------------------ -# | Suppressing / Forcing the "www." at the beginning of URLs | -# ------------------------------------------------------------------------------ - -# The same content should never be available under two different URLs especially -# not with and without "www." at the beginning. This can cause SEO problems -# (duplicate content), therefore, you should choose one of the alternatives and -# redirect the other one. - -# By default option 1 (no "www.") is activated: -# http://no-www.org/faq.php?q=class_b - -# If you'd prefer to use option 2, just comment out all the lines from option 1 -# and uncomment the ones from option 2. - -# IMPORTANT: NEVER USE BOTH RULES AT THE SAME TIME! - -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Option 1: rewrite www.example.com → example.com - - - RewriteCond %{HTTPS} !=on - RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] - RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L] - - -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Option 2: rewrite example.com → www.example.com - -# Be aware that the following might not be a good idea if you use "real" -# subdomains for certain parts of your website. - -# -# RewriteCond %{HTTPS} !=on -# RewriteCond %{HTTP_HOST} !^www\..+$ [NC] -# RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] -# - - -# ############################################################################## -# # SECURITY # -# ############################################################################## - -# ------------------------------------------------------------------------------ -# | Content Security Policy (CSP) | -# ------------------------------------------------------------------------------ - -# You can mitigate the risk of cross-site scripting and other content-injection -# attacks by setting a Content Security Policy which whitelists trusted sources -# of content for your site. - -# The example header below allows ONLY scripts that are loaded from the current -# site's origin (no inline scripts, no CDN, etc). This almost certainly won't -# work as-is for your site! - -# To get all the details you'll need to craft a reasonable policy for your site, -# read: http://html5rocks.com/en/tutorials/security/content-security-policy (or -# see the specification: http://w3.org/TR/CSP). - -# -# Header set Content-Security-Policy "script-src 'self'; object-src 'self'" -# -# Header unset Content-Security-Policy -# -# - -# ------------------------------------------------------------------------------ -# | File access | -# ------------------------------------------------------------------------------ - -# Block access to directories without a default document. -# Usually you should leave this uncommented because you shouldn't allow anyone -# to surf through every directory on your server (which may includes rather -# private places like the CMS's directories). - - - Options -Indexes - - -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Block access to hidden files and directories. -# This includes directories used by version control systems such as Git and SVN. - - - RewriteCond %{SCRIPT_FILENAME} -d [OR] - RewriteCond %{SCRIPT_FILENAME} -f - RewriteRule "(^|/)\." - [F] - - -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Block access to backup and source files. -# These files may be left by some text editors and can pose a great security -# danger when anyone has access to them. - - - Order allow,deny - Deny from all - Satisfy All - - -# ------------------------------------------------------------------------------ -# | Secure Sockets Layer (SSL) | -# ------------------------------------------------------------------------------ - -# Rewrite secure requests properly to prevent SSL certificate warnings, e.g.: -# prevent `https://www.example.com` when your certificate only allows -# `https://secure.example.com`. - -# -# RewriteCond %{SERVER_PORT} !^443 -# RewriteRule ^ https://example-domain-please-change-me.com%{REQUEST_URI} [R=301,L] -# - -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Force client-side SSL redirection. - -# If a user types "example.com" in his browser, the above rule will redirect him -# to the secure version of the site. That still leaves a window of opportunity -# (the initial HTTP connection) for an attacker to downgrade or redirect the -# request. The following header ensures that browser will ONLY connect to your -# server via HTTPS, regardless of what the users type in the address bar. -# http://www.html5rocks.com/en/tutorials/security/transport-layer-security/ - -# -# Header set Strict-Transport-Security max-age=16070400; -# - -# ------------------------------------------------------------------------------ -# | Server software information | -# ------------------------------------------------------------------------------ - -# Avoid displaying the exact Apache version number, the description of the -# generic OS-type and the information about Apache's compiled-in modules. - -# ADD THIS DIRECTIVE IN THE `httpd.conf` AS IT WILL NOT WORK IN THE `.htaccess`! - -# ServerTokens Prod - - -# ############################################################################## -# # WEB PERFORMANCE # -# ############################################################################## - -# ------------------------------------------------------------------------------ -# | Compression | -# ------------------------------------------------------------------------------ - - - - # Force compression for mangled headers. - # http://developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping - - - SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding - RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding - - - - # Compress all output labeled with one of the following MIME-types - # (for Apache versions below 2.3.7, you don't need to enable `mod_filter` - # and can remove the `` and `` lines - # as `AddOutputFilterByType` is still in the core directives). - - AddOutputFilterByType DEFLATE application/atom+xml \ - application/javascript \ - application/json \ - application/rss+xml \ - application/vnd.ms-fontobject \ - application/x-font-ttf \ - application/x-web-app-manifest+json \ - application/xhtml+xml \ - application/xml \ - font/opentype \ - image/svg+xml \ - image/x-icon \ - text/css \ - text/html \ - text/plain \ - text/x-component \ - text/xml - - - - -# ------------------------------------------------------------------------------ -# | Content transformations | -# ------------------------------------------------------------------------------ - -# Prevent some of the mobile network providers from modifying the content of -# your site: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.5. - -# -# Header set Cache-Control "no-transform" -# - -# ------------------------------------------------------------------------------ -# | ETag removal | -# ------------------------------------------------------------------------------ - -# Since we're sending far-future expires headers (see below), ETags can -# be removed: http://developer.yahoo.com/performance/rules.html#etags. - -# `FileETag None` is not enough for every server. - - Header unset ETag - - -FileETag None - -# ------------------------------------------------------------------------------ -# | Expires headers (for better cache control) | -# ------------------------------------------------------------------------------ - -# The following expires headers are set pretty far in the future. If you don't -# control versioning with filename-based cache busting, consider lowering the -# cache time for resources like CSS and JS to something like 1 week. - - - - ExpiresActive on - ExpiresDefault "access plus 1 month" - - # CSS - ExpiresByType text/css "access plus 1 year" - - # Data interchange - ExpiresByType application/json "access plus 0 seconds" - ExpiresByType application/xml "access plus 0 seconds" - ExpiresByType text/xml "access plus 0 seconds" - - # Favicon (cannot be renamed!) - ExpiresByType image/x-icon "access plus 1 week" - - # HTML components (HTCs) - ExpiresByType text/x-component "access plus 1 month" - - # HTML - ExpiresByType text/html "access plus 0 seconds" - - # JavaScript - ExpiresByType application/javascript "access plus 1 year" - - # Manifest files - ExpiresByType application/x-web-app-manifest+json "access plus 0 seconds" - ExpiresByType text/cache-manifest "access plus 0 seconds" - - # Media - ExpiresByType audio/ogg "access plus 1 month" - ExpiresByType image/gif "access plus 1 month" - ExpiresByType image/jpeg "access plus 1 month" - ExpiresByType image/png "access plus 1 month" - ExpiresByType video/mp4 "access plus 1 month" - ExpiresByType video/ogg "access plus 1 month" - ExpiresByType video/webm "access plus 1 month" - - # Web feeds - ExpiresByType application/atom+xml "access plus 1 hour" - ExpiresByType application/rss+xml "access plus 1 hour" - - # Web fonts - ExpiresByType application/font-woff "access plus 1 month" - ExpiresByType application/vnd.ms-fontobject "access plus 1 month" - ExpiresByType application/x-font-ttf "access plus 1 month" - ExpiresByType font/opentype "access plus 1 month" - ExpiresByType image/svg+xml "access plus 1 month" - - - -# ------------------------------------------------------------------------------ -# | Filename-based cache busting | -# ------------------------------------------------------------------------------ - -# If you're not using a build process to manage your filename version revving, -# you might want to consider enabling the following directives to route all -# requests such as `/css/style.12345.css` to `/css/style.css`. - -# To understand why this is important and a better idea than `*.css?v231`, read: -# http://stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring - -# -# RewriteCond %{REQUEST_FILENAME} !-f -# RewriteCond %{REQUEST_FILENAME} !-d -# RewriteRule ^(.+)\.(\d+)\.(js|css|png|jpg|gif)$ $1.$3 [L] -# - -# ------------------------------------------------------------------------------ -# | File concatenation | -# ------------------------------------------------------------------------------ - -# Allow concatenation from within specific CSS and JS files, e.g.: -# Inside of `script.combined.js` you could have -# -# -# and they would be included into this single file. - -# -# -# Options +Includes -# AddOutputFilterByType INCLUDES application/javascript application/json -# SetOutputFilter INCLUDES -# -# -# Options +Includes -# AddOutputFilterByType INCLUDES text/css -# SetOutputFilter INCLUDES -# -# - -# ------------------------------------------------------------------------------ -# | Persistent connections | -# ------------------------------------------------------------------------------ - -# Allow multiple requests to be sent over the same TCP connection: -# http://httpd.apache.org/docs/current/en/mod/core.html#keepalive. - -# Enable if you serve a lot of static content but, be aware of the -# possible disadvantages! - -# -# Header set Connection Keep-Alive -# diff --git a/app/404.html b/app/404.html deleted file mode 100644 index fdace4a..0000000 --- a/app/404.html +++ /dev/null @@ -1,157 +0,0 @@ - - - - - Page Not Found :( - - - -
-

Not found :(

-

Sorry, but the page you were trying to view does not exist.

-

It looks like this was the result of either:

- - - -
- - diff --git a/app/favicon.ico b/app/favicon.ico deleted file mode 100644 index a7ad21c1714f82ea29e554f16f7ac2721a32affa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4904 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 diff --git a/app/images/examples.png b/app/images/examples.png deleted file mode 100644 index 5a70f0d3a81d454ab39966343b6eb0d427b838e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 96540 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

AW*lnMcp(Q^5N! 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 B7G?kd diff --git a/app/images/glyphicons-halflings.png b/app/images/glyphicons-halflings.png deleted file mode 100644 index ab5686e89076393550df2769b2624047525dd407..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12727 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 diff --git a/app/images/index-header.png b/app/images/index-header.png deleted file mode 100644 index 54474caa15c4a3457a0afccc78753ab44b2476cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 262282 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�%j~p4ds$++*u-Z?25P-H4p~djki>#0m~&w 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

-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%0A*O8knt|unHCh&gZigD?3T8&x3QC6 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�^Nt=J>zIosg1So#5JCxsls|{)?0t5 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�w<~cskp(*H}}GhsM9bSr?EFd-o?vNKfqMY68HtokIe?H(J7fn$Sr zzRFj?x0pD*vPhg$W`mqlq%++HfGH`azN_4CJ@3B6(9Qd6GP=0gDv3+( z@kopTGTJ8^Gi(NXtnSHQoUIxLA-Ve4Uc|jZarxGQ4xPKMD1k-N{D3|D?f(g@KNy z{6OhksC`K;_Vm1lE!(XKbT{?HIFD)DY4HIy)DhzAj_vl!bs{XIr|a+clTDoAU~u|% zr$7bsog+O--cn;Jcl0JNeL~4(C`r8mvC>yqs2_i+k5118X2^oUo9C9~E7N+hA!s|AAgZvW`_c(N&4`hf9cE_Wgttyeqx>WX)C&GP6* zF}-ZH1lm+2zfuP@%68h&T7NNREk9^@Mc~Uhw^-AXt{6Wd3v_9qvBkBCRJQm{Uti0c( zyRJ#H`8p%##*^*g;!G4~)9P>%+2K6hb%412QgctQ?M=ZoD0pa9y)2@>^_QvMqfEF} ztOj@WKPVsV@ufkvt5z!EHOsw{zd*?o^$uS8nayUrin?ClO?eD zurs$WaYi5rER$p)*yjdqE>svl`#^PqarVUStK1tGZ&!OxM&1}?j(&eedui3=qe+aY zh@00zOr5gD_+j$iB`X2`2Efaycgj#X>xJf9Dcb0@>c)Q^35kGNAV}L+61 z=G`SobjSR`hZ7j{$4{~IXualJl+YkjRLMk{rgHCY9vrft?x2W<^pEoAXh>4-4G6nj zZ+~lqz;MCEsG9i0=c6j5gi?U&5zrxn*V@>AaVtPrVt|3reA^Twbm#Ji7dEzBc*6J@ z{|lH=5*O6}(QN$M$k##w0Nqjp4)XFzI?71mTk1O3^UeD8i{UdgK;y@OYHuTp#MTer zr&;@e>Zd!N3X~n7D{rmHGu7q?CWmy~y>`yH0b2}6gJ)q_28$00&DeY29&Vp=+SguwVFIaf3IW0Zb*c_6ptUfzEg z(EF?-A@9dA*nORxO^zaJ8xnAz*7CJ!!-vFRkoKQl0k;z?>J1nqONoIAY(#q zY8%R1VTMQFX&HKfMe15B)lT5Ph-;Bg^CZ&C@KQ1q0|Y5?f=%IfEO6BDDGh7p_p-Yq zUsD3Ct+cEJd^J-W^2u~Sj0`Q-`MeJ2IrD)|I7q&*qIv)jkZi+RV|3Abx*#3v;SplT zeY+#_<>15#Yh2CVQW!*a9i7y2H}uY(v=DM3pb$4!BJ?wre+RcoWXDOncBN;zm!98) zr*~IL|6ZN5ykG#*B6=^2eTC<@_9DGt20Yhagiiz6fVy7n)2I9Z!|`Vtw|4quc%7jZ P&B-%1G&dmWJIDMF$7o+0 diff --git a/app/index.html b/app/index.html deleted file mode 100644 index 64ac058..0000000 --- a/app/index.html +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/robots.txt b/app/robots.txt deleted file mode 100644 index 9417495..0000000 --- a/app/robots.txt +++ /dev/null @@ -1,3 +0,0 @@ -# robotstxt.org - -User-agent: * diff --git a/app/scripts/app.js b/app/scripts/app.js deleted file mode 100644 index 84ea7f6..0000000 --- a/app/scripts/app.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; - -// App libraries -var app = angular.module('oauth', [ - 'oauth.directive', // login directive - 'oauth.accessToken', // access token service - 'oauth.endpoint', // oauth endpoint service - 'oauth.profile', // profile model - 'oauth.interceptor' // bearer token interceptor -]) - -angular.module('oauth').config(['$locationProvider','$httpProvider', - function($locationProvider, $httpProvider) { - $locationProvider.html5Mode(true).hashPrefix('!'); // HTML5 mode - $httpProvider.interceptors.push('OAuthInterceptor'); // Authentication header - }]); diff --git a/app/scripts/directives/oauth.js b/app/scripts/directives/oauth.js deleted file mode 100644 index 54b6f28..0000000 --- a/app/scripts/directives/oauth.js +++ /dev/null @@ -1,98 +0,0 @@ -'use strict'; - -var directives = angular.module('oauth.directive', []); - -directives.directive('oauth', ['AccessToken', 'Endpoint', 'Profile', '$location', '$rootScope', '$compile', '$http', '$templateCache', - function(AccessToken, Endpoint, Profile, $location, $rootScope, $compile, $http, $templateCache) { - - var definition = { - restrict: 'AE', - replace: true, - scope: { - site: '@', // (required) set the oauth server host (e.g. http://oauth.example.com) - clientId: '@', // (required) client id - redirectUri: '@', // (required) client redirect uri - scope: '@', // (optional) scope - profileUri: '@', // (optional) user profile uri (e.g http://example.com/me) - template: '@' // (optional) template to render (e.g views/templates/default.html) - } - }; - - definition.link = function postLink(scope, element, attrs) { - scope.show = 'none'; - - scope.$watch('client', function(value) { - init(); // sets defaults - compile(); // compiles the desired layout - Endpoint.set(scope); // sets the oauth authorization url - AccessToken.set(scope); // sets the access token object (if existing, from fragment or session) - initProfile(scope); // gets the profile resource (if existing the access token) - initView(); // sets the view (logged in or out) - }); - - var init = function() { - scope.authorizePath = scope.authorizePath || '/oauth/authorize'; - scope.tokenPath = scope.tokenPath || '/oauth/token'; - scope.template = scope.template || 'views/templates/default.html'; - } - - var compile = function() { - $http.get(scope.template, { cache: $templateCache }).success(function(html) { - element.html(html); - $compile(element.contents())(scope); - }); - }; - - var initProfile = function(scope) { - var token = AccessToken.get(); - - if (token && token.access_token && scope.profileUri) { - Profile.get(scope.profileUri).success(function(response) { scope.profile = response }) - } - } - - var initView = function(token) { - var token = AccessToken.get(); - - if (!token) { return loggedOut() } // without access token it's logged out - if (token.access_token) { return loggedIn() } // if there is the access token we are done - if (token.error) { return denied() } // if the request has been denied we fire the denied event - } - - - scope.login = function() { - Endpoint.redirect(); - } - - scope.logout = function() { - AccessToken.destroy(scope); - loggedOut(); - } - - // set the oauth directive to the logged-in status - var loggedIn = function() { - $rootScope.$broadcast('oauth:success', AccessToken.get()); - scope.show = 'logged-in'; - } - - // set the oauth directive to the logged-out status - var loggedOut = function() { - $rootScope.$broadcast('oauth:logout'); - scope.show = 'logged-out'; - } - - // set the oauth directive to the denied status - var denied = function() { - scope.show = 'denied'; - $rootScope.$broadcast('oauth:denied'); - } - - // Updates the template at runtime - scope.$on('oauth:template:update', function(event, template) { - scope.template = template; - compile(scope); - }); - }; - - return definition -}]); diff --git a/app/scripts/interceptors/oauth-interceptor.js b/app/scripts/interceptors/oauth-interceptor.js deleted file mode 100644 index 92485c0..0000000 --- a/app/scripts/interceptors/oauth-interceptor.js +++ /dev/null @@ -1,28 +0,0 @@ -'use strict'; - -var service = angular.module('oauth.interceptor', []); - -service.factory('OAuthInterceptor', ['$rootScope', '$q', '$sessionStorage', - function ($rootScope, $q, $sessionStorage) { - - var service = {}; - - service.request = function(config) { - var token = $sessionStorage.token; - - if (token) - config.headers.Authorization = 'Bearer ' + token.access_token; - - if (token && expired(token)) - $rootScope.$broadcast('oauth:expired', token); - - return config; - }; - - var expired = function(token) { - return (token && token.expires_at && new Date(token.expires_at) < new Date()) - } - - return service; - }]); - diff --git a/app/scripts/services/access-token.js b/app/scripts/services/access-token.js deleted file mode 100644 index e85bfbe..0000000 --- a/app/scripts/services/access-token.js +++ /dev/null @@ -1,151 +0,0 @@ -'use strict'; - -var service = angular.module('oauth.accessToken', ['ngStorage']); - -service.factory('AccessToken', ['$rootScope', '$location', '$http', '$sessionStorage', - function($rootScope, $location, $http, $sessionStorage) { - - var service = {}; - var token = null; - - - /* - * Returns the access token. - */ - - service.get = function() { - return token - } - - - /* - * Sets and returns the access token. It tries (in order) the following strategies: - * - takes the token from the fragment URI - * - takes the token from the sessionStorage - */ - - service.set = function() { - setTokenFromString(); - setTokenFromSession(); - return token - } - - - /* - * Delete the access token and remove the session. - */ - - service.destroy = function() { - delete $sessionStorage.token; - return token = null; - } - - - /* - * Tells if the access token is expired. - */ - - service.expired = function() { - return (token && token.expires_at && token.expires_at < new Date()) - } - - - - /* * * * * * * * * * - * PRIVATE METHODS * - * * * * * * * * * */ - - - /* - * Get the access token from a string and save it - */ - - var setTokenFromString = function() { - var token = getTokenFromString($location.hash()); - - if (token) { - removeFragment(); - setToken(token); - } - }; - - - /* - * Parse the fragment URI and return an object - */ - - var getTokenFromString = function(hash) { - var splitted = hash.split('&'); - var params = {}; - - for (var i = 0; i < splitted.length; i++) { - var param = splitted[i].split('='); - var key = param[0]; - var value = param[1]; - params[key] = value - } - - if (params.access_token || params.error) - return params; - } - - - /* - * Set the access token from the sessionStorage. - */ - - var setTokenFromSession = function() { - if ($sessionStorage.token) { - var params = $sessionStorage.token; - setToken(params); - } - } - - - /* - * Save the access token into the session - */ - - var setTokenInSession = function() { - $sessionStorage.token = token; - } - - - /* - * Set the access token. - */ - - var setToken = function(params) { - token = token || {} // init the token - angular.extend(token, params); // set the access token params - setExpiresAt(); // set the expiring time - setTokenInSession(); // save the token into the session - return token; - }; - - - /* - * Set the access token expiration date (useful for refresh logics) - */ - - var setExpiresAt = function() { - if (token) { - var expires_at = new Date(); - expires_at.setSeconds(expires_at.getSeconds() + parseInt(token.expires_in) - 60); // 60 seconds less to secure browser and response latency - token.expires_at = expires_at; - } - }; - - - /* - * Remove the fragment URI - * TODO we need to remove only the access token - */ - - var removeFragment = function(scope) { - $location.hash(''); - } - - - return service; -}]); diff --git a/app/scripts/services/endpoint.js b/app/scripts/services/endpoint.js deleted file mode 100644 index 71e3c94..0000000 --- a/app/scripts/services/endpoint.js +++ /dev/null @@ -1,48 +0,0 @@ -'use strict'; - -var client = angular.module('oauth.endpoint', []); - -client.factory('Endpoint', ['AccessToken', '$location', - function(AccessToken, $location) { - - var service = {}; - var params; - var url; - - - /* - * Defines the authorization URL - */ - - service.set = function(scope) { - url = scope.site + - scope.authorizePath + - '?response_type=token&' + - 'client_id=' + scope.clientId + '&' + - 'redirect_uri=' + scope.redirectUri + '&' + - 'scope=' + scope.scope + '&' + - 'state=' + $location.url() - - return url; - } - - - /* - * Returns the authorization URL - */ - - service.get = function() { - return url; - } - - - /* - * Redirects the app to the authorization URL - */ - - service.redirect = function() { - window.location.replace(url); - } - - return service; -}]); diff --git a/app/scripts/services/profile.js b/app/scripts/services/profile.js deleted file mode 100644 index e3f8062..0000000 --- a/app/scripts/services/profile.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var client = angular.module('oauth.profile', []) - -client.factory('Profile', ['$http', function($http) { - var service = {} - - service.get = function(uri) { - return $http.get(uri); - } - - return service; -}]); diff --git a/app/styles/main.css b/app/styles/main.css deleted file mode 100644 index 5db42e1..0000000 --- a/app/styles/main.css +++ /dev/null @@ -1,798 +0,0 @@ -/* - * Lelylan Dev Center Documentation - * - * Table of contents: - * - saas - * - scaffolding - * - top (contextual) navigation - * - left navigation - * - code sintax - * - steps animations - */ - -$iconSpritePath: "../images/glyphicons-halflings.png"; -$iconWhiteSpritePath: "../images/glyphicons-halflings-white.png"; - -/* import to override variables and to access the mixins */ - -@import "https://github.com/bootstrap-sass/lib/bootstrap"; - -/* variables */ - -$lelylanColor: #BB234E; -$lelylanHoverColor: #018DCF; -$lelylanBackgroundColor: #009FC7; -$linkColor: $lelylanColor; -$linkColorHover: $lelylanHoverColor; - -/* mixins */ - -@mixin box-shadow { - $intensity: 0.2; - -webkit-box-shadow: 0px 1px 3px rgba(0, 0, 0,$intensity); - -moz-box-shadow: 0px 1px 3px rgba(0, 0, 0,$intensity); - box-shadow: 0px 1px 3px rgba(0, 0, 0, $intensity); -} - - -/* * * * * * * */ -/* Scaffolding */ -/* * * * * * * */ - -/* body defaults */ - -body { - background-color: #f8f8f8 !important; - padding-top: 100px; /* Account for fixed navbar */ - position: relative; /* For scrollyspy */ -} - -/* anchor positioning */ - -h1[id] { - border-top:120px solid transparent; - margin-top:-120px; - -webkit-background-clip:padding-box; - -moz-background-clip:padding; - background-clip:padding-box; -} - -h2[id] { - padding-top: 100px; - margin-top: -90px; -} - -h3[id] { - border-top:100px solid transparent; - margin-top:-100px !important; - -webkit-background-clip:padding-box; - -moz-background-clip:padding; - background-clip:padding-box; -} - -/* titles */ - -.bs-title { - background-color: $lelylanBackgroundColor; - color: #fff; - margin: 0; - padding: 20px 60px; -} - -.bs-title h1 { - font-size: 48px; - font-weight: 200; -} - -.bs-title h4 { - color: #9EDAE6; - font-size: 22px; - font-weight: 100; - letter-spacing: 2px; - text-transform: uppercase; -} - -/* internal subtitles */ - -.bs-docs-section { - padding: 20px 60px 40px; - - h2 { - color: $lelylanColor; - font-size: 32px; - margin-bottom: 20px; - font-weight: 200; - } - - h3 { - font-size: 22px; - margin: 30px 0 20px; - font-weight: 200; - } - - p, - ul li { - font-size: 17px; - font-weight: 200; - line-height: 1.6; - } - - p { - margin-bottom: 10px; - } - - ul { - margin-bottom: 20px; - } -} - -/* multiselection subtitles */ - -.bs-title .nav-pills { - margin-top: 20px; - - li { - margin-right: 13px; - } - - li a { - background-color: #fff; - border: none; - border-radius: 0; - color: $lelylanColor; - } - - li.active a, - li a:hover { - background-color: $lelylanHoverColor; - color: #fff !important; - } -} - - -/* documentation page */ - -.bs-docs { - background-color: #fbfbfb; - padding: 0; - @include box-shadow; - - p a, - table a, - li a { - color: $linkColor !important; - } - - p a:hover, - table a:hover, - li a:hover { - text-decoration: none; - color: $linkColorHover !important; - } -} - -/* link colors animation */ - -a { - -webkit-transition: color 0.3s ease, text-decoration 0.3s ease, background 0.3s ease; - -moz-transition: color 0.3s ease, text-decoration 0.3s ease, background 0.3s ease; - transition: color 0.3s ease, text-decoration 0.3s ease, background 0.3s ease; -} - -/* all blocks following the first one */ - -.col-md-offset-3 { - margin-top: 50px; -} - - -/* * * * * * * * * */ -/* Apps navigation */ -/* * * * * * * * * */ - -/* lelylan apps navbar */ - -.lelylan-navbar-apps { - background-color: $lelylanBackgroundColor; - border: none; - height: 25px; - min-height: 25px; - margin-bottom: 0; - margin-top: 0; - - .container { - padding-left: 0; - padding-right: 0 - } - - .navbar-nav > li > a { - color: #40D4F0; - font-size: 11px; - padding: 2px 30px 0 0; - text-shadow: 0 0 0 #333; - text-transform: uppercase; - } - - .navbar-nav > li > a:hover, - .navbar-nav > li.active > a, - .navbar-nav > li.active > a:hover { - background-color: transparent; - color: #eee; - } - - .signout > a { - text-transform: none !important; - font-size: 12px !important; - padding-right: 0 !important; - font-weight: 200; - } -} - - -/* * * * * * * * * */ -/* Top navigation */ -/* * * * * * * * * */ - -/* Lelylan top menu navbar */ - -.lelylan-navbar-top-menu { - border: none; - height: 50px; - min-height: 50px; - margin-bottom: 0; - @include box-shadow; - - .container { - padding-right: 0; - } - - /* menu items */ - - .navbar-nav > li > a { - background-color: transparent; - color: $linkColor !important; - padding-right: 0; - padding-left: 20px; - font-weight: 200; - font-size: 15px; - } - - .navbar-nav > li > a:hover { - color: $linkColorHover !important; - } - - .navbar-nav > li > a.dropdown-toggle { - padding-left: 50px; - } - - .navbar-nav > li.active > a, - .navbar-nav > li.active:hover > a, - .navbar-nav > li.open > a, - .navbar-nav > li.open > a.dropdown-toggle { - background-color: transparent; - } - - .navbar-nav > li.active > a { - color: $lelylanHoverColor !important; - - } - - /* brand */ - - .navbar-brand { - font-size: 20px !important; - //text-shadow: 0 1px 0 #eee; - font-weight: 200; - padding-left: 15px !important; - color: #000 !important; - } -} - - -/* * * * * * * * * */ -/* Left navigation */ -/* * * * * * * * * */ - -/* By default it's not affixed in mobile views, so undo that */ - -.bs-sidebar.affix { - position: static; -} - -/* First level of nav */ - -.bs-sidenav { - //background-color: #f8f8f8; - margin-top: 30px; - margin-bottom: 30px; - padding-bottom: 10px; - //@include box-shadow; -} - -/* All levels of nav */ - -.bs-sidebar .nav > li > a { - color: $lelylanColor; - display: block; - font-size: 12px; - padding: 5px 10px; - text-transform: uppercase; -} - -.bs-sidebar .nav > li > a:hover, -.bs-sidebar .nav > li > a:focus { - text-decoration: none; - background-color: transparent; - color: $lelylanHoverColor; -} - -.bs-sidebar .nav > .active > a, -.bs-sidebar .nav > .active:hover > a, -.bs-sidebar .nav > .active:focus > a { - //font-weight: bold; - color: $lelylanHoverColor; - background-color: transparent; - border-left: 1px solid $lelylanHoverColor; -} - -/* Nav: second level (shown on .active) */ - -.bs-sidebar .nav .nav { - display: none; /* Hide by default, but at >768px, show it */ - margin-bottom: 8px; -} - -.bs-sidebar .nav .nav > li > a { - padding-top: 3px; - padding-bottom: 3px; - padding-left: 25px; - font-size: 12px; - line-height: 1.6em; - //text-transform: none; -} - -/* Show and affix the side nav when space allows it */ - -@media screen and (min-width: 992px) { - .bs-sidebar .nav > .active > ul { - display: block; - } - /* Widen the fixed sidebar */ - .bs-sidebar.affix, - .bs-sidebar.affix-bottom { - width: 213px; - } - .bs-sidebar.affix { - position: fixed; /* Undo the static from mobile first approach */ - top: 100px; - } - .bs-sidebar.affix-bottom { - position: absolute; /* Undo the static from mobile first approach */ - } - .bs-sidebar.affix-bottom .bs-sidenav, - .bs-sidebar.affix .bs-sidenav { - margin-top: 0; - margin-bottom: 0; - } -} - -/* Widen the fixed sidebar again */ - -@media screen and (min-width: 1200px) { - .bs-sidebar.affix-bottom, - .bs-sidebar.affix { - width: 263px; - } -} - - -/* * * * * * * */ -/* Code syntax */ -/* * * * * * * */ - -code { - color: #111; - background-color: transparent; - font-size: 75%; -} - -table code { - font-size: 90%; - padding-left: 0; -} - -pre code, -pre xmp { - display:block; - color:#111; - font-family: Monaco, Consolas, monospace; - font-size:12px; - line-height:1.5; - padding:5px; - margin: 5px 3px; - - hr { - margin: 15px 0 0; - } -} - -pre { - margin: 0 0 40px; - padding: 5px 0 5px 5px !important; - background: #f8f8f8; - border: 1px solid #ddd; - border-radius: 0; -} - -ul.nav-tabs, -ol.nav-tabs { - margin:15px 0 0 0; - line-height:1.7em -} - -ul.nav-tabs li.active a, -ol.nav-tabs li.active a { - background-color: #f8f8f8; -} - -ul.nav-tabs { - padding-left:0 -} - -div.tab-content pre { - border-top:none -} - -.nav-tabs > li > a { - font-size: 16px; - font-weight: 200; -} - -.nav-tabs > li a { - color: $linkColor; -} - -.nav-tabs > li.active a:hover, -.nav-tabs > li.active a { - color: $linkColorHover; - background-color: #f8f8f8; -} - -.code-block { - margin: 20px 0 30px; -} - - -/* * * * * * * * * */ -/* Animated steps */ -/* * * * * * * * * */ - -.animation { - max-width: 100%; - background-color: #fff; - padding: 0 15px 5px 20px; - border: 1px solid #ddd; - margin: 20px 0; - - h3 { - display:inline; - } - - p { - float:clear; - margin-top: 15px; - margin-left: 6px; - } - - pre { - margin-left: 4px; - } - - .button-lelylan { - background-color: $lelylanColor; - } - - .button-lelylan:hover { - color: #fff; - } - - .canvas { - position:relative; - width: 690px; - height: 40px; - margin: 20px 0 20px 0; - } - - .action { - padding-left: 5px; - padding-bottom: 10px; - } -} - - -/* * * * * * * * */ -/* Button style */ -/* * * * * * * * */ - -.btn-lelylan { - background: $lelylanColor; - box-sizing: border-box; - min-height: 35px; - width: auto; - display: inline-block; - padding: 0.9em 1.37em; - cursor: pointer; - text-decoration: none; - color: #fff; - font-size: 12px; - line-height: 13px; - font-weight: 300; - text-align: center; - letter-spacing: 1px; - text-transform: uppercase; - text-shadow: none; - border-radius: 0.2em; - border: rgba(0,0,0,0.05) 0.1em solid; - -webkit-transition: background 0.3s ease, border-color 0.3s ease; - -moz-transition: background 0.3s ease, border-color 0.3s ease; - transition: background 0.3s ease, border-color 0.3s ease; -} - -.btn-lelylan:hover { - background: $lelylanHoverColor; - color: #fff; - text-decoration: none; -} - -.button-group { - width: 390px; - margin:0 auto; - margin-bottom: 40px; - - a { - font-size: 16px - } -} - - -/* * * * * * * * */ -/* Table Listing */ -/* * * * * * * * */ - -table { - margin: 20px 0; - - tr th { - border-bottom: 1px solid #dddddd !important; - text-transform: uppercase; - font-style: italic; - } - - tr td, - tr th { - color: #333; - font-size: 15px; - font-weight: 200; - line-height: 1.5 !important; - } - - .parameter { - width: 30%; - } - - .extra { - width: 30% !important; - } - - .nested { - padding-left: 30px !important; - } - - .parameter span { - font-style: italic; - } - - span.info { - display: block; - color: #888; - font-style: italic; - } -} - -.table-labeled { - - .label { - padding: 0; - } - - .label { - border-radius: 2px; - font-size: 12px; - font-weight: 400; - line-height: 23px; - padding: 3px 6px 2px; - text-transform: uppercase; - background: #eee; - border: 1px solid #ddd; - color: #333; - } - - .link { - background: #E5F4FF; - border: 1px solid #C5EAFF; - } -} - - - - -/* * * * * * */ -/* Home Page */ -/* * * * * * */ - -body.presentation { - padding-top: 40px; - background-color: #fbfbfb !important; - text-rendering: optimizeLegibility; - - .lelylan-navbar-top-menu { - background-color: #fbfbfb !important; - } - - .presentation-block > .row { - padding: 90px 0 60px; - border-bottom: 1px solid #eee; - } - - .banner { - margin-top: 10px; - height: 360px; - //background: $lelylanColor url(https://github.com/images/index-header.png) center center; - background-color: #333; - color: #fff; - background-size: cover; - width: 100%; - position: relative; - border-bottom: 1px solid #ddd; - - .banner-content { - padding: 120px 40px; - font-weight: 300; - } - - p, h1 { - text-align: center; - background: #000 !important; - margin-bottom: 5px; - margin-left: 25px; - padding: 9px 15px 10px 20px; - color: #FFF; - } - - h1 { - font-size: 68px; - } - - p { - font-size: 32px; - font-weight: 100; - } - - .banner-button { - text-align: center; - - a { - border: #ddd 0.1em solid; - margin-top: 45px; - height: 52px; - font-size: 20px; - font-weight: 100; - letter-spacing: 2px; - } - } - - } - - h1 { - font-size: 2.8em; - border: none; - padding: 0; - margin: 0; - margin-bottom: 35px; - font-weight: 200; - } - - h4 { - color: #666; - font-size: 16px; - line-height: 26px; - text-transform: uppercase; - font-weight: 200; - margin-bottom: 0; - letter-spacing: 1px; - } - - p { - font-size: 18px; - font-weight: 200; - color: #333; - margin-bottom: 35px; - } - - .pull-left, - .pull-right { - padding-top: 20px; - } - - p a { - color: $linkColor; - } - - p a:hover { - text-decoration: none; - color: $linkColorHover; - } -} - -/* detailed blocks */ - -.bs-detailed h1 { - font-size: 64px !important; - font-weight: 200; -} - -.bs-detailed h2 { - margin-top: 40px; - margin-bottom: 25px; -} - - - -/* * * * * */ -/* Footer */ -/* * * * * */ - -footer .bs-docs-section { - padding-right: 0; - - a { - color: $linkColor !important; - } - a:hover { - text-decoration: none; - color: $linkColorHover !important; - } -} - - - -/* * * * * * * * */ -/* Miscellaneous */ -/* * * * * * * * */ - -.alert { - padding: 10px; - - .label-lelylan { - color: $lelylanColor; - text-transform: uppercase; - background-color: #fff; - margin-right: 5px; - font-weight: 400; - padding: .3em .6em .2em; - letter-spacing: 1px; - } - - p { - color: #3A3A3A; - margin-bottom: 0; - font-size: 16px; - } -} - -img { - margin-top: 10px; - margin-bottom: 30px; - border-radius: 50%; - border: 1px solid $lelylanColor; -} diff --git a/app/views/templates/button.html b/app/views/templates/button.html deleted file mode 100644 index ce7861a..0000000 --- a/app/views/templates/button.html +++ /dev/null @@ -1,5 +0,0 @@ - - Login Button - Logout {{profile.email}} - Access denied. - diff --git a/app/views/templates/default.html b/app/views/templates/default.html deleted file mode 100644 index 3591753..0000000 --- a/app/views/templates/default.html +++ /dev/null @@ -1,5 +0,0 @@ - - Sign In - Logout {{profile.full_name}} - Access denied. Try again. - diff --git a/bower.json b/bower.json deleted file mode 100644 index 0de5fcb..0000000 --- a/bower.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "oauth-ng", - "version": "0.1.1-beta", - "main": [ - "dist/oauth-ng.js", - "dist/views/templates/default" - ], - "ignore": [ - "app", - "test", - "bower.json", - "Gruntfile.js", - "karma.conf.js", - "package.json" - ], - "dependencies": { - "angular": "~1.2.16", - "ngstorage": "~0.3.0" - }, - "devDependencies": { - "json3": "~3.2.4", - "es5-shim": "~2.0.8", - "timecop": "~0.1.1", - "bootstrap-sass": "~3.0.2", - "jquery": "~1.9.1", - "angular-mocks": "~1.2.16" - } -} diff --git a/dist/ng-oauth.js b/dist/ng-oauth.js deleted file mode 100644 index 79bda58..0000000 --- a/dist/ng-oauth.js +++ /dev/null @@ -1,361 +0,0 @@ -/* ng-oauth - v0.1.1 - 2014-05-20 */ - -'use strict'; - -// App libraries -var app = angular.module('oauth', [ - 'oauth.directive', // login directive - 'oauth.accessToken', // access token service - 'oauth.endpoint', // oauth endpoint service - 'oauth.profile', // profile model - 'oauth.interceptor' // bearer token interceptor -]) - -angular.module('oauth').config(['$locationProvider','$httpProvider', - function($locationProvider, $httpProvider) { - $locationProvider.html5Mode(true).hashPrefix('!'); // HTML5 mode - $httpProvider.interceptors.push('OAuthInterceptor'); // Authentication header - }]); - -'use strict'; - -var directives = angular.module('oauth.directive', []); - -directives.directive('oauth', ['AccessToken', 'Endpoint', 'Profile', '$location', '$rootScope', '$compile', '$http', '$templateCache', - function(AccessToken, Endpoint, Profile, $location, $rootScope, $compile, $http, $templateCache) { - - var definition = { - restrict: 'AE', - replace: true, - scope: { - site: '@', // (required) set the oauth server host (e.g. http://oauth.example.com) - clientId: '@', // (required) client id - redirectUri: '@', // (required) client redirect uri - scope: '@', // (optional) scope - profileUri: '@', // (optional) user profile uri (e.g http://example.com/me) - template: '@' // (optional) template to render (e.g bower_components/oauth-ng/dist/views/templates/default.html) - } - }; - - definition.link = function postLink(scope, element, attrs) { - scope.show = 'none'; - - scope.$watch('client', function(value) { - init(); // sets defaults - compile(); // compiles the desired layout - Endpoint.set(scope); // sets the oauth authorization url - AccessToken.set(scope); // sets the access token object (if existing, from fragment or session) - initProfile(scope); // gets the profile resource (if existing the access token) - initView(); // sets the view (logged in or out) - }); - - var init = function() { - scope.authorizePath = scope.authorizePath || '/oauth/authorize'; - scope.tokenPath = scope.tokenPath || '/oauth/token'; - scope.template = scope.template || 'bower_components/oauth-ng/dist/views/templates/default.html'; - } - - var compile = function() { - $http.get(scope.template, { cache: $templateCache }).success(function(html) { - element.html(html); - $compile(element.contents())(scope); - }); - }; - - var initProfile = function(scope) { - var token = AccessToken.get(); - - if (token && token.access_token && scope.profileUri) { - Profile.get(scope.profileUri).success(function(response) { scope.profile = response }) - } - } - - var initView = function(token) { - var token = AccessToken.get(); - - if (!token) { return loggedOut() } // without access token it's logged out - if (token.access_token) { return loggedIn() } // if there is the access token we are done - if (token.error) { return denied() } // if the request has been denied we fire the denied event - } - - - scope.login = function() { - Endpoint.redirect(); - } - - scope.logout = function() { - AccessToken.destroy(scope); - loggedOut(); - } - - // set the oauth directive to the logged-in status - var loggedIn = function() { - $rootScope.$broadcast('oauth:success', AccessToken.get()); - scope.show = 'logged-in'; - } - - // set the oauth directive to the logged-out status - var loggedOut = function() { - $rootScope.$broadcast('oauth:logout'); - scope.show = 'logged-out'; - } - - // set the oauth directive to the denied status - var denied = function() { - scope.show = 'denied'; - $rootScope.$broadcast('oauth:denied'); - } - - // Updates the template at runtime - scope.$on('oauth:template:update', function(event, template) { - scope.template = template; - compile(scope); - }); - }; - - return definition -}]); - -'use strict'; - -var service = angular.module('oauth.interceptor', []); - -service.factory('OAuthInterceptor', ['$rootScope', '$q', '$sessionStorage', - function ($rootScope, $q, $sessionStorage) { - - var service = {}; - - service.request = function(config) { - var token = $sessionStorage.token; - - if (token) - config.headers.Authorization = 'Bearer ' + token.access_token; - - if (token && expired(token)) - $rootScope.$broadcast('oauth:expired', token); - - return config; - }; - - var expired = function(token) { - return (token && token.expires_at && new Date(token.expires_at) < new Date()) - } - - return service; - }]); - - -'use strict'; - -var service = angular.module('oauth.accessToken', ['ngStorage']); - -service.factory('AccessToken', ['$rootScope', '$location', '$http', '$sessionStorage', - function($rootScope, $location, $http, $sessionStorage) { - - var service = {}; - var token = null; - - - /* - * Returns the access token. - */ - - service.get = function() { - return token - } - - - /* - * Sets and returns the access token. It tries (in order) the following strategies: - * - takes the token from the fragment URI - * - takes the token from the sessionStorage - */ - - service.set = function() { - setTokenFromString(); - setTokenFromSession(); - return token - } - - - /* - * Delete the access token and remove the session. - */ - - service.destroy = function() { - delete $sessionStorage.token; - return token = null; - } - - - /* - * Tells if the access token is expired. - */ - - service.expired = function() { - return (token && token.expires_at && token.expires_at < new Date()) - } - - - - /* * * * * * * * * * - * PRIVATE METHODS * - * * * * * * * * * */ - - - /* - * Get the access token from a string and save it - */ - - var setTokenFromString = function() { - var token = getTokenFromString($location.hash()); - - if (token) { - removeFragment(); - setToken(token); - } - }; - - - /* - * Parse the fragment URI and return an object - */ - - var getTokenFromString = function(hash) { - var splitted = hash.split('&'); - var params = {}; - - for (var i = 0; i < splitted.length; i++) { - var param = splitted[i].split('='); - var key = param[0]; - var value = param[1]; - params[key] = value - } - - if (params.access_token || params.error) - return params; - } - - - /* - * Set the access token from the sessionStorage. - */ - - var setTokenFromSession = function() { - if ($sessionStorage.token) { - var params = $sessionStorage.token; - setToken(params); - } - } - - - /* - * Save the access token into the session - */ - - var setTokenInSession = function() { - $sessionStorage.token = token; - } - - - /* - * Set the access token. - */ - - var setToken = function(params) { - token = token || {} // init the token - angular.extend(token, params); // set the access token params - setExpiresAt(); // set the expiring time - setTokenInSession(); // save the token into the session - return token; - }; - - - /* - * Set the access token expiration date (useful for refresh logics) - */ - - var setExpiresAt = function() { - if (token) { - var expires_at = new Date(); - expires_at.setSeconds(expires_at.getSeconds() + parseInt(token.expires_in) - 60); // 60 seconds less to secure browser and response latency - token.expires_at = expires_at; - } - }; - - - /* - * Remove the fragment URI - * TODO we need to remove only the access token - */ - - var removeFragment = function(scope) { - $location.hash(''); - } - - - return service; -}]); - -'use strict'; - -var client = angular.module('oauth.endpoint', []); - -client.factory('Endpoint', ['AccessToken', '$location', - function(AccessToken, $location) { - - var service = {}; - var params; - var url; - - - /* - * Defines the authorization URL - */ - - service.set = function(scope) { - url = scope.site + - scope.authorizePath + - '?response_type=token&' + - 'client_id=' + scope.clientId + '&' + - 'redirect_uri=' + scope.redirectUri + '&' + - 'scope=' + scope.scope + '&' + - 'state=' + $location.url() - - return url; - } - - - /* - * Returns the authorization URL - */ - - service.get = function() { - return url; - } - - - /* - * Redirects the app to the authorization URL - */ - - service.redirect = function() { - window.location.replace(url); - } - - return service; -}]); - -'use strict'; - -var client = angular.module('oauth.profile', []) - -client.factory('Profile', ['$http', function($http) { - var service = {} - - service.get = function(uri) { - return $http.get(uri); - } - - return service; -}]); diff --git a/dist/ng-oauth.min.js b/dist/ng-oauth.min.js deleted file mode 100644 index c7e596e..0000000 --- a/dist/ng-oauth.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/* ng-oauth - v0.1.1 - 2014-05-20 */ -"use strict";var app=angular.module("oauth",["oauth.directive","oauth.accessToken","oauth.endpoint","oauth.profile","oauth.interceptor"]);angular.module("oauth").config(["$locationProvider","$httpProvider",function(a,b){a.html5Mode(!0).hashPrefix("!"),b.interceptors.push("OAuthInterceptor")}]);var directives=angular.module("oauth.directive",[]);directives.directive("oauth",["AccessToken","Endpoint","Profile","$location","$rootScope","$compile","$http","$templateCache",function(a,b,c,d,e,f,g,h){var i={restrict:"AE",replace:!0,scope:{site:"@",clientId:"@",redirectUri:"@",scope:"@",profileUri:"@",template:"@"}};return i.link=function(d,i){d.show="none",d.$watch("client",function(){j(),k(),b.set(d),a.set(d),l(d),m()});var j=function(){d.authorizePath=d.authorizePath||"/oauth/authorize",d.tokenPath=d.tokenPath||"/oauth/token",d.template=d.template||"bower_components/oauth-ng/dist/views/templates/default.html"},k=function(){g.get(d.template,{cache:h}).success(function(a){i.html(a),f(i.contents())(d)})},l=function(b){var d=a.get();d&&d.access_token&&b.profileUri&&c.get(b.profileUri).success(function(a){b.profile=a})},m=function(b){var b=a.get();return b?b.access_token?n():b.error?p():void 0:o()};d.login=function(){b.redirect()},d.logout=function(){a.destroy(d),o()};var n=function(){e.$broadcast("oauth:success",a.get()),d.show="logged-in"},o=function(){e.$broadcast("oauth:logout"),d.show="logged-out"},p=function(){d.show="denied",e.$broadcast("oauth:denied")};d.$on("oauth:template:update",function(a,b){d.template=b,k(d)})},i}]);var service=angular.module("oauth.interceptor",[]);service.factory("OAuthInterceptor",["$rootScope","$q","$sessionStorage",function(a,b,c){var d={};d.request=function(b){var d=c.token;return d&&(b.headers.Authorization="Bearer "+d.access_token),d&&e(d)&&a.$broadcast("oauth:expired",d),b};var e=function(a){return a&&a.expires_at&&new Date(a.expires_at) - Login Button - Logout {{profile.email}} - Access denied. - diff --git a/dist/views/templates/default.html b/dist/views/templates/default.html deleted file mode 100644 index 3591753..0000000 --- a/dist/views/templates/default.html +++ /dev/null @@ -1,5 +0,0 @@ - - Sign In - Logout {{profile.full_name}} - Access denied. Try again. - diff --git a/index.html b/index.html new file mode 100644 index 0000000..d9ee03b --- /dev/null +++ b/index.html @@ -0,0 +1,465 @@ + + + + lelylan-ng | AngularJS client library for Lelylan + + + + + + + +

+ +
+ +
AngularJS Client Library for Lelylan
+
+
+ +
+
+

Introduction

+

+ Build web apps for the Connected Home using the power of AngularJS and + Lelylan, a new platform + to monitor and control any devices through a simple and robust REST API. +

+
+
+ + +
+
+

Getting Started

+ +

Installation

+ +

+ Install lelylan-ng using Bower. +

+ +
$ bower install lelylan-ng --save
+ +

Code Sample

+ +

+ The code above lets you get your devices. To fully understand what's going on + read the detailed tutorial section. +

+ +
<html ng-app="example">
+  <body>
+
+    <!-- OAuth2 directive -->
+    <oauth2
+      site="http://people.lelylan.com/"
+      client-id="<client-id>"
+      redirect-uri="http://redirect.example.com/"
+      scope="devices"
+      profile="http://api.lelylan.com/me">
+    </oauth2>
+
+    <!-- Show the owned devices -->
+    <div ng-controller="ExampleController">
+      <div ng-repeat="device in devices">{{device.name}}</div>
+    </div>
+
+    <!-- Gets the owned device -->
+    <script>
+      function ExampleController($scope, Device) {
+        Device.query().success(function(data) { $scope.devices = data });
+      }
+    </script>
+
+    <script>
+      angular.module('example', ['lelylan.client']);
+    </script>
+  </body>
+</html>
+ +
+
+ + +
+
+

Tutorial

+

+ In this tutorial we describe step by step how to create a web app that lets + you show the status of your devices. +

+ + +

Yeoman

+ +

+ To build our app we'll use Yeoman, a collection of tools + and frameworks that can help developers quickly build web applications. +

+ +
    +
  • + yo - perform ripetitive tasks. +
  • +
  • + grunt - build, preview and test your project. +
  • +
  • + bower - solve the frontend package management. +
  • +
+ + +

Installation

+ +

+ With a recent version of Node.js installed, install the yo package. + In this way you have Yo, Grunt and Bower and can run them directly from the command-line. +

+ +
$ npm install -g yo
+ +

+ With Yeoman you can install additional generators with npm. For this tutorial you need + to install the AngularJS generator. +

+ +
$ npm install -g generator-angular
+ + +

Create your AngularJS app

+ +

+ To begin, go to the terminal, make a new directory and cd into it. +

+ +
$ mkdir new-project && cd $_
+ +

+ You can now kick-start your AngularJS app. +

+ +
$ yo angular
+ +

+ It will also ask you if you would like to include Twitter Bootstrap and other stuff. + Once you've decided, just hit Enter. It will take a while to complete. +

+ +

+ To preview what the app looks like run the serve command. +

+ +
$ grunt serve
+ +

+ The server supports LiveReload, meaning you can fire up a text editor, edit a custom + element and the browser will reload on save. +

+ + +

Install lelylan-ng

+ +

+ Install lelylan-ng using Bower. +

+ +
$ bower install lelylan-ng --save
+ +

+ With this command lelylan-ng and all its dependencies are downloaded. To automatically + add them to the index.html page stop and restart the server. +

+ +
$ grunt serve
+ +

+ The setup is now completed. +

+ + +

Add lelylan client

+ +

+ Add the Lelylan client to your AngularJS app. +

+ +
// app/scripts/app.js
+angular.module('newProjectApp', ['lelylan.client'])
+...
+ +

+ This lets you access to all the directives and the services defined in lelylan-ng and its + dependencies. +

+ + +

Authorize your app

+ +

+ Lelylan API uses the OAuth 2.0 protocol for authentication and authorization. + OAuth lets users grant the access to the desired resources to third party applications, + giving them the possibility to enable and disable those accesses whenever they want. +

+ +

+ You need to register your applications + before getting started. A registered OAuth application is assigned with a unique Client ID + and a Redirect URI needed to make the authorization flow work. You will need them soon. +

+ + + + + +

+ To get the authorization token you need to use + oauth-ng, an + AngularJS directive for the OAuth2 Implicit Flow. What it does is quite simple. + It shows you a Login link pointing to the authorization page for + your application and save the access token once you authorize the application. +

+ +

+ Open the main.html view and set the oauth directive replacing the the + client-id and the redirect-uri with your application ones. +

+ +
// apps/views/main.html
+...
+<oauth2
+  site="http://people.lelylan.com/"
+  client-id="<client-id>"
+  redirect-uri="<redirect-uri>"
+  scope="devices"
+  profile="http://api.lelylan.com/me">
+</oauth2>
+...
+ +

+ The oauth component accepts the following attributes. +

+ +
    +
  • site - Lelylan authorization endpoint.
  • +
  • client-id - Registered Client ID.
  • +
  • redirect-uri - Registered URI where the user is redirected after the authorization.
  • +
  • scope - Application privileges. Learn more.
  • +
  • profile - Lelylan API endpoint returning the profile resource
  • +
  • state - Optional opaque value used by the client to maintain state between the request and callback
  • +
+ + +

Get your devices

+ +

+ A device is everything you interact with everyday of your life. You interact with + lights, alarms, cooling and heating systems, smoke and gas sensors, appliances, rolling + shutters and windows, irrigations, video surveillance, gates, multimedia (audio and video) + and much more. The Devices API defines a set of services to monitor, control, simulate + and connect everything. +

+ +

+ To get all your devices you need to use the Device#all method. Open the + main controller and replace the existing code with the following. +

+ +
// apps/scripts/controllers/main.js
+angular.module('newProjectApp')
+  .controller('MainCtrl', function ($scope, Device) {
+    Device.all()
+      .success(function(data) { $scope.devices = data })
+      .error(function(data)   { $scope.error   = 'Unauthorized request. Login first.' })
+  });
+ +

+ This is what happens. You inject the Device service and use the + Device.all() method to get all of your devices. The request returns + a promise with two $http specific methods. +

+ +
    +
  • success - used to save the devices into $scope.devices.
  • +
  • error - used to set an error message into $scope.error.
  • +
+ + +

Show your devices

+ +

+ Open the main.html view and list your devices using + $scope.devices. +

+ +
// apps/views/main.html
+<div ng-if="devices" ng-repeat="device in devices">{{device.name}}<div>
+<div ng-if="error">{{error}}</div>
+ +

+ What you are doing here is a loop between all devices to show their names + or the visualization of an error message whenever you are not logged in and + the request to get the devices fails. + Here the final result. +

+ + + +
+
+ +
+
+

Implemented services

+

+ All methods are fully descibed in the Dev Center. +

+ + + +
+
+ +
+
+

Requests

+

+ Every request returns a + promise + with two $http specific methods: success and error. +

+ +
Device.all().
+  success(function(data, status, headers, config) {
+    // this callback will be called asynchronously
+    // when the response is available
+  }).
+  error(function(data, status, headers, config) {
+    // called asynchronously if an error occurs
+    // or server returns response with an error status.
+  });
+ +
+
+ +
+
+

Realtime services

+ +

+ When using the subscription + service you first need to set the client credentials +

+ +
Subscription.auth({ clientId: '<client-id>', clientSecret: '<client-secret>' });
+Subscription.all().success(function(data) { scope.subscriptions = data })
+ +

+ In this case no access token required. +

+ +
+
+ +
+
+

Signed in user

+ +

+ When a user logs in with the + oauth-ng + directive the current user is accessible through the Profile service. +

+ +
Profile.get().success(function(data) { scope.profile = data });
+ +
+
+ +
+
+

Configurations

+ +

+ Lelylan client accepts the following options. +

+ +
    +
  • endpoint - A string representing the API endpoint + (http://api.lelylan.com by default).
  • +
+ +

+ Here a simple example. +

+ +
angular.module('example', ['lelylan.client']);
+  .value('lelylan.client.config', { endpoint: 'http://localhost//:9000' });
+ +
+
+ +
+
+

Links

+ + +
+
+ + + diff --git a/karma.conf.js b/karma.conf.js deleted file mode 100644 index 28aab8c..0000000 --- a/karma.conf.js +++ /dev/null @@ -1,64 +0,0 @@ -// Karma configuration -// http://karma-runner.github.io/0.10/config/configuration-file.html - -module.exports = function(config) { - config.set({ - // base path, that will be used to resolve files and exclude - basePath: '', - - // testing framework to use (jasmine/mocha/qunit/...) - frameworks: ['jasmine'], - - // list of files / patterns to load in the browser - files: [ - 'app/bower_components/jquery/jquery.js', - 'app/bower_components/angular/angular.js', - 'app/bower_components/angular-mocks/angular-mocks.js', - 'app/bower_components/ngstorage/ngStorage.js', - 'app/bower_components/timecop/timecop-0.1.1.js', - 'app/scripts/*.js', - 'app/scripts/**/*.js', - 'app/views/**/*.html', - 'test/spec/services/**/*.js', - 'test/spec/directives/**/*.js' - ], - - // list of files / patterns to exclude - exclude: [], - - // web server port - port: 8080, - - // level of logging - // possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG - logLevel: config.LOG_INFO, - - // enable / disable watching file and executing tests whenever any file changes - autoWatch: true, - - // Start these browsers, currently available: - // - Chrome - // - ChromeCanary - // - Firefox - // - Opera - // - Safari (only Mac) - // - PhantomJS - // - IE (only Windows) - browsers: ['PhantomJS'], - - // Continuous Integration mode - // if true, it capture browsers, run tests and exit - singleRun: false, - - - // Preprocessor for converting HTML files to AngularJS templates - preprocessors: { 'app/views/**/*.html': ['html2js'] }, - - // set the path to use to search the template and set the templates module to - // load all templates at once - ngHtml2JsPreprocessor: { - stripPrefix: 'app/', - moduleName: 'templates' - }, - }); -}; diff --git a/package.json b/package.json deleted file mode 100644 index fb41b7b..0000000 --- a/package.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "oauth-ng", - "version": "0.1.0", - "author": "Andrea Reginato ", - "description": "AngularJS Directive for OAuth 2.0", - "repository": { - "type": "git", - "url": "https://github.com/andreareginato/oauth-ng" - }, - "dependencies": {}, - "devDependencies": { - "grunt": "~0.4.1", - "grunt-autoprefixer": "~0.4.0", - "grunt-bower-install": "~0.7.0", - "grunt-concurrent": "~0.4.1", - "grunt-contrib-clean": "~0.5.0", - "grunt-contrib-coffee": "~0.7.0", - "grunt-contrib-compass": "~0.6.0", - "grunt-contrib-concat": "~0.3.0", - "grunt-contrib-connect": "~0.5.0", - "grunt-contrib-copy": "~0.4.1", - "grunt-contrib-cssmin": "~0.7.0", - "grunt-contrib-htmlmin": "~0.1.3", - "grunt-contrib-imagemin": "~0.3.0", - "grunt-contrib-jshint": "~0.7.1", - "grunt-contrib-uglify": "~0.2.0", - "grunt-contrib-watch": "~0.5.2", - "grunt-google-cdn": "~0.2.0", - "grunt-newer": "~0.5.4", - "grunt-ngmin": "~0.0.2", - "grunt-rev": "~0.1.0", - "grunt-svgmin": "~0.2.0", - "grunt-usemin": "~2.0.0", - "jshint-stylish": "~0.1.3", - "load-grunt-tasks": "~0.2.0", - "time-grunt": "~0.2.1", - "karma-ng-scenario": "~0.1.0", - "grunt-karma": "~0.8.0", - "karma": "~0.12.0", - "karma-ng-html2js-preprocessor": "~0.1.0", - "karma-jasmine": "~0.2.2", - "karma-phantomjs-launcher": "~0.1.2", - "karma-chrome-launcher": "~0.1.2", - "karma-coverage": "~0.2.1", - "grunt-protractor-runner": "~0.2.4", - "grunt-replace": "~0.7.7", - "grunt-string-replace": "~0.2.7" - }, - "engines": { - "node": ">=0.8.0" - }, - "scripts": { - "test": "grunt test:unit" - } -} diff --git a/public/icons/LICENSE.txt b/public/icons/LICENSE.txt new file mode 100644 index 0000000..21877ea --- /dev/null +++ b/public/icons/LICENSE.txt @@ -0,0 +1,21 @@ +Font license info + + +## Font Awesome + + Copyright (C) 2012 by Dave Gandy + + Author: Dave Gandy + License: SIL () + Homepage: http://fortawesome.github.com/Font-Awesome/ + + +## Typicons + + (c) Stephen Hutchings 2012 + + Author: Stephen Hutchings + License: CC BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0/) + Homepage: http://typicons.com/ + + diff --git a/public/icons/README.txt b/public/icons/README.txt new file mode 100644 index 0000000..43e23f2 --- /dev/null +++ b/public/icons/README.txt @@ -0,0 +1,75 @@ +This webfont is generated by http://fontello.com open source project. + + +================================================================================ +Please, note, that you should obey original font licences, used to make this +webfont pack. Details available in LICENSE.txt file. + +- Usually, it's enough to publish content of LICENSE.txt file somewhere on your + site in "About" section. + +- If your project is open-source, usually, it will be ok to make LICENSE.txt + file publically available in your repository. + +- Fonts, used in Fontello, don't require to make clickable links on your site. + But any kind of additional authors crediting is welcome. +================================================================================ + + +Comments on archive content +--------------------------- + +- /font/* - fonts in different formats + +- /css/* - different kinds of css, for all situations. Should be ok with + twitter bootstrap. Also, you can skip style and assign icon classes + directly to text elements, if you don't mind about IE7. + +- demo.html - demo file, to show your webfont content + +- LICENSE.txt - license info about source fonts, used to build your one. + +- config.json - keeps your settings. You can import it back to fontello anytime, + to continue your work + + +Why so many CSS files ? +----------------------- + +Because we like to fit all your needs :) + +- basic file, .css - is usually enougth, in contains @font-face + and character codes definition + +- *-ie7.css - if you need IE7 support, but still don't wish to put char codes + directly into html + +- *-codes.css and *-ie7-codes.css - if you like to use your own @font-face + rules, but still wish to benefit of css generation. That can be very + convenient for automated assets build systems. When you need to update font - + no needs to manually edit files, just override old version with archive + content. See fontello source codes for example. + +- *-embedded.css - basic css file, but with embedded WOFF font, to avoid + CORS issues in Firefox and IE9+, when fonts are hosted on the separate domain. + We strongly recommend to resolve this issue by `Access-Control-Allow-Origin` + server headers. But if you ok with dirty hack - this file is for you. Note, + that data url moved to separate @font-face to avoid problems with + + + + + + + + +
+

+ slate + font demo +

+ +
+
+
+
icon-cancel0xe803
+
icon-menu-10xe811
+
icon-plus0xe804
+
icon-plus-circled0xe805
+
+
+
icon-minus0xe800
+
icon-minus-circled0xe806
+
icon-attention-alt0xe809
+
icon-attention0xe808
+
+
+
icon-attention-circled0xe80a
+
icon-cancel-circled0xe802
+
icon-cog0xe807
+
icon-resize-full0xe810
+
+
+
icon-signal0xe80b
+
icon-smile0xe80c
+
icon-frown0xe80d
+
icon-meh0xe80e
+
+
+
icon-github0xe80f
+
icon-menu0xe801
+
+
+ + + \ No newline at end of file diff --git a/public/icons/font/slate.eot b/public/icons/font/slate.eot new file mode 100644 index 0000000000000000000000000000000000000000..2f3f7beb692e5d6d7cd4824e3cff47b0f066ab5d GIT binary patch literal 8428 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 + + +Copyright (C) 2013 by original authors @ fontello.com + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/icons/font/slate.ttf b/public/icons/font/slate.ttf new file mode 100644 index 0000000000000000000000000000000000000000..31b3777e16900199366d88b1583701b7816ae6c4 GIT binary patch literal 8272 zcmd^FeQaCTb-(w0lcGpTBp>x<`H4@Y6!DR=sn5tXLz9x_*orMniYwZgLt3If9DPBe zQzvVSZp+d{SUy_xpLPGNThevy0z5h$niNIRp+#HlkD`AB%di4NfnkGNbZxP=!xALc ze&>;tIW?>*<-^X@(8+}}O-Ji?4K#=Pv)Ok{-%a|6k=>&$;Z@^gGIEp8OI ze-v)}I%9kS-?NL4mks63ebD+DjCU??uWanOZ=L|Z#F*=|E5+Sy$eX}t&}%E}Pb{As zKmRsk!i$Xg`c_NDC8mF8m9gg6Fg~&hf%=L#1O8Xwdsa8fHy;RqVlC88uWv0DyS^31 z^DPDNeH+D_+w5)k5%AA|H#UnKrPrjZZ-M_Z*7)n~t=;nXpK|?zvEV$$f403-+Wy=Z zzp&5P(f)OX4r>4=o$5`{O%lFA^HFNj}ud|h5tMA zu}~&J@!=O3=WLGRJvBTiG{<-_p!9Z!qrJmJBct6(U2HM*cQ1#!xSfs4YG_bwS7#^0b4j76}l zdU)AGW`xL$L*ovg4>Y~=OJ9KNUa{Gy^Z$WcnsU^fmN%X8LfPlE+*==kh zkBSYfhaG1F8LKPk5hXYRKM*BBW>-WmNRn^?ogmFINsy+3p+IM#ja(QS;G-jGqG2EJ zrA7%H7>o=E*KD{DHeva=QoJUFaLS+{uOp^bJXO7kUT>-T%1r zz1u(7RG$3iZ@%%VpLl8XNJCu<eBd6FD><>u(SR??8!vnAwO?2o1_<&|4c@$ou(J>s-g*SZDO;*!OFQJ)k zq8?qH_xWCW$+xXHP5XQ=zwCRzqAx)TRomVYTM%cHYy(8NbU_9_aAZYxg-H^hV_f1> z=3vAeG!a_|l_p`p3`a+Y(Kz@V1V~Ttq#gwLjH?+2BtP zq=tUmIJD;`JH|4ZlZ`OqD3?Sb>zKotxC+xG{99%!!m4r@s3_6}n5oP&MN-ZLgJw^} z>@qSNU_6mWG;x-bU}2vfn}a1VCeF}AyEBF_5z z47)Sun8aW4>hCwEc8CTKuMf;s#LJ?aX>669&zxJ#PoI*QJnlj$hx$62B!Ne;%~BRg zn;|J99|$79pmJFPAyaMFK&ztSFUG^s;ofL3@QXG&G@9n4(E*;|1Qj}ZHQ^w@JTi(uLJn{p0=z>snU90T zu{<$*b5^)izQj84>Yr9Jmn?Ip?xUW;6k$vi!fFzypx|UTpzj|VR{_*+wn>5GJQ>Sy0Uliz$7kxj0u7~$7IzN2-Y!*hM6jBfN^(UjI-p z2~-7%P9Ft)MXn?4PO^@Ua%3`HIN?^;Rkzb14yyX3s>&{px}v!i{x^Z3+wi~hrIxTO z7~rqC!qM>DbRD2k)M_8}IM)%c>~LqI%~`ilzZ8vU6r{*Wx?C z9$*((Dsw+`smyhOsWMY9Q0XSa38X?)3plvdnn6=={eho4e{Q(;8FaVCMsYmpC{p0* zguRb%u8t2k*T&z&``^RA;MU-z)BM9>@&Ivf9+n>HCh8BlGq2L))O_a7w}|9fv_E|J zHqk;WTCTtI_r!=JXelNKb$}mx9AP6Y$4+I^M*@NaJQq_$mvY6q6%HV%a%3}A(-1CI z)#jL{YE!2&p^)wm_}kiA5SWOUa#1vmjMIgkM0)Dtk$@78rUhL_pTJqtLqiE6>=nAi zw0O@o@kDU@`JI5|?QEC4(^t>>q|WxHJO9={ZV7$qC^!03eS$TXcy9da)6YNiNJkwal31xCWxyjI7P}PtEdn}rinM(K;H zaAYtULJ^<`1FFtT-f*JFBQzPwt`@#{h*>y)Ds-u@(ED&}cAEE$%$`kLO`M$_3x6uC zpPj#cDH%KS$oc7Uzd7yeJbC%#?B%%!Pdswsh;RCSUkDt2V8VIx``uY8*j>Rw2OLDb-YGAFX zMNeeL`i{1tT59o#fD^!kD;x=E70^OGwTwiyhBpwwsYI!;lZ2`9K&X9G4#aSep;)h$ z%P4=+sA#K2JPJ`SzqiI8K>&6Bvi$mtJK%fU!9l~!>nKSwGXGk@aMft}8yB5%oy(g1 z`bBpay?a4j@IXO%K;b_=#CVmO22~vU&x&6W2Z51Ryo9SpcM;s;;uX3# z>4xMDe4@S0ixS*8($>>%2AUgNy&+A;RoUS3#Ue>;rDEbW5qCOLMfFV;@2L(Ac>;x< znC(xetaqbUD%~&qla;E{DU0ZI|GUvxil?m0sd#@neJRcPdU`(1QXqh#zb2VCl9KQ-V^SD`zN_~fJV1D*AcAZNu@YmU&)@aV$cvGp$ z1?J_AHClwcqee@hBQ;uPIv=Rf3gnYD+RZMZKB>;rz@q%++}8FJJ8LVeWuq^5pOHLv ze9*Y|gs}zD+GcUxDBdWqZtd(E8Dn{Cvs_wV-%2cQZS1ZW%ca@U%8m8njzc@mrP9vs z+SaCVJaNq7r%Icp9Vjl*jJuDoB+KPxV|iz5!#G`=%h=x8x?Wl=Csxbl?eT$u!)u_Z z*kar43ATf+S-}fanHl&&E646bpF{#Uj+AP!YtS&DS=Cy@#ueE*Bt>=uPpmp4yWlhU zE`!^Iv;>WH&D9Z5bfy@=Ia*eyV8+paU8@U$+eiLuzE!;0}tZm-dl{QM7H@u6*&BfAsd~t1O zalN#pR9R_z{l>0`n)*Pa^GKZ&7q?bi#d5i{Sq3B;52$!?z1)14t53SSwgR-tyBllk zB^eO;_@=l~T2)ro%Bwf7HSCmj*PblJmv5}ED`ZmqxZ@g12>gb?$}!}?3tN`Zab6jFzhj+#`1Z?c25?U>^@@M zlZJhah-0Mj?U@B*+1T4FLS<&50Eyu!5j8^8NTH*U&*wXA7R%>No6Rhg^7*(eSO(^i zB1M=W=Vlgc+05FCneFKA&fB~Yw?)f@J;qW+zLqs;hqz){SAVyO$Le%Pb(|g%BF<%esMOvwMX~qa3q0VjW>P?}MT@7Pp(M3a7r= zstDA#SQU|azg3Z_43-h>O)pVqrTOuxTtTlY%TU7*KWt!ZFr^wYg6Be zwW&XXwW;sI+SDJ#+SD6ZoBD37O??<^Q*UBz>U%6B<=`h`!R5w+kwZWWv;jr*c29qI z+>TmyBxXl|yk3B83fQPa&n%9a#@@pV?-gQ)<96RcJh^W7_S-yo%n9Fphuyt*sNXV% z9cyA1v&AaDaZ2jz5y|wgISFGTZH`s?c@S1v@BtRowF&@GaV&1ftwbmlw-X;Qik)AC z#sGrH^oWr#rs#~p=?C}rrpzgvoP}%f!R9#2368Q7s~oeiHn4|(j*6{J#!7n$(=bwd znCtl6VIxtU! zX-dcymP}jB6_;>$gPgpop;CcA1vOm--I5pWM;2tb=$G^-J>W;C-FRoE1_hifb5>R~O=od7TD zksq;4BSG$;Mt(}=6O||r0NJAlVg&!Lc?qbh;Y5V+QV*aFESP|50?4h}n8Im9Hah@T-NpYMIa41EEEF9&t0{A= zqx;atb?0lAoFtd)p-YpO-4tIkq-O1bV-LWwVD-e@!dp!+;7`~V4oK#A$WI{;@POZr zLnmw51L$%Tn@L2^IE^%3kH!QN15Qj1!JD*hF_r>x8U!a|%DTlJ$r%uiIz-Hn4iOhg=LCpZ(jj7wbcmQI9U>kkoivC`q(j8V zNQa08(jg*GI^!TNlMWGANQa0=NQa2uv+U$Sn6DCJk3jsWLydweIH-Ym3{26o2M@Hb z5#wktIuvOyITWduEPLocb(t7Pb;Y4bb=9Frb;Hc!7Z0p90|0pE06>%+ zLmVLIV)qoA3!cQr5dI%1T-={KW3>gWbOQk75FJ_l3s)yQN34(407)$F19Stfu2>NO zC~nW^z=DUM7T3_#!#4n{N!)TQbQQ6??p_YJapqVKxdmG<*M)~&0QO#rP%P*84;RF& zo^~EiSgjEIjL!i8r?MT-`rO;=sV@Lfv0!6RSnPg^AUgC$I$?9E+Ogd17AZwJHvzd0 zwvJ@>xqW@Zef{vE=GS3iMFcA14{Svo9qnyx?QNZ$`-pMItxOnLtVOyh9LX*UhA4(u z1`Ww*obf(`fCWR6=eK9r+B%2YGJ@5?6yBg?hW;0H;5!`Oz@?0gSqu!;gx5FZ#=l;H zU^*fyQ@9{*=7DGez`q&%9sq80m2lNb)xRp=$SE@bR55t$0l9gmv;GriH0kn=-c+)V zg@t681!=>*;Rpc+5d?I|pOck^uojQCl+<@4@6&_5CkZNDX6)z9hc6X)ntf|q1v5r_ zH7s3bWVh5=xS=nZqMu9_rDWn()+l6XpK4iQ{O%>DlY)I7w^A8sp(^rtwA~i>4TX=) z_n;R1=KSlM9A*Zl`7VW|Ycy<5S}P2W6-lN+ zJa}Y$@0k>Ty^L}nGdvkQ|i6U<+%5Pk_Kh_-_^br zWecbYPJ<@JB=4XV{k8SeqQc-llSO80+ajqpr^&j|Z%Sox_G)hr!`c_GeCO#z6?|oT zg|*Ywt2#SIAUOwPM-|}^^4X6&r3>F@|Nh!!G=Wz?_IY=p%U0OgO=H>6dp7&a{{Nd}6 zu?u?L)vp?fYxcnpR4xqNg1Pj0-m05_JuZ)8_j$;n(jgj6LO;A>5+UQOHaF}1c)dmR zZ`A0ycBP#H(cE^)SupXHKF?hi7o(Ctnz`Q`Fn+ZQE`~ZSUG#Ed^{VMyhd)V3>cqDq z?DFYIOl|Vdm+&QSz|k)Ml$InSbuKdmw41$9#kyUtF~kQ{@VAfe578XN2$Ug4bL^x3 zvYLDy&leY4zxlGTm3+yvbd-ep`*@@5C3y#8S;KRVJPBpSDdoZ1fw;#ZRjckfXIdib zkH-W?&>Pb#f0t;wuv;)g{ZX2ZlX!u!Jr=e{U+ls(@>*Jk*@r^>)<_7Dh~n}tE_&3O zaQ!^p1Np_n>ckxN#fGV~kIBa(Z0dn5Io~bLzpcJM&|4JFITWiB+Xm6<688a42TC{- zvhzfxe{#ytjtOk7q5?*=Ra@W%a#3YJH=o;_Hp(3JemeLl+-CLcIg!Qm9i+qGU(3dh zReS84LbY&yjhegsiKb5&RH5CF&fb)?pyn3l_mIk_W9zi(;jPppltMVOie>AeT?4l+ zVwjiB+T<-nVbVCENmbBGU|4=7Etcd_)L=WAAGzC;!JVQ&24)h@sG{Z`3U5t;$F$4M z!_SV`s-MhkpAFHj?gS#KC=1r0mqx$f81<`dvbk>OMX_)J)2i~zID^Le`M*XMh|+|2 z^lfkgjKm(34DE!$#*-CaFKO3BTm|?G31x0m$xquKAr2B5lAFtTzM^Kq1Flo{mkJ98 zd8MW`9XeV2DC*Od=B_K~WlOH5`t%hB+~ctkQ@}0yUWoXg9D#kCMOeN;TqrHhbLuMbF;?Q*vKpN}uVHFkXmU z>c`9~Qm}Qr>^bBEyv+^D7lodVaTa>@My31DG=pp@(3grK-aoraP1ca5B zS-PfAh(iA?aBm6sy+jiFqdCvgSYC~yJMe$W$l%!|sfuvCw$03y1IW>w0h(m}Y%+L> z=vln86qZ-@XwK-*oSNv4JHN76Uh!{GywD@-mr}3Ocf8IZm<29Iicw0Hc}y&G(vIqN zdNY^u=6}P~9N8bic9WC$sCP}+1pfrZYF_no8HY$99aOH~5a?XZVo784q|3+5Y;J*i zviy?-vTMA|-CAqxM;ZJ70^QsI+04ovAD1#s_skI zhD;3lP<)77a1Ol49wF8IrK*bfQO06=sG9{_tJ)=@fu={Y`9*^u)h;n7XBGZY z-$absuU8RD7I^yuA5EAyMjZ4-pktR*4q0$c3r_R>Y%`o#}##eu+c%JIXxU9yTqPISJd{}UR95|fmo`2v0 z{u$z$WxG>@X;=v{w{Z=u;^&kuS@#%7E&REltU9RDCe^lVU*Hfd2K$@bs4h%NBtnGS zFa6yKnraG$r);3cl(-UK_psGjca%d}uNFW<(gy z-fDAmym@`}pa0HG@v)s`MB~<}cE+v8SYyB%#eP!_qg`C}U~V{V@j@ zQU&$Z3^IFC2s9EDM;sa1<`LWL@)i8FpIOTAD|krqtnYptvs9c;hN0(@1lywP#!ytN z*Qq(7k3P|I5*Np}FKBX(J~T9$$CWavFdJHCGDKs)*C@s-orGL)lbPbwrX1p-5tK7_ z7x&{v5CwY%yjXOd@O60I!fxKqbZ-01)cvRI3C*kyQ#`K1_8_1cryq0(*zIlSM1*V+ zX<%du!(+IHjCh>*sI>09HBl{db1AYyJ||Y=+l0u!`jC({&2!;3JEZdV5nV9~ zSFz#uo(IzUH0!+Y%m=eN5MjITmsp2UxUfF?{lu(jZ<2k`K1rI+A$e@md$>`67u8sej03p zh+V~kX^A=wQhJp27ExU25VOS){+z5SB1Ui*w}H;CFUQ3!Q=bj>IiWOVtk+v}=mQ+d z$|_#TrHwC^ZrSRDWEDf3MXt+{Bv_8LGj80|ZiCmVPO*l|6IMk}?g`Q*e@%z>;y+Eo z+#jE(vvCG;7|u7=NMe1@hs6d>d+W{z24dU=e|raWF`f7boTV@k9yV^J7ak)>NEREM zE4Dg_bGqwx{X2UeDvZ&eRMwpGvH{$lLTGS-C@;eJG;fQkMo(Dir4wQY-$yDddS3w2 zNo4_aOqYy&3}*_Nrmy&{&CR)|U1&Ra%0RKQwB#x%GmN`nBFDMQ7nOd$zR@|9SmLz17)(yxqG<=`laaX%7!abt!)Qqyfe zcxqMdr#vM=i;uTNUXpQa zD7&%L5$LL0@$WPdBm?e~){xmn!72U1JC^!Yam2OS3>lp3LHQtX(}l<4#o-rgWRKvP z-ri#iTOxP0ggo^SoGgduMxqzVy_CL@`ggZuBZRzYFRf9dq(lk^4Al7X%GBs>^!Jr~ zS7|gYRiA@o6W6T&vG4+@K!XjWC|IRggws~v9rT=^KBVX<76%q=v{HxO#lS7bB-qzR z{^gaz8f8v^pEmu(E=^z0riIi@lkYZVzGG&6@d>RgX5bcoHTda`SH5@lujgFiTn-fG z#9Lk8&1l_2aE?0GH%F=~{y0?=c5AAEx`7MIt~QU%Aa<|Uigq@b$=DAsY2NRdJ!3q* zc97b5MpJv#`aR-odU`aHcmfjA)xqgI_nNBa@;xQEx{xMoe|k(L-zNu-<`kQ%I7Llz z=O;qGme&M6w#$6QB2wF4#buRSEmVwbk(p}nxa%HOGDd-uI;|#z+%xx~3P>@3LzQ%& z_EW8i&c`QggSE!_va)&&vOyJ0A(F_QIVY3xby2N?$8ye^N9Nvp_1x4lvR2PHWsI52 zI*$JBQ9r4-4m!|{PblcQ_$c+jMrO{mMe#v1j6Pvo)P^IAnSGS8lkQT-e(=(^`{~P* z?WuR`Yb6gcZpJ(Rboe{nE^nBr#ob7B1z8t#^PyIuCbUBl3Zgv59Ao9%?_7QamYRoz zstLc`Ir*E{5_1tHdsU`1>F#eb>C;-PM!iHikro1;K+kP4aOSDujf!s9riF%|fdh zS7)W_SUyj)Qg_u&XV%DQ)LAJgbb7gkczz|_)UdsoTpFWol2bg_Vjn3^jXzoqgXrrN z0S;{04UrB_wcL^3`Lc!J~3AIaPVGVp)0l z^>v2$gI{GYT$IJ*6BXFb=nq#k$CFn1oyRd_o6qzEPlb|9&quU`I3MwNmV*`wS>P*) zkE7~*{R2i{FFPwbs%>bpKZv!3LsxV)d7r1Rza#YbX@y>tZ6~d~9%!sc;0|a~l%>(h z?ooKzSvx!fy?Vfn5?(Qa3fvQQ7oBEc z1-cAXt1Q%J%*owe&asEEyg3pOT%ZwuK+{9-w9+1(y+A}cJu%s0Q~c6^S56cMCI*>S z!k&dEFel_Tsdf)xlhRWgde#$F2{FF3A~Q>www?|BYP}U^{`<~SJEtKbxZ;p~?+Eo* zgrcN8oxVW}8Vt74qKF~l&%;$vWiYt_D|t|U^cP)y1*Zr&<6H_qg2-e60iZ(KDP>MEh1mnUQ`EFS|9&k%RFbk};gKi=l@ZuZsZ>L)S11-dw Ah5!Hn literal 0 HcmV?d00001 diff --git a/public/images/application.png b/public/images/application.png new file mode 100644 index 0000000000000000000000000000000000000000..dc7db9172651fd21b4421433829a5f9043394528 GIT binary patch literal 35603 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 Ikgm`F0384h@&Et; literal 0 HcmV?d00001 diff --git a/public/images/result.png b/public/images/result.png new file mode 100644 index 0000000000000000000000000000000000000000..db8a5a83ad5ff5aac153e1985a4d2f340408e257 GIT binary patch literal 37383 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 Z3OD$^hOXU}1iXNn!PC{xWt~$(69DOmCR6|b literal 0 HcmV?d00001 diff --git a/public/images/yeoman.png b/public/images/yeoman.png new file mode 100644 index 0000000000000000000000000000000000000000..f32abfbfef35d7cf270d6f031199df13a6af2994 GIT binary patch literal 62397 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%0Ali{;M87%!OO^v7D6x|ZeU~M5+T#Lj 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 VGA@c$>0qEADKUA`N@0Ni{{RwpFGv6Y literal 0 HcmV?d00001 diff --git a/public/style.css b/public/style.css new file mode 100644 index 0000000..d076e74 --- /dev/null +++ b/public/style.css @@ -0,0 +1,227 @@ + +* { + -webkit-box-sizing: border-box; +} + +body, html { + margin: 0; + padding: 0; + height: 100%; +} + +body { + font: 17px/1.5 "Lucida Grande", "Lucida Sans Unicode", Helvetica, Arial, Verdana, sans-serif; + background: white; + margin: 0; + color: #33333d; + overflow-y: scroll; + overflow-x: hidden; +} + +a { + color: #000; +} + +section { + min-height: 50%; +} + +section:not(:last-child) { + border-bottom: 1px solid #eee; +} + +section:not(#top) { + padding: 150px 100px; + text-align: center; +} + +pre { + background: white; + border-top: 1px solid #eee; + border-bottom: 1px solid #eee; + padding: 25px; + font-size: .9em; + font-family: monospace; + overflow-x: auto; +} + +xmp { + margin: 0; +} + +.content img { + width: 100%; + border: 1px solid #ddd; + padding: 1em; + margin: 2em 0; + border-radius: 5px; +} + +p { + font-weight: 300; + font-family: "Lucida Grande", "Lucida Sans Unicode", Helvetica, Arial, Verdana, sans-serif; +} + +code { + font-family: monospace; + font-size: .9em; +} + +h1 { + font-size: 2em; + margin-top: 0em; + padding-top: 1em; +} + +h1:not(:first-child) { + margin-top: 50px; +} + +h2 { + margin-top: 80px; + font-size: 1.2em; +} + +h3 { + margin-top: 40px; + font-size: 1em; +} + +ul li { + padding: 0.1em 0; + /*font-size: .8em;*/ +} + +section:nth-child(2n) { + background: #fdfdfd; + box-shadow: inset 0 1px 0 0 white; +} + +.content { + margin: 0 auto; + max-width: 750px; + text-align: left; +} + +#top { + height: 100%; +} + +#heading { + -webkit-user-select: none; + position: absolute; + top: 50%; + margin-top: -150px; + text-align: center; + width: 100%; +} + +#logo { + font: 100px 'Italiana', sans-serif; + text-transform: lowercase; +} + +#tagline { + font-size: 16px; +} + +.github-img { + width: 100px; +} + +#menu { + position: fixed; + top: 35px; + right: 30px; + z-index: 50; +} + +#menu:hover ul { + display: block; +} + +#menu a { + color: inherit; +} + +#menu a#toggle { + position: absolute; + top: 0; + right: 0; + padding: 5px; + background: rgba(255,255,255,.9); + border-radius: 2px; + border: 1px solid transparent; + z-index: 5; +} + +#menu:hover a#toggle { + border: 1px solid #efefef; + border-bottom: none; +} + +#menu i.icon-menu { + font-size: 1.5em; +} + +#menu ul { + display: none; + position: absolute; + width: 200px; + top: 2.8em; + right: 0; + margin: 0; + border: 1px solid #efefef; + border-bottom: 1px solid #ddd; + border-radius: 2px; + padding: 25px; + background: rgba(255,255,255,.95); + box-shadow: 0 1px 3px 0 #eee; +} + +#menu ul li { + list-style: none; +} + +#menu ul li a { + display: block; + text-decoration: none; + padding: 3px 0; +} + +#menu ul li a:hover { + text-decoration: underline; +} + +ul.task-list { + list-style-type: none; + padding-left:10px; +} + +ul.task-list .task-list-item-checkbox { + margin-right: 10px; +} + +@media screen and (max-width: 700px) { + section:not(#top) { + padding: 50px 25px; + } + + #heading { + margin-top: -75px; + } + + #logo { + font-size: 75px; + } + + #tagline { + font-size: 12px; + } +} + +@media screen and (max-width: 500px) { + body { + font-size: 13px; + } +} diff --git a/test/runner.html b/test/runner.html deleted file mode 100644 index f4a00a1..0000000 --- a/test/runner.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - End2end Test Runner - - - - - - \ No newline at end of file diff --git a/test/spec/directives/oauth.js b/test/spec/directives/oauth.js deleted file mode 100644 index 0f33f44..0000000 --- a/test/spec/directives/oauth.js +++ /dev/null @@ -1,259 +0,0 @@ -'use strict'; - -describe('oauth', function() { - - var $rootScope, $location, $sessionStorage, $httpBackend, $compile, AccessToken, Endpoint, element, scope, result, callback; - - var uri = 'http://example.com/oauth/authorize?response_type=token&client_id=client-id&redirect_uri=http://example.com/redirect&scope=scope&state=/'; - var fragment = 'access_token=token&token_type=bearer&expires_in=7200&state=/path'; - var denied = 'error=access_denied&error_description=error'; - var headers = { 'Accept': 'application/json, text/plain, */*', 'Authorization': 'Bearer token' } - var profile = { id: '1', full_name: 'Alice Wonderland', email: 'alice@example.com' }; - - beforeEach(module('oauth')); - beforeEach(module('templates')); - - beforeEach(inject(function($injector) { $rootScope = $injector.get('$rootScope') })); - beforeEach(inject(function($injector) { $compile = $injector.get('$compile') })); - beforeEach(inject(function($injector) { $location = $injector.get('$location') })); - beforeEach(inject(function($injector) { $sessionStorage = $injector.get('$sessionStorage') })); - beforeEach(inject(function($injector) { $httpBackend = $injector.get('$httpBackend') })); - beforeEach(inject(function($injector) { AccessToken = $injector.get('AccessToken') })); - beforeEach(inject(function($injector) { Endpoint = $injector.get('Endpoint') })); - beforeEach(inject(function($injector) { callback = jasmine.createSpy('callback') })); - - beforeEach(inject(function($rootScope, $compile) { - element = angular.element( - '' + - 'Sign In' + - '' - ); - })); - - var compile = function() { - scope = $rootScope; - $compile(element)(scope); - scope.$digest(); - } - - - describe('when logged in', function() { - - beforeEach(function() { - $location.hash(fragment); - }); - - beforeEach(function() { - $httpBackend.whenGET('http://example.com/me', headers).respond(profile); - }); - - beforeEach(function() { - $rootScope.$on('oauth:success', callback); - }); - - beforeEach(function() { - compile($rootScope, $compile); - }); - - it('shows the link "Logout #{profile.email}"', function() { - $rootScope.$apply(); - $httpBackend.flush(); - result = element.find('.logged-in').text(); - expect(result).toBe('Logout Alice Wonderland'); - }); - - it('removes the fragment', function() { - expect($location.hash()).toBe(''); - }); - - it('shows the logout link', function() { - expect(element.find('.logged-out').attr('class')).toMatch('ng-hide'); - expect(element.find('.logged-in').attr('class')).not.toMatch('ng-hide'); - }); - - it('fires the oauth:login event', function() { - var event = jasmine.any(Object); - var token = AccessToken.get(); - expect(callback).toHaveBeenCalledWith(event, token); - }); - - describe('when refreshes the page', function() { - - beforeEach(function() { - $rootScope.$on('oauth:success', callback); - }); - - beforeEach(function() { - $location.path('/'); - }); - - beforeEach(function() { - compile($rootScope, $compile); - }); - - it('keeps being logged in', function() { - $rootScope.$apply(); - $httpBackend.flush(); - result = element.find('.logged-in').text(); - expect(result).toBe('Logout Alice Wonderland'); - }); - - it('shows the logout link', function() { - expect(element.find('.logged-out').attr('class')).toMatch('ng-hide'); - expect(element.find('.logged-in').attr('class')).not.toMatch('ng-hide'); - }); - - it('fires the oauth:login event', function() { - var event = jasmine.any(Object); - var token = AccessToken.get(); - expect(callback).toHaveBeenCalledWith(event, token); - }); - }); - - - describe('when logs out', function() { - - beforeEach(function() { - $rootScope.$on('oauth:logout', callback); - }); - - beforeEach(function() { - element.find('.logged-in').click(); - }); - - it('shows the login link', function() { - expect(element.find('.logged-out').attr('class')).not.toMatch('ng-hide'); - expect(element.find('.logged-in').attr('class')).toMatch('ng-hide'); - }); - - it('fires the oauth:logout event', function() { - var event = jasmine.any(Object); - expect(callback).toHaveBeenCalledWith(event); - }); - }); - }); - - - describe('when logged out', function() { - - beforeEach(function() { - $rootScope.$on('oauth:logout', callback); - }); - - beforeEach(function() { - AccessToken.destroy(); - }); - - beforeEach(function() { - compile($rootScope, $compile) - }); - - beforeEach(function() { - spyOn(Endpoint, 'redirect'); - }); - - it('shows the text "Sing In"', function() { - result = element.find('.logged-out').text(); - expect(result).toBe('Sign In'); - }); - - it('sets the href attribute', function() { - result = element.find('.logged-out').click(); - expect(Endpoint.redirect).toHaveBeenCalled(); - }); - - it('shows the login link', function() { - expect(element.find('.logged-out').attr('class')).not.toMatch('ng-hide'); - expect(element.find('.logged-in').attr('class')).toMatch('ng-hide'); - }); - - it('fires the oauth:logout event', function() { - var event = jasmine.any(Object); - expect(callback).toHaveBeenCalledWith(event); - }); - }); - - - describe('when denied', function() { - - beforeEach(function() { - $location.hash(denied); - }); - - beforeEach(function() { - $rootScope.$on('oauth:denied', callback); - }); - - beforeEach(function() { - compile($rootScope, $compile) - }); - - beforeEach(function() { - spyOn(Endpoint, 'redirect'); - }); - - it('shows the text "Denied"', function() { - result = element.find('.denied').text(); - expect(result).toBe('Access denied. Try again.'); - }); - - it('sets the href attribute', function() { - result = element.find('.denied').click(); - expect(Endpoint.redirect).toHaveBeenCalled(); - }); - - it('shows the login link', function() { - expect(element.find('.logged-out').attr('class')).toMatch('ng-hide'); - expect(element.find('.logged-in').attr('class')).toMatch('ng-hide'); - expect(element.find('.denied').attr('class')).not.toMatch('ng-hide'); - }); - - it('fires the oauth:denied event', function() { - var event = jasmine.any(Object); - expect(callback).toHaveBeenCalledWith(event); - }); - }); - - - describe('with no custom template', function() { - - beforeEach(function() { - AccessToken.destroy(); - }); - - beforeEach(function() { - compile($rootScope, $compile) - }); - - it('shows the default template', function() { - expect(element.find('.btn-oauth').text()).toBe(''); - }); - }); - - - describe('with custom template', function() { - - beforeEach(function() { - AccessToken.destroy(); - }); - - beforeEach(function() { - compile($rootScope, $compile) - }); - - beforeEach(function() { - $rootScope.$broadcast('oauth:template:update', 'views/templates/button.html'); - $rootScope.$apply(); - }); - - it('shows the button template', function() { - expect(element.find('.oauth .logged-out').text()).toBe('Login Button'); - }); - }); -}); diff --git a/test/spec/services/access-token.js b/test/spec/services/access-token.js deleted file mode 100644 index 508a32d..0000000 --- a/test/spec/services/access-token.js +++ /dev/null @@ -1,196 +0,0 @@ -'use strict'; - -describe('AccessToken', function() { - - var result, $location, $sessionStorage, AccessToken, date; - - var fragment = 'access_token=token&token_type=bearer&expires_in=7200&state=/path'; - var denied = 'error=access_denied&error_description=error'; - var token = { access_token: 'token', token_type: 'bearer', expires_in: 7200, state: '/path' }; - - beforeEach(module('oauth')); - - beforeEach(inject(function($injector) { $location = $injector.get('$location') })); - beforeEach(inject(function($injector) { $sessionStorage = $injector.get('$sessionStorage') })); - beforeEach(inject(function($injector) { AccessToken = $injector.get('AccessToken') })); - - - describe('#set', function() { - - describe('when sets the access token', function() { - - beforeEach(function() { - $location.hash(fragment); - }); - - beforeEach(function() { - result = AccessToken.set(); - }); - - it('sets the access token', function() { - expect(result.access_token).toEqual('token'); - }); - - it('sets #expires_at', function() { - var expected_date = new Date(); - expected_date.setSeconds(expected_date.getSeconds() + 7200 - 60); - expect(parseInt(result.expires_at/100)).toBe(parseInt(expected_date/100)); // 10 ms - }); - }); - - describe('with the access token in the fragment URI', function() { - - beforeEach(function() { - $location.hash(fragment); - }); - - beforeEach(function() { - result = AccessToken.set(); - }); - - it('sets the access token', function() { - expect(result.access_token).toEqual('token'); - }); - - it('removes the fragment string', function() { - expect($location.hash()).toEqual(''); - }); - - it('stores the token in the session', function() { - var stored_token = $sessionStorage.token; - expect(result.access_token).toEqual('token'); - }); - }); - - describe('with the access token stored in the session', function() { - - beforeEach(function() { - $sessionStorage.token = token; - }); - - beforeEach(function() { - result = AccessToken.set(); - }); - - it('sets the access token from session', function() { - expect(result.access_token).toEqual('token'); - }); - }); - - describe('with the denied message in the fragment URI', function() { - - beforeEach(function() { - $location.hash(denied); - }); - - beforeEach(function() { - result = AccessToken.set(); - }); - - it('sets the access token', function() { - expect(result.error).toEqual('access_denied'); - }); - - it('removes the fragment string', function() { - expect($location.hash()).toEqual(''); - }); - - it('stores the error message in the session', function() { - var stored_token = $sessionStorage.token; - expect(result.error).toBe('access_denied'); - }); - }); - }); - - - describe('#get', function() { - - beforeEach(function() { - $location.hash(fragment); - }); - - beforeEach(function() { - AccessToken.set(); - }); - - beforeEach(function() { - result = AccessToken.get(); - }); - - it('sets the access token', function() { - expect(result.access_token).toEqual('token'); - }); - }); - - - describe('#destroy', function() { - - beforeEach(function() { - $location.hash(fragment); - }); - - beforeEach(function() { - AccessToken.set(); - }); - - beforeEach(function() { - result = AccessToken.destroy(); - }); - - it('sets the access token', function() { - expect(result).toBeNull(); - }); - - it('reset the cache', function() { - expect($sessionStorage.token).toBeUndefined; - }); - }); - - - describe('#expired', function() { - - beforeEach(function() { - $location.hash(fragment); - }); - - beforeEach(function() { - AccessToken.set(); - }); - - describe('when not expired', function() { - - beforeEach(function() { - result = AccessToken.expired(); - }); - - it('returns false', function() { - expect(result).toBe(false); - }); - }); - - describe('when expired', function() { - - beforeEach(function() { - date = new Date(); - date.setTime(date.getTime() + 86400000); - }); - - beforeEach(function() { - Timecop.install(); - Timecop.travel(date); // go to the future for one day - }); - - beforeEach(function() { - result = AccessToken.expired(); - }); - - afterEach(function() { - Timecop.uninstall(); - }); - - it('returns true', function() { - expect(result).toBe(true); - }); - }); - }); -}); diff --git a/test/spec/services/endpoint.js b/test/spec/services/endpoint.js deleted file mode 100644 index 352b4a8..0000000 --- a/test/spec/services/endpoint.js +++ /dev/null @@ -1,59 +0,0 @@ -'use strict'; - -describe('Endpoint', function() { - - var result, $location, $sessionStorage, Endpoint; - - var fragment = 'access_token=token&token_type=bearer&expires_in=7200&state=/path'; - var params = { site: 'http://example.com/', clientId: 'client-id', redirectUri: 'http://example.com/redirect', scope: 'scope', authorizePath: '/oauth/authorize' }; - var uri = 'http://example.com/oauth/authorize?response_type=token&client_id=client-id&redirect_uri=http://example.com/redirect&scope=scope&state=/'; - - beforeEach(module('oauth')); - - beforeEach(inject(function($injector) { $location = $injector.get('$location') })); - beforeEach(inject(function($injector) { $sessionStorage = $injector.get('$sessionStorage') })); - beforeEach(inject(function($injector) { Endpoint = $injector.get('Endpoint') })); - - - describe('#set', function() { - - beforeEach(function() { - result = Endpoint.set(params); - }); - - it('returns the oauth server endpoint', function() { - expect(result).toEqual(uri); - }); - - describe('when in a specific /path', function() { - - beforeEach(function() { - $location.path('/path'); - }); - - beforeEach(function() { - result = Endpoint.set(params); - }); - - it('returns previous path in status', function() { - expect(result).toEqual(uri + 'path'); - }); - }); - }); - - - describe('#get', function() { - - beforeEach(function() { - Endpoint.set(params); - }); - - beforeEach(function() { - result = Endpoint.get(); - }); - - it('returns the oauth server endpoint', function() { - expect(result).toEqual(uri); - }); - }); -}); diff --git a/test/spec/services/profile.js b/test/spec/services/profile.js deleted file mode 100644 index 3a5e330..0000000 --- a/test/spec/services/profile.js +++ /dev/null @@ -1,85 +0,0 @@ -'use strict'; - -describe('Profile', function() { - - var $rootScope, $location, $httpBackend, $http, AccessToken, result, date, callback; - - var fragment = 'access_token=token&token_type=bearer&expires_in=7200&state=/path'; - var headers = { 'Accept': 'application/json, text/plain, */*', 'Authorization': 'Bearer token' } - var params = { site: 'http://example.com/', client: 'client-id', redirect: 'http://example.com/redirect', scope: 'scope', profileUri: 'http://example.com/me' }; - var resource = { id: '1', name: 'Alice' }; - - beforeEach(module('oauth')); - - beforeEach(inject(function($injector) { $rootScope = $injector.get('$rootScope') })); - beforeEach(inject(function($injector) { $location = $injector.get('$location') })); - beforeEach(inject(function($injector) { $httpBackend = $injector.get('$httpBackend') })); - beforeEach(inject(function($injector) { $http = $injector.get('$http') })); - beforeEach(inject(function($injector) { AccessToken = $injector.get('AccessToken') })); - - beforeEach(function() { callback = jasmine.createSpy('callback') }); - - - describe('.get', function() { - - describe('when authenticated', function() { - - beforeEach(function() { - $location.hash(fragment); - AccessToken.set(params); - }); - - beforeEach(function() { - $httpBackend.whenGET('http://example.com/me', headers).respond(resource); - }); - - it('makes the request', inject(function(Profile) { - $httpBackend.expect('GET', 'http://example.com/me'); - Profile.get(params.profileUri); - $rootScope.$apply(); - $httpBackend.flush(); - })); - - it('gets the resource', inject(function(Profile) { - Profile.get(params.profileUri).success(function(response) { result = response }); - $rootScope.$apply(); - $httpBackend.flush(); - expect(result.name).toEqual('Alice'); - })); - - - describe('when expired', function() { - - beforeEach(function() { - $rootScope.$on('oauth:expired', callback); - }); - - beforeEach(function() { - date = new Date(); - date.setTime(date.getTime() + 86400000); - }); - - beforeEach(function() { - Timecop.install(); - Timecop.travel(date); // go one day in the future - }); - - beforeEach(function() { - }) - - afterEach(function() { - Timecop.uninstall(); - }); - - it('fires the oauth:expired event', inject(function(Profile) { - Profile.get(params.profileUri); - $rootScope.$apply(); - $httpBackend.flush(); - var event = jasmine.any(Object); - var token = jasmine.any(Object); - expect(callback).toHaveBeenCalledWith(event, token); - })); - }); - }); - }); -}); From 74db095db32661563e9f1d7b043f7ebf48ba9d3f Mon Sep 17 00:00:00 2001 From: Andrea Reginato Date: Wed, 21 May 2014 10:06:56 +0200 Subject: [PATCH 02/30] Added first block of documentation --- index.html | 495 +++++++----- public/javascripts/assets/css/simplemodal.css | 201 +++++ public/javascripts/assets/images/loader.gif | Bin 0 -> 2545 bytes .../javascripts/assets/less/simplemodal.less | 220 +++++ public/javascripts/simple-modal.js | 758 ++++++++++++++++++ public/style.css | 69 ++ 6 files changed, 1525 insertions(+), 218 deletions(-) create mode 100755 public/javascripts/assets/css/simplemodal.css create mode 100755 public/javascripts/assets/images/loader.gif create mode 100755 public/javascripts/assets/less/simplemodal.less create mode 100755 public/javascripts/simple-modal.js diff --git a/index.html b/index.html index d9ee03b..8e91ecb 100644 --- a/index.html +++ b/index.html @@ -1,7 +1,7 @@ - lelylan-ng | AngularJS client library for Lelylan + oauth-ng | AngularJS directive for OAuth 2.0 @@ -27,8 +27,8 @@
- -
AngularJS Client Library for Lelylan
+ +
AngularJS directive for OAuth 2.0
@@ -36,9 +36,8 @@

Introduction

- Build web apps for the Connected Home using the power of AngularJS and - Lelylan, a new platform - to monitor and control any devices through a simple and robust REST API. + Create AngularJS apps that connects to any OAuth 2.0 server using the client side + flow (aka OAuth 2.0 Implicit Grant)

@@ -51,47 +50,32 @@

Getting Started

Installation

- Install lelylan-ng using Bower. + Install oauth-ng using Bower

-
$ bower install lelylan-ng --save
+
$ bower install oauth-ng --save
-

Code Sample

+

Basic Example

- The code above lets you get your devices. To fully understand what's going on - read the detailed tutorial section. + This example shows you how the directive works.

-
<html ng-app="example">
-  <body>
-
-    <!-- OAuth2 directive -->
-    <oauth2
-      site="http://people.lelylan.com/"
-      client-id="<client-id>"
-      redirect-uri="http://redirect.example.com/"
-      scope="devices"
-      profile="http://api.lelylan.com/me">
-    </oauth2>
-
-    <!-- Show the owned devices -->
-    <div ng-controller="ExampleController">
-      <div ng-repeat="device in devices">{{device.name}}</div>
-    </div>
+      <pre><code><xmp><body ng-app="app">
+  <oauth2
+    site="<oauth-server-uri>"
+    client-id="<client-id>"
+    redirect-uri="<redirect-uri>"
+    scope="<your-scope>"
+    profile="<profile-uri>">
+  </oauth2>
 
-    <!-- Gets the owned device -->
-    <script>
-      function ExampleController($scope, Device) {
-        Device.query().success(function(data) { $scope.devices = data });
-      }
-    </script>
+  <script>angular.module('app', ['ng-oauth']);</script>
+</body>
- - - +

+ To fully understand how it works read the how to section. +

@@ -99,14 +83,16 @@

Code Sample

-

Tutorial

+ + +

How To

- In this tutorial we describe step by step how to create a web app that lets - you show the status of your devices. + In this section you will learn how to use the directive to authorize an OAuth 2.0 server + through the creation of a real project (in 10 minutues).

-

Yeoman

+

Setup

To build our app we'll use Yeoman, a collection of tools @@ -174,17 +160,17 @@

Create your AngularJS app

-

Install lelylan-ng

+

Install oauth-ng

- Install lelylan-ng using Bower. + Install oauth-ng using Bower.

-
$ bower install lelylan-ng --save
+
$ bower install oauth-ng --save

- With this command lelylan-ng and all its dependencies are downloaded. To automatically - add them to the index.html page stop and restart the server. + With this command oauth-ng and all its dependencies are downloaded. To automatically + add them to your index page stop and restart the server.

$ grunt serve
@@ -194,252 +180,323 @@

Install lelylan-ng

-

Add lelylan client

+

AngularJS app definition

- Add the Lelylan client to your AngularJS app. + Inject the oauth-ng module into your application and remember its initialization in your + index page using the ng-app directive.

// app/scripts/app.js
-angular.module('newProjectApp', ['lelylan.client'])
-...
- -

- This lets you access to all the directives and the services defined in lelylan-ng and its - dependencies. -

+angular.module('newProjectApp', ['oauth']) -

Authorize your app

+

OAuth 2.0 Server

- Lelylan API uses the OAuth 2.0 protocol for authentication and authorization. - OAuth lets users grant the access to the desired resources to third party applications, - giving them the possibility to enable and disable those accesses whenever they want. -

+ To test the directive we created a basic OAuth 2.0 authorization server (using + Ruby). -

- You need to register your applications - before getting started. A registered OAuth application is assigned with a unique Client ID - and a Redirect URI needed to make the authorization flow work. You will need them soon. +

    +
  • uri - http://oauth-ng-server.herokuapp.com
  • +

- - - -

- To get the authorization token you need to use - oauth-ng, an - AngularJS directive for the OAuth2 Implicit Flow. What it does is quite simple. - It shows you a Login link pointing to the authorization page for - your application and save the access token once you authorize the application. + The source code is available on Github.

-

- Open the main.html view and set the oauth directive replacing the the - client-id and the redirect-uri with your application ones. -

-
// apps/views/main.html
-...
-<oauth2
-  site="http://people.lelylan.com/"
-  client-id="<client-id>"
-  redirect-uri="<redirect-uri>"
-  scope="devices"
-  profile="http://api.lelylan.com/me">
-</oauth2>
-...
+

Identify your application

- The oauth component accepts the following attributes. + To make the directive work you need a registered application. Here one.

    -
  • site - Lelylan authorization endpoint.
  • -
  • client-id - Registered Client ID.
  • -
  • redirect-uri - Registered URI where the user is redirected after the authorization.
  • -
  • scope - Application privileges. Learn more.
  • -
  • profile - Lelylan API endpoint returning the profile resource
  • -
  • state - Optional opaque value used by the client to maintain state between the request and callback
  • +
  • client-id - 017b9f702a904869a6e52bd39b147bb912.
  • +
  • redirect-uri - http://localhost:9000
- -

Get your devices

-

- A device is everything you interact with everyday of your life. You interact with - lights, alarms, cooling and heating systems, smoke and gas sensors, appliances, rolling - shutters and windows, irrigations, video surveillance, gates, multimedia (audio and video) - and much more. The Devices API defines a set of services to monitor, control, simulate - and connect everything. + Use the client-id and the redirect-uri above or + register a new one.

+ +

Add the oauth-ng directive

+

- To get all your devices you need to use the Device#all method. Open the - main controller and replace the existing code with the following. + Open the main.html view and place the oauth directive.

-
// apps/scripts/controllers/main.js
-angular.module('newProjectApp')
-  .controller('MainCtrl', function ($scope, Device) {
-    Device.all()
-      .success(function(data) { $scope.devices = data })
-      .error(function(data)   { $scope.error   = 'Unauthorized request. Login first.' })
-  });
+
// apps/views/main.html
+<oauth2
+  site="http://oauth-ng-server.herokuapp.com/"
+  client-id="017b9f702a904869a6e52bd39b147bb912"
+  redirect-uri="http://localhost:9000/"
+  profile="http://oauth-ng-server.herokuapp.com/profile">
+</oauth2>

- This is what happens. You inject the Device service and use the - Device.all() method to get all of your devices. The request returns - a promise with two $http specific methods. + Follows a description for the used attributes.

-
    -
  • success - used to save the devices into $scope.devices.
  • -
  • error - used to set an error message into $scope.error.
  • -
+ + + + + + + + + + + + + + + + + + + +
+ site + + The URI representing the OAuth 2.0 authorization server. +
+ client-id + + Registered Client ID. +
+ redirect-uri + + Registered application URI. Where the user is redirected after the authorization. +
+ profile-uri + + API endpoint returning the authenticated profile resource. +
+ -

Show your devices

+

You're done!

- Open the main.html view and list your devices using - $scope.devices. + Nothing else to do. Open your index page, click the Login link, + authorize your app and get the authenticated user info. You are now ready to + access to your API in a secure way.

-
// apps/views/main.html
-<div ng-if="devices" ng-repeat="device in devices">{{device.name}}<div>
-<div ng-if="error">{{error}}</div>
-

- What you are doing here is a loop between all devices to show their names - or the visualization of an error message whenever you are not logged in and - the request to get the devices fails. - Here the final result. + #TODO See Demo.

- - -
-
- -
-
-

Implemented services

- All methods are fully descibed in the Dev Center. + #TODO See Github Repository.

- - -
+ +
-

Requests

-

- Every request returns a - promise - with two $http specific methods: success and error. -

+

Configurations

-
Device.all().
-  success(function(data, status, headers, config) {
-    // this callback will be called asynchronously
-    // when the response is available
-  }).
-  error(function(data, status, headers, config) {
-    // called asynchronously if an error occurs
-    // or server returns response with an error status.
-  });
+

+ The directive accepts the following attributes. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ site + required + + A string that represents the authorization endpoint. +
+ client-id + required + + Registered Client ID. +
+ redirect-uri + required + + Registered application URI where the user is redirected after the authorization. +
+ scope + optional + + Application privileges. +
+ profile-uri + optional + + API endpoint returning the authenticated profile resource. +
+ state + optional + + Optional opaque value used by the client to maintain state between the request and callback. +
+ template + optional + + Custom template you want to render.
+ Default to default.html +
+ authorize-path + optional + + Authorization URL for the OAuth2 Implicit Flow.
+ Default to /oauth/authorize +
+
-

Realtime services

+

Customizations

- When using the subscription - service you first need to set the client credentials + The oauth directive comes to life with customisazion in mind. You can easily define + personalized CSS styles or create brand new templates.

-
Subscription.auth({ clientId: '<client-id>', clientSecret: '<client-secret>' });
-Subscription.all().success(function(data) { scope.subscriptions = data })
+

Custom CSS

- In this case no access token required. + By default the directive is visible as a link. To improve its visual style add + some CSS. Follows some predefined styles you can copy and past to your project.

-
-
- -
-
-

Signed in user

- -

- When a user logs in with the - oauth-ng - directive the current user is accessible through the Profile service. -

- -
Profile.get().success(function(data) { scope.profile = data });
+
-

Configurations

+

Events

+ +

+ The events related to the oauth directive are the following. +

+ + + + + + + + + + + + + + + + + + + + + + + + +
+ oauth:success(token) + fired + + Fired when the user has authorized the third party app. +
+ oauth:logout + fired + + Fired when the user logs out. +
+ oauth:denied + fired + + Fired when the user denies the access to the third party app. +
+ oauth:expired + fired + + Fired when the access token is expired. +
+ oauth:template:update(uri) + listening + + Listening for runtime the template change.
+ See examples in the customization section. +
+ +

+ Here some examples. +

+ +
$scope.$on('oauth:login', function(event, token) {
+  console.log('Authorized third party app with token', token.access_token);
+});
+
+$scope.$on('oauth:logout', function(event) {
+  console.log('The user has signed out');
+});
+
+$scope.$on('oauth:denied', function(event) {
+  console.log('The user did not authorize the third party app');
+});
+
+$scope.$on('oauth:expired', function(event) {
+  console.log('The access token is expired. Please refresh the login');
+});
-

- Lelylan client accepts the following options. -

- -
    -
  • endpoint - A string representing the API endpoint - (http://api.lelylan.com by default).
  • -
- -

- Here a simple example. -

- -
angular.module('example', ['lelylan.client']);
-  .value('lelylan.client.config', { endpoint: 'http://localhost//:9000' });
+

Links

@@ -461,5 +518,7 @@

Links

+ + diff --git a/public/javascripts/assets/css/simplemodal.css b/public/javascripts/assets/css/simplemodal.css new file mode 100755 index 0000000..1ac806e --- /dev/null +++ b/public/javascripts/assets/css/simplemodal.css @@ -0,0 +1,201 @@ +/* +* Mootools Simple Modal +* Version 1.0 +* Copyright (c) 2011 Marco Dell'Anna - http://www.plasm.it +* +* Markup Modal +*
+*
+* × +*

SimpleModal Title

+*
+*
+*
+*

+* Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +*

+*
+*
+* +*
+*/ +/* Vars */ +/* Overlay style */ +#simple-modal-overlay { + position: fixed ; + display: block; + z-index: 99998; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: #000000; + background-position: center center; + background-repeat: no-repeat; + background: -webkit-gradient(radial, center center, 0, center center, 460, from(#ffffff), to(#291a49)); + background: -webkit-radial-gradient(circle, #ffffff, #291a49); + background: -moz-radial-gradient(circle, #ffffff, #291a49); + background: -ms-radial-gradient(circle, #ffffff, #291a49); +} +.simple-modal { + /* Style rewrite */ + + width: 600px; + left: 20px; + top: 20px; + /* */ + + position: absolute; + position: fixed; + margin: 0; + color: #808080; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + font-weight: normal; + line-height: 18px; + background-color: #FFFFFF; + border: 1px solid #EAEEFA; + border: 1px solid rgba(234, 238, 250, 0.6); + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.6); + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.6); + box-shadow: 0 0 3px rgba(0, 0, 0, 0.6); + z-index: 99999; + border-radius: 6px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; +} +.simple-modal .simple-modal-header { + padding: 5px 15px; + margin: 0; + border-bottom: 1px solid #EEEEEE; +} +.simple-modal .simple-modal-header h1 { + margin: 0; + color: #404040; + font-size: 18px; + font-weight: bold; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + line-height: 36px; +} +.simple-modal a.close, .simple-modal a.previous-image, .simple-modal a.next-image { + position: absolute; + top: 16px; + color: #999; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 17px; + font-weight: normal; + line-height: 10px; + text-decoration: none; +} +.simple-modal a.close { + right: 15px; +} +.simple-modal a.previous-image { + right: 80px; +} +.simple-modal a.next-image { + right: 60px; +} +.simple-modal a.close:hover, .simple-modal a.previous-image:hover, .simple-modal a.next-image:hover { + color: #444; +} +.simple-modal .simple-modal-body { + padding: 15px; + /* Extra style */ + +} +.simple-modal .simple-modal-body div.contents { + overflow: hidden; +} +.simple-modal .simple-modal-body p { + font-size: 13px; + font-weight: normal; + color: #606060; + line-height: 18px; +} +.simple-modal .simple-modal-body p img { + display: block; + margin: 0 auto 10px auto; +} +.simple-modal .simple-modal-footer { + display: block; + background-color: #F5F5F5; + padding: 14px 15px 15px; + border-top: 1px solid #EEEEEE; + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; + -webkit-box-shadow: inset 0 1px 0 #FFF; + -moz-box-shadow: inset 0 1px 0 #FFF; + box-shadow: inset 0 1px 0 #FFF; + zoom: 1; + margin-bottom: 0; + text-align: center; +} +.simple-modal .simple-modal-footer a.btn { + text-decoration: none; + cursor: pointer; + display: inline-block; + background-repeat: no-repeat; + padding: 5px 14px 6px; + color: #333; + font-size: 13px; + line-height: normal; + border: 1px solid transparent; + -webkit-transition: 0.2s linear all; + -moz-transition: 0.2s linear all; + transition: 0.2s linear all; + border-radius: 3px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; +} +.simple-modal .simple-modal-footer a.btn.primary { + color: #FFF; + text-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + background-color: #999; + background-repeat: repeat-x; + margin-right: 15px; +} +.simple-modal .simple-modal-footer a.btn.primary:hover { + border: 1px solid #444; + background-color: #444; +} +.simple-modal .simple-modal-footer a.btn.secondary { + padding: 5px 2px 6px; +} +.simple-modal .simple-modal-footer a.btn.secondary:hover { + color: #999; +} +/* Draggable style */ +.simple-modal.draggable .simple-modal-header:hover { + cursor: move; + background-color: #f8f8f8; + -webkit-border-top-left-radius: 6px; + -webkit-border-top-right-radius: 6px; + -moz-border-radius-topleft: 6px; + -moz-border-radius-topright: 6px; + border-top-left-radius: 6px; + border-top-right-radius: 6px; +} +/* Loading style */ +.simple-modal.loading .simple-modal-body { + min-height: 60px; + background: transparent url("https://github.com/images/loader.gif") no-repeat center center; +} +.simple-modal.loading .simple-modal-body div.contents { + display: none; +} +.simple-modal.loading .close, .simple-modal.loading .simple-modal-header, .simple-modal.loading .simple-modal-footer { + display: none; +} +/* Hide header */ +.simple-modal.hide-header .simple-modal-header { + display: none; +} +/* Hide header */ +.simple-modal.hide-footer .simple-modal-footer { + display: none; +} diff --git a/public/javascripts/assets/images/loader.gif b/public/javascripts/assets/images/loader.gif new file mode 100755 index 0000000000000000000000000000000000000000..1c72ebb554be018511ae972c3f2361dff02dce02 GIT binary patch literal 2545 zcma*pX;2es8VB%~zPr=ibVMCx-JQ^BhLDAsK)^**h(ZDp9YGuzZ%~j!}+w%FI;|aC7){7CdVvG)P{bng1y9Te*f}~*`1kQl$jwb z$tlW~rRS!X?#xfm_&6tTdp_`cjgYwbRFLNdoJCN$S-yhg`ZnC-yvedRSmOh%;Y`Gl6bY$Z-}#C=#F4%9!I1b zWQ~f+9P?;vhCxWwlwl=lrWG|7IYo;{jjmzJ5R9?f>n%-d@>kLINUc z4wM5dAO;kq<$}Dk{2-u0$I6@2N}&cUx9nmV1dYc8jfC}%=F9WCg^OQK9C6poh#2!A z3^EU*UFZvS^)?bu3T?J;@Ahb~%I?+@4!l5!*TjC}GIslNan-RCrrd~PdHYnNLJk+m&`$Y+NV(e>CCu%R#_8GqY4cv#j`#uRWdsg9DxWy(?oOvgCU}&@jy%c!H&-Q zqXJxajAtmQRoRa9V-RFXXh-bK*;Fum{BjpkYQGX~i@OZ^Dx0n&H}kvGKqQ?w(6iGXu_g08T|_hp#ZvFzIwKF*a=oMJ~3UGAjZ?g}GOxm44td zXoyYrU*I=y*vHv89hkYH(v5R#wc)BC3dZJKb3K)f>zaM3%JP(mpecViP0eKKYf3zy z->jx_mc?mCtPEvCQ?uppk?eLJt}_IR7giW%Jr)RyI!+E-voIs*lXI*z`GQc_&D#X( z{6G};HPYj6O|$lXxBJeDaweqa{4L=tOZCjTI^&UOxXg})LRG_cr^B9Rqt(i5ORbQX zq`_xCRsH>xEYY%&*Nyi#{S_JZNlTm#K56`RI%7^amom;*h90Si&g1CfaFV3D|a!`3Y-GKKbL*KSbl z>I96`TR@CqPJl(>QqB~RvK~-U)`e`l4LIqj+IU^~yyIe*|BRVB>4Bup%j{tLdKz4j zY^<8P8m~GRGz*yv0&-RJE+-keJ+%m3wNeopzsltWd->eWmBVwUr)pX` zK~CD<;~Z*Uy3W`3+MrEYxm5qYQ!z%YI;y7DTG`UVH0;@{M{!B&id_}3DBQ?zsotuR zEGLdRx25nLm%-wjlnEi;-aN_1S7???rO~WgA67jjr&(vRa3y$u#kqJbeKnw z{!T!1li9>M+sJ6AUe+*9d}2uGjhzd z|L1Rtp8uTGYyZoQ*`DS^m2dw-X{a)l+3m?ncvn^+O>)hdd3(hMtlhkRGns{<8c0I! zDDjpmwtj?@!6kA|iu3q+Ai;@JR+ zfk+ln&YFC{4bhK6IxVgLs4W%^8Lk`qzWU*L>yq0A3;l}{!wKZ!ue)C)SKI)9dl1hl zhIRLV@8E}rwvE{gX(}$f6x*k)_`*Ijt1=EU-Ls6-(phomeQBgtUs z5Xz~Cd*nE)Ac!0i4ep}Z1AugMB(&F?)#CU{Qc{Sp^vKsdL}vRB30H+Bbzrn`M##H3 z{W8dc_mDroEE+p8_}mnJtzZ4!RNe)zhB)Ds;S57nYSJxtek>^~&(7B+N5MPf2+2xx z5Dl&4X|c@f{Kd|z1r+N|$DmsoVp*3yOdxT^J^-VAk)Z@$4^XrPrFP-Co+MXZ+KJ(W z{JNYvraLLWA;&tRhIKOvhW|HC|L-dLvAUF(MG0(Nl?4tB{RzN7I(}Cb%hwN{crFC8 zji#aJElKvDFV+&VI1V?oUMA>*kto0^;3W8FQBSZ|{ z$v~TqE=(8DZa^i$^oht&h};P1N&wMXorKh*Z68gPV&ouy>%f36Oqkwemyeas$Qbz# zV?7Jy%o7KY6^I=P@eCji%W`o5sf(5hySYo9$l4e2`(hIV_?=H-#R6}0$WVA|*(K@3 z=5?@RlcLh(meW%A4)hGzcvEpm(_w?>zhL*i&s9$2>r zAtk{8Cia|+Y+V!uX9BtpXoF%lswuRKsM!pSs!?yhlCy!269K0|b M?FSZn2B>%I-}ej|s{jB1 literal 0 HcmV?d00001 diff --git a/public/javascripts/assets/less/simplemodal.less b/public/javascripts/assets/less/simplemodal.less new file mode 100755 index 0000000..a280581 --- /dev/null +++ b/public/javascripts/assets/less/simplemodal.less @@ -0,0 +1,220 @@ +/* +* Mootools Simple Modal +* Version 1.0 +* Copyright (c) 2011 Marco Dell'Anna - http://www.plasm.it +* +* Markup Modal +*
+*
+* × +*

SimpleModal Title

+*
+*
+*
+*

+* Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +*

+*
+*
+* +*
+*/ + +/* Vars */ +@radiuscontainer:6px; + +.rounded-corners (@radius: 6px) { + border-radius: @radius; + -webkit-border-radius: @radius; + -moz-border-radius: @radius; +} + +/* Overlay style */ +#simple-modal-overlay{ + position:fixed ; + display:block; + z-index: 99998; + top:0; + left:0; + width:100%; + height:100%; + background-color: #000000; + background-position: center center; + background-repeat: no-repeat; + background: -webkit-gradient(radial, center center, 0, center center, 460, from(#FFF), to(#291A49)); + background: -webkit-radial-gradient(circle, #FFF, #291A49); + background: -moz-radial-gradient(circle, #FFF, #291A49); + background: -ms-radial-gradient(circle, #FFF, #291A49); +} + +.simple-modal{ + /* Style rewrite */ + width:600px; + left:20px; + top:20px; + /* */ + position: absolute; + position: fixed; + margin: 0; + color: #808080; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + font-weight: normal; + line-height: 18px; + background-color: #FFFFFF; + border: 1px solid #EAEEFA; + border: 1px solid rgba(234, 238, 250, 0.6); + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.6); + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.6); + box-shadow: 0 0 3px rgba(0, 0, 0, 0.6); + z-index:99999; + .rounded-corners; + + .simple-modal-header{ + padding:5px 15px; + margin:0; + border-bottom:1px solid #EEEEEE; + + h1{ + margin:0; + color:#404040; + font-size:18px; + font-weight:bold; + font-family:"Helvetica Neue",Helvetica,Arial,sans-serif; + line-height:36px; + } + } + + a.close{ + position: absolute; + right: 15px; + top: 15px; + color: #999; + font-family:"Helvetica Neue",Helvetica,Arial,sans-serif; + font-size: 17px; + font-weight:normal; + line-height: 10px; + text-decoration:none; + } + + a.close:hover{ + color:#444; + } + + .simple-modal-body{ + padding: 15px; + + div.contents{ + overflow:hidden; + } + + /* Extra style */ + p{ + font-size:13px; + font-weight:normal; + color:#606060; + line-height:18px; + + img{ + display:block; + margin:0 auto 10px auto; + } + } + } + + .simple-modal-footer{ + display:block; + background-color: #F5F5F5; + padding: 14px 15px 15px; + border-top: 1px solid #EEEEEE; + -webkit-border-radius: 0 0 @radiuscontainer @radiuscontainer; + -moz-border-radius: 0 0 @radiuscontainer @radiuscontainer; + border-radius: 0 0 @radiuscontainer @radiuscontainer; + -webkit-box-shadow: inset 0 1px 0 #FFF; + -moz-box-shadow: inset 0 1px 0 #FFF; + box-shadow: inset 0 1px 0 #FFF; + zoom: 1; + margin-bottom: 0; + text-align:center; + + a.btn{ + text-decoration:none; + cursor: pointer; + display: inline-block; + background-repeat: no-repeat; + padding: 5px 14px 6px; + color: #333; + font-size: 13px; + line-height: normal; + border: 1px solid transparent; + -webkit-transition: 0.2s linear all; + -moz-transition: 0.2s linear all; + transition: 0.2s linear all; + .rounded-corners(3px); + } + + a.btn.primary{ + color: #FFF; + text-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + background-color: #999; + background-repeat: repeat-x; + margin-right:15px; + &:hover{ + border: 1px solid #444; + background-color: #444; + } + } + + a.btn.secondary{ + padding: 5px 2px 6px; + &:hover{ + color:#999; + } + } + } +} + +/* Draggable style */ +.simple-modal.draggable .simple-modal-header:hover{ + cursor:move; + background-color:#f8f8f8; + -webkit-border-top-left-radius: @radiuscontainer; + -webkit-border-top-right-radius: @radiuscontainer; + -moz-border-radius-topleft: @radiuscontainer; + -moz-border-radius-topright: @radiuscontainer; + border-top-left-radius: @radiuscontainer; + border-top-right-radius: @radiuscontainer; +} + +/* Loading style */ +.simple-modal.loading{ + .simple-modal-body{ + min-height:60px; + background:transparent url("https://github.com/images/loader.gif") no-repeat center center; + + div.contents{ + display:none; + } + } + + .close, .simple-modal-header, .simple-modal-footer{ + display:none; + } +} + +/* Hide header */ +.simple-modal.hide-header{ + .simple-modal-header{ + display:none; + } +} + +/* Hide header */ +.simple-modal.hide-footer{ + .simple-modal-footer{ + display:none; + } +} \ No newline at end of file diff --git a/public/javascripts/simple-modal.js b/public/javascripts/simple-modal.js new file mode 100755 index 0000000..037993b --- /dev/null +++ b/public/javascripts/simple-modal.js @@ -0,0 +1,758 @@ +/* +--- +description: SIMPLE MODAL is a small plugin to create modal windows. It can be used to generate alert or confirm messages with few lines of code. Confirm configuration involves the use of callbacks to be applied to affirmative action;i t can work in asynchronous mode and retrieve content from external pages or getting the inline content. + +license: MIT-style + +authors: +- Marco Dell'Anna +- Juan Lago + +requires: +- core/1.3: '*' + +provides: +- SimpleModal +... + +* Mootools Simple Modal +* Version 1.0 +* Copyright (c) 2011 Marco Dell'Anna - http://www.plasm.it +* +* Version 1.1 +* Copyright (c) 2013 Juan Lago - http://www.livespanske.com +* +* Requires: +* MooTools http://mootools.net +* +* Permission is hereby granted, free of charge, to any person +* obtaining a copy of this software and associated documentation +* files (the "Software"), to deal in the Software without +* restriction, including without limitation the rights to use, +* copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the +* Software is furnished to do so, subject to the following +* conditions: +* +* The above copyright notice and this permission notice shall be +* included in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +* OTHER DEALINGS IN THE SOFTWARE. +* +* Log: +* 1.0 - Inizio implementazione release stabile [Tested on: ie7/ie8/ie9/Chrome/Firefox7/Safari] +* 1.1 - Extend functionality: Lightbox +*/ +var SimpleModal = new Class({ + // Implements + Implements: [Options], + request:null, + buttons:[], + // Protected section for lightbox + lightbox:{}, + // Options + options: { + onAppend: Function, // callback inject in DOM + offsetTop: 40, + overlayOpacity:.3, + overlayColor: "#000000", + width: 400, + draggable: true, + keyEsc: true, + overlayClick: true, + closeButton: true, // X close button + hideHeader: false, + hideFooter: false, + lightboxExcessWidth:40, // Only for Modal Image (excess pixels created from skin) + lightboxExcessHeight:120, // Only for Modal Image (excess pixels created from skin) + btn_ok: "OK", // Label + btn_cancel: "Cancel", // Label + template:"
\ +

{_TITLE_}

\ +
\ +
\ +
{_CONTENTS_}
\ +
\ +
" + }, + + /** + * Initialization + */ + initialize: function(options) { + //set options + this.setOptions(options); + }, + + /** + * public method show + * Open Modal + * @options: param to rewrite + * @return node HTML + */ + show: function(options){ + if(!options) options = {}; + + // Require redraw? + options.draw = options.draw == undefined ? true : options.draw; + + // Inserisce Overlay + if (options.draw) + this._overlay("show"); + + // Switch different modal + switch( options.model ){ + + // Require title && contents && callback + case "confirm": + // Add button confirm + this.addButton(this.options.btn_ok, "btn primary btn-margin", function(){ + try{ options.callback() } catch(err){}; + this.hide(); + }) + + // Add button cancel + this.addButton(this.options.btn_cancel, "btn secondary"); + + // Rendering + var node = this._drawWindow(options); + + // Add Esc Behaviour + this._addEscBehaviour(); + + break; + + // Require title && contents (define the action buttons externally) + case "modal": + // Rendering + var node = this._drawWindow(options); + + // Add Esc Behaviour + this._addEscBehaviour(); + break; + + // Require title && url contents (define the action buttons externally) + case "modal-ajax": + // Rendering + var node = this._drawWindow(options); + + this._loadContents({ + "url":options.param.url || "", + "onRequestComplete":options.param.onRequestComplete||Function + }) + break; + + // Require title, url contents, lightbox group and the order inside of the group + case "lightbox": + + // lightbox require render the arrows + options.arrows = true; + + // Set information about the current lightbox + this.lightbox.element = options.lightbox.element; + this.lightbox.group = options.lightbox.group; + this.lightbox.order = options.lightbox.order; + + // Rendering + var node = this._drawWindow(options); + + this._loadContents({ + "url": options.param.url || "", + "order": this.lightbox.order, + "draw": options.draw, + "onRequestComplete": options.param.onRequestComplete||Function + }); + break; + + // Require title && contents + default: + // Alert + // Add button + this.addButton(this.options.btn_ok, "btn primary"); + + // Rendering + var node = this._drawWindow(options); + + // Add Esc Behaviour + this._addEscBehaviour(); + break; + } + + // Custom size Modal + node.setStyles({width:this.options.width}); + + // Hide Header &&/|| Footer + if( this.options.hideHeader ) node.addClass("hide-header"); + if( this.options.hideFooter ) node.addClass("hide-footer"); + + + // Add Button X + if( this.options.closeButton ) this._addCloseButton(); + + + // Enabled Drag Window + if( this.options.draggable ){ + var headDrag = node.getElement(".simple-modal-header"); + new Drag(node, { handle:headDrag }); + // Set handle cursor + headDrag.setStyle("cursor", "move") + node.addClass("draggable"); + } + + // Resize Stage + this._display(); + }, + + /** + * public method hide + * Close model window + * return + */ + hide: function(){ + + try{ + if( typeof(this.request) == "object" ) this.request.cancel(); + }catch(err){} + + this._overlay('hide'); + + return; + }, + + /** + * private method _drawWindow + * Rendering window + * return node SM + */ + _drawWindow: function(options) { + + var node; + + if (options.draw) + { + // Add Node in DOM + node = new Element("div#simple-modal", {"class":"simple-modal"}); + + node.inject($$("body")[0]); + } + else + node = document.getElement('#simple-modal.simple-modal'); + + // Set Contents + var html = this._template(this.options.template, {"_TITLE_":options.title || "Untitled", "_CONTENTS_":options.contents || ""}); + + node.set("html", html); + + // Add all buttons + this._injectAllButtons(); + + // Add arrows + if (options.arrows) + this._addArrows(); + + // Callback append + this.options.onAppend(); + + return node; + }, + + /** + * public method addButton + * Add button to Modal button array + * require @label:string, @classe:string, @clickEvent:event + * @return node HTML + */ + addButton: function(label, classe, clickEvent){ + var bt = new Element('a',{ + "title" : label, + "text" : label, + "class" : classe, + "events": { + click: (clickEvent || this.hide).bind(this) + } + }); + this.buttons.push(bt); + return bt; + }, + + /** + * private method _injectAllButtons + * Inject all buttons in simple-modal-footer + * @return + */ + _injectAllButtons: function(){ + this.buttons.each( function(e, i){ + e.inject( $("simple-modal").getElement(".simple-modal-footer") ); + }); + return; + }, + + /** + * private method _addCloseButton + * Inject Close botton (X button) + * @return node HTML + */ + _addCloseButton: function(){ + var b = new Element("a", {"class":"close", "href":"#", "html":"x"}); + + b.inject($("simple-modal"), "top"); + + // Aggiunge bottome X Close + b.addEvent("click", function(e){ + if(e) e.stop(); + this.hide(); + }.bind( this )) + + return b; + }, + + /** + * private method _addArrows + * Inject arrows (Left and Right arrows) + */ + _addArrows: function(){ + + // Create and inject next image button + var btnnext = new Element("a", {"class":"next-image", "style":"display:none", "href":"#", "html":"»"}); + + btnnext.inject($("simple-modal"), "top"); + + btnnext.addEvent("click", function(e){ + if(e) e.stop(); + + this._viewNextElement(); + }.bind(this)); + + // Create and inject previous image button + var btnprevious = new Element("a", {"class":"previous-image", "style":"display:none", "href":"#", "html":"«"}); + + btnprevious.inject($("simple-modal"), "top"); + + btnprevious.addEvent("click", function(e){ + if(e) e.stop(); + + this._viewPreviousElement(); + }.bind(this)); + + // Set visibility of arrows + this._setArrowsVisibility(); + + }, + /** + * private method _viewNextElement + * Load the next element relative to the lightbox in the simple modal + */ + _viewNextElement: function(){ + var elements = this._getElementsByGroup(this.lightbox.group); + + this.lightbox.order++; + + var next_element = elements[this.lightbox.order]; + + this.show({ + "model": "lightbox", + "title": next_element.get('title'), + "draw": false, // Is not required redraw + "param":{ + "url": next_element.get('href'), + "onRequestComplete": function(){ } + }, + "lightbox": { + "element" : next_element, + "group": this.lightbox.group, + "order": this.lightbox.order + } + }); + }, + /** + * private method _viewPreviousElement + * Load the next element relative to the lightbox in the simple modal + */ + _viewPreviousElement: function(){ + var elements = this._getElementsByGroup(this.lightbox.group); + + this.lightbox.order--; + + var previous_element = elements[this.lightbox.order]; + + this.show({ + "model": "lightbox", + "title": previous_element.get('title'), + "draw": false, // Is not required redraw + "param":{ + "url": previous_element.get('href'), + "onRequestComplete": function(){ } + }, + "lightbox": { + "element" : previous_element, + "group": this.lightbox.group, + "order": this.lightbox.order + } + }); + }, + /** + * private method _setArrowsVisibility + * Automatically set the visibility of the Arrows + */ + _setArrowsVisibility: function(){ + + var left_arrow = document.getElement('.simple-modal a.previous-image'); + var right_arrow = document.getElement('.simple-modal a.next-image'); + var total_slides = this.getTotalByGroup(this.lightbox.group); + + // Set visibility of the left arrow (Previous image) + if (this.lightbox.order == 0) + left_arrow.setStyle('display', 'none'); + else + left_arrow.setStyle('display', 'inline'); + + + // Set visibility of the right arrow (Next image) + if (total_slides > 0 && this.lightbox.order < total_slides - 1) + right_arrow.setStyle('display', 'inline'); + else + right_arrow.setStyle('display', 'none'); + + }, + /** + * private method _getElementsByGroup + * Retrieve all elements by group + * @options string Group Name + * @return DOM Nodes + */ + _getElementsByGroup: function(group) { + + var links = $$("a").filter(function(el) { + return el.rel && el.rel.contains('simplemodal[' + group + ']'); + }); + + return links; + }, + /** + * public method _getTotalByGroup + * Count the number of lightboxes are in a certain group + * @options string Group Name + * @return integer Number of lightboxes by group + */ + getTotalByGroup: function(group) { + return this._getElementsByGroup(group).length; + }, + /** + * private method _overlay + * Create/Destroy overlay and Modal + * @return + */ + _overlay: function(status) { + switch( status ) { + case 'show': + + this._overlay('hide'); + + var overlay = new Element("div", {"id":"simple-modal-overlay"}); + overlay.inject( $$("body")[0] ); + overlay.setStyle("background-color", this.options.overlayColor); + overlay.fade("hide").fade(this.options.overlayOpacity); + + // Behaviour + if( this.options.overlayClick){ + overlay.addEvent("click", function(e){ + if(e) e.stop(); + this.hide(); + }.bind(this)) + } + + // Add Control Resize + this.__resize = this._display.bind(this); + window.addEvent("resize", this.__resize ); + break; + + case 'hide': + + // Remove Event Resize + window.removeEvent("resize", this._display); + + // Remove Event Resize + if(this.options.keyEsc) + { + var fixEV = Browser.name != 'ie' ? "keydown" : "onkeydown"; + window.removeEvent(fixEV, this._removeSM); + } + + // Remove Overlay + try + { + $('simple-modal-overlay').destroy(); + } + catch(err){} + + // Remove Modal + try{ + $('simple-modal').destroy(); + } + catch(err){} + break; + } + + return; + }, + + /** + * private method _loadContents + * Async request for modal ajax + * @return + */ + _loadContents: function(param){ + // Set Loading + $('simple-modal').addClass("loading"); + + // Match image file + var re = new RegExp( /([^\/\\]+)\.(jpg|png|gif)$/i ); + + if( param.url.match(re) ){ + + // Hide Header/Footer + $('simple-modal').addClass("hide-footer"); + + // Remove All Event on Overlay + $("simple-modal-overlay").removeEvents(); // Prevent Abort + + // Immagine + var images = [param.url]; + new Asset.images(images, { + onProgress: function(i) { + immagine = this; + }, + onComplete: function() { + try{ + // Remove loading + $('simple-modal').removeClass("loading"); + + // Imposta dimensioni + var content = $('simple-modal').getElement(".simple-modal-body"); + var padding = content.getStyle("padding").split(" "); + var width = immagine.get("width").toInt(); + var height = immagine.get("height").toInt(); + + // Porportional scale + var ns = this._scaleImage(width, height); + width = ns.width + height = ns.height + + // Width + var myFx1 = new Fx.Tween($("simple-modal"), { + duration: 'normal', + transition: 'sine:out', + link: 'cancel', + property: 'width' + }).start($("simple-modal").getCoordinates().width, width + padding[1].toInt() + padding[3].toInt() + $('simple-modal').getStyle('border-left-width').toInt() + $('simple-modal').getStyle('border-right-width').toInt()) + + // Height + var myFx2 = new Fx.Tween(content, { + duration: 'normal', + transition: 'sine:out', + link: 'cancel', + property: 'height' + }).start(content.getCoordinates().height, height).chain(function(){ + + + // Inject + immagine.inject( $('simple-modal').getElement(".contents").empty() ).fade("hide").setStyles({"width":width, "height":height}).fade("in"); + + this._display(); + + // Add Esc Behaviour + this._addEscBehaviour(); + + }.bind(this)); + + // Left + var myFx3 = new Fx.Tween($("simple-modal"), { + duration: 'normal', + transition: 'sine:out', + link: 'cancel', + property: 'left' + }).start($("simple-modal").getCoordinates().left, (window.getCoordinates().width - width)/2); + + + + }catch(err){} + }.bind(this) + }); + + } + else + { + + // Request HTML + this.request = new Request.HTML({ + evalScripts:false, + url: param.url, + method: 'get', + onRequest: function(){}, + onSuccess: function(responseTree, responseElements, responseHTML, responseJavaScript){ + $('simple-modal').removeClass("loading"); + $('simple-modal').getElement(".contents").set("html", responseHTML); + param.onRequestComplete(); + + // Execute script page loaded + eval(responseJavaScript) + + // Resize + this._display(); + + // Add Esc Behaviour + this._addEscBehaviour(); + }.bind(this), + onFailure: function(){ + $('simple-modal').removeClass("loading"); + $('simple-modal').getElement(".contents").set("html", "loading failed") + } + }).send(); + } + }, + + /** + * private method _scaleImage + * Calculate scale image proportional + * @return {width, height} + */ + _scaleImage: function(w, h){ + + var removeH = this.options.lightboxExcessHeight + this.options.offsetTop; + var removeW = this.options.lightboxExcessWidth; + var width = w ; + var height = h ; + var newWidth = window.getSize().x - removeW; + var newHeight = window.getSize().y - removeH; + + ratio = (width <= height) ? height / newHeight : width / newWidth; + + // Ratio + ratio = Math.max(ratio, 1.0); + + // New sizes + w = parseInt(width / ratio); + h = parseInt(height / ratio); + return {"width":w, "height":h} + }, + + /** + * private method _display + * Move interface + * @return + */ + _display: function(){ + // Update overlay + + try{ + $("simple-modal-overlay").setStyles({ + height: window.getCoordinates().height //$$("body")[0].getScrollSize().y + }); + } + catch(err){} + + // Update position popup + try{ + var offsetTop = this.options.offsetTop || 0; //this.options.offsetTop != null ? this.options.offsetTop : window.getScroll().y; + + $("simple-modal").setStyles({ + top: offsetTop, + left: ((window.getCoordinates().width - $("simple-modal").getCoordinates().width)/2 ) + }); + } catch(err){} + + return; + }, + + /** + * private method _addEscBehaviour + * add Event ESC + * @return + */ + _addEscBehaviour: function(){ + if(this.options.keyEsc){ + this._removeSM = function(e){ + if( e.key == "esc" ) this.hide(); + }.bind(this) + // Remove Event Resize + if(this.options.keyEsc){ + var fixEV = Browser.name != 'ie' ? "keydown" : "onkeydown"; + window.addEvent(fixEV, this._removeSM ); + } + } + }, + + /** + * private method _template + * simple template by Thomas Fuchs + * @return + */ + _template:function(s,d){ + for(var p in d) + s=s.replace(new RegExp('{'+p+'}','g'), d[p]); + return s; + } +}); + +/** +* Lightbox loader +*/ +SimpleModal.autoload = function() { + var links = $$("a").filter(function(el) { + return el.rel && el.rel.test(/^simplemodal/i); + }); + + var order = []; + + // Instance to SimpleModal (One instance for all lightboxes) + var SM = new SimpleModal(); + + + $$(links).each(function(el) { + + // Obtain lightbox group + var relation= el.rel.replace(/[[]|]/gi," "); + var rel0 = relation.split(" "); + + // Obtain order + order[rel0[1]] = order[rel0[1]] == null ? 0 : order[rel0[1]] + 1; + + // Avoid group order as static var + var group_order = order[rel0[1]]; + + // Create custom event per link + el.addEvent('click', function(e) { + + e.stop(); + + SM.show({ + "model": "lightbox", + "title": this.get('title'), + "param":{ + "url": this.get('href'), + "onRequestComplete": function(){ } + }, + "lightbox": { + "element" : this, + "group": rel0[1], + "order": group_order + } + }); + + }); + + }); + +} + +/** +* Lightbox boot +*/ +window.addEvent("domready", SimpleModal.autoload); \ No newline at end of file diff --git a/public/style.css b/public/style.css index d076e74..1b31efe 100644 --- a/public/style.css +++ b/public/style.css @@ -225,3 +225,72 @@ ul.task-list .task-list-item-checkbox { font-size: 13px; } } + +/* * * * * * * * */ +/* Table Listing */ +/* * * * * * * * */ + +table { + margin: 40px 0; +} + +table tr th { + border-bottom: 1px solid #dddddd !important; + text-transform: uppercase; + font-style: italic; +} + +table tr td, +table tr th { + color: #333; + font-weight: 200; + line-height: 1.5 !important; + border-bottom: 1px solid #eee; + padding: 12px 0; + vertical-align: top; +} + +table .parameter { + width: 35%; +} + +table .smaller-titles .parameter { + width: 25%; +} + +table .extra { + width: 30% !important; +} + +table .nested { + padding-left: 30px !important; +} + +table span.info { + display: block; + color: #888; + font-weight: 200; +} + + +.table-labeled .label { + padding: 0; +} + +.table-labeled .label { + border-radius: 2px; + font-size: 12px; + font-weight: 400; + line-height: 23px; + padding: 3px 6px 2px; + text-transform: uppercase; + background: #eee; + border: 1px solid #ddd; + color: #333; +} + +.table-labeled .link { + background: #E5F4FF; + border: 1px solid #C5EAFF; +} + From e81a00bfe96ee442666b710bc7e421062c2b2c3e Mon Sep 17 00:00:00 2001 From: Andrea Reginato Date: Wed, 21 May 2014 10:25:06 +0200 Subject: [PATCH 03/30] Basic structure CSS buttons --- index.html | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 8e91ecb..1794f9a 100644 --- a/index.html +++ b/index.html @@ -404,10 +404,39 @@

Customizations

Custom CSS

- By default the directive is visible as a link. To improve its visual style add - some CSS. Follows some predefined styles you can copy and past to your project. + By default the directive is visible as a link. To improve its visual style add some + custom CSS. Below you can find a couple of predefined styles you can copy and past + to your project.

+ + + + + + + + + + + + + +
+ Default + + + Source Code <> +
+ Blue Button + + + Source Code <> +
+ +

+ If you have a new one add it to the docs repository. +

From b37186f4249a666c748890b9211e97844a5ae51d Mon Sep 17 00:00:00 2001 From: Andrea Reginato Date: Wed, 21 May 2014 10:33:38 +0200 Subject: [PATCH 04/30] Added blue button css style --- public/javascripts/assets/css/simplemodal.css | 201 ----- public/javascripts/assets/images/loader.gif | Bin 2545 -> 0 bytes .../javascripts/assets/less/simplemodal.less | 220 ----- public/javascripts/simple-modal.js | 758 ------------------ public/oauth.css | 29 + 5 files changed, 29 insertions(+), 1179 deletions(-) delete mode 100755 public/javascripts/assets/css/simplemodal.css delete mode 100755 public/javascripts/assets/images/loader.gif delete mode 100755 public/javascripts/assets/less/simplemodal.less delete mode 100755 public/javascripts/simple-modal.js create mode 100644 public/oauth.css diff --git a/public/javascripts/assets/css/simplemodal.css b/public/javascripts/assets/css/simplemodal.css deleted file mode 100755 index 1ac806e..0000000 --- a/public/javascripts/assets/css/simplemodal.css +++ /dev/null @@ -1,201 +0,0 @@ -/* -* Mootools Simple Modal -* Version 1.0 -* Copyright (c) 2011 Marco Dell'Anna - http://www.plasm.it -* -* Markup Modal -*
-*
-* × -*

SimpleModal Title

-*
-*
-*
-*

-* Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. -*

-*
-*
-* -*
-*/ -/* Vars */ -/* Overlay style */ -#simple-modal-overlay { - position: fixed ; - display: block; - z-index: 99998; - top: 0; - left: 0; - width: 100%; - height: 100%; - background-color: #000000; - background-position: center center; - background-repeat: no-repeat; - background: -webkit-gradient(radial, center center, 0, center center, 460, from(#ffffff), to(#291a49)); - background: -webkit-radial-gradient(circle, #ffffff, #291a49); - background: -moz-radial-gradient(circle, #ffffff, #291a49); - background: -ms-radial-gradient(circle, #ffffff, #291a49); -} -.simple-modal { - /* Style rewrite */ - - width: 600px; - left: 20px; - top: 20px; - /* */ - - position: absolute; - position: fixed; - margin: 0; - color: #808080; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 13px; - font-weight: normal; - line-height: 18px; - background-color: #FFFFFF; - border: 1px solid #EAEEFA; - border: 1px solid rgba(234, 238, 250, 0.6); - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.6); - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.6); - box-shadow: 0 0 3px rgba(0, 0, 0, 0.6); - z-index: 99999; - border-radius: 6px; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; -} -.simple-modal .simple-modal-header { - padding: 5px 15px; - margin: 0; - border-bottom: 1px solid #EEEEEE; -} -.simple-modal .simple-modal-header h1 { - margin: 0; - color: #404040; - font-size: 18px; - font-weight: bold; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - line-height: 36px; -} -.simple-modal a.close, .simple-modal a.previous-image, .simple-modal a.next-image { - position: absolute; - top: 16px; - color: #999; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 17px; - font-weight: normal; - line-height: 10px; - text-decoration: none; -} -.simple-modal a.close { - right: 15px; -} -.simple-modal a.previous-image { - right: 80px; -} -.simple-modal a.next-image { - right: 60px; -} -.simple-modal a.close:hover, .simple-modal a.previous-image:hover, .simple-modal a.next-image:hover { - color: #444; -} -.simple-modal .simple-modal-body { - padding: 15px; - /* Extra style */ - -} -.simple-modal .simple-modal-body div.contents { - overflow: hidden; -} -.simple-modal .simple-modal-body p { - font-size: 13px; - font-weight: normal; - color: #606060; - line-height: 18px; -} -.simple-modal .simple-modal-body p img { - display: block; - margin: 0 auto 10px auto; -} -.simple-modal .simple-modal-footer { - display: block; - background-color: #F5F5F5; - padding: 14px 15px 15px; - border-top: 1px solid #EEEEEE; - -webkit-border-radius: 0 0 6px 6px; - -moz-border-radius: 0 0 6px 6px; - border-radius: 0 0 6px 6px; - -webkit-box-shadow: inset 0 1px 0 #FFF; - -moz-box-shadow: inset 0 1px 0 #FFF; - box-shadow: inset 0 1px 0 #FFF; - zoom: 1; - margin-bottom: 0; - text-align: center; -} -.simple-modal .simple-modal-footer a.btn { - text-decoration: none; - cursor: pointer; - display: inline-block; - background-repeat: no-repeat; - padding: 5px 14px 6px; - color: #333; - font-size: 13px; - line-height: normal; - border: 1px solid transparent; - -webkit-transition: 0.2s linear all; - -moz-transition: 0.2s linear all; - transition: 0.2s linear all; - border-radius: 3px; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; -} -.simple-modal .simple-modal-footer a.btn.primary { - color: #FFF; - text-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); - background-color: #999; - background-repeat: repeat-x; - margin-right: 15px; -} -.simple-modal .simple-modal-footer a.btn.primary:hover { - border: 1px solid #444; - background-color: #444; -} -.simple-modal .simple-modal-footer a.btn.secondary { - padding: 5px 2px 6px; -} -.simple-modal .simple-modal-footer a.btn.secondary:hover { - color: #999; -} -/* Draggable style */ -.simple-modal.draggable .simple-modal-header:hover { - cursor: move; - background-color: #f8f8f8; - -webkit-border-top-left-radius: 6px; - -webkit-border-top-right-radius: 6px; - -moz-border-radius-topleft: 6px; - -moz-border-radius-topright: 6px; - border-top-left-radius: 6px; - border-top-right-radius: 6px; -} -/* Loading style */ -.simple-modal.loading .simple-modal-body { - min-height: 60px; - background: transparent url("https://github.com/images/loader.gif") no-repeat center center; -} -.simple-modal.loading .simple-modal-body div.contents { - display: none; -} -.simple-modal.loading .close, .simple-modal.loading .simple-modal-header, .simple-modal.loading .simple-modal-footer { - display: none; -} -/* Hide header */ -.simple-modal.hide-header .simple-modal-header { - display: none; -} -/* Hide header */ -.simple-modal.hide-footer .simple-modal-footer { - display: none; -} diff --git a/public/javascripts/assets/images/loader.gif b/public/javascripts/assets/images/loader.gif deleted file mode 100755 index 1c72ebb554be018511ae972c3f2361dff02dce02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2545 zcma*pX;2es8VB%~zPr=ibVMCx-JQ^BhLDAsK)^**h(ZDp9YGuzZ%~j!}+w%FI;|aC7){7CdVvG)P{bng1y9Te*f}~*`1kQl$jwb z$tlW~rRS!X?#xfm_&6tTdp_`cjgYwbRFLNdoJCN$S-yhg`ZnC-yvedRSmOh%;Y`Gl6bY$Z-}#C=#F4%9!I1b zWQ~f+9P?;vhCxWwlwl=lrWG|7IYo;{jjmzJ5R9?f>n%-d@>kLINUc z4wM5dAO;kq<$}Dk{2-u0$I6@2N}&cUx9nmV1dYc8jfC}%=F9WCg^OQK9C6poh#2!A z3^EU*UFZvS^)?bu3T?J;@Ahb~%I?+@4!l5!*TjC}GIslNan-RCrrd~PdHYnNLJk+m&`$Y+NV(e>CCu%R#_8GqY4cv#j`#uRWdsg9DxWy(?oOvgCU}&@jy%c!H&-Q zqXJxajAtmQRoRa9V-RFXXh-bK*;Fum{BjpkYQGX~i@OZ^Dx0n&H}kvGKqQ?w(6iGXu_g08T|_hp#ZvFzIwKF*a=oMJ~3UGAjZ?g}GOxm44td zXoyYrU*I=y*vHv89hkYH(v5R#wc)BC3dZJKb3K)f>zaM3%JP(mpecViP0eKKYf3zy z->jx_mc?mCtPEvCQ?uppk?eLJt}_IR7giW%Jr)RyI!+E-voIs*lXI*z`GQc_&D#X( z{6G};HPYj6O|$lXxBJeDaweqa{4L=tOZCjTI^&UOxXg})LRG_cr^B9Rqt(i5ORbQX zq`_xCRsH>xEYY%&*Nyi#{S_JZNlTm#K56`RI%7^amom;*h90Si&g1CfaFV3D|a!`3Y-GKKbL*KSbl z>I96`TR@CqPJl(>QqB~RvK~-U)`e`l4LIqj+IU^~yyIe*|BRVB>4Bup%j{tLdKz4j zY^<8P8m~GRGz*yv0&-RJE+-keJ+%m3wNeopzsltWd->eWmBVwUr)pX` zK~CD<;~Z*Uy3W`3+MrEYxm5qYQ!z%YI;y7DTG`UVH0;@{M{!B&id_}3DBQ?zsotuR zEGLdRx25nLm%-wjlnEi;-aN_1S7???rO~WgA67jjr&(vRa3y$u#kqJbeKnw z{!T!1li9>M+sJ6AUe+*9d}2uGjhzd z|L1Rtp8uTGYyZoQ*`DS^m2dw-X{a)l+3m?ncvn^+O>)hdd3(hMtlhkRGns{<8c0I! zDDjpmwtj?@!6kA|iu3q+Ai;@JR+ zfk+ln&YFC{4bhK6IxVgLs4W%^8Lk`qzWU*L>yq0A3;l}{!wKZ!ue)C)SKI)9dl1hl zhIRLV@8E}rwvE{gX(}$f6x*k)_`*Ijt1=EU-Ls6-(phomeQBgtUs z5Xz~Cd*nE)Ac!0i4ep}Z1AugMB(&F?)#CU{Qc{Sp^vKsdL}vRB30H+Bbzrn`M##H3 z{W8dc_mDroEE+p8_}mnJtzZ4!RNe)zhB)Ds;S57nYSJxtek>^~&(7B+N5MPf2+2xx z5Dl&4X|c@f{Kd|z1r+N|$DmsoVp*3yOdxT^J^-VAk)Z@$4^XrPrFP-Co+MXZ+KJ(W z{JNYvraLLWA;&tRhIKOvhW|HC|L-dLvAUF(MG0(Nl?4tB{RzN7I(}Cb%hwN{crFC8 zji#aJElKvDFV+&VI1V?oUMA>*kto0^;3W8FQBSZ|{ z$v~TqE=(8DZa^i$^oht&h};P1N&wMXorKh*Z68gPV&ouy>%f36Oqkwemyeas$Qbz# zV?7Jy%o7KY6^I=P@eCji%W`o5sf(5hySYo9$l4e2`(hIV_?=H-#R6}0$WVA|*(K@3 z=5?@RlcLh(meW%A4)hGzcvEpm(_w?>zhL*i&s9$2>r zAtk{8Cia|+Y+V!uX9BtpXoF%lswuRKsM!pSs!?yhlCy!269K0|b M?FSZn2B>%I-}ej|s{jB1 diff --git a/public/javascripts/assets/less/simplemodal.less b/public/javascripts/assets/less/simplemodal.less deleted file mode 100755 index a280581..0000000 --- a/public/javascripts/assets/less/simplemodal.less +++ /dev/null @@ -1,220 +0,0 @@ -/* -* Mootools Simple Modal -* Version 1.0 -* Copyright (c) 2011 Marco Dell'Anna - http://www.plasm.it -* -* Markup Modal -*
-*
-* × -*

SimpleModal Title

-*
-*
-*
-*

-* Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. -*

-*
-*
-* -*
-*/ - -/* Vars */ -@radiuscontainer:6px; - -.rounded-corners (@radius: 6px) { - border-radius: @radius; - -webkit-border-radius: @radius; - -moz-border-radius: @radius; -} - -/* Overlay style */ -#simple-modal-overlay{ - position:fixed ; - display:block; - z-index: 99998; - top:0; - left:0; - width:100%; - height:100%; - background-color: #000000; - background-position: center center; - background-repeat: no-repeat; - background: -webkit-gradient(radial, center center, 0, center center, 460, from(#FFF), to(#291A49)); - background: -webkit-radial-gradient(circle, #FFF, #291A49); - background: -moz-radial-gradient(circle, #FFF, #291A49); - background: -ms-radial-gradient(circle, #FFF, #291A49); -} - -.simple-modal{ - /* Style rewrite */ - width:600px; - left:20px; - top:20px; - /* */ - position: absolute; - position: fixed; - margin: 0; - color: #808080; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 13px; - font-weight: normal; - line-height: 18px; - background-color: #FFFFFF; - border: 1px solid #EAEEFA; - border: 1px solid rgba(234, 238, 250, 0.6); - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.6); - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.6); - box-shadow: 0 0 3px rgba(0, 0, 0, 0.6); - z-index:99999; - .rounded-corners; - - .simple-modal-header{ - padding:5px 15px; - margin:0; - border-bottom:1px solid #EEEEEE; - - h1{ - margin:0; - color:#404040; - font-size:18px; - font-weight:bold; - font-family:"Helvetica Neue",Helvetica,Arial,sans-serif; - line-height:36px; - } - } - - a.close{ - position: absolute; - right: 15px; - top: 15px; - color: #999; - font-family:"Helvetica Neue",Helvetica,Arial,sans-serif; - font-size: 17px; - font-weight:normal; - line-height: 10px; - text-decoration:none; - } - - a.close:hover{ - color:#444; - } - - .simple-modal-body{ - padding: 15px; - - div.contents{ - overflow:hidden; - } - - /* Extra style */ - p{ - font-size:13px; - font-weight:normal; - color:#606060; - line-height:18px; - - img{ - display:block; - margin:0 auto 10px auto; - } - } - } - - .simple-modal-footer{ - display:block; - background-color: #F5F5F5; - padding: 14px 15px 15px; - border-top: 1px solid #EEEEEE; - -webkit-border-radius: 0 0 @radiuscontainer @radiuscontainer; - -moz-border-radius: 0 0 @radiuscontainer @radiuscontainer; - border-radius: 0 0 @radiuscontainer @radiuscontainer; - -webkit-box-shadow: inset 0 1px 0 #FFF; - -moz-box-shadow: inset 0 1px 0 #FFF; - box-shadow: inset 0 1px 0 #FFF; - zoom: 1; - margin-bottom: 0; - text-align:center; - - a.btn{ - text-decoration:none; - cursor: pointer; - display: inline-block; - background-repeat: no-repeat; - padding: 5px 14px 6px; - color: #333; - font-size: 13px; - line-height: normal; - border: 1px solid transparent; - -webkit-transition: 0.2s linear all; - -moz-transition: 0.2s linear all; - transition: 0.2s linear all; - .rounded-corners(3px); - } - - a.btn.primary{ - color: #FFF; - text-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); - background-color: #999; - background-repeat: repeat-x; - margin-right:15px; - &:hover{ - border: 1px solid #444; - background-color: #444; - } - } - - a.btn.secondary{ - padding: 5px 2px 6px; - &:hover{ - color:#999; - } - } - } -} - -/* Draggable style */ -.simple-modal.draggable .simple-modal-header:hover{ - cursor:move; - background-color:#f8f8f8; - -webkit-border-top-left-radius: @radiuscontainer; - -webkit-border-top-right-radius: @radiuscontainer; - -moz-border-radius-topleft: @radiuscontainer; - -moz-border-radius-topright: @radiuscontainer; - border-top-left-radius: @radiuscontainer; - border-top-right-radius: @radiuscontainer; -} - -/* Loading style */ -.simple-modal.loading{ - .simple-modal-body{ - min-height:60px; - background:transparent url("https://github.com/images/loader.gif") no-repeat center center; - - div.contents{ - display:none; - } - } - - .close, .simple-modal-header, .simple-modal-footer{ - display:none; - } -} - -/* Hide header */ -.simple-modal.hide-header{ - .simple-modal-header{ - display:none; - } -} - -/* Hide header */ -.simple-modal.hide-footer{ - .simple-modal-footer{ - display:none; - } -} \ No newline at end of file diff --git a/public/javascripts/simple-modal.js b/public/javascripts/simple-modal.js deleted file mode 100755 index 037993b..0000000 --- a/public/javascripts/simple-modal.js +++ /dev/null @@ -1,758 +0,0 @@ -/* ---- -description: SIMPLE MODAL is a small plugin to create modal windows. It can be used to generate alert or confirm messages with few lines of code. Confirm configuration involves the use of callbacks to be applied to affirmative action;i t can work in asynchronous mode and retrieve content from external pages or getting the inline content. - -license: MIT-style - -authors: -- Marco Dell'Anna -- Juan Lago - -requires: -- core/1.3: '*' - -provides: -- SimpleModal -... - -* Mootools Simple Modal -* Version 1.0 -* Copyright (c) 2011 Marco Dell'Anna - http://www.plasm.it -* -* Version 1.1 -* Copyright (c) 2013 Juan Lago - http://www.livespanske.com -* -* Requires: -* MooTools http://mootools.net -* -* Permission is hereby granted, free of charge, to any person -* obtaining a copy of this software and associated documentation -* files (the "Software"), to deal in the Software without -* restriction, including without limitation the rights to use, -* copy, modify, merge, publish, distribute, sublicense, and/or sell -* copies of the Software, and to permit persons to whom the -* Software is furnished to do so, subject to the following -* conditions: -* -* The above copyright notice and this permission notice shall be -* included in all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -* OTHER DEALINGS IN THE SOFTWARE. -* -* Log: -* 1.0 - Inizio implementazione release stabile [Tested on: ie7/ie8/ie9/Chrome/Firefox7/Safari] -* 1.1 - Extend functionality: Lightbox -*/ -var SimpleModal = new Class({ - // Implements - Implements: [Options], - request:null, - buttons:[], - // Protected section for lightbox - lightbox:{}, - // Options - options: { - onAppend: Function, // callback inject in DOM - offsetTop: 40, - overlayOpacity:.3, - overlayColor: "#000000", - width: 400, - draggable: true, - keyEsc: true, - overlayClick: true, - closeButton: true, // X close button - hideHeader: false, - hideFooter: false, - lightboxExcessWidth:40, // Only for Modal Image (excess pixels created from skin) - lightboxExcessHeight:120, // Only for Modal Image (excess pixels created from skin) - btn_ok: "OK", // Label - btn_cancel: "Cancel", // Label - template:"
\ -

{_TITLE_}

\ -
\ -
\ -
{_CONTENTS_}
\ -
\ -
" - }, - - /** - * Initialization - */ - initialize: function(options) { - //set options - this.setOptions(options); - }, - - /** - * public method show - * Open Modal - * @options: param to rewrite - * @return node HTML - */ - show: function(options){ - if(!options) options = {}; - - // Require redraw? - options.draw = options.draw == undefined ? true : options.draw; - - // Inserisce Overlay - if (options.draw) - this._overlay("show"); - - // Switch different modal - switch( options.model ){ - - // Require title && contents && callback - case "confirm": - // Add button confirm - this.addButton(this.options.btn_ok, "btn primary btn-margin", function(){ - try{ options.callback() } catch(err){}; - this.hide(); - }) - - // Add button cancel - this.addButton(this.options.btn_cancel, "btn secondary"); - - // Rendering - var node = this._drawWindow(options); - - // Add Esc Behaviour - this._addEscBehaviour(); - - break; - - // Require title && contents (define the action buttons externally) - case "modal": - // Rendering - var node = this._drawWindow(options); - - // Add Esc Behaviour - this._addEscBehaviour(); - break; - - // Require title && url contents (define the action buttons externally) - case "modal-ajax": - // Rendering - var node = this._drawWindow(options); - - this._loadContents({ - "url":options.param.url || "", - "onRequestComplete":options.param.onRequestComplete||Function - }) - break; - - // Require title, url contents, lightbox group and the order inside of the group - case "lightbox": - - // lightbox require render the arrows - options.arrows = true; - - // Set information about the current lightbox - this.lightbox.element = options.lightbox.element; - this.lightbox.group = options.lightbox.group; - this.lightbox.order = options.lightbox.order; - - // Rendering - var node = this._drawWindow(options); - - this._loadContents({ - "url": options.param.url || "", - "order": this.lightbox.order, - "draw": options.draw, - "onRequestComplete": options.param.onRequestComplete||Function - }); - break; - - // Require title && contents - default: - // Alert - // Add button - this.addButton(this.options.btn_ok, "btn primary"); - - // Rendering - var node = this._drawWindow(options); - - // Add Esc Behaviour - this._addEscBehaviour(); - break; - } - - // Custom size Modal - node.setStyles({width:this.options.width}); - - // Hide Header &&/|| Footer - if( this.options.hideHeader ) node.addClass("hide-header"); - if( this.options.hideFooter ) node.addClass("hide-footer"); - - - // Add Button X - if( this.options.closeButton ) this._addCloseButton(); - - - // Enabled Drag Window - if( this.options.draggable ){ - var headDrag = node.getElement(".simple-modal-header"); - new Drag(node, { handle:headDrag }); - // Set handle cursor - headDrag.setStyle("cursor", "move") - node.addClass("draggable"); - } - - // Resize Stage - this._display(); - }, - - /** - * public method hide - * Close model window - * return - */ - hide: function(){ - - try{ - if( typeof(this.request) == "object" ) this.request.cancel(); - }catch(err){} - - this._overlay('hide'); - - return; - }, - - /** - * private method _drawWindow - * Rendering window - * return node SM - */ - _drawWindow: function(options) { - - var node; - - if (options.draw) - { - // Add Node in DOM - node = new Element("div#simple-modal", {"class":"simple-modal"}); - - node.inject($$("body")[0]); - } - else - node = document.getElement('#simple-modal.simple-modal'); - - // Set Contents - var html = this._template(this.options.template, {"_TITLE_":options.title || "Untitled", "_CONTENTS_":options.contents || ""}); - - node.set("html", html); - - // Add all buttons - this._injectAllButtons(); - - // Add arrows - if (options.arrows) - this._addArrows(); - - // Callback append - this.options.onAppend(); - - return node; - }, - - /** - * public method addButton - * Add button to Modal button array - * require @label:string, @classe:string, @clickEvent:event - * @return node HTML - */ - addButton: function(label, classe, clickEvent){ - var bt = new Element('a',{ - "title" : label, - "text" : label, - "class" : classe, - "events": { - click: (clickEvent || this.hide).bind(this) - } - }); - this.buttons.push(bt); - return bt; - }, - - /** - * private method _injectAllButtons - * Inject all buttons in simple-modal-footer - * @return - */ - _injectAllButtons: function(){ - this.buttons.each( function(e, i){ - e.inject( $("simple-modal").getElement(".simple-modal-footer") ); - }); - return; - }, - - /** - * private method _addCloseButton - * Inject Close botton (X button) - * @return node HTML - */ - _addCloseButton: function(){ - var b = new Element("a", {"class":"close", "href":"#", "html":"x"}); - - b.inject($("simple-modal"), "top"); - - // Aggiunge bottome X Close - b.addEvent("click", function(e){ - if(e) e.stop(); - this.hide(); - }.bind( this )) - - return b; - }, - - /** - * private method _addArrows - * Inject arrows (Left and Right arrows) - */ - _addArrows: function(){ - - // Create and inject next image button - var btnnext = new Element("a", {"class":"next-image", "style":"display:none", "href":"#", "html":"»"}); - - btnnext.inject($("simple-modal"), "top"); - - btnnext.addEvent("click", function(e){ - if(e) e.stop(); - - this._viewNextElement(); - }.bind(this)); - - // Create and inject previous image button - var btnprevious = new Element("a", {"class":"previous-image", "style":"display:none", "href":"#", "html":"«"}); - - btnprevious.inject($("simple-modal"), "top"); - - btnprevious.addEvent("click", function(e){ - if(e) e.stop(); - - this._viewPreviousElement(); - }.bind(this)); - - // Set visibility of arrows - this._setArrowsVisibility(); - - }, - /** - * private method _viewNextElement - * Load the next element relative to the lightbox in the simple modal - */ - _viewNextElement: function(){ - var elements = this._getElementsByGroup(this.lightbox.group); - - this.lightbox.order++; - - var next_element = elements[this.lightbox.order]; - - this.show({ - "model": "lightbox", - "title": next_element.get('title'), - "draw": false, // Is not required redraw - "param":{ - "url": next_element.get('href'), - "onRequestComplete": function(){ } - }, - "lightbox": { - "element" : next_element, - "group": this.lightbox.group, - "order": this.lightbox.order - } - }); - }, - /** - * private method _viewPreviousElement - * Load the next element relative to the lightbox in the simple modal - */ - _viewPreviousElement: function(){ - var elements = this._getElementsByGroup(this.lightbox.group); - - this.lightbox.order--; - - var previous_element = elements[this.lightbox.order]; - - this.show({ - "model": "lightbox", - "title": previous_element.get('title'), - "draw": false, // Is not required redraw - "param":{ - "url": previous_element.get('href'), - "onRequestComplete": function(){ } - }, - "lightbox": { - "element" : previous_element, - "group": this.lightbox.group, - "order": this.lightbox.order - } - }); - }, - /** - * private method _setArrowsVisibility - * Automatically set the visibility of the Arrows - */ - _setArrowsVisibility: function(){ - - var left_arrow = document.getElement('.simple-modal a.previous-image'); - var right_arrow = document.getElement('.simple-modal a.next-image'); - var total_slides = this.getTotalByGroup(this.lightbox.group); - - // Set visibility of the left arrow (Previous image) - if (this.lightbox.order == 0) - left_arrow.setStyle('display', 'none'); - else - left_arrow.setStyle('display', 'inline'); - - - // Set visibility of the right arrow (Next image) - if (total_slides > 0 && this.lightbox.order < total_slides - 1) - right_arrow.setStyle('display', 'inline'); - else - right_arrow.setStyle('display', 'none'); - - }, - /** - * private method _getElementsByGroup - * Retrieve all elements by group - * @options string Group Name - * @return DOM Nodes - */ - _getElementsByGroup: function(group) { - - var links = $$("a").filter(function(el) { - return el.rel && el.rel.contains('simplemodal[' + group + ']'); - }); - - return links; - }, - /** - * public method _getTotalByGroup - * Count the number of lightboxes are in a certain group - * @options string Group Name - * @return integer Number of lightboxes by group - */ - getTotalByGroup: function(group) { - return this._getElementsByGroup(group).length; - }, - /** - * private method _overlay - * Create/Destroy overlay and Modal - * @return - */ - _overlay: function(status) { - switch( status ) { - case 'show': - - this._overlay('hide'); - - var overlay = new Element("div", {"id":"simple-modal-overlay"}); - overlay.inject( $$("body")[0] ); - overlay.setStyle("background-color", this.options.overlayColor); - overlay.fade("hide").fade(this.options.overlayOpacity); - - // Behaviour - if( this.options.overlayClick){ - overlay.addEvent("click", function(e){ - if(e) e.stop(); - this.hide(); - }.bind(this)) - } - - // Add Control Resize - this.__resize = this._display.bind(this); - window.addEvent("resize", this.__resize ); - break; - - case 'hide': - - // Remove Event Resize - window.removeEvent("resize", this._display); - - // Remove Event Resize - if(this.options.keyEsc) - { - var fixEV = Browser.name != 'ie' ? "keydown" : "onkeydown"; - window.removeEvent(fixEV, this._removeSM); - } - - // Remove Overlay - try - { - $('simple-modal-overlay').destroy(); - } - catch(err){} - - // Remove Modal - try{ - $('simple-modal').destroy(); - } - catch(err){} - break; - } - - return; - }, - - /** - * private method _loadContents - * Async request for modal ajax - * @return - */ - _loadContents: function(param){ - // Set Loading - $('simple-modal').addClass("loading"); - - // Match image file - var re = new RegExp( /([^\/\\]+)\.(jpg|png|gif)$/i ); - - if( param.url.match(re) ){ - - // Hide Header/Footer - $('simple-modal').addClass("hide-footer"); - - // Remove All Event on Overlay - $("simple-modal-overlay").removeEvents(); // Prevent Abort - - // Immagine - var images = [param.url]; - new Asset.images(images, { - onProgress: function(i) { - immagine = this; - }, - onComplete: function() { - try{ - // Remove loading - $('simple-modal').removeClass("loading"); - - // Imposta dimensioni - var content = $('simple-modal').getElement(".simple-modal-body"); - var padding = content.getStyle("padding").split(" "); - var width = immagine.get("width").toInt(); - var height = immagine.get("height").toInt(); - - // Porportional scale - var ns = this._scaleImage(width, height); - width = ns.width - height = ns.height - - // Width - var myFx1 = new Fx.Tween($("simple-modal"), { - duration: 'normal', - transition: 'sine:out', - link: 'cancel', - property: 'width' - }).start($("simple-modal").getCoordinates().width, width + padding[1].toInt() + padding[3].toInt() + $('simple-modal').getStyle('border-left-width').toInt() + $('simple-modal').getStyle('border-right-width').toInt()) - - // Height - var myFx2 = new Fx.Tween(content, { - duration: 'normal', - transition: 'sine:out', - link: 'cancel', - property: 'height' - }).start(content.getCoordinates().height, height).chain(function(){ - - - // Inject - immagine.inject( $('simple-modal').getElement(".contents").empty() ).fade("hide").setStyles({"width":width, "height":height}).fade("in"); - - this._display(); - - // Add Esc Behaviour - this._addEscBehaviour(); - - }.bind(this)); - - // Left - var myFx3 = new Fx.Tween($("simple-modal"), { - duration: 'normal', - transition: 'sine:out', - link: 'cancel', - property: 'left' - }).start($("simple-modal").getCoordinates().left, (window.getCoordinates().width - width)/2); - - - - }catch(err){} - }.bind(this) - }); - - } - else - { - - // Request HTML - this.request = new Request.HTML({ - evalScripts:false, - url: param.url, - method: 'get', - onRequest: function(){}, - onSuccess: function(responseTree, responseElements, responseHTML, responseJavaScript){ - $('simple-modal').removeClass("loading"); - $('simple-modal').getElement(".contents").set("html", responseHTML); - param.onRequestComplete(); - - // Execute script page loaded - eval(responseJavaScript) - - // Resize - this._display(); - - // Add Esc Behaviour - this._addEscBehaviour(); - }.bind(this), - onFailure: function(){ - $('simple-modal').removeClass("loading"); - $('simple-modal').getElement(".contents").set("html", "loading failed") - } - }).send(); - } - }, - - /** - * private method _scaleImage - * Calculate scale image proportional - * @return {width, height} - */ - _scaleImage: function(w, h){ - - var removeH = this.options.lightboxExcessHeight + this.options.offsetTop; - var removeW = this.options.lightboxExcessWidth; - var width = w ; - var height = h ; - var newWidth = window.getSize().x - removeW; - var newHeight = window.getSize().y - removeH; - - ratio = (width <= height) ? height / newHeight : width / newWidth; - - // Ratio - ratio = Math.max(ratio, 1.0); - - // New sizes - w = parseInt(width / ratio); - h = parseInt(height / ratio); - return {"width":w, "height":h} - }, - - /** - * private method _display - * Move interface - * @return - */ - _display: function(){ - // Update overlay - - try{ - $("simple-modal-overlay").setStyles({ - height: window.getCoordinates().height //$$("body")[0].getScrollSize().y - }); - } - catch(err){} - - // Update position popup - try{ - var offsetTop = this.options.offsetTop || 0; //this.options.offsetTop != null ? this.options.offsetTop : window.getScroll().y; - - $("simple-modal").setStyles({ - top: offsetTop, - left: ((window.getCoordinates().width - $("simple-modal").getCoordinates().width)/2 ) - }); - } catch(err){} - - return; - }, - - /** - * private method _addEscBehaviour - * add Event ESC - * @return - */ - _addEscBehaviour: function(){ - if(this.options.keyEsc){ - this._removeSM = function(e){ - if( e.key == "esc" ) this.hide(); - }.bind(this) - // Remove Event Resize - if(this.options.keyEsc){ - var fixEV = Browser.name != 'ie' ? "keydown" : "onkeydown"; - window.addEvent(fixEV, this._removeSM ); - } - } - }, - - /** - * private method _template - * simple template by Thomas Fuchs - * @return - */ - _template:function(s,d){ - for(var p in d) - s=s.replace(new RegExp('{'+p+'}','g'), d[p]); - return s; - } -}); - -/** -* Lightbox loader -*/ -SimpleModal.autoload = function() { - var links = $$("a").filter(function(el) { - return el.rel && el.rel.test(/^simplemodal/i); - }); - - var order = []; - - // Instance to SimpleModal (One instance for all lightboxes) - var SM = new SimpleModal(); - - - $$(links).each(function(el) { - - // Obtain lightbox group - var relation= el.rel.replace(/[[]|]/gi," "); - var rel0 = relation.split(" "); - - // Obtain order - order[rel0[1]] = order[rel0[1]] == null ? 0 : order[rel0[1]] + 1; - - // Avoid group order as static var - var group_order = order[rel0[1]]; - - // Create custom event per link - el.addEvent('click', function(e) { - - e.stop(); - - SM.show({ - "model": "lightbox", - "title": this.get('title'), - "param":{ - "url": this.get('href'), - "onRequestComplete": function(){ } - }, - "lightbox": { - "element" : this, - "group": rel0[1], - "order": group_order - } - }); - - }); - - }); - -} - -/** -* Lightbox boot -*/ -window.addEvent("domready", SimpleModal.autoload); \ No newline at end of file diff --git a/public/oauth.css b/public/oauth.css new file mode 100644 index 0000000..cd26279 --- /dev/null +++ b/public/oauth.css @@ -0,0 +1,29 @@ +.blue-button .oauth a { + background: #239cbb; + box-sizing: border-box; + min-height: 35px; + width: auto; + display: inline-block; + padding: 0.9em 1.37em; + cursor: pointer; + color: #fff !important; + font-size: 12px; + line-height: 13px; + font-weight: 300; + text-align: center; + letter-spacing: 1px; + text-transform: uppercase; + text-shadow: none; + border-radius: 0.2em; + border: rgba(0,0,0,0.05) 0.1em solid; + -webkit-transition: background 0.3s ease, border-color 0.3s ease; + -moz-transition: background 0.3s ease, border-color 0.3s ease; + transition: background 0.3s ease, border-color 0.3s ease; +} + +.blue-button .oauth a:hover { + background: #01cf9e; + color: #fff; + text-decoration: none; +} + From 95a130baf60a477c6dc2fa71b9f72c688c68f914 Mon Sep 17 00:00:00 2001 From: Andrea Reginato Date: Wed, 21 May 2014 11:17:59 +0200 Subject: [PATCH 05/30] Added CSS styles examples --- index.html | 108 +++++++++++++++++++++--- public/{oauth.css => oauth-buttons.css} | 1 + public/style.css | 22 ++--- 3 files changed, 101 insertions(+), 30 deletions(-) rename public/{oauth.css => oauth-buttons.css} (96%) diff --git a/index.html b/index.html index 1794f9a..496b2c5 100644 --- a/index.html +++ b/index.html @@ -3,6 +3,7 @@ oauth-ng | AngularJS directive for OAuth 2.0 + @@ -404,40 +405,121 @@

Customizations

Custom CSS

- By default the directive is visible as a link. To improve its visual style add some - custom CSS. Below you can find a couple of predefined styles you can copy and past - to your project. + By default the directive is a simple link. To improve its visual style add some CSS.

- - +
+ - + + + + + + + -
- Default - + + Default + + + + (no extra CSS required) + +
+ Logged out - Source Code <> + + Sign In
+
- Blue Button + Logged in + + Logout Alice + +
+ Access denied - Source Code <> + + Access denied. Try again. +
+ + + + + + + + + + + + + + + + + + + + + +
+ + Blue button style + + + + <Download CSS> + +
+ Logged out + + + Sign In + +
+ Logged in + + + Logout Alice
+
+
+ Access denied + + + Access denied. Try again. + +
+ +

+ All CSS rules applies to the following HTML structure. +

+ +
<span class="oauth">
+  <a href="#" class="logged-out">Sign In</a>
+  <a href="#" class="logged-in">Logout Alice</a>
+  <a href="#" class="denied">Access denied. Try again.</a>
+</span>

- If you have a new one add it to the docs repository. + It's easy to create your own. Base all of your rules on the oauth class + or checkout existing CSS definitions to better understand how it works + (e.g. the blue button CSS).

+ + diff --git a/public/oauth.css b/public/oauth-buttons.css similarity index 96% rename from public/oauth.css rename to public/oauth-buttons.css index cd26279..7ad29b4 100644 --- a/public/oauth.css +++ b/public/oauth-buttons.css @@ -1,4 +1,5 @@ .blue-button .oauth a { + text-decoration: none; background: #239cbb; box-sizing: border-box; min-height: 35px; diff --git a/public/style.css b/public/style.css index 1b31efe..f11e85d 100644 --- a/public/style.css +++ b/public/style.css @@ -232,6 +232,7 @@ ul.task-list .task-list-item-checkbox { table { margin: 40px 0; + width: 100%; } table tr th { @@ -272,25 +273,12 @@ table span.info { font-weight: 200; } - -.table-labeled .label { - padding: 0; -} - -.table-labeled .label { - border-radius: 2px; - font-size: 12px; - font-weight: 400; - line-height: 23px; - padding: 3px 6px 2px; +table.button .title { text-transform: uppercase; - background: #eee; - border: 1px solid #ddd; - color: #333; + font-weight: 600; } -.table-labeled .link { - background: #E5F4FF; - border: 1px solid #C5EAFF; +table.button .parameter { + width: 100px; } From 05c7d208d440d9ef6628b0483bd7403f79533bf1 Mon Sep 17 00:00:00 2001 From: Andrea Reginato Date: Wed, 21 May 2014 11:23:28 +0200 Subject: [PATCH 06/30] Started section about custom templatw --- index.html | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/index.html b/index.html index 496b2c5..c6963cb 100644 --- a/index.html +++ b/index.html @@ -519,6 +519,13 @@

Custom CSS

+

Custom Template

+ +

+ If the custom template does not fit for you, you can create a personalized one. Below you + can see the default one. +

+ From cc91245fb138397553fa5047e3307a738e01539d Mon Sep 17 00:00:00 2001 From: Andrea Reginato Date: Wed, 21 May 2014 12:02:45 +0200 Subject: [PATCH 07/30] Completed the customization part --- index.html | 93 ++++++++++++++++++++++++++++++++++++++++++++---- public/style.css | 2 +- 2 files changed, 88 insertions(+), 7 deletions(-) diff --git a/index.html b/index.html index c6963cb..94b2ac5 100644 --- a/index.html +++ b/index.html @@ -398,14 +398,15 @@

Configurations

Customizations

- The oauth directive comes to life with customisazion in mind. You can easily define + The oauth directive comes to life with customization in mind. You can easily define personalized CSS styles or create brand new templates.

-

Custom CSS

+

Custom CSS

- By default the directive is a simple link. To improve its visual style add some CSS. + By default the directive is shown as a simple link. To improve its visual style + add some CSS rules.

@@ -519,13 +520,93 @@

Custom CSS

-

Custom Template

+

Custom Template

- If the custom template does not fit for you, you can create a personalized one. Below you - can see the default one. + If the custom template does not fit for you, you can create a personalized one. + Below you can see the default template used from the directive.

+
<span class="oauth">
+  <a href="#" class="logged-out" ng-show="show=='logged-out'" ng-click="login()">Sign In</a>
+  <a href="#" class="logged-in"  ng-show="show=='logged-in'"  ng-click="logout()">Logout {{profile.full_name}}</a>
+  <a href="#" class="denied"     ng-show="show=='denied'"     ng-click="login()">Access denied. Try again.</a>
+</span>
+ +

+ To create a new one create your personalized HTML and make it interact with the oauth + internal API. +

+ +
+ + + + + + + + + + + + + + +
+ show + variable + + Defines the oauth status.
+ Valid values are logged-out, logged-in and denied. +
+ login() + method + + Logs in redirecting the app to the OAuth 2.0 authorization server. +
+ logout() + method + + Logs out deleting the access token. +
+ +

+ Suppose you defined a new template in views/templates/custom.html. + Now you need to let the directive know about the new template. You can do it in two ways. +

+ +
    +
  • Setting the template attribute
  • +
  • Firing the template event
  • +
+ +

Template attribute

+ +

+ Set the template path (or uri) as value for the template attribute. +

+ +
<oauth2
+  template="views/templates/custom.html"
+  client-id="<client-id>"
+  redirect-uri="<redirect-uri>"
+  scope="<your-scope>"
+  profile="<profile-uri>">
+</oauth2>
+ +

Template event

+ +

+ Fires the update template event passing the template path (or uri) as param. +

+ +
$rootScope.$broadcast('oauth:template:update', 'views/templates/custom.html');
+ +

+ The main advantage of using the update template event is that it can change the + HTML view of your directive at any moment of its life. +

diff --git a/public/style.css b/public/style.css index f11e85d..a587335 100644 --- a/public/style.css +++ b/public/style.css @@ -36,6 +36,7 @@ section:not(#top) { } pre { + margin: 2em 0; background: white; border-top: 1px solid #eee; border-bottom: 1px solid #eee; @@ -281,4 +282,3 @@ table.button .title { table.button .parameter { width: 100px; } - From 60b0a544cb76c88ef25477d1088042b6508eef56 Mon Sep 17 00:00:00 2001 From: Andrea Reginato Date: Wed, 21 May 2014 15:41:27 +0200 Subject: [PATCH 08/30] Completed first draft of the oauth-ng documentation --- index.html | 126 +++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 88 insertions(+), 38 deletions(-) diff --git a/index.html b/index.html index 94b2ac5..7a726a0 100644 --- a/index.html +++ b/index.html @@ -38,7 +38,7 @@

Introduction

Create AngularJS apps that connects to any OAuth 2.0 server using the client side - flow (aka OAuth 2.0 Implicit Grant) + flow (aka OAuth 2.0 Implicit Grant)

@@ -51,7 +51,7 @@

Getting Started

Installation

- Install oauth-ng using Bower + Install oauth-ng using Bower

$ bower install oauth-ng --save
@@ -75,7 +75,7 @@

Basic Example

- To fully understand how it works read the how to section. + To fully understand how it works read the next section.

@@ -86,10 +86,10 @@

Basic Example

-

How To

+

Create your first app with oauth-ng

In this section you will learn how to use the directive to authorize an OAuth 2.0 server - through the creation of a real project (in 10 minutues). + through the creation of a real project. It will take less than 15 minutues.

@@ -97,7 +97,7 @@

Setup

To build our app we'll use Yeoman, a collection of tools - and frameworks that can help developers quickly build web applications. + and frameworks helping developers to quickly build web applications.

    @@ -170,8 +170,8 @@

    Install oauth-ng

    $ bower install oauth-ng --save

    - With this command oauth-ng and all its dependencies are downloaded. To automatically - add them to your index page stop and restart the server. + Now you have oauth-ng and all its dependencies ready to be used. + To automatically add them to your index page, stop and restart the server.

    $ grunt serve
    @@ -195,11 +195,10 @@

    AngularJS app definition

    OAuth 2.0 Server

    - To test the directive we created a basic OAuth 2.0 authorization server (using - Ruby). + To test the directive we created a basic OAuth 2.0 authorization server.

      -
    • uri - http://oauth-ng-server.herokuapp.com
    • +
    • http://oauth-ng-server.herokuapp.com

    @@ -211,7 +210,8 @@

    OAuth 2.0 Server

    Identify your application

    - To make the directive work you need a registered application. Here one. + To make the directive work you need a registered application to get its + client-id and redirect-uri.

      @@ -220,15 +220,15 @@

      Identify your application

    - Use the client-id and the redirect-uri above or - register a new one. + Use the credentials above or register + a new application.

    Add the oauth-ng directive

    - Open the main.html view and place the oauth directive. + Open the main.html view and place the oauth tag with the needed configurations.

    // apps/views/main.html
    @@ -240,7 +240,7 @@ <h2>Add the oauth-ng directive</h2>
     </oauth2>

    - Follows a description for the used attributes. + Here a description for the used attributes.

    @@ -287,7 +287,7 @@

    You're done!

    Nothing else to do. Open your index page, click the Login link, authorize your app and get the authenticated user info. You are now ready to - access to your API in a secure way. + access to your API using OAuth 2.0 and AngularJS.

    @@ -395,7 +395,7 @@

    Configurations

    -

    Customizations

    +

    Customizations

    The oauth directive comes to life with customization in mind. You can easily define @@ -523,8 +523,9 @@

    Custom CSS

    Custom Template

    - If the custom template does not fit for you, you can create a personalized one. - Below you can see the default template used from the directive. + When the custom template does not satisfy your needs (e.g. you want to show the user email + when logged in), you can create a new one. To have an idea of what a template looks like, + see the code below (related to the default template).

    <span class="oauth">
    @@ -534,8 +535,7 @@ <h1>Custom Template</h1>
     </span>

    - To create a new one create your personalized HTML and make it interact with the oauth - internal API. + To create your new template, define the HTML and make it work using the following internal API.

    @@ -572,8 +572,8 @@

    Custom Template

    - Suppose you defined a new template in views/templates/custom.html. - Now you need to let the directive know about the new template. You can do it in two ways. + Now, supposing you have defined a new template in views/templates/custom.html, + you need to let the directive know about its existence. You can do this in two ways.

      @@ -581,7 +581,7 @@

      Custom Template

    • Firing the template event
    -

    Template attribute

    +

    1 - Template attribute

    Set the template path (or uri) as value for the template attribute. @@ -595,7 +595,7 @@

    Template attribute

    profile=""> -

    Template event

    +

    2 - Template event

    Fires the update template event passing the template path (or uri) as param. @@ -604,8 +604,8 @@

    Template event

    $rootScope.$broadcast('oauth:template:update', 'views/templates/custom.html');

    - The main advantage of using the update template event is that it can change the - HTML view of your directive at any moment of its life. + Use this solution when you need to update the directive at runtime. For all + other cases, use the template attribute.

@@ -665,7 +665,7 @@

Events

Listening for runtime the template change.
- See examples in the customization section. + See examples in the customization section. @@ -688,7 +688,7 @@

Events

}); $scope.$on('oauth:expired', function(event) { - console.log('The access token is expired. Please refresh the login'); + console.log('The access token is expired. Please refresh.'); }); @@ -696,28 +696,78 @@

Events

+
+
+

Logged in or logged out?

+ +

+ Inject the AccessToken.get() service to understand if the user is logged in or out. +

+ +
$scope.logged = !!AccessToken.get();
+ +

+ The AccessToken.get() method returns null when the user is logged + out and the access token representation when the user is logged in (see below). +

+ + +
{
+  "access_token": "9ce03e06f037180c2dcfa8b278217eb56d747730c69xxx",
+  "token_type": "bearer",
+  "expires_in": 7200,
+  "state": "remember-me"
+}
+ +
+
+ + +
+
+

Profile resource

+ +

+ When a user signs in, the profile is accessible through the Profile service. +

+ +
$scope.profile = Profile.get();
+ +

+ This profile is accessible only when the profile-uri attribute is defined. +

+ +
+
+ +
+
+
+

Thanks

+ +

+ Project created and released as open-source thanks to Lelylan. +

+ +
+
+ From 829ba498e35bc4b6ad4d68796b1f9d8e1a92da1a Mon Sep 17 00:00:00 2001 From: Andrea Reginato Date: Wed, 21 May 2014 15:53:48 +0200 Subject: [PATCH 09/30] Fixed the top menu with the correct links --- index.html | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/index.html b/index.html index 7a726a0..f5ce55c 100644 --- a/index.html +++ b/index.html @@ -18,13 +18,14 @@
@@ -75,7 +76,7 @@

Basic Example

- To fully understand how it works read the next section. + To fully understand how it works read the next section.

@@ -402,7 +403,7 @@

Customizations

personalized CSS styles or create brand new templates.

-

Custom CSS

+

Custom CSS

By default the directive is shown as a simple link. To improve its visual style @@ -520,7 +521,7 @@

Custom CSS

-

Custom Template

+

Custom Template

When the custom template does not satisfy your needs (e.g. you want to show the user email @@ -698,7 +699,7 @@

Events

-

Logged in or logged out?

+

Logged in or logged out?

Inject the AccessToken.get() service to understand if the user is logged in or out. @@ -767,7 +768,5 @@

Thanks

- - From c07491b4ecf94bde1dad85d5392f8c88db63a661 Mon Sep 17 00:00:00 2001 From: Andrea Reginato Date: Wed, 21 May 2014 16:12:55 +0200 Subject: [PATCH 10/30] Added contact me links --- index.html | 9 ++++++++- public/style.css | 6 ++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/index.html b/index.html index f5ce55c..b6e5289 100644 --- a/index.html +++ b/index.html @@ -520,6 +520,11 @@

Custom CSS

(e.g. the blue button CSS).

+

+ Mail or Tweet + me if you make new CSS buttons so that we can add them do the docs.

+

+

Custom Template

@@ -763,7 +768,9 @@

Links

Thanks

- Project created and released as open-source thanks to Lelylan. + Project created and released as open-source thanks to Lelylan.
+ Mail or Tweet + me for any idea that can improve the project.

diff --git a/public/style.css b/public/style.css index a587335..d0e1e1a 100644 --- a/public/style.css +++ b/public/style.css @@ -282,3 +282,9 @@ table.button .title { table.button .parameter { width: 100px; } + +.notice { + background-color: #f4f4f4; + padding: 1em; + border: 1px solid #e4e4e4; +} From 9bf73e23c0cb0e27e88790fcad18b1d2e5651bbd Mon Sep 17 00:00:00 2001 From: Andrea Reginato Date: Wed, 21 May 2014 17:53:58 +0200 Subject: [PATCH 11/30] Updated documentation to fix some typo on the tutorial --- index.html | 58 ++++++++++++++++++++++++++++++++---------------------- 1 file changed, 35 insertions(+), 23 deletions(-) diff --git a/index.html b/index.html index b6e5289..558574c 100644 --- a/index.html +++ b/index.html @@ -64,13 +64,13 @@

Basic Example

<body ng-app="app">
-  <oauth2
+  <oauth
     site="<oauth-server-uri>"
     client-id="<client-id>"
     redirect-uri="<redirect-uri>"
-    scope="<your-scope>"
-    profile="<profile-uri>">
-  </oauth2>
+    profile-uri="<profile-uri>"
+    scope="<scope>">
+  </oauth>
 
   <script>angular.module('app', ['ng-oauth']);</script>
 </body>
@@ -185,13 +185,11 @@

Install oauth-ng

AngularJS app definition

- Inject the oauth-ng module into your application and remember its initialization in your - index page using the ng-app directive. + Inject the oauth-ng module into your application.

// app/scripts/app.js
-angular.module('newProjectApp', ['oauth'])
- +angular.module('newProjectApp', ['oauth', ... ])

OAuth 2.0 Server

@@ -216,7 +214,7 @@

Identify your application

    -
  • client-id - 017b9f702a904869a6e52bd39b147bb912.
  • +
  • client-id - 017b9f702a904869a6e52bd39b147bb912
  • redirect-uri - http://localhost:9000
@@ -229,16 +227,16 @@

Identify your application

Add the oauth-ng directive

- Open the main.html view and place the oauth tag with the needed configurations. + Open your main.html view and place the oauth tag with the needed configurations.

-
// apps/views/main.html
-<oauth2
+      <pre><code><xmp><oauth
   site="http://oauth-ng-server.herokuapp.com/"
   client-id="017b9f702a904869a6e52bd39b147bb912"
   redirect-uri="http://localhost:9000/"
-  profile="http://oauth-ng-server.herokuapp.com/profile">
-</oauth2>
+ profile-uri="http://oauth-ng-server.herokuapp.com/profile" + scope="profile"> +

Here a description for the used attributes. @@ -251,7 +249,7 @@

Add the oauth-ng directive

site - The URI representing the OAuth 2.0 authorization server. + OAuth 2.0 authorization server URI. @@ -267,7 +265,7 @@

Add the oauth-ng directive

redirect-uri - Registered application URI. Where the user is redirected after the authorization. + Registered application URI.
Where the user is redirected after the authorization. @@ -275,7 +273,15 @@

Add the oauth-ng directive

profile-uri - API endpoint returning the authenticated profile resource. + API endpoint to get the authenticated profile resource. + + + + + scope + + + Application privileges. @@ -593,13 +599,13 @@

1 - Template attribute

Set the template path (or uri) as value for the template attribute.

-
<oauth2
+      <pre><code><xmp><oauth
   template="views/templates/custom.html"
   client-id="<client-id>"
   redirect-uri="<redirect-uri>"
-  scope="<your-scope>"
-  profile="<profile-uri>">
-</oauth2>
+ profile-uri="" + scope=""> +

2 - Template event

@@ -768,11 +774,17 @@

Links

Thanks

- Project created and released as open-source thanks to Lelylan.
- Mail or Tweet + Mail or + Tweet me for any idea that can improve the project.

+

+ This project was created and released as open-source thanks to Lelylan, + a new platform to monitor and control your devices through a simple, open and robust REST API. +
+

+ From f92cfd6d4b33e7d6d4958519adb4f4a0c0b24eb6 Mon Sep 17 00:00:00 2001 From: Andrea Reginato Date: Tue, 27 May 2014 11:39:30 +0200 Subject: [PATCH 12/30] Added demo links --- index.html | 61 ++++++++++++++++++++--------------------- public/images/demo.png | Bin 0 -> 57431 bytes public/style.css | 12 ++++++++ 3 files changed, 42 insertions(+), 31 deletions(-) create mode 100644 public/images/demo.png diff --git a/index.html b/index.html index 558574c..9bc61a7 100644 --- a/index.html +++ b/index.html @@ -31,6 +31,9 @@
AngularJS directive for OAuth 2.0
+

+ See on Github +

@@ -72,7 +75,7 @@

Basic Example

scope=""> - +

@@ -90,7 +93,12 @@

Basic Example

Create your first app with oauth-ng

In this section you will learn how to use the directive to authorize an OAuth 2.0 server - through the creation of a real project. It will take less than 15 minutues. + through the creation of a real project. It will take less than 10 minutues. +

+ +

+ View Demo + Demo Github Repository

@@ -172,7 +180,7 @@

Install oauth-ng

Now you have oauth-ng and all its dependencies ready to be used. - To automatically add them to your index page, stop and restart the server. + Restart the server to automatically add them to your index page.

$ grunt serve
@@ -194,15 +202,8 @@

AngularJS app definition

OAuth 2.0 Server

- To test the directive we created a basic OAuth 2.0 authorization server. - -

    -
  • http://oauth-ng-server.herokuapp.com
  • -
-

- -

- The source code is available on Github. + To test the directive we created a basic OAuth 2.0 authorization server at the address + http://oauth-ng-server.herokuapp.com.

@@ -210,7 +211,8 @@

Identify your application

To make the directive work you need a registered application to get its - client-id and redirect-uri. + client-id and redirect-uri. For this example we + created a demo app with the following credentials.

    @@ -218,11 +220,6 @@

    Identify your application

  • redirect-uri - http://localhost:9000
-

- Use the credentials above or register - a new application. -

-

Add the oauth-ng directive

@@ -232,14 +229,14 @@

Add the oauth-ng directive

<oauth
   site="http://oauth-ng-server.herokuapp.com/"
-  client-id="017b9f702a904869a6e52bd39b147bb912"
+  client-id="d6d2b510d18471d2e22aa202216e86c42beac80f9a6ac2da505dcb79c7b2fd99"
   redirect-uri="http://localhost:9000/"
-  profile-uri="http://oauth-ng-server.herokuapp.com/profile"
-  scope="profile">
+  profile-uri="http://oauth-ng-server.herokuapp.com/api/v1/me"
+  scope="public">
 </oauth>

- Here a description for the used attributes. + Here a description for what these settings are about.

@@ -288,22 +285,24 @@

Add the oauth-ng directive

-

You're done!

- Nothing else to do. Open your index page, click the Login link, - authorize your app and get the authenticated user info. You are now ready to - access to your API using OAuth 2.0 and AngularJS. + Open your index page, click to the Login link and authorize your application + to get a new access token. You are now ready to access your API using OAuth + 2.0 and AngularJS.

-

- #TODO See Demo. +

+ View Demo + Demo Github Repository

-

- #TODO See Github Repository. -

+ + + + + diff --git a/public/images/demo.png b/public/images/demo.png new file mode 100644 index 0000000000000000000000000000000000000000..2bb41aac7d10f8da221ca4bf4b9a38e373fb249d GIT binary patch literal 57431 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 literal 0 HcmV?d00001 diff --git a/public/style.css b/public/style.css index d0e1e1a..87aa822 100644 --- a/public/style.css +++ b/public/style.css @@ -288,3 +288,15 @@ table.button .parameter { padding: 1em; border: 1px solid #e4e4e4; } + +.btn { + display: inline-block; + text-decoration: none; + border: 1px solid #000; + padding: 0.5em 1em; + margin-right: 0.5em; +} + +.btn-group { + margin-top: 2em; +} From 3f12856714a24560b0ae18290032b18d3b20b226 Mon Sep 17 00:00:00 2001 From: Andrea Reginato Date: Tue, 27 May 2014 14:48:54 +0200 Subject: [PATCH 13/30] Added gittip --- index.html | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/index.html b/index.html index 9bc61a7..0a3b7a9 100644 --- a/index.html +++ b/index.html @@ -98,7 +98,7 @@

Create your first app with oauth-ng

View Demo - Demo Github Repository + Download Source

@@ -295,10 +295,9 @@

You're done!

View Demo - Demo Github Repository + Download Source

- @@ -635,7 +634,7 @@

Events

- oauth:success(token) + oauth:login(token) fired @@ -764,6 +763,7 @@

Links

@andreareginato + @@ -775,15 +775,20 @@

Thanks

Mail or Tweet - me for any idea that can improve the project.

+ me for any idea that can improve the project.

This project was created and released as open-source thanks to Lelylan, a new platform to monitor and control your devices through a simple, open and robust REST API. -

+

+ If you like what I'm doing offer me a coffe. +

+ + + From dcb6ebace1367623f418c1594609021a53abaa9d Mon Sep 17 00:00:00 2001 From: Andrea Reginato Date: Tue, 27 May 2014 15:53:43 +0200 Subject: [PATCH 14/30] Added docs on the fact we use localstorage and what is added to the header --- index.html | 42 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 37 insertions(+), 5 deletions(-) diff --git a/index.html b/index.html index 0a3b7a9..72c7d1f 100644 --- a/index.html +++ b/index.html @@ -82,6 +82,18 @@

Basic Example

To fully understand how it works read the next section.

+

What does it do?

+ +

+ It renders a Login link that redirects you to the authorization page. When authorized and + redirected back to your app, the directive takes the access token from the fragment, + saves it in the SessionStorage + and add it to all HTTP requests made in AngularJS. +

+ +
// example header
+Authorization:Bearer 9e5c6bf5da8b10223babcb2f6776af5d2a05b3c7988be008eb956b290018464a
+ @@ -378,7 +390,7 @@

Configurations

Custom template you want to render.
- Default to default.html + Default to default.html. @@ -388,7 +400,17 @@

Configurations

Authorization URL for the OAuth2 Implicit Flow.
- Default to /oauth/authorize + Default to /oauth/authorize. + + + + + text + optional + + + Visible text when the user has to login.
+ Default to Sign in. @@ -539,8 +561,8 @@

Custom Template

<span class="oauth">
-  <a href="#" class="logged-out" ng-show="show=='logged-out'" ng-click="login()">Sign In</a>
-  <a href="#" class="logged-in"  ng-show="show=='logged-in'"  ng-click="logout()">Logout {{profile.full_name}}</a>
+  <a href="#" class="logged-out" ng-show="show=='logged-out'" ng-click="login()">{{text}}</a>
+  <a href="#" class="logged-in"  ng-show="show=='logged-in'"  ng-click="logout()">Logout {{profile.email}}</a>
   <a href="#" class="denied"     ng-show="show=='denied'"     ng-click="login()">Access denied. Try again.</a>
 </span>
@@ -549,7 +571,7 @@

Custom Template

- + + + + + From 709e264a7de7343480d29f4e6c97bd24147ee80a Mon Sep 17 00:00:00 2001 From: doapp-ryanp Date: Thu, 10 Jul 2014 22:40:59 -0500 Subject: [PATCH 20/30] document new oauth:authorized --- index.html | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/index.html b/index.html index b8bacff..79ec72c 100644 --- a/index.html +++ b/index.html @@ -670,9 +670,18 @@

Events

fired
+ + + + - + + + + +
show @@ -560,6 +582,16 @@

Custom Template

Valid values are logged-out, logged-in and denied.
+ text + variable + + Visible text when the widget is logged out.
+ Default to Sign in. +
login() From 25075f2963977eebf8fce986736abe852bb03897 Mon Sep 17 00:00:00 2001 From: Andrea Reginato Date: Tue, 27 May 2014 16:45:46 +0200 Subject: [PATCH 15/30] Added latest changes --- index.html | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/index.html b/index.html index 72c7d1f..8974e71 100644 --- a/index.html +++ b/index.html @@ -68,11 +68,11 @@

Basic Example

<body ng-app="app">
   <oauth
-    site="<oauth-server-uri>"
-    client-id="<client-id>"
-    redirect-uri="<redirect-uri>"
-    profile-uri="<profile-uri>"
-    scope="<scope>">
+    site="OAUTH_SERVER_URI_HERE"
+    client-id="CLIENT_ID_HERE"
+    redirect-uri="REDIRECT_URI_HERE"
+    profile-uri="PROFILE_URI_HERE"
+    scope="SCOPE_HERE">
   </oauth>
 
   <script>angular.module('app', ['oauth-ng']);</script>
@@ -88,11 +88,10 @@ <h2>What does it do?</h2>
       It renders a Login link that redirects you to the authorization page. When authorized and
       redirected back to your app, the directive takes the access token from the fragment,
       saves it in the <a href="https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Storage#sessionStorage" target="_blank">SessionStorage</a>
-      and add it to all HTTP requests made in AngularJS.
+      and sets the Authorization header to all HTTP requests made with AngularJS.
       </p>
 
-      <pre><code><xmp>// example header
-Authorization:Bearer 9e5c6bf5da8b10223babcb2f6776af5d2a05b3c7988be008eb956b290018464a
+
Authorization:Bearer 9e5c6bf5da8b10223babcb2f6776af5d2a05b3c7988be008eb956b290018464a
From 8fee01c153b80f44c64924ab979fbb0f3eeb2861 Mon Sep 17 00:00:00 2001 From: Andrea Reginato Date: Thu, 29 May 2014 14:35:12 +0200 Subject: [PATCH 16/30] Updated gittio button --- index.html | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 8974e71..3b00d58 100644 --- a/index.html +++ b/index.html @@ -816,10 +816,11 @@

Thanks

If you like what I'm doing offer me a coffe. +

- - From d6760796fca3d5f1a07af00223e86f6cb701b861 Mon Sep 17 00:00:00 2001 From: Andrea Reginato Date: Thu, 29 May 2014 14:38:19 +0200 Subject: [PATCH 17/30] removed a dot on donation sentence --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index 3b00d58..1b6afaa 100644 --- a/index.html +++ b/index.html @@ -815,7 +815,7 @@

Thanks

- If you like what I'm doing offer me a coffe. + If you like what I'm doing offer me a coffe From f57f71a1a053e09d667b42e522f2769c85f42db2 Mon Sep 17 00:00:00 2001 From: Andrea Reginato Date: Thu, 29 May 2014 16:45:34 +0200 Subject: [PATCH 18/30] Minor updates on docs based on latest changes on authorization header --- index.html | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/index.html b/index.html index 1b6afaa..5787813 100644 --- a/index.html +++ b/index.html @@ -85,13 +85,14 @@

Basic Example

What does it do?

- It renders a Login link that redirects you to the authorization page. When authorized and - redirected back to your app, the directive takes the access token from the fragment, - saves it in the SessionStorage - and sets the Authorization header to all HTTP requests made with AngularJS. + It renders a Login link that lets you authorize a third party app through OAuth 2.0. + When the flow is completed, the access token is saved in the SessionStorage.

-
Authorization:Bearer 9e5c6bf5da8b10223babcb2f6776af5d2a05b3c7988be008eb956b290018464a
+

+ The oauth directive only works in HTML5 mode (automatically activated).
+ We are working on fixing this bug. +

@@ -775,9 +776,12 @@

Profile resource

$scope.profile = Profile.get();

- This profile is accessible only when the profile-uri attribute is defined. + This profile is accessible only when the profile-uri attribute is defined and + it sets the Authorization header with the access token to authenticate the request.

+
Authorization:Bearer {token}
+ From e87bb3fd09562920e07c9a868d95182574bd2aec Mon Sep 17 00:00:00 2001 From: doapp-ryanp Date: Thu, 10 Jul 2014 10:20:23 -0500 Subject: [PATCH 19/30] Update index.html --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index 5787813..b8bacff 100644 --- a/index.html +++ b/index.html @@ -380,7 +380,7 @@

Configurations

optional
- Optional opaque value used by the client to maintain state between the request and callback. + An arbitrary unique string created by your app to guard against Cross-site Request Forgery.
- Fired when the user has authorized the third party app. + Fired when the user has completed the login flow, and authorized the third party app.
+ oauth:authorized(token) + fired + + Fired when the view is initializing and user has a non-expired auth token in the local session storage. +
oauth:logout From 01eb315a3233ba169321732c614b6dce0059d08e Mon Sep 17 00:00:00 2001 From: Andrea Reginato Date: Tue, 5 Aug 2014 18:54:17 +0200 Subject: [PATCH 21/30] Update index.html --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index 79ec72c..3366390 100644 --- a/index.html +++ b/index.html @@ -75,7 +75,7 @@

Basic Example

scope="SCOPE_HERE"> - +

From b304fe750cb9d990ca9a083cad35796698099362 Mon Sep 17 00:00:00 2001 From: Andrea Reginato Date: Wed, 13 Aug 2014 13:50:31 +0200 Subject: [PATCH 22/30] Added documentation related to the HTML5 mode on or off --- index.html | 64 +++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 59 insertions(+), 5 deletions(-) diff --git a/index.html b/index.html index 3366390..d554b83 100644 --- a/index.html +++ b/index.html @@ -18,6 +18,7 @@

  • Introduction
  • Getting Started
  • +
  • HTML5 mode
  • How To
  • Configurations
  • Customizations
  • @@ -82,6 +83,7 @@

    Basic Example

    To fully understand how it works read the next section.

    +

    What does it do?

    @@ -89,9 +91,48 @@

    What does it do?

    When the flow is completed, the access token is saved in the SessionStorage.

    -

    - The oauth directive only works in HTML5 mode (automatically activated).
    - We are working on fixing this bug. + + + + +

    +
    + +

    HTML5 mode

    + + +

    HTML5 mode ON

    + +

    The oauth directive works just straight when the HTML5 mode is active.

    + +
    <script>
    +  angular.module('app').config(function($locationProvider) {
    +    $locationProvider.html5Mode(true).hashPrefix('!');
    +  });</script>
    + + +

    HTML5 mode OFF

    + +

    When the HTML5 mode is off add the following snippet of code to your routing provider.

    + +
    angular.module('app').config(function ($routeProvider) {
    +  $routeProvider
    +    .when('/access_token=:accessToken', {
    +      template: '',
    +      controller: function ($location, AccessToken) {
    +        var hash = $location.path().substr(1);
    +        AccessToken.setTokenFromString(hash);
    +        $location.path('/');
    +        $location.replace();
    +      }
    +    })
    +    ...
    + + +

    + This code is needed because the fragment that the OAuth 2.0 server returns is recognized + as the routing path /access_token. For this reason you need to add a routing + rule catching the access token, parse it and then redirect to the desired view of your app.

    @@ -211,6 +252,17 @@

    AngularJS app definition

    // app/scripts/app.js
     angular.module('newProjectApp', ['oauth', ... ])
    +

    Activate the HTML5 mode

    + +

    + Activate the HTML5 mode to easily catch the access token. +

    + +
    // app/scripts/app.js
    +angular.module('newProjectApp').config(function($locationProvider) {
    +  $locationProvider.html5Mode(true).hashPrefix('!');
    +});
    +

    OAuth 2.0 Server

    @@ -681,7 +733,7 @@

    Events

Fired when the view is initializing and user has a non-expired auth token in the local session storage.
oauth:logout @@ -755,7 +807,9 @@

Logged in or logged out?

Inject the AccessToken.get() service to understand if the user is logged in or out.

-
$scope.logged = !!AccessToken.get();
+
$timeout(function() {
+  $scope.logged = !!AccessToken.get();
+}, 0)

The AccessToken.get() method returns null when the user is logged From c49ec736f300cd02bbb8d5f849b6788da35e3222 Mon Sep 17 00:00:00 2001 From: Andrea Reginato Date: Wed, 13 Aug 2014 14:50:38 +0200 Subject: [PATCH 23/30] Improved the HTML5 mode docs --- index.html | 95 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 49 insertions(+), 46 deletions(-) diff --git a/index.html b/index.html index d554b83..cbe15c4 100644 --- a/index.html +++ b/index.html @@ -18,8 +18,8 @@

  • Introduction
  • Getting Started
  • -
  • HTML5 mode
  • How To
  • +
  • HTML5 mode
  • Configurations
  • Customizations
  • Events
  • @@ -95,50 +95,6 @@

    What does it do?

    -
    -
    - -

    HTML5 mode

    - - -

    HTML5 mode ON

    - -

    The oauth directive works just straight when the HTML5 mode is active.

    - -
    <script>
    -  angular.module('app').config(function($locationProvider) {
    -    $locationProvider.html5Mode(true).hashPrefix('!');
    -  });</script>
    - - -

    HTML5 mode OFF

    - -

    When the HTML5 mode is off add the following snippet of code to your routing provider.

    - -
    angular.module('app').config(function ($routeProvider) {
    -  $routeProvider
    -    .when('/access_token=:accessToken', {
    -      template: '',
    -      controller: function ($location, AccessToken) {
    -        var hash = $location.path().substr(1);
    -        AccessToken.setTokenFromString(hash);
    -        $location.path('/');
    -        $location.replace();
    -      }
    -    })
    -    ...
    - - -

    - This code is needed because the fragment that the OAuth 2.0 server returns is recognized - as the routing path /access_token. For this reason you need to add a routing - rule catching the access token, parse it and then redirect to the desired view of your app. -

    - -
    -
    - -
    @@ -255,7 +211,7 @@

    AngularJS app definition

    Activate the HTML5 mode

    - Activate the HTML5 mode to easily catch the access token. + Activate the HTML5 mode to catch the access token.

    // app/scripts/app.js
    @@ -371,6 +327,53 @@ <h2>You're done!</h2>
     
     
     
    +    <section>
    +    <div class="content">
    +
    +      <h1 id="html5">HTML5 mode</h1>
    +
    +
    +      <h2>HTML5 mode ON</h2>
    +
    +      <p>The oauth directive works just straight when the <a href="https://docs.angularjs.org/guide/$location#general-overview-of-the-api">HTML5 mode</a> is active.</p>
    +
    +      <pre><code><xmp><script>
    +  angular.module('app').config(function($locationProvider) {
    +    $locationProvider.html5Mode(true).hashPrefix('!');
    +  });</script>
    + + +

    HTML5 mode OFF

    + +

    + When the HTML5 mode is off (default setup on AngularJS) add the following + snippet of code to your routing provider. +

    + +
    angular.module('app').config(function ($routeProvider) {
    +  $routeProvider
    +    .when('/access_token=:accessToken', {
    +      template: '',
    +      controller: function ($location, AccessToken) {
    +        var hash = $location.path().substr(1);
    +        AccessToken.setTokenFromString(hash);
    +        $location.path('/');
    +        $location.replace();
    +      }
    +    })
    +    ...
    + + +

    + This code is needed because the fragment that the OAuth 2.0 server returns is recognized + as the routing path /access_token. For this reason you need to add a routing + rule catching the access token, parse it and then redirect to the desired view of your app. +

    + +
    +
    + +

    Configurations

    From e663875fb5e307507c9222cc23cdb66c8fec9445 Mon Sep 17 00:00:00 2001 From: Andrea Reginato Date: Wed, 13 Aug 2014 18:11:49 +0200 Subject: [PATCH 24/30] Updated image link oauth --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 41e7b38..60cf2a4 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # AngularJS directive for OAuth 2.0 Source code for the AngularJS directive for OAuth 2.0 [website](http://andreareginato.github.com/oauth-ng). -[![lelylan-ng](http://i.imgur.com/dLN4isF.png)](http://andreareginato.github.com/oauth-ng) +[![oauth-ng](http://i.imgur.com/C0xCJcr.png)](https://andreareginato.github.com/oauth-ng) ## Contributing From 273abb1c9cf873be20d24b57adf401361a646961 Mon Sep 17 00:00:00 2001 From: Andrea Reginato Date: Wed, 13 Aug 2014 18:13:14 +0200 Subject: [PATCH 25/30] Removed link to lelylan team --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 60cf2a4..f52905d 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,6 @@ us for any idea that can improve the project. ## Authors [Andrea Reginato](http://twitter.com/andreareginato) -[Lelylan Dev Team](http://twitter.com/lelylan) ## Contributors From b5f89493657d55aeaaf039c1d4f92f3f7c3e3cff Mon Sep 17 00:00:00 2001 From: Michael McHugh Date: Mon, 8 Sep 2014 12:32:01 +1000 Subject: [PATCH 26/30] Add documentation of `ouath:profile` broadcast message. --- index.html | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/index.html b/index.html index cbe15c4..a6d2983 100644 --- a/index.html +++ b/index.html @@ -774,6 +774,16 @@

    Events

    See examples in the customization section.
+ oauth:profile(profile) + fired + + Fired when the profile data has been retrieved.
+ Does not fire if there is no profile-uri parameter. +
@@ -795,6 +805,10 @@

Events

$scope.$on('oauth:expired', function(event) { console.log('The access token is expired. Please refresh.'); +}); + +$scope.$on('oauth:profile', function(profile) { + console.log('User profile data retrieved: ', profile); }); From cc03aae6496b26e1abba234f1e5e2b38b6909b3e Mon Sep 17 00:00:00 2001 From: Jean-Francois Turcot Date: Wed, 3 Dec 2014 14:33:09 -0500 Subject: [PATCH 27/30] Docs update with information about the oauth:loggedOut event --- index.html | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/index.html b/index.html index a6d2983..9507390 100644 --- a/index.html +++ b/index.html @@ -746,6 +746,15 @@

Events

Fired when the user logs out. + + + oauth:loggedOut + fired + + + Fired when the user is not logged in. + + oauth:denied @@ -799,6 +808,10 @@

Events

console.log('The user has signed out'); }); +$scope.$on('oauth:loggedOut', function(event) { + console.log('The user is not signed in'); +}); + $scope.$on('oauth:denied', function(event) { console.log('The user did not authorize the third party app'); }); From 90f8096fc2b8d637db0f544f5b1e2b80e5d77dcf Mon Sep 17 00:00:00 2001 From: Wayne Durack Date: Tue, 10 Mar 2015 17:17:12 +0000 Subject: [PATCH 28/30] Updated documentation with information about changing the storage method. --- index.html | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/index.html b/index.html index 9507390..7a07983 100644 --- a/index.html +++ b/index.html @@ -468,6 +468,17 @@

Configurations

Default to Sign in. + + + storage + (optional) + + + How the token is stored locally,
+ localStorage or sessionStorage.
+ Defaults to sessionStorage. + + From 60e70ad1e7c967e0a5beb1ba2e10304138e9cade Mon Sep 17 00:00:00 2001 From: Mark Eschbach Date: Thu, 11 Jun 2015 11:01:23 -0700 Subject: [PATCH 29/30] Updating scope docs to note the value will be URI encoded --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 7a07983..56877e4 100644 --- a/index.html +++ b/index.html @@ -298,7 +298,7 @@

Add the oauth-ng directive

scope - Application privileges. + Application privileges to be requested from the authorization server. The value should be in plain text and will be properly URI encoded for authorization. @@ -417,7 +417,7 @@

Configurations

optional - Application privileges. + Application privileges to be requested from the authorization server. The value should be in plain text and will be properly URI encoded for authorization. From 3d809632af6458bff371ad6fff6fef5b34d3130e Mon Sep 17 00:00:00 2001 From: Yuan Yao Date: Tue, 29 Dec 2015 00:00:40 -0800 Subject: [PATCH 30/30] Add documentation for OpenID Connect --- index.html | 48 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/index.html b/index.html index 56877e4..4b764e8 100644 --- a/index.html +++ b/index.html @@ -43,7 +43,9 @@

Introduction

Create AngularJS apps that connects to any OAuth 2.0 server using the client side - flow (aka OAuth 2.0 Implicit Grant) + flow (aka OAuth 2.0 Implicit Grant). + In addition, OpenID Connect Implicit Flow + is also supported.

@@ -402,6 +404,16 @@

Configurations

Registered Client ID. + + + response-type + required + + + Default to token, which is for OAuth 2.0 implicit grant type. To use OpenID Connect Implicit Flow, + use id_token (to get id_token only) or id_token token (to get both id_token and access_token) + + redirect-uri @@ -418,6 +430,7 @@

Configurations

Application privileges to be requested from the authorization server. The value should be in plain text and will be properly URI encoded for authorization. + When using OpenID Connect Implicit Flow, value openid must be included. @@ -479,6 +492,39 @@

Configurations

Defaults to sessionStorage. + + + issuer + (optional) + + + For OpenID Connect Implicit Flow only. + The issuer of the id_token. It must exactly match the iss claim (if exists) in the id_token + + + + + subject + (optional) + + + For OpenID Connect Implicit Flow only. + The subject of the id_token. The detailed meaning is usually application specific. + It must exactly match the sub claim (if exists) in the id_token + + + + + pub-key + (optional) + + + For OpenID Connect Implicit Flow only. + The public key to verify the id_token signature. It could be .pem format or JWK format.
+ For signing algorithm (usually specified by alg in the id_token header), currently only RS256, RS384, or RS512 is supported.
+ If not set, then the id_token itself should carry the public key, or the url which can be used to retrieve the public key. + +