├── src ├── app │ ├── channels │ │ ├── list │ │ │ └── list.js │ │ ├── post │ │ │ ├── post-view.tpl.html │ │ │ └── post-view.js │ │ ├── manage │ │ │ ├── manage.tpl.html │ │ │ ├── manage.js │ │ │ └── create.tpl.html │ │ ├── channels.spec.js │ │ ├── view │ │ │ ├── channel-view.tpl.html │ │ │ ├── channel-view.js │ │ │ └── new_post.tpl.html │ │ ├── new_channel.tpl.html │ │ └── channels.less │ ├── login │ │ ├── login.less │ │ ├── login.tpl.html │ │ ├── login.spec.js │ │ └── login.js │ ├── find │ │ ├── find.less │ │ ├── find.tpl.html │ │ ├── view │ │ │ ├── view-user.js │ │ │ └── view-user.tpl.html │ │ ├── search.tpl.html │ │ ├── find.js │ │ └── search_results.tpl.html │ ├── home │ │ ├── home.less │ │ ├── home.spec.js │ │ └── README.md │ ├── posts │ │ ├── posts.less │ │ ├── posts.spec.js │ │ └── new_post.tpl.html │ ├── about │ │ └── about.js │ ├── tab │ │ └── tab.js │ └── app.spec.js ├── assets │ ├── cimba-logo.png │ ├── cimba-logo-name.png │ ├── generic_photo.png │ └── README.md ├── less │ ├── variables.less │ └── README.md ├── common │ └── README.md └── README.md ├── vendor ├── src │ ├── app │ │ ├── home │ │ │ ├── home.less │ │ │ ├── home.tpl.html │ │ │ ├── home.spec.js │ │ │ ├── home.js │ │ │ └── README.md │ │ ├── login │ │ │ ├── login.less │ │ │ ├── login.spec.js │ │ │ ├── login.tpl.html │ │ │ └── login.js │ │ ├── app.spec.js │ │ └── about │ │ │ └── about.js │ ├── assets │ │ ├── cimba-logo.png │ │ ├── generic_photo.png │ │ ├── cimba-logo-name.png │ │ └── README.md │ ├── less │ │ ├── variables.less │ │ └── README.md │ ├── common │ │ └── README.md │ └── README.md ├── jquery │ ├── src │ │ ├── outro.js │ │ ├── selector.js │ │ ├── var │ │ │ ├── arr.js │ │ │ ├── rnotwhite.js │ │ │ ├── strundefined.js │ │ │ ├── push.js │ │ │ ├── slice.js │ │ │ ├── class2type.js │ │ │ ├── concat.js │ │ │ ├── indexOf.js │ │ │ ├── pnum.js │ │ │ ├── hasOwn.js │ │ │ ├── toString.js │ │ │ └── support.js │ │ ├── ajax │ │ │ ├── var │ │ │ │ ├── rquery.js │ │ │ │ └── nonce.js │ │ │ ├── parseJSON.js │ │ │ ├── parseXML.js │ │ │ ├── script.js │ │ │ ├── load.js │ │ │ └── jsonp.js │ │ ├── css │ │ │ ├── var │ │ │ │ ├── rmargin.js │ │ │ │ ├── cssExpand.js │ │ │ │ ├── rnumnonpx.js │ │ │ │ ├── getStyles.js │ │ │ │ └── isHidden.js │ │ │ ├── hiddenVisibleSelectors.js │ │ │ ├── swap.js │ │ │ ├── addGetHookIf.js │ │ │ ├── curCSS.js │ │ │ └── defaultDisplay.js │ │ ├── manipulation │ │ │ ├── var │ │ │ │ └── rcheckableType.js │ │ │ ├── _evalUrl.js │ │ │ └── support.js │ │ ├── data │ │ │ ├── var │ │ │ │ ├── data_priv.js │ │ │ │ └── data_user.js │ │ │ └── accepts.js │ │ ├── core │ │ │ ├── var │ │ │ │ └── rsingleTag.js │ │ │ ├── parseHTML.js │ │ │ ├── access.js │ │ │ └── ready.js │ │ ├── traversing │ │ │ ├── var │ │ │ │ └── rneedsContext.js │ │ │ └── findFilter.js │ │ ├── event │ │ │ ├── support.js │ │ │ └── alias.js │ │ ├── attributes.js │ │ ├── deprecated.js │ │ ├── effects │ │ │ └── animatedSelector.js │ │ ├── selector-sizzle.js │ │ ├── queue │ │ │ └── delay.js │ │ ├── jquery.js │ │ ├── exports │ │ │ ├── global.js │ │ │ └── amd.js │ │ ├── attributes │ │ │ ├── support.js │ │ │ └── prop.js │ │ ├── intro.js │ │ ├── wrap.js │ │ └── dimensions.js │ ├── bower.json │ ├── .bower.json │ └── MIT-LICENSE.txt ├── module.suffix ├── bootstrap │ ├── test-infra │ │ ├── requirements.txt │ │ ├── uncached-npm-install.sh │ │ └── sauce_browsers.yml │ ├── fonts │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.ttf │ │ └── glyphicons-halflings-regular.woff │ ├── dist │ │ └── fonts │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ └── glyphicons-halflings-regular.woff │ ├── bower.json │ ├── less │ │ ├── component-animations.less │ │ ├── wells.less │ │ ├── breadcrumbs.less │ │ ├── close.less │ │ ├── thumbnails.less │ │ ├── utilities.less │ │ ├── jumbotron.less │ │ ├── media.less │ │ ├── pager.less │ │ ├── bootstrap.less │ │ ├── badges.less │ │ ├── labels.less │ │ ├── code.less │ │ ├── alerts.less │ │ ├── grid.less │ │ ├── progress-bars.less │ │ ├── print.less │ │ ├── pagination.less │ │ ├── responsive-utilities.less │ │ ├── tooltip.less │ │ ├── scaffolding.less │ │ └── list-group.less │ ├── .bower.json │ ├── grunt │ │ ├── bs-raw-files-generator.js │ │ ├── shrinkwrap.js │ │ └── bs-glyphicons-data-generator.js │ ├── LICENSE │ ├── js │ │ ├── transition.js │ │ └── alert.js │ └── package.json ├── module.prefix ├── angular │ ├── angular.min.js.gzip │ ├── bower.json │ ├── angular-csp.css │ ├── .bower.json │ └── README.md ├── jquery-ui │ └── images │ │ ├── animated-overlay.gif │ │ ├── ui-icons_222222_256x240.png │ │ ├── ui-icons_228ef1_256x240.png │ │ ├── ui-icons_ef8c08_256x240.png │ │ ├── ui-icons_ffd27a_256x240.png │ │ ├── ui-icons_ffffff_256x240.png │ │ ├── ui-bg_flat_10_000000_40x100.png │ │ ├── ui-bg_glass_65_ffffff_1x400.png │ │ ├── ui-bg_glass_100_f6f6f6_1x400.png │ │ ├── ui-bg_glass_100_fdf5ce_1x400.png │ │ ├── ui-bg_gloss-wave_35_f6a828_500x100.png │ │ ├── ui-bg_diagonals-thick_18_b81900_40x40.png │ │ ├── ui-bg_diagonals-thick_20_666666_40x40.png │ │ ├── ui-bg_highlight-soft_100_eeeeee_1x100.png │ │ └── ui-bg_highlight-soft_75_ffe45c_1x100.png ├── angular-mocks │ ├── bower.json │ ├── .bower.json │ └── README.md ├── bower.json ├── angular-bootstrap │ ├── bower.json │ └── .bower.json ├── angular-ui-router │ ├── bower.json │ ├── .bower.json │ ├── src │ │ ├── stateFilters.js │ │ ├── viewScroll.js │ │ └── view.js │ ├── LICENSE │ └── CHANGELOG.md ├── ngProgress │ └── ngProgress.less ├── changelog.tpl ├── eventListener │ └── eventListener.js ├── LICENSE ├── package.json ├── karma │ └── karma-unit.tpl.js └── build.config.js ├── module.suffix ├── module.prefix ├── .gitignore ├── favicon.png ├── img ├── load.gif ├── photo.png ├── cimba-logo.png └── generic_photo.png ├── css └── roboto.woff ├── bower.json ├── .travis.yml ├── changelog.tpl ├── tpl ├── search_results.html └── channel-list.html ├── js └── jquery.postmessage.min.js ├── LICENSE ├── package.json └── karma └── karma-unit.tpl.js /src/app/channels/list/list.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vendor/src/app/home/home.less: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vendor/jquery/src/outro.js: -------------------------------------------------------------------------------- 1 | })); 2 | -------------------------------------------------------------------------------- /src/app/channels/post/post-view.tpl.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /module.suffix: -------------------------------------------------------------------------------- 1 | })( window, window.angular ); 2 | -------------------------------------------------------------------------------- /vendor/module.suffix: -------------------------------------------------------------------------------- 1 | })( window, window.angular ); 2 | -------------------------------------------------------------------------------- /module.prefix: -------------------------------------------------------------------------------- 1 | (function ( window, angular, undefined ) { 2 | -------------------------------------------------------------------------------- /vendor/bootstrap/test-infra/requirements.txt: -------------------------------------------------------------------------------- 1 | boto==2.20.0 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.sw* 2 | *~ 3 | build/ 4 | bin/ 5 | node_modules/ 6 | -------------------------------------------------------------------------------- /vendor/jquery/src/selector.js: -------------------------------------------------------------------------------- 1 | define([ "./selector-sizzle" ]); 2 | -------------------------------------------------------------------------------- /vendor/module.prefix: -------------------------------------------------------------------------------- 1 | (function ( window, angular, undefined ) { 2 | -------------------------------------------------------------------------------- /vendor/jquery/src/var/arr.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return []; 3 | }); 4 | -------------------------------------------------------------------------------- /favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melvincarvalho/cimba/master/favicon.png -------------------------------------------------------------------------------- /img/load.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melvincarvalho/cimba/master/img/load.gif -------------------------------------------------------------------------------- /vendor/src/app/home/home.tpl.html: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 | -------------------------------------------------------------------------------- /css/roboto.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melvincarvalho/cimba/master/css/roboto.woff -------------------------------------------------------------------------------- /img/photo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melvincarvalho/cimba/master/img/photo.png -------------------------------------------------------------------------------- /vendor/jquery/src/ajax/var/rquery.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return (/\?/); 3 | }); 4 | -------------------------------------------------------------------------------- /vendor/jquery/src/var/rnotwhite.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return (/\S+/g); 3 | }); 4 | -------------------------------------------------------------------------------- /vendor/jquery/src/css/var/rmargin.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return (/^margin/); 3 | }); 4 | -------------------------------------------------------------------------------- /img/cimba-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melvincarvalho/cimba/master/img/cimba-logo.png -------------------------------------------------------------------------------- /img/generic_photo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melvincarvalho/cimba/master/img/generic_photo.png -------------------------------------------------------------------------------- /vendor/jquery/src/var/strundefined.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return typeof undefined; 3 | }); 4 | -------------------------------------------------------------------------------- /src/assets/cimba-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melvincarvalho/cimba/master/src/assets/cimba-logo.png -------------------------------------------------------------------------------- /vendor/jquery/src/var/push.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./arr" 3 | ], function( arr ) { 4 | return arr.push; 5 | }); 6 | -------------------------------------------------------------------------------- /vendor/jquery/src/var/slice.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./arr" 3 | ], function( arr ) { 4 | return arr.slice; 5 | }); 6 | -------------------------------------------------------------------------------- /vendor/src/app/login/login.less: -------------------------------------------------------------------------------- 1 | .login-frame iframe { 2 | min-height: 400px; 3 | min-width: 380px; 4 | } 5 | -------------------------------------------------------------------------------- /src/assets/cimba-logo-name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melvincarvalho/cimba/master/src/assets/cimba-logo-name.png -------------------------------------------------------------------------------- /src/assets/generic_photo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melvincarvalho/cimba/master/src/assets/generic_photo.png -------------------------------------------------------------------------------- /vendor/jquery/src/var/class2type.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | // [[Class]] -> type pairs 3 | return {}; 4 | }); 5 | -------------------------------------------------------------------------------- /vendor/jquery/src/var/concat.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./arr" 3 | ], function( arr ) { 4 | return arr.concat; 5 | }); 6 | -------------------------------------------------------------------------------- /vendor/jquery/src/var/indexOf.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./arr" 3 | ], function( arr ) { 4 | return arr.indexOf; 5 | }); 6 | -------------------------------------------------------------------------------- /vendor/jquery/src/css/var/cssExpand.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return [ "Top", "Right", "Bottom", "Left" ]; 3 | }); 4 | -------------------------------------------------------------------------------- /vendor/jquery/src/manipulation/var/rcheckableType.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return (/^(?:checkbox|radio)$/i); 3 | }); 4 | -------------------------------------------------------------------------------- /vendor/jquery/src/var/pnum.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return (/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source; 3 | }); 4 | -------------------------------------------------------------------------------- /vendor/src/assets/cimba-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melvincarvalho/cimba/master/vendor/src/assets/cimba-logo.png -------------------------------------------------------------------------------- /vendor/angular/angular.min.js.gzip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melvincarvalho/cimba/master/vendor/angular/angular.min.js.gzip -------------------------------------------------------------------------------- /vendor/jquery/src/ajax/var/nonce.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../../core" 3 | ], function( jQuery ) { 4 | return jQuery.now(); 5 | }); 6 | -------------------------------------------------------------------------------- /vendor/jquery/src/data/var/data_priv.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../Data" 3 | ], function( Data ) { 4 | return new Data(); 5 | }); 6 | -------------------------------------------------------------------------------- /vendor/jquery/src/data/var/data_user.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../Data" 3 | ], function( Data ) { 4 | return new Data(); 5 | }); 6 | -------------------------------------------------------------------------------- /vendor/src/assets/generic_photo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melvincarvalho/cimba/master/vendor/src/assets/generic_photo.png -------------------------------------------------------------------------------- /vendor/src/assets/cimba-logo-name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melvincarvalho/cimba/master/vendor/src/assets/cimba-logo-name.png -------------------------------------------------------------------------------- /vendor/jquery/src/var/hasOwn.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./class2type" 3 | ], function( class2type ) { 4 | return class2type.hasOwnProperty; 5 | }); 6 | -------------------------------------------------------------------------------- /vendor/jquery/src/var/toString.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./class2type" 3 | ], function( class2type ) { 4 | return class2type.toString; 5 | }); 6 | -------------------------------------------------------------------------------- /vendor/jquery-ui/images/animated-overlay.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melvincarvalho/cimba/master/vendor/jquery-ui/images/animated-overlay.gif -------------------------------------------------------------------------------- /vendor/jquery/src/core/var/rsingleTag.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | // Match a standalone tag 3 | return (/^<(\w+)\s*\/?>(?:<\/\1>|)$/); 4 | }); 5 | -------------------------------------------------------------------------------- /vendor/jquery/src/var/support.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | // All support tests are defined in their respective modules. 3 | return {}; 4 | }); 5 | -------------------------------------------------------------------------------- /vendor/angular/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular", 3 | "version": "1.2.16", 4 | "main": "./angular.js", 5 | "dependencies": { 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /vendor/jquery-ui/images/ui-icons_222222_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melvincarvalho/cimba/master/vendor/jquery-ui/images/ui-icons_222222_256x240.png -------------------------------------------------------------------------------- /vendor/jquery-ui/images/ui-icons_228ef1_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melvincarvalho/cimba/master/vendor/jquery-ui/images/ui-icons_228ef1_256x240.png -------------------------------------------------------------------------------- /vendor/jquery-ui/images/ui-icons_ef8c08_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melvincarvalho/cimba/master/vendor/jquery-ui/images/ui-icons_ef8c08_256x240.png -------------------------------------------------------------------------------- /vendor/jquery-ui/images/ui-icons_ffd27a_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melvincarvalho/cimba/master/vendor/jquery-ui/images/ui-icons_ffd27a_256x240.png -------------------------------------------------------------------------------- /vendor/jquery-ui/images/ui-icons_ffffff_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melvincarvalho/cimba/master/vendor/jquery-ui/images/ui-icons_ffffff_256x240.png -------------------------------------------------------------------------------- /vendor/bootstrap/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melvincarvalho/cimba/master/vendor/bootstrap/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /vendor/bootstrap/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melvincarvalho/cimba/master/vendor/bootstrap/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /vendor/jquery-ui/images/ui-bg_flat_10_000000_40x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melvincarvalho/cimba/master/vendor/jquery-ui/images/ui-bg_flat_10_000000_40x100.png -------------------------------------------------------------------------------- /vendor/jquery-ui/images/ui-bg_glass_65_ffffff_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melvincarvalho/cimba/master/vendor/jquery-ui/images/ui-bg_glass_65_ffffff_1x400.png -------------------------------------------------------------------------------- /vendor/bootstrap/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melvincarvalho/cimba/master/vendor/bootstrap/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /vendor/jquery-ui/images/ui-bg_glass_100_f6f6f6_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melvincarvalho/cimba/master/vendor/jquery-ui/images/ui-bg_glass_100_f6f6f6_1x400.png -------------------------------------------------------------------------------- /vendor/jquery-ui/images/ui-bg_glass_100_fdf5ce_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melvincarvalho/cimba/master/vendor/jquery-ui/images/ui-bg_glass_100_fdf5ce_1x400.png -------------------------------------------------------------------------------- /vendor/jquery/src/css/var/rnumnonpx.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../../var/pnum" 3 | ], function( pnum ) { 4 | return new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); 5 | }); 6 | -------------------------------------------------------------------------------- /vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melvincarvalho/cimba/master/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melvincarvalho/cimba/master/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /vendor/bootstrap/test-infra/uncached-npm-install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | cp test-infra/npm-shrinkwrap.canonical.json npm-shrinkwrap.json 3 | npm install 4 | rm npm-shrinkwrap.json 5 | -------------------------------------------------------------------------------- /src/assets/README.md: -------------------------------------------------------------------------------- 1 | # The `src/assets` Directory 2 | 3 | There's really not much to say here. Every file in this directory is recursively transferred to `dist/assets/`. 4 | 5 | -------------------------------------------------------------------------------- /vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melvincarvalho/cimba/master/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /vendor/jquery-ui/images/ui-bg_gloss-wave_35_f6a828_500x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melvincarvalho/cimba/master/vendor/jquery-ui/images/ui-bg_gloss-wave_35_f6a828_500x100.png -------------------------------------------------------------------------------- /vendor/jquery/src/traversing/var/rneedsContext.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../../core", 3 | "../../selector" 4 | ], function( jQuery ) { 5 | return jQuery.expr.match.needsContext; 6 | }); 7 | -------------------------------------------------------------------------------- /vendor/jquery-ui/images/ui-bg_diagonals-thick_18_b81900_40x40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melvincarvalho/cimba/master/vendor/jquery-ui/images/ui-bg_diagonals-thick_18_b81900_40x40.png -------------------------------------------------------------------------------- /vendor/jquery-ui/images/ui-bg_diagonals-thick_20_666666_40x40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melvincarvalho/cimba/master/vendor/jquery-ui/images/ui-bg_diagonals-thick_20_666666_40x40.png -------------------------------------------------------------------------------- /vendor/jquery-ui/images/ui-bg_highlight-soft_100_eeeeee_1x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melvincarvalho/cimba/master/vendor/jquery-ui/images/ui-bg_highlight-soft_100_eeeeee_1x100.png -------------------------------------------------------------------------------- /vendor/jquery-ui/images/ui-bg_highlight-soft_75_ffe45c_1x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/melvincarvalho/cimba/master/vendor/jquery-ui/images/ui-bg_highlight-soft_75_ffe45c_1x100.png -------------------------------------------------------------------------------- /vendor/jquery/src/css/var/getStyles.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return function( elem ) { 3 | return elem.ownerDocument.defaultView.getComputedStyle( elem, null ); 4 | }; 5 | }); 6 | -------------------------------------------------------------------------------- /vendor/src/assets/README.md: -------------------------------------------------------------------------------- 1 | # The `src/assets` Directory 2 | 3 | There's really not much to say here. Every file in this directory is recursively transferred to `dist/assets/`. 4 | 5 | -------------------------------------------------------------------------------- /vendor/angular-mocks/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-mocks", 3 | "version": "1.2.16", 4 | "main": "./angular-mocks.js", 5 | "dependencies": { 6 | "angular": "1.2.16" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /vendor/jquery/src/event/support.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../var/support" 3 | ], function( support ) { 4 | 5 | support.focusinBubbles = "onfocusin" in window; 6 | 7 | return support; 8 | 9 | }); 10 | -------------------------------------------------------------------------------- /src/app/login/login.less: -------------------------------------------------------------------------------- 1 | .login-frame { 2 | display: inline-block; 3 | height: 500px; 4 | width: 400px; 5 | } 6 | .login-frame iframe { 7 | min-height: 400px; 8 | min-width: 380px; 9 | } 10 | -------------------------------------------------------------------------------- /src/app/find/find.less: -------------------------------------------------------------------------------- 1 | #search { 2 | padding: 5px; 3 | border-radius: 5px; 4 | } 5 | 6 | .searchbutton { 7 | position: absolute; 8 | height: 100%; 9 | } 10 | 11 | .pointer { 12 | cursor: pointer; 13 | } 14 | 15 | 16 | -------------------------------------------------------------------------------- /vendor/jquery/src/attributes.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./core", 3 | "./attributes/attr", 4 | "./attributes/prop", 5 | "./attributes/classes", 6 | "./attributes/val" 7 | ], function( jQuery ) { 8 | 9 | // Return jQuery for attributes-only inclusion 10 | return jQuery; 11 | }); 12 | -------------------------------------------------------------------------------- /src/app/home/home.less: -------------------------------------------------------------------------------- 1 | @import '../../less/variables.less'; 2 | 3 | #audience > i { 4 | color: @white; 5 | } 6 | 7 | #mb-modal { 8 | min-height: 200px; 9 | } 10 | 11 | #storage-modal-form { 12 | margin: 20px; 13 | } 14 | 15 | #storage-modal { 16 | min-height: 250px; 17 | } -------------------------------------------------------------------------------- /bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Cimba", 3 | "version": "2.0.0", 4 | "devDependencies": { 5 | "angular": "~1.2", 6 | "angular-mocks": "~1.2", 7 | "bootstrap": "~3.1", 8 | "angular-bootstrap": "~0.10.0", 9 | "angular-ui-router": "~0.2" 10 | }, 11 | "dependencies": {} 12 | } 13 | -------------------------------------------------------------------------------- /vendor/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Cimba", 3 | "version": "2.0.0", 4 | "devDependencies": { 5 | "angular": "~1.2", 6 | "angular-mocks": "~1.2", 7 | "bootstrap": "~3.1", 8 | "angular-bootstrap": "~0.10.0", 9 | "angular-ui-router": "~0.2", 10 | }, 11 | "dependencies": {} 12 | } 13 | -------------------------------------------------------------------------------- /vendor/src/less/variables.less: -------------------------------------------------------------------------------- 1 | /** 2 | * These are the variables used throughout the application. This is where 3 | * overwrites that are not specific to components should be maintained. 4 | */ 5 | 6 | /** 7 | * Typography-related. 8 | */ 9 | 10 | @sansFontFamily: 'Roboto', sans-serif; 11 | 12 | -------------------------------------------------------------------------------- /vendor/jquery/src/ajax/parseJSON.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | // Support: Android 2.3 6 | // Workaround failure to string-cast null input 7 | jQuery.parseJSON = function( data ) { 8 | return JSON.parse( data + "" ); 9 | }; 10 | 11 | return jQuery.parseJSON; 12 | 13 | }); 14 | -------------------------------------------------------------------------------- /vendor/jquery/src/deprecated.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./core", 3 | "./traversing" 4 | ], function( jQuery ) { 5 | 6 | // The number of elements contained in the matched element set 7 | jQuery.fn.size = function() { 8 | return this.length; 9 | }; 10 | 11 | jQuery.fn.andSelf = jQuery.fn.addBack; 12 | 13 | }); 14 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "0.10" 4 | 5 | before_script: 6 | - export DISPLAY=:99.0 7 | - sh -e /etc/init.d/xvfb start 8 | - npm install --quiet -g grunt-cli karma bower 9 | - npm install 10 | - bower install 11 | 12 | script: grunt 13 | 14 | branches: 15 | only: 16 | - main 17 | -------------------------------------------------------------------------------- /vendor/jquery/src/effects/animatedSelector.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "../selector", 4 | "../effects" 5 | ], function( jQuery ) { 6 | 7 | jQuery.expr.filters.animated = function( elem ) { 8 | return jQuery.grep(jQuery.timers, function( fn ) { 9 | return elem === fn.elem; 10 | }).length; 11 | }; 12 | 13 | }); 14 | -------------------------------------------------------------------------------- /vendor/angular-bootstrap/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "author": { 3 | "name": "https://github.com/angular-ui/bootstrap/graphs/contributors" 4 | }, 5 | "name": "angular-bootstrap", 6 | "version": "0.10.0", 7 | "main": ["./ui-bootstrap-tpls.js"], 8 | "dependencies": { 9 | "angular": ">=1" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /vendor/jquery/src/manipulation/_evalUrl.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../ajax" 3 | ], function( jQuery ) { 4 | 5 | jQuery._evalUrl = function( url ) { 6 | return jQuery.ajax({ 7 | url: url, 8 | type: "GET", 9 | dataType: "script", 10 | async: false, 11 | global: false, 12 | "throws": true 13 | }); 14 | }; 15 | 16 | return jQuery._evalUrl; 17 | 18 | }); 19 | -------------------------------------------------------------------------------- /vendor/jquery/src/selector-sizzle.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./core", 3 | "sizzle" 4 | ], function( jQuery, Sizzle ) { 5 | 6 | jQuery.find = Sizzle; 7 | jQuery.expr = Sizzle.selectors; 8 | jQuery.expr[":"] = jQuery.expr.pseudos; 9 | jQuery.unique = Sizzle.uniqueSort; 10 | jQuery.text = Sizzle.getText; 11 | jQuery.isXMLDoc = Sizzle.isXML; 12 | jQuery.contains = Sizzle.contains; 13 | 14 | }); 15 | -------------------------------------------------------------------------------- /src/app/home/home.spec.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Tests sit right alongside the file they are testing, which is more intuitive 3 | * and portable than separating `src` and `test` directories. Additionally, the 4 | * build process will exclude all `.spec.js` files from the build 5 | * automatically. 6 | */ 7 | describe('home section', function() { 8 | beforeEach( module( 'Cimba.home' ) ); 9 | 10 | }); -------------------------------------------------------------------------------- /vendor/src/app/home/home.spec.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Tests sit right alongside the file they are testing, which is more intuitive 3 | * and portable than separating `src` and `test` directories. Additionally, the 4 | * build process will exclude all `.spec.js` files from the build 5 | * automatically. 6 | */ 7 | describe('home section', function() { 8 | beforeEach( module( 'Cimba.home' ) ); 9 | 10 | }); -------------------------------------------------------------------------------- /src/app/channels/manage/manage.tpl.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 | 6 |
-------------------------------------------------------------------------------- /src/app/find/find.tpl.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 | 5 | 6 |
7 |

No results found for {{search.query}}.

8 |
9 |
-------------------------------------------------------------------------------- /vendor/jquery/src/css/var/isHidden.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../../core", 3 | "../../selector" 4 | // css is assumed 5 | ], function( jQuery ) { 6 | 7 | return function( elem, el ) { 8 | // isHidden might be called from jQuery#filter function; 9 | // in that case, element will be second argument 10 | elem = el || elem; 11 | return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); 12 | }; 13 | }); 14 | -------------------------------------------------------------------------------- /vendor/angular/angular-csp.css: -------------------------------------------------------------------------------- 1 | /* Include this file in your html if you are using the CSP mode. */ 2 | 3 | @charset "UTF-8"; 4 | 5 | [ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], 6 | .ng-cloak, .x-ng-cloak, 7 | .ng-hide { 8 | display: none !important; 9 | } 10 | 11 | ng\:form { 12 | display: block; 13 | } 14 | 15 | .ng-animate-block-transitions { 16 | transition:0s all!important; 17 | -webkit-transition:0s all!important; 18 | } 19 | -------------------------------------------------------------------------------- /vendor/jquery/src/css/hiddenVisibleSelectors.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "../selector" 4 | ], function( jQuery ) { 5 | 6 | jQuery.expr.filters.hidden = function( elem ) { 7 | // Support: Opera <= 12.12 8 | // Opera reports offsetWidths and offsetHeights less than zero on some elements 9 | return elem.offsetWidth <= 0 && elem.offsetHeight <= 0; 10 | }; 11 | jQuery.expr.filters.visible = function( elem ) { 12 | return !jQuery.expr.filters.hidden( elem ); 13 | }; 14 | 15 | }); 16 | -------------------------------------------------------------------------------- /vendor/angular/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular", 3 | "version": "1.2.16", 4 | "main": "./angular.js", 5 | "dependencies": {}, 6 | "homepage": "https://github.com/angular/bower-angular", 7 | "_release": "1.2.16", 8 | "_resolution": { 9 | "type": "version", 10 | "tag": "v1.2.16", 11 | "commit": "7ae38b4a0cfced157e3486a0d6e2d299601723bb" 12 | }, 13 | "_source": "git://github.com/angular/bower-angular.git", 14 | "_target": ">=1", 15 | "_originalSource": "angular" 16 | } -------------------------------------------------------------------------------- /vendor/jquery/src/data/accepts.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | /** 6 | * Determines whether an object can have data 7 | */ 8 | jQuery.acceptData = function( owner ) { 9 | // Accepts only: 10 | // - Node 11 | // - Node.ELEMENT_NODE 12 | // - Node.DOCUMENT_NODE 13 | // - Object 14 | // - Any 15 | /* jshint -W018 */ 16 | return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); 17 | }; 18 | 19 | return jQuery.acceptData; 20 | }); 21 | -------------------------------------------------------------------------------- /src/app/posts/posts.less: -------------------------------------------------------------------------------- 1 | @import '../../less/variables.less'; 2 | 3 | .post-options-group { 4 | vertical-align: middle; 5 | margin-top: 10px; 6 | } 7 | 8 | .btn-success { 9 | background-color: #3bafda; 10 | } 11 | 12 | #post-btn { 13 | width: 60px; 14 | border: 1px solid #fff; 15 | } 16 | 17 | .dropdown.post-options-dropdown { 18 | position: absolute; 19 | right: 5px; 20 | margin-top: 5px; 21 | background: @light-blue; 22 | } 23 | 24 | .post-options { 25 | display: inline-block; 26 | } 27 | 28 | -------------------------------------------------------------------------------- /vendor/angular-ui-router/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-ui-router", 3 | "version": "0.2.10", 4 | "main": "./release/angular-ui-router.js", 5 | "dependencies": { 6 | "angular": ">= 1.0.8" 7 | }, 8 | "ignore": [ 9 | "**/.*", 10 | "node_modules", 11 | "bower_components", 12 | "component.json", 13 | "package.json", 14 | "lib", 15 | "config", 16 | "sample", 17 | "test", 18 | "tests", 19 | "ngdoc_assets", 20 | "Gruntfile.js", 21 | "files.js" 22 | ] 23 | } 24 | -------------------------------------------------------------------------------- /vendor/jquery/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery", 3 | "version": "2.1.1", 4 | "main": "dist/jquery.js", 5 | "license": "MIT", 6 | "ignore": [ 7 | "**/.*", 8 | "build", 9 | "speed", 10 | "test", 11 | "*.md", 12 | "AUTHORS.txt", 13 | "Gruntfile.js", 14 | "package.json" 15 | ], 16 | "devDependencies": { 17 | "sizzle": "1.10.19", 18 | "requirejs": "2.1.10", 19 | "qunit": "1.14.0", 20 | "sinon": "1.8.1" 21 | }, 22 | "keywords": [ 23 | "jquery", 24 | "javascript", 25 | "library" 26 | ] 27 | } 28 | -------------------------------------------------------------------------------- /vendor/angular-mocks/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-mocks", 3 | "version": "1.2.16", 4 | "main": "./angular-mocks.js", 5 | "dependencies": { 6 | "angular": "1.2.16" 7 | }, 8 | "homepage": "https://github.com/angular/bower-angular-mocks", 9 | "_release": "1.2.16", 10 | "_resolution": { 11 | "type": "version", 12 | "tag": "v1.2.16", 13 | "commit": "e429a011d88c402430329449500f352751d1a137" 14 | }, 15 | "_source": "git://github.com/angular/bower-angular-mocks.git", 16 | "_target": "~1.2", 17 | "_originalSource": "angular-mocks" 18 | } -------------------------------------------------------------------------------- /vendor/src/app/app.spec.js: -------------------------------------------------------------------------------- 1 | describe( 'MainCtrl', function() { 2 | describe( 'isCurrentUrl', function() { 3 | var MainCtrl, $location, $scope; 4 | 5 | beforeEach( module( 'Cimba' ) ); 6 | 7 | beforeEach( inject( function( $controller, _$location_, $rootScope ) { 8 | $location = _$location_; 9 | $scope = $rootScope.$new(); 10 | MainCtrl = $controller( 'MainCtrl', { $location: $location, $scope: $scope }); 11 | })); 12 | 13 | it( 'should pass a dummy test', inject( function() { 14 | expect( MainCtrl ).toBeTruthy(); 15 | })); 16 | }); 17 | }); 18 | -------------------------------------------------------------------------------- /vendor/jquery/src/ajax/parseXML.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | // Cross-browser xml parsing 6 | jQuery.parseXML = function( data ) { 7 | var xml, tmp; 8 | if ( !data || typeof data !== "string" ) { 9 | return null; 10 | } 11 | 12 | // Support: IE9 13 | try { 14 | tmp = new DOMParser(); 15 | xml = tmp.parseFromString( data, "text/xml" ); 16 | } catch ( e ) { 17 | xml = undefined; 18 | } 19 | 20 | if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { 21 | jQuery.error( "Invalid XML: " + data ); 22 | } 23 | return xml; 24 | }; 25 | 26 | return jQuery.parseXML; 27 | 28 | }); 29 | -------------------------------------------------------------------------------- /src/app/channels/manage/manage.js: -------------------------------------------------------------------------------- 1 | angular.module('Cimba.channels.manage',['ui.router']) 2 | 3 | .config(function CreateConfig($stateProvider){ 4 | $stateProvider.state('manage',{ 5 | url: '/channels/manage', 6 | views:{ 7 | 'main':{ 8 | controller: 'ManageCtrl', 9 | templateUrl: 'channels/manage/manage.tpl.html' 10 | } 11 | }, 12 | data:{ 13 | pageTitle:'manage' 14 | } 15 | }); 16 | }) 17 | 18 | .controller('ManageCtrl', function ManageController($scope, $http, $location, $sce){ 19 | $scope.channels = $scope.$parent.channels; 20 | $scope.newChannel = {}; 21 | $scope.newChannel.title = 'test'; 22 | 23 | }); -------------------------------------------------------------------------------- /vendor/bootstrap/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bootstrap", 3 | "version": "3.1.1", 4 | "main": [ 5 | "./dist/css/bootstrap.css", 6 | "./dist/js/bootstrap.js", 7 | "./dist/fonts/glyphicons-halflings-regular.eot", 8 | "./dist/fonts/glyphicons-halflings-regular.svg", 9 | "./dist/fonts/glyphicons-halflings-regular.ttf", 10 | "./dist/fonts/glyphicons-halflings-regular.woff" 11 | ], 12 | "ignore": [ 13 | "**/.*", 14 | "_config.yml", 15 | "CNAME", 16 | "composer.json", 17 | "CONTRIBUTING.md", 18 | "docs", 19 | "js/tests" 20 | ], 21 | "dependencies": { 22 | "jquery": ">= 1.9.0" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/app/channels/post/post-view.js: -------------------------------------------------------------------------------- 1 | 2 | angular.module('Cimba.channels.viewPost', ['ui.router']) 3 | 4 | .config(function ChannelsConfig($stateProvider) { 5 | $stateProvider.state('viewPost', { 6 | url: '/channels/view-post?postName&postUri', 7 | views: { 8 | 'main': { 9 | controller: 'PostViewCtrl', 10 | templateUrl: 'channels/post/post-view.tpl.html' 11 | } 12 | }, 13 | data: { 14 | pageTitle: "View Post" 15 | } 16 | }); 17 | }) 18 | 19 | .controller('PostViewCtrl', function PostViewController($scope, $stateParams, $location, $http) { 20 | $scope.postUri = $stateParams.postUri; 21 | $location.url($location.path()); 22 | }); -------------------------------------------------------------------------------- /vendor/bootstrap/less/component-animations.less: -------------------------------------------------------------------------------- 1 | // 2 | // Component animations 3 | // -------------------------------------------------- 4 | 5 | // Heads up! 6 | // 7 | // We don't use the `.opacity()` mixin here since it causes a bug with text 8 | // fields in IE7-8. Source: https://github.com/twitter/bootstrap/pull/3552. 9 | 10 | .fade { 11 | opacity: 0; 12 | .transition(opacity .15s linear); 13 | &.in { 14 | opacity: 1; 15 | } 16 | } 17 | 18 | .collapse { 19 | display: none; 20 | &.in { 21 | display: block; 22 | } 23 | } 24 | .collapsing { 25 | position: relative; 26 | height: 0; 27 | overflow: hidden; 28 | .transition(height .35s ease); 29 | } 30 | -------------------------------------------------------------------------------- /vendor/bootstrap/less/wells.less: -------------------------------------------------------------------------------- 1 | // 2 | // Wells 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base class 7 | .well { 8 | min-height: 20px; 9 | padding: 19px; 10 | margin-bottom: 20px; 11 | background-color: @well-bg; 12 | border: 1px solid @well-border; 13 | border-radius: @border-radius-base; 14 | .box-shadow(inset 0 1px 1px rgba(0,0,0,.05)); 15 | blockquote { 16 | border-color: #ddd; 17 | border-color: rgba(0,0,0,.15); 18 | } 19 | } 20 | 21 | // Sizes 22 | .well-lg { 23 | padding: 24px; 24 | border-radius: @border-radius-large; 25 | } 26 | .well-sm { 27 | padding: 9px; 28 | border-radius: @border-radius-small; 29 | } 30 | -------------------------------------------------------------------------------- /vendor/jquery/src/queue/delay.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "../queue", 4 | "../effects" // Delay is optional because of this dependency 5 | ], function( jQuery ) { 6 | 7 | // Based off of the plugin by Clint Helfers, with permission. 8 | // http://blindsignals.com/index.php/2009/07/jquery-delay/ 9 | jQuery.fn.delay = function( time, type ) { 10 | time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; 11 | type = type || "fx"; 12 | 13 | return this.queue( type, function( next, hooks ) { 14 | var timeout = setTimeout( next, time ); 15 | hooks.stop = function() { 16 | clearTimeout( timeout ); 17 | }; 18 | }); 19 | }; 20 | 21 | return jQuery.fn.delay; 22 | }); 23 | -------------------------------------------------------------------------------- /src/less/variables.less: -------------------------------------------------------------------------------- 1 | /** 2 | * These are the variables used throughout the application. This is where 3 | * overwrites that are not specific to components should be maintained. 4 | */ 5 | 6 | /** 7 | * Typography-related. 8 | */ 9 | 10 | @sansFontFamily: 'Roboto', sans-serif; 11 | 12 | @light-blue: #3bafda!important; 13 | @strong-blue: #4285f4!important; 14 | @dark-blue: #000066; 15 | @darkish-blue: #000099; 16 | @blue: #4285f4; 17 | @gray: #D1CFCD; 18 | @light-yellow: #CC6600; 19 | @yellow-orange: #FFfBD0; 20 | @light-orange: #FF9900; 21 | @light-red: #F34206; 22 | @dark-red: #D53E0B; 23 | @light-grey: #F1F1F1; 24 | @dark-grey: #4C5053; 25 | @orange: #FF5140; 26 | @white: #ffffff; 27 | -------------------------------------------------------------------------------- /vendor/src/app/login/login.spec.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Tests sit right alongside the file they are testing, which is more intuitive 3 | * and portable than separating `src` and `test` directories. Additionally, the 4 | * build process will exclude all `.spec.js` files from the build 5 | * automatically. 6 | */ 7 | describe('login section', function() { 8 | beforeEach( module( 'Cimba.login' ) ); 9 | var LoginCtrl, $location, $scope; 10 | 11 | beforeEach( inject( function( $controller, _$location_, $rootScope ) { 12 | $location = _$location_; 13 | $scope = $rootScope.$new(); 14 | LoginCtrl = $controller( 'LoginCtrl', { $location: $location, $scope: $scope }); 15 | })); 16 | 17 | 18 | }); -------------------------------------------------------------------------------- /vendor/jquery/src/css/swap.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | // A method for quickly swapping in/out CSS properties to get correct calculations. 6 | jQuery.swap = function( elem, options, callback, args ) { 7 | var ret, name, 8 | old = {}; 9 | 10 | // Remember the old values, and insert the new ones 11 | for ( name in options ) { 12 | old[ name ] = elem.style[ name ]; 13 | elem.style[ name ] = options[ name ]; 14 | } 15 | 16 | ret = callback.apply( elem, args || [] ); 17 | 18 | // Revert the old values 19 | for ( name in options ) { 20 | elem.style[ name ] = old[ name ]; 21 | } 22 | 23 | return ret; 24 | }; 25 | 26 | return jQuery.swap; 27 | 28 | }); 29 | -------------------------------------------------------------------------------- /vendor/angular-bootstrap/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "author": { 3 | "name": "https://github.com/angular-ui/bootstrap/graphs/contributors" 4 | }, 5 | "name": "angular-bootstrap", 6 | "version": "0.10.0", 7 | "main": [ 8 | "./ui-bootstrap-tpls.js" 9 | ], 10 | "dependencies": { 11 | "angular": ">=1" 12 | }, 13 | "homepage": "https://github.com/angular-ui/bootstrap-bower", 14 | "_release": "0.10.0", 15 | "_resolution": { 16 | "type": "version", 17 | "tag": "0.10.0", 18 | "commit": "f486d33d6f4c60d905ed0792eacbba2456a32b87" 19 | }, 20 | "_source": "git://github.com/angular-ui/bootstrap-bower.git", 21 | "_target": "~0.10.0", 22 | "_originalSource": "angular-bootstrap" 23 | } -------------------------------------------------------------------------------- /vendor/jquery/src/css/addGetHookIf.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | 3 | function addGetHookIf( conditionFn, hookFn ) { 4 | // Define the hook, we'll check on the first run if it's really needed. 5 | return { 6 | get: function() { 7 | if ( conditionFn() ) { 8 | // Hook not needed (or it's not possible to use it due to missing dependency), 9 | // remove it. 10 | // Since there are no other hooks for marginRight, remove the whole object. 11 | delete this.get; 12 | return; 13 | } 14 | 15 | // Hook needed; redefine it so that the support test is not executed again. 16 | 17 | return (this.get = hookFn).apply( this, arguments ); 18 | } 19 | }; 20 | } 21 | 22 | return addGetHookIf; 23 | 24 | }); 25 | -------------------------------------------------------------------------------- /src/app/about/about.js: -------------------------------------------------------------------------------- 1 | angular.module( 'Cimba.about', [ 2 | 'ui.router', 3 | 'placeholders', 4 | 'ui.bootstrap' 5 | ]) 6 | 7 | .config(function config( $stateProvider ) { 8 | $stateProvider.state( 'about', { 9 | url: '/about', 10 | views: { 11 | "main": { 12 | controller: 'AboutCtrl', 13 | templateUrl: 'about/about.tpl.html' 14 | } 15 | }, 16 | data:{ pageTitle: 'What is It?' } 17 | }); 18 | }) 19 | 20 | .controller( 'AboutCtrl', function AboutCtrl( $scope ) { 21 | // This is simple a demo for UI Boostrap. 22 | $scope.dropdownDemoItems = [ 23 | "The first choice!", 24 | "And another choice for you.", 25 | "but wait! A third!" 26 | ]; 27 | }) 28 | 29 | ; 30 | -------------------------------------------------------------------------------- /vendor/src/app/about/about.js: -------------------------------------------------------------------------------- 1 | angular.module( 'Cimba.about', [ 2 | 'ui.router', 3 | 'placeholders', 4 | 'ui.bootstrap' 5 | ]) 6 | 7 | .config(function config( $stateProvider ) { 8 | $stateProvider.state( 'about', { 9 | url: '/about', 10 | views: { 11 | "main": { 12 | controller: 'AboutCtrl', 13 | templateUrl: 'about/about.tpl.html' 14 | } 15 | }, 16 | data:{ pageTitle: 'What is It?' } 17 | }); 18 | }) 19 | 20 | .controller( 'AboutCtrl', function AboutCtrl( $scope ) { 21 | // This is simple a demo for UI Boostrap. 22 | $scope.dropdownDemoItems = [ 23 | "The first choice!", 24 | "And another choice for you.", 25 | "but wait! A third!" 26 | ]; 27 | }) 28 | 29 | ; 30 | -------------------------------------------------------------------------------- /vendor/bootstrap/less/breadcrumbs.less: -------------------------------------------------------------------------------- 1 | // 2 | // Breadcrumbs 3 | // -------------------------------------------------- 4 | 5 | 6 | .breadcrumb { 7 | padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal; 8 | margin-bottom: @line-height-computed; 9 | list-style: none; 10 | background-color: @breadcrumb-bg; 11 | border-radius: @border-radius-base; 12 | 13 | > li { 14 | display: inline-block; 15 | 16 | + li:before { 17 | content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space 18 | padding: 0 5px; 19 | color: @breadcrumb-color; 20 | } 21 | } 22 | 23 | > .active { 24 | color: @breadcrumb-active-color; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /vendor/jquery/src/jquery.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./core", 3 | "./selector", 4 | "./traversing", 5 | "./callbacks", 6 | "./deferred", 7 | "./core/ready", 8 | "./data", 9 | "./queue", 10 | "./queue/delay", 11 | "./attributes", 12 | "./event", 13 | "./event/alias", 14 | "./manipulation", 15 | "./manipulation/_evalUrl", 16 | "./wrap", 17 | "./css", 18 | "./css/hiddenVisibleSelectors", 19 | "./serialize", 20 | "./ajax", 21 | "./ajax/xhr", 22 | "./ajax/script", 23 | "./ajax/jsonp", 24 | "./ajax/load", 25 | "./effects", 26 | "./effects/animatedSelector", 27 | "./offset", 28 | "./dimensions", 29 | "./deprecated", 30 | "./exports/amd", 31 | "./exports/global" 32 | ], function( jQuery ) { 33 | 34 | return jQuery; 35 | 36 | }); 37 | -------------------------------------------------------------------------------- /src/app/tab/tab.js: -------------------------------------------------------------------------------- 1 | angular.module( 'Cimba.tab', [ 2 | 'ui.router' 3 | ]) 4 | 5 | .config(function TabConfig( $stateProvider ) { 6 | $stateProvider.state( 'tab', { 7 | url: '/', 8 | views: { 9 | "main": { 10 | controller: 'TabController', 11 | templateUrl: '' 12 | } 13 | }, 14 | data:{ pageTitle: 'Tab' } 15 | }); 16 | }) 17 | 18 | .controller("TabController", function TabCtrl( $scope, $http, $location, $sce ) { 19 | this.tab = 0; 20 | this.badges = ["42","7","4"]; 21 | this.setTab = function(v) { 22 | this.tab = v; 23 | }; 24 | this.isSet = function(v) { 25 | return this.tab === v; 26 | }; 27 | this.clearbadge = function(v) { 28 | this.badges[v] = null; 29 | }; 30 | this.alert = function(msg) { 31 | alert(msg); 32 | }; 33 | }); -------------------------------------------------------------------------------- /vendor/jquery/src/exports/global.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "../var/strundefined" 4 | ], function( jQuery, strundefined ) { 5 | 6 | var 7 | // Map over jQuery in case of overwrite 8 | _jQuery = window.jQuery, 9 | 10 | // Map over the $ in case of overwrite 11 | _$ = window.$; 12 | 13 | jQuery.noConflict = function( deep ) { 14 | if ( window.$ === jQuery ) { 15 | window.$ = _$; 16 | } 17 | 18 | if ( deep && window.jQuery === jQuery ) { 19 | window.jQuery = _jQuery; 20 | } 21 | 22 | return jQuery; 23 | }; 24 | 25 | // Expose jQuery and $ identifiers, even in 26 | // AMD (#7102#comment:10, https://github.com/jquery/jquery/pull/557) 27 | // and CommonJS for browser emulators (#13566) 28 | if ( typeof noGlobal === strundefined ) { 29 | window.jQuery = window.$ = jQuery; 30 | } 31 | 32 | }); 33 | -------------------------------------------------------------------------------- /src/app/login/login.tpl.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |

Welcome to

5 |
6 |

You must be authenticated in order to use this microblogging application.

7 |

8 |
9 | 10 | 13 |
14 |
15 |
16 | -------------------------------------------------------------------------------- /vendor/bootstrap/less/close.less: -------------------------------------------------------------------------------- 1 | // 2 | // Close icons 3 | // -------------------------------------------------- 4 | 5 | 6 | .close { 7 | float: right; 8 | font-size: (@font-size-base * 1.5); 9 | font-weight: @close-font-weight; 10 | line-height: 1; 11 | color: @close-color; 12 | text-shadow: @close-text-shadow; 13 | .opacity(.2); 14 | 15 | &:hover, 16 | &:focus { 17 | color: @close-color; 18 | text-decoration: none; 19 | cursor: pointer; 20 | .opacity(.5); 21 | } 22 | 23 | // Additional properties for button version 24 | // iOS requires the button element instead of an anchor tag. 25 | // If you want the anchor version, it requires `href="#"`. 26 | button& { 27 | padding: 0; 28 | cursor: pointer; 29 | background: transparent; 30 | border: 0; 31 | -webkit-appearance: none; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /vendor/ngProgress/ngProgress.less: -------------------------------------------------------------------------------- 1 | /* Styling for the ngProgress itself */ 2 | #ngProgress { 3 | position: absolute; 4 | margin: 0; 5 | padding: 0; 6 | z-index: 99998; 7 | background-color: green; 8 | color: green; 9 | box-shadow: 0 0 10px 0; /* Inherits the font color */ 10 | height: 2px; 11 | opacity: 0; 12 | overflow-x: hidden; 13 | 14 | /* Add CSS3 styles for transition smoothing */ 15 | -webkit-transition: all 0.5s ease-in-out; 16 | -moz-transition: all 0.5s ease-in-out; 17 | -o-transition: all 0.5s ease-in-out; 18 | transition: all 0.5s ease-in-out; 19 | } 20 | 21 | /* Styling for the ngProgress-container */ 22 | #ngProgress-container { 23 | position: absolute; 24 | margin: 0; 25 | padding: 0; 26 | top: 0; 27 | left: 0; 28 | right: 0; 29 | z-index: 99999; 30 | } 31 | -------------------------------------------------------------------------------- /vendor/angular-ui-router/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-ui-router", 3 | "version": "0.2.10", 4 | "main": "./release/angular-ui-router.js", 5 | "dependencies": { 6 | "angular": ">= 1.0.8" 7 | }, 8 | "ignore": [ 9 | "**/.*", 10 | "node_modules", 11 | "bower_components", 12 | "component.json", 13 | "package.json", 14 | "lib", 15 | "config", 16 | "sample", 17 | "test", 18 | "tests", 19 | "ngdoc_assets", 20 | "Gruntfile.js", 21 | "files.js" 22 | ], 23 | "homepage": "https://github.com/angular-ui/ui-router", 24 | "_release": "0.2.10", 25 | "_resolution": { 26 | "type": "version", 27 | "tag": "0.2.10", 28 | "commit": "4f509d6393452c933aa5908939d0a17e47b59388" 29 | }, 30 | "_source": "git://github.com/angular-ui/ui-router.git", 31 | "_target": "~0.2", 32 | "_originalSource": "angular-ui-router" 33 | } -------------------------------------------------------------------------------- /vendor/src/app/login/login.tpl.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |

Welcome to

5 |
6 |

You must be authenticated in order to use this microblogging application.

7 |

8 |
9 |
10 |
11 | 12 | 13 |
14 | 20 |
21 | 22 |
23 | -------------------------------------------------------------------------------- /changelog.tpl: -------------------------------------------------------------------------------- 1 | 2 | # <%= version%> (<%= today%>) 3 | 4 | <% if (_(changelog.feat).size() > 0) { %> ## Features 5 | <% _(changelog.feat).forEach(function(changes, scope) { %> 6 | - **<%= scope%>:** 7 | <% changes.forEach(function(change) { %> - <%= change.msg%> (<%= helpers.commitLink(change.sha1) %>) 8 | <% }); %> 9 | <% }); %> <% } %> 10 | 11 | <% if (_(changelog.fix).size() > 0) { %> ## Fixes 12 | <% _(changelog.fix).forEach(function(changes, scope) { %> 13 | - **<%= scope%>:** 14 | <% changes.forEach(function(change) { %> - <%= change.msg%> (<%= helpers.commitLink(change.sha1) %>) 15 | <% }); %> 16 | <% }); %> <% } %> 17 | 18 | <% if (_(changelog.breaking).size() > 0) { %> ## Breaking Changes 19 | <% _(changelog.breaking).forEach(function(changes, scope) { %> 20 | - **<%= scope%>:** 21 | <% changes.forEach(function(change) { %> <%= change.msg%> 22 | <% }); %> 23 | <% }); %> <% } %> 24 | -------------------------------------------------------------------------------- /vendor/jquery/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery", 3 | "version": "2.1.1", 4 | "main": "dist/jquery.js", 5 | "license": "MIT", 6 | "ignore": [ 7 | "**/.*", 8 | "build", 9 | "speed", 10 | "test", 11 | "*.md", 12 | "AUTHORS.txt", 13 | "Gruntfile.js", 14 | "package.json" 15 | ], 16 | "devDependencies": { 17 | "sizzle": "1.10.19", 18 | "requirejs": "2.1.10", 19 | "qunit": "1.14.0", 20 | "sinon": "1.8.1" 21 | }, 22 | "keywords": [ 23 | "jquery", 24 | "javascript", 25 | "library" 26 | ], 27 | "homepage": "https://github.com/jquery/jquery", 28 | "_release": "2.1.1", 29 | "_resolution": { 30 | "type": "version", 31 | "tag": "2.1.1", 32 | "commit": "4dec426aa2a6cbabb1b064319ba7c272d594a688" 33 | }, 34 | "_source": "git://github.com/jquery/jquery.git", 35 | "_target": ">= 1.9.0", 36 | "_originalSource": "jquery" 37 | } -------------------------------------------------------------------------------- /vendor/changelog.tpl: -------------------------------------------------------------------------------- 1 | 2 | # <%= version%> (<%= today%>) 3 | 4 | <% if (_(changelog.feat).size() > 0) { %> ## Features 5 | <% _(changelog.feat).forEach(function(changes, scope) { %> 6 | - **<%= scope%>:** 7 | <% changes.forEach(function(change) { %> - <%= change.msg%> (<%= helpers.commitLink(change.sha1) %>) 8 | <% }); %> 9 | <% }); %> <% } %> 10 | 11 | <% if (_(changelog.fix).size() > 0) { %> ## Fixes 12 | <% _(changelog.fix).forEach(function(changes, scope) { %> 13 | - **<%= scope%>:** 14 | <% changes.forEach(function(change) { %> - <%= change.msg%> (<%= helpers.commitLink(change.sha1) %>) 15 | <% }); %> 16 | <% }); %> <% } %> 17 | 18 | <% if (_(changelog.breaking).size() > 0) { %> ## Breaking Changes 19 | <% _(changelog.breaking).forEach(function(changes, scope) { %> 20 | - **<%= scope%>:** 21 | <% changes.forEach(function(change) { %> <%= change.msg%> 22 | <% }); %> 23 | <% }); %> <% } %> 24 | -------------------------------------------------------------------------------- /vendor/bootstrap/less/thumbnails.less: -------------------------------------------------------------------------------- 1 | // 2 | // Thumbnails 3 | // -------------------------------------------------- 4 | 5 | 6 | // Mixin and adjust the regular image class 7 | .thumbnail { 8 | display: block; 9 | padding: @thumbnail-padding; 10 | margin-bottom: @line-height-computed; 11 | line-height: @line-height-base; 12 | background-color: @thumbnail-bg; 13 | border: 1px solid @thumbnail-border; 14 | border-radius: @thumbnail-border-radius; 15 | .transition(all .2s ease-in-out); 16 | 17 | > img, 18 | a > img { 19 | &:extend(.img-responsive); 20 | margin-left: auto; 21 | margin-right: auto; 22 | } 23 | 24 | // Add a hover state for linked versions only 25 | a&:hover, 26 | a&:focus, 27 | a&.active { 28 | border-color: @link-color; 29 | } 30 | 31 | // Image captions 32 | .caption { 33 | padding: @thumbnail-caption-padding; 34 | color: @thumbnail-caption-color; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /tpl/search_results.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |
6 | 7 |
8 |
9 |
10 | {{person.name[0]}} 11 |
12 | {{person.mbox[0]}} 13 |
14 | Hosted on: {{person.host}} 15 | 16 |
17 |
18 |
19 |
-------------------------------------------------------------------------------- /vendor/bootstrap/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bootstrap", 3 | "version": "3.1.1", 4 | "main": [ 5 | "./dist/css/bootstrap.css", 6 | "./dist/js/bootstrap.js", 7 | "./dist/fonts/glyphicons-halflings-regular.eot", 8 | "./dist/fonts/glyphicons-halflings-regular.svg", 9 | "./dist/fonts/glyphicons-halflings-regular.ttf", 10 | "./dist/fonts/glyphicons-halflings-regular.woff" 11 | ], 12 | "ignore": [ 13 | "**/.*", 14 | "_config.yml", 15 | "CNAME", 16 | "composer.json", 17 | "CONTRIBUTING.md", 18 | "docs", 19 | "js/tests" 20 | ], 21 | "dependencies": { 22 | "jquery": ">= 1.9.0" 23 | }, 24 | "homepage": "https://github.com/twbs/bootstrap", 25 | "_release": "3.1.1", 26 | "_resolution": { 27 | "type": "version", 28 | "tag": "v3.1.1", 29 | "commit": "a365d8689c3f3cee7f1acf86b61270ecca8e106d" 30 | }, 31 | "_source": "git://github.com/twbs/bootstrap.git", 32 | "_target": "~3.1", 33 | "_originalSource": "bootstrap" 34 | } -------------------------------------------------------------------------------- /src/app/channels/channels.spec.js: -------------------------------------------------------------------------------- 1 | describe('Channels section', function() { 2 | beforeEach(module('Cimba.channels')); 3 | //var ChannelsCtrl, $location, $root, $scope, $http, $sce, httpBackend; 4 | 5 | // beforeEach(inject(function($controller, _$location_, $http, $sce, $rootScope, $httpBackend) { 6 | // $location = _$location_; 7 | // $root = $rootScope; 8 | // $scope = $rootScope.$new(); 9 | // httpBackend = $httpBackend; 10 | // ChannelsCtrl = $controller('ChannelsCtrl', { 11 | // $scope: $scope, 12 | // $http: $http, 13 | // $location: $location, 14 | // $sce: $sce 15 | // }); 16 | // })); 17 | 18 | // it('should pass a dummy test', inject(function() { 19 | // expect(ChannelsCtrl).toBeTruthy(); 20 | // })); 21 | 22 | }); 23 | 24 | // it('newChannel should add a channel to '){ 25 | // var webid = ''; 26 | // httpBackend.expectGET('http://api.webizen.org/v1/search?q='+'https:'encodeURIComponent(webid)).respond(200,''); 27 | 28 | // } 29 | -------------------------------------------------------------------------------- /vendor/angular-ui-router/src/stateFilters.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @ngdoc filter 3 | * @name ui.router.state.filter:isState 4 | * 5 | * @requires ui.router.state.$state 6 | * 7 | * @description 8 | * Translates to {@link ui.router.state.$state#methods_is $state.is("stateName")}. 9 | */ 10 | $IsStateFilter.$inject = ['$state']; 11 | function $IsStateFilter($state) { 12 | return function(state) { 13 | return $state.is(state); 14 | }; 15 | } 16 | 17 | /** 18 | * @ngdoc filter 19 | * @name ui.router.state.filter:includedByState 20 | * 21 | * @requires ui.router.state.$state 22 | * 23 | * @description 24 | * Translates to {@link ui.router.state.$state#methods_includes $state.includes('fullOrPartialStateName')}. 25 | */ 26 | $IncludedByStateFilter.$inject = ['$state']; 27 | function $IncludedByStateFilter($state) { 28 | return function(state) { 29 | return $state.includes(state); 30 | }; 31 | } 32 | 33 | angular.module('ui.router.state') 34 | .filter('isState', $IsStateFilter) 35 | .filter('includedByState', $IncludedByStateFilter); 36 | -------------------------------------------------------------------------------- /src/common/README.md: -------------------------------------------------------------------------------- 1 | # The `src/common/` Directory 2 | 3 | The `src/common/` directory houses internal and third-party re-usable 4 | components. Essentially, this folder is for everything that isn't completely 5 | specific to this application. 6 | 7 | Each component resides in its own directory that may then be structured any way 8 | the developer desires. The build system will read all `*.js` files that do not 9 | end in `.spec.js` as source files to be included in the final build, all 10 | `*.spec.js` files as unit tests to be executed, and all `*.tpl.html` files as 11 | templates to compiled into the `$templateCache`. There is currently no way to 12 | handle components that do not meet this pattern. 13 | 14 | ``` 15 | src/ 16 | |- common/ 17 | | |- plusOne/ 18 | ``` 19 | 20 | - `plusOne` - a simple directive to load a Google +1 Button on an element. 21 | 22 | Every component contained here should be drag-and-drop reusable in any other 23 | project; they should depend on no other components that aren't similarly 24 | drag-and-drop reusable. 25 | -------------------------------------------------------------------------------- /vendor/src/common/README.md: -------------------------------------------------------------------------------- 1 | # The `src/common/` Directory 2 | 3 | The `src/common/` directory houses internal and third-party re-usable 4 | components. Essentially, this folder is for everything that isn't completely 5 | specific to this application. 6 | 7 | Each component resides in its own directory that may then be structured any way 8 | the developer desires. The build system will read all `*.js` files that do not 9 | end in `.spec.js` as source files to be included in the final build, all 10 | `*.spec.js` files as unit tests to be executed, and all `*.tpl.html` files as 11 | templates to compiled into the `$templateCache`. There is currently no way to 12 | handle components that do not meet this pattern. 13 | 14 | ``` 15 | src/ 16 | |- common/ 17 | | |- plusOne/ 18 | ``` 19 | 20 | - `plusOne` - a simple directive to load a Google +1 Button on an element. 21 | 22 | Every component contained here should be drag-and-drop reusable in any other 23 | project; they should depend on no other components that aren't similarly 24 | drag-and-drop reusable. 25 | -------------------------------------------------------------------------------- /vendor/bootstrap/less/utilities.less: -------------------------------------------------------------------------------- 1 | // 2 | // Utility classes 3 | // -------------------------------------------------- 4 | 5 | 6 | // Floats 7 | // ------------------------- 8 | 9 | .clearfix { 10 | .clearfix(); 11 | } 12 | .center-block { 13 | .center-block(); 14 | } 15 | .pull-right { 16 | float: right !important; 17 | } 18 | .pull-left { 19 | float: left !important; 20 | } 21 | 22 | 23 | // Toggling content 24 | // ------------------------- 25 | 26 | // Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1 27 | .hide { 28 | display: none !important; 29 | } 30 | .show { 31 | display: block !important; 32 | } 33 | .invisible { 34 | visibility: hidden; 35 | } 36 | .text-hide { 37 | .text-hide(); 38 | } 39 | 40 | 41 | // Hide from screenreaders and browsers 42 | // 43 | // Credit: HTML5 Boilerplate 44 | 45 | .hidden { 46 | display: none !important; 47 | visibility: hidden !important; 48 | } 49 | 50 | 51 | // For Affix plugin 52 | // ------------------------- 53 | 54 | .affix { 55 | position: fixed; 56 | } 57 | -------------------------------------------------------------------------------- /js/jquery.postmessage.min.js: -------------------------------------------------------------------------------- 1 | /* 2 | * jQuery postMessage - v0.5 - 9/11/2009 3 | * http://benalman.com/projects/jquery-postmessage-plugin/ 4 | * 5 | * Copyright (c) 2009 "Cowboy" Ben Alman 6 | * Dual licensed under the MIT and GPL licenses. 7 | * http://benalman.com/about/license/ 8 | */ 9 | (function($){var g,d,j=1,a,b=this,f=!1,h="postMessage",e="addEventListener",c,i=b[h]&&!$.browser.opera;$[h]=function(k,l,m){if(!l){return}k=typeof k==="string"?k:$.param(k);m=m||parent;if(i){m[h](k,l.replace(/([^:]+:\/\/[^\/]+).*/,"$1"))}else{if(l){m.location=l.replace(/#.*$/,"")+"#"+(+new Date)+(j++)+"&"+k}}};$.receiveMessage=c=function(l,m,k){if(i){if(l){a&&c();a=function(n){if((typeof m==="string"&&n.origin!==m)||($.isFunction(m)&&m(n.origin)===f)){return f}l(n)}}if(b[e]){b[l?e:"removeEventListener"]("message",a,f)}else{b[l?"attachEvent":"detachEvent"]("onmessage",a)}}else{g&&clearInterval(g);g=null;if(l){k=typeof m==="number"?m:typeof k==="number"?k:100;g=setInterval(function(){var o=document.location.hash,n=/^#?\d+&/;if(o!==d&&n.test(o)){d=o;l({data:o.replace(n,"")})}},k)}}}})(jQuery); -------------------------------------------------------------------------------- /vendor/eventListener/eventListener.js: -------------------------------------------------------------------------------- 1 | /* 2 | * jQuery postMessage - v0.5 - 9/11/2009 3 | * http://benalman.com/projects/jquery-postmessage-plugin/ 4 | * 5 | * Copyright (c) 2009 "Cowboy" Ben Alman 6 | * Dual licensed under the MIT and GPL licenses. 7 | * http://benalman.com/about/license/ 8 | */ 9 | (function($){var g,d,j=1,a,b=this,f=!1,h="postMessage",e="addEventListener",c,i=b[h]&&!$.browser.opera;$[h]=function(k,l,m){if(!l){return}k=typeof k==="string"?k:$.param(k);m=m||parent;if(i){m[h](k,l.replace(/([^:]+:\/\/[^\/]+).*/,"$1"))}else{if(l){m.location=l.replace(/#.*$/,"")+"#"+(+new Date)+(j++)+"&"+k}}};$.receiveMessage=c=function(l,m,k){if(i){if(l){a&&c();a=function(n){if((typeof m==="string"&&n.origin!==m)||($.isFunction(m)&&m(n.origin)===f)){return f}l(n)}}if(b[e]){b[l?e:"removeEventListener"]("message",a,f)}else{b[l?"attachEvent":"detachEvent"]("onmessage",a)}}else{g&&clearInterval(g);g=null;if(l){k=typeof m==="number"?m:typeof k==="number"?k:100;g=setInterval(function(){var o=document.location.hash,n=/^#?\d+&/;if(o!==d&&n.test(o)){d=o;l({data:o.replace(n,"")})}},k)}}}})(jQuery); -------------------------------------------------------------------------------- /src/app/find/view/view-user.js: -------------------------------------------------------------------------------- 1 | angular.module('Cimba.find.view-user', ['ui.router']) 2 | 3 | .config(function ViewUserConfig($stateProvider) { 4 | $stateProvider.state('view-user', { 5 | url: '/find/*path', 6 | views: { 7 | 'main': { 8 | controller: 'ViewUserController', 9 | templateUrl: 'find/view/view-user.tpl.html' 10 | } 11 | }, 12 | data: {} 13 | }); 14 | }) 15 | 16 | .controller('ViewUserController', function ViewUserController($scope, $stateParams, $location, $http) { 17 | console.log("view user controller"); 18 | // $scope.$parent.loadCredentials(); 19 | // $scope.$parent.getInfo($scope.userProfile.webid); 20 | $scope.webid = "https://" + $stateParams.path; 21 | // $scope.loadCredentials(); 22 | 23 | $scope.$parent.loadChannels[$scope.webid] = $scope.webid; 24 | // $scope.$parent.loadSubscriptions[$scope.$parent.userProfile.webid] = $scope.$parent.userProfile.webid; 25 | 26 | $scope.getInfo($scope.webid, false, true); 27 | $scope.webidresults = []; 28 | 29 | $scope.toggleChannel = function (ch) { 30 | $scope.$parent.channelToggle(ch); 31 | }; 32 | 33 | }); -------------------------------------------------------------------------------- /vendor/bootstrap/less/jumbotron.less: -------------------------------------------------------------------------------- 1 | // 2 | // Jumbotron 3 | // -------------------------------------------------- 4 | 5 | 6 | .jumbotron { 7 | padding: @jumbotron-padding; 8 | margin-bottom: @jumbotron-padding; 9 | color: @jumbotron-color; 10 | background-color: @jumbotron-bg; 11 | 12 | h1, 13 | .h1 { 14 | color: @jumbotron-heading-color; 15 | } 16 | p { 17 | margin-bottom: (@jumbotron-padding / 2); 18 | font-size: @jumbotron-font-size; 19 | font-weight: 200; 20 | } 21 | 22 | .container & { 23 | border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container 24 | } 25 | 26 | .container { 27 | max-width: 100%; 28 | } 29 | 30 | @media screen and (min-width: @screen-sm-min) { 31 | padding-top: (@jumbotron-padding * 1.6); 32 | padding-bottom: (@jumbotron-padding * 1.6); 33 | 34 | .container & { 35 | padding-left: (@jumbotron-padding * 2); 36 | padding-right: (@jumbotron-padding * 2); 37 | } 38 | 39 | h1, 40 | .h1 { 41 | font-size: (@font-size-base * 4.5); 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /vendor/bootstrap/less/media.less: -------------------------------------------------------------------------------- 1 | // Media objects 2 | // Source: http://stubbornella.org/content/?p=497 3 | // -------------------------------------------------- 4 | 5 | 6 | // Common styles 7 | // ------------------------- 8 | 9 | // Clear the floats 10 | .media, 11 | .media-body { 12 | overflow: hidden; 13 | zoom: 1; 14 | } 15 | 16 | // Proper spacing between instances of .media 17 | .media, 18 | .media .media { 19 | margin-top: 15px; 20 | } 21 | .media:first-child { 22 | margin-top: 0; 23 | } 24 | 25 | // For images and videos, set to block 26 | .media-object { 27 | display: block; 28 | } 29 | 30 | // Reset margins on headings for tighter default spacing 31 | .media-heading { 32 | margin: 0 0 5px; 33 | } 34 | 35 | 36 | // Media image alignment 37 | // ------------------------- 38 | 39 | .media { 40 | > .pull-left { 41 | margin-right: 10px; 42 | } 43 | > .pull-right { 44 | margin-left: 10px; 45 | } 46 | } 47 | 48 | 49 | // Media list variation 50 | // ------------------------- 51 | 52 | // Undo default ul/ol styles 53 | .media-list { 54 | padding-left: 0; 55 | list-style: none; 56 | } 57 | -------------------------------------------------------------------------------- /vendor/jquery/src/exports/amd.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | // Register as a named AMD module, since jQuery can be concatenated with other 6 | // files that may use define, but not via a proper concatenation script that 7 | // understands anonymous AMD modules. A named AMD is safest and most robust 8 | // way to register. Lowercase jquery is used because AMD module names are 9 | // derived from file names, and jQuery is normally delivered in a lowercase 10 | // file name. Do this after creating the global so that if an AMD module wants 11 | // to call noConflict to hide this version of jQuery, it will work. 12 | 13 | // Note that for maximum portability, libraries that are not jQuery should 14 | // declare themselves as anonymous modules, and avoid setting a global if an 15 | // AMD loader is present. jQuery is a special case. For more information, see 16 | // https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon 17 | 18 | if ( typeof define === "function" && define.amd ) { 19 | define( "jquery", [], function() { 20 | return jQuery; 21 | }); 22 | } 23 | 24 | }); 25 | -------------------------------------------------------------------------------- /vendor/bootstrap/less/pager.less: -------------------------------------------------------------------------------- 1 | // 2 | // Pager pagination 3 | // -------------------------------------------------- 4 | 5 | 6 | .pager { 7 | padding-left: 0; 8 | margin: @line-height-computed 0; 9 | list-style: none; 10 | text-align: center; 11 | &:extend(.clearfix all); 12 | li { 13 | display: inline; 14 | > a, 15 | > span { 16 | display: inline-block; 17 | padding: 5px 14px; 18 | background-color: @pager-bg; 19 | border: 1px solid @pager-border; 20 | border-radius: @pager-border-radius; 21 | } 22 | 23 | > a:hover, 24 | > a:focus { 25 | text-decoration: none; 26 | background-color: @pager-hover-bg; 27 | } 28 | } 29 | 30 | .next { 31 | > a, 32 | > span { 33 | float: right; 34 | } 35 | } 36 | 37 | .previous { 38 | > a, 39 | > span { 40 | float: left; 41 | } 42 | } 43 | 44 | .disabled { 45 | > a, 46 | > a:hover, 47 | > a:focus, 48 | > span { 49 | color: @pager-disabled-color; 50 | background-color: @pager-bg; 51 | cursor: not-allowed; 52 | } 53 | } 54 | 55 | } 56 | -------------------------------------------------------------------------------- /vendor/jquery/src/core/parseHTML.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "./var/rsingleTag", 4 | "../manipulation" // buildFragment 5 | ], function( jQuery, rsingleTag ) { 6 | 7 | // data: string of html 8 | // context (optional): If specified, the fragment will be created in this context, defaults to document 9 | // keepScripts (optional): If true, will include scripts passed in the html string 10 | jQuery.parseHTML = function( data, context, keepScripts ) { 11 | if ( !data || typeof data !== "string" ) { 12 | return null; 13 | } 14 | if ( typeof context === "boolean" ) { 15 | keepScripts = context; 16 | context = false; 17 | } 18 | context = context || document; 19 | 20 | var parsed = rsingleTag.exec( data ), 21 | scripts = !keepScripts && []; 22 | 23 | // Single tag 24 | if ( parsed ) { 25 | return [ context.createElement( parsed[1] ) ]; 26 | } 27 | 28 | parsed = jQuery.buildFragment( [ data ], context, scripts ); 29 | 30 | if ( scripts && scripts.length ) { 31 | jQuery( scripts ).remove(); 32 | } 33 | 34 | return jQuery.merge( [], parsed.childNodes ); 35 | }; 36 | 37 | return jQuery.parseHTML; 38 | 39 | }); 40 | -------------------------------------------------------------------------------- /vendor/jquery/src/manipulation/support.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../var/support" 3 | ], function( support ) { 4 | 5 | (function() { 6 | var fragment = document.createDocumentFragment(), 7 | div = fragment.appendChild( document.createElement( "div" ) ), 8 | input = document.createElement( "input" ); 9 | 10 | // #11217 - WebKit loses check when the name is after the checked attribute 11 | // Support: Windows Web Apps (WWA) 12 | // `name` and `type` need .setAttribute for WWA 13 | input.setAttribute( "type", "radio" ); 14 | input.setAttribute( "checked", "checked" ); 15 | input.setAttribute( "name", "t" ); 16 | 17 | div.appendChild( input ); 18 | 19 | // Support: Safari 5.1, iOS 5.1, Android 4.x, Android 2.3 20 | // old WebKit doesn't clone checked state correctly in fragments 21 | support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; 22 | 23 | // Make sure textarea (and checkbox) defaultValue is properly cloned 24 | // Support: IE9-IE11+ 25 | div.innerHTML = ""; 26 | support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; 27 | })(); 28 | 29 | return support; 30 | 31 | }); 32 | -------------------------------------------------------------------------------- /vendor/jquery/src/attributes/support.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../var/support" 3 | ], function( support ) { 4 | 5 | (function() { 6 | var input = document.createElement( "input" ), 7 | select = document.createElement( "select" ), 8 | opt = select.appendChild( document.createElement( "option" ) ); 9 | 10 | input.type = "checkbox"; 11 | 12 | // Support: iOS 5.1, Android 4.x, Android 2.3 13 | // Check the default checkbox/radio value ("" on old WebKit; "on" elsewhere) 14 | support.checkOn = input.value !== ""; 15 | 16 | // Must access the parent to make an option select properly 17 | // Support: IE9, IE10 18 | support.optSelected = opt.selected; 19 | 20 | // Make sure that the options inside disabled selects aren't marked as disabled 21 | // (WebKit marks them as disabled) 22 | select.disabled = true; 23 | support.optDisabled = !opt.disabled; 24 | 25 | // Check if an input maintains its value after becoming a radio 26 | // Support: IE9, IE10 27 | input = document.createElement( "input" ); 28 | input.value = "t"; 29 | input.type = "radio"; 30 | support.radioValue = input.value === "t"; 31 | })(); 32 | 33 | return support; 34 | 35 | }); 36 | -------------------------------------------------------------------------------- /vendor/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013 Josh David Miller 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of 4 | this software and associated documentation files (the "Software"), to deal in 5 | the Software without restriction, including without limitation the rights to 6 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 7 | of the Software, and to permit persons to whom the Software is furnished to do 8 | so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | SOFTWARE. 20 | -------------------------------------------------------------------------------- /vendor/bootstrap/grunt/bs-raw-files-generator.js: -------------------------------------------------------------------------------- 1 | /* global btoa: true */ 2 | /*! 3 | * Bootstrap Grunt task for generating raw-files.min.js for the Customizer 4 | * http://getbootstrap.com 5 | * Copyright 2014 Twitter, Inc. 6 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 7 | */ 8 | 'use strict'; 9 | var btoa = require('btoa'); 10 | var fs = require('fs'); 11 | 12 | function getFiles(type) { 13 | var files = {}; 14 | fs.readdirSync(type) 15 | .filter(function (path) { 16 | return type === 'fonts' ? true : new RegExp('\\.' + type + '$').test(path); 17 | }) 18 | .forEach(function (path) { 19 | var fullPath = type + '/' + path; 20 | files[path] = (type === 'fonts' ? btoa(fs.readFileSync(fullPath)) : fs.readFileSync(fullPath, 'utf8')); 21 | }); 22 | return 'var __' + type + ' = ' + JSON.stringify(files) + '\n'; 23 | } 24 | 25 | module.exports = function generateRawFilesJs(banner) { 26 | if (!banner) { 27 | banner = ''; 28 | } 29 | var files = banner + getFiles('js') + getFiles('less') + getFiles('fonts'); 30 | fs.writeFileSync('docs/assets/js/raw-files.min.js', files); 31 | }; 32 | -------------------------------------------------------------------------------- /src/app/app.spec.js: -------------------------------------------------------------------------------- 1 | 2 | describe( 'MainCtrl', function() { 3 | // describe( 'isCurrentUrl', function() { 4 | // var MainCtrl, $location, $root, $scope, $http, $timeout, httpBackend; 5 | 6 | // // beforeEach( angular.module( 'Cimba' ) ); 7 | 8 | // beforeEach( inject( function( $controller, $rootScope, _$location_, $timeout, $http, $httpBackend ) { 9 | // $location = _$location_; 10 | // $root = $rootScope; 11 | // $scope = $rootScope.$new(); 12 | // httpBackend = $httpBackend; 13 | // MainCtrl = $controller( 'MainCtrl', { 14 | // $location: $location, 15 | // $scope: $scope, 16 | // $http: $http, 17 | // $timeout: $timeout 18 | // }); 19 | // // userID = "https://henchill.rww.io/profile/card#m3"; 20 | // // $scope.login(userID); 21 | // })); 22 | 23 | // it( 'should pass a dummy test', inject( function() { 24 | // expect( MainCtrl ).toBeTruthy(); 25 | // })); 26 | 27 | // it('should redirect to login page', inject(function($timeout) { 28 | // $scope.login(); 29 | // expect($location.$$path).toEqual('/login'); 30 | // })); 31 | //}); 32 | }); 33 | 34 | -------------------------------------------------------------------------------- /vendor/bootstrap/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2011-2014 Twitter, Inc 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /vendor/angular-ui-router/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License 2 | 3 | Copyright (c) 2014 The AngularUI Team, Karsten Sperling 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /vendor/jquery/MIT-LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright 2014 jQuery Foundation and other contributors 2 | http://jquery.com/ 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining 5 | a copy of this software and associated documentation files (the 6 | "Software"), to deal in the Software without restriction, including 7 | without limitation the rights to use, copy, modify, merge, publish, 8 | distribute, sublicense, and/or sell copies of the Software, and to 9 | permit persons to whom the Software is furnished to do so, subject to 10 | the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be 13 | included in all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 17 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 19 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 20 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 21 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 social-webarch 4 | Copyright (c) 2013 Josh David Miller 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy of 7 | this software and associated documentation files (the "Software"), to deal in 8 | the Software without restriction, including without limitation the rights to 9 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 10 | the Software, and to permit persons to whom the Software is furnished to do so, 11 | subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in all 14 | copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | SOFTWARE. 23 | -------------------------------------------------------------------------------- /src/app/find/search.tpl.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |
6 |

Find People

7 |
8 |

Search by name, email or WebID..

9 |
10 |
11 | 12 | 13 |
14 |
15 |
16 |
17 |
18 |

No WebID found at given location.

19 |
20 |
21 |
-------------------------------------------------------------------------------- /src/app/posts/posts.spec.js: -------------------------------------------------------------------------------- 1 | describe('posts section', function() { 2 | beforeEach(module('Cimba.posts')); 3 | 4 | var PostsCtrl, $location, $root, $scope, $http, $sce, httpBackend; 5 | 6 | var webid, _channel; 7 | beforeEach(inject(function($controller, _$location_, $http, $sce, $rootScope, $httpBackend) { 8 | $location = _$location_; 9 | $root = $rootScope; 10 | $scope = $rootScope.$new(); 11 | httpBackend = $httpBackend; 12 | PostsCtrl = $controller('PostsController', { 13 | $scope: $scope, 14 | $http: $http, 15 | $location: $location, 16 | $sce: $sce 17 | }); 18 | 19 | webid = '//henchill.rww.io/profile/card#me'; 20 | _channel = { 21 | uri: 'https://henchill.rww.io/storage/myfirstblog/ch1/', 22 | title: 'Channel1', 23 | owner: webid 24 | }; 25 | 26 | $scope.login('https:' + webid); 27 | 28 | })); 29 | /* 30 | it('should set the default channel', inject(function() { 31 | // expect($scope.defaultChannel).toBeUndefined(); 32 | 33 | var chUri = _channel.uri; 34 | 35 | $scope.users = { 36 | webid: { 37 | channels: { 38 | chUri: _channel 39 | } 40 | } 41 | }; 42 | $scope.setChannel(_channel.uri); 43 | expect($scope.defaultChannel).toBe(_channel); 44 | 45 | }));*/ 46 | }); -------------------------------------------------------------------------------- /vendor/jquery/src/event/alias.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "../event" 4 | ], function( jQuery ) { 5 | 6 | jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " + 7 | "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + 8 | "change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) { 9 | 10 | // Handle event binding 11 | jQuery.fn[ name ] = function( data, fn ) { 12 | return arguments.length > 0 ? 13 | this.on( name, null, data, fn ) : 14 | this.trigger( name ); 15 | }; 16 | }); 17 | 18 | jQuery.fn.extend({ 19 | hover: function( fnOver, fnOut ) { 20 | return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); 21 | }, 22 | 23 | bind: function( types, data, fn ) { 24 | return this.on( types, null, data, fn ); 25 | }, 26 | unbind: function( types, fn ) { 27 | return this.off( types, null, fn ); 28 | }, 29 | 30 | delegate: function( selector, types, data, fn ) { 31 | return this.on( types, selector, data, fn ); 32 | }, 33 | undelegate: function( selector, types, fn ) { 34 | // ( namespace ) or ( selector, types [, fn] ) 35 | return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn ); 36 | } 37 | }); 38 | 39 | }); 40 | -------------------------------------------------------------------------------- /vendor/bootstrap/grunt/shrinkwrap.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Grunt task for generating npm-shrinkwrap.canonical.json 3 | * http://getbootstrap.com 4 | * Copyright 2014 Twitter, Inc. 5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 6 | */ 7 | /* 8 | This Grunt task updates the npm-shrinkwrap.canonical.json file that's used as the key for Bootstrap's npm packages cache. 9 | This task should be run and the updated file should be committed whenever Bootstrap's dependencies change. 10 | */ 11 | 'use strict'; 12 | var canonicallyJsonStringify = require('canonical-json'); 13 | var NON_CANONICAL_FILE = 'npm-shrinkwrap.json'; 14 | var DEST_FILE = 'test-infra/npm-shrinkwrap.canonical.json'; 15 | 16 | 17 | function updateShrinkwrap(grunt) { 18 | // Assumption: Non-canonical shrinkwrap already generated by prerequisite Grunt task 19 | var shrinkwrapData = grunt.file.readJSON(NON_CANONICAL_FILE); 20 | grunt.log.writeln('Deleting ' + NON_CANONICAL_FILE.cyan + '...'); 21 | grunt.file.delete(NON_CANONICAL_FILE); 22 | // Output as Canonical JSON in correct location 23 | grunt.file.write(DEST_FILE, canonicallyJsonStringify(shrinkwrapData)); 24 | grunt.log.writeln('File ' + DEST_FILE.cyan + ' updated.'); 25 | } 26 | 27 | 28 | module.exports = updateShrinkwrap; 29 | -------------------------------------------------------------------------------- /vendor/bootstrap/less/bootstrap.less: -------------------------------------------------------------------------------- 1 | // Core variables and mixins 2 | @import "variables.less"; 3 | @import "mixins.less"; 4 | 5 | // Reset 6 | @import "normalize.less"; 7 | @import "print.less"; 8 | 9 | // Core CSS 10 | @import "scaffolding.less"; 11 | @import "type.less"; 12 | @import "code.less"; 13 | @import "grid.less"; 14 | @import "tables.less"; 15 | @import "forms.less"; 16 | @import "buttons.less"; 17 | 18 | // Components 19 | @import "component-animations.less"; 20 | @import "glyphicons.less"; 21 | @import "dropdowns.less"; 22 | @import "button-groups.less"; 23 | @import "input-groups.less"; 24 | @import "navs.less"; 25 | @import "navbar.less"; 26 | @import "breadcrumbs.less"; 27 | @import "pagination.less"; 28 | @import "pager.less"; 29 | @import "labels.less"; 30 | @import "badges.less"; 31 | @import "jumbotron.less"; 32 | @import "thumbnails.less"; 33 | @import "alerts.less"; 34 | @import "progress-bars.less"; 35 | @import "media.less"; 36 | @import "list-group.less"; 37 | @import "panels.less"; 38 | @import "wells.less"; 39 | @import "close.less"; 40 | 41 | // Components w/ JavaScript 42 | @import "modals.less"; 43 | @import "tooltip.less"; 44 | @import "popovers.less"; 45 | @import "carousel.less"; 46 | 47 | // Utility classes 48 | @import "utilities.less"; 49 | @import "responsive-utilities.less"; 50 | -------------------------------------------------------------------------------- /vendor/bootstrap/less/badges.less: -------------------------------------------------------------------------------- 1 | // 2 | // Badges 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base classes 7 | .badge { 8 | display: inline-block; 9 | min-width: 10px; 10 | padding: 3px 7px; 11 | font-size: @font-size-small; 12 | font-weight: @badge-font-weight; 13 | color: @badge-color; 14 | line-height: @badge-line-height; 15 | vertical-align: baseline; 16 | white-space: nowrap; 17 | text-align: center; 18 | background-color: @badge-bg; 19 | border-radius: @badge-border-radius; 20 | 21 | // Empty badges collapse automatically (not available in IE8) 22 | &:empty { 23 | display: none; 24 | } 25 | 26 | // Quick fix for badges in buttons 27 | .btn & { 28 | position: relative; 29 | top: -1px; 30 | } 31 | .btn-xs & { 32 | top: 0; 33 | padding: 1px 5px; 34 | } 35 | } 36 | 37 | // Hover state, but only for links 38 | a.badge { 39 | &:hover, 40 | &:focus { 41 | color: @badge-link-hover-color; 42 | text-decoration: none; 43 | cursor: pointer; 44 | } 45 | } 46 | 47 | // Account for counters in navs 48 | a.list-group-item.active > .badge, 49 | .nav-pills > .active > a > .badge { 50 | color: @badge-active-color; 51 | background-color: @badge-active-bg; 52 | } 53 | .nav-pills > li > a > .badge { 54 | margin-left: 3px; 55 | } 56 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "author": "Andrei Vlad Sambra", 3 | "name": "Cimba", 4 | "version": "2.0.0", 5 | "homepage": "https://github.com/linkeddata/cimba", 6 | "licenses": { 7 | "type": "MIT", 8 | "url": "https://raw.github.com/linkeddata/cimba/master/LICENSE" 9 | }, 10 | "bugs": "https://github.com/linkeddata/cimba/issues", 11 | "repository": { 12 | "type": "git", 13 | "url": "git@github.com:linkeddata/cimba.git" 14 | }, 15 | "dependencies": {}, 16 | "devDependencies": { 17 | "chai": "^1.9.1", 18 | "grunt": "~0.4.1", 19 | "grunt-bump": "0.0.6", 20 | "grunt-coffeelint": "~0.0.10", 21 | "grunt-contrib-clean": "^0.4.1", 22 | "grunt-contrib-coffee": "^0.7.0", 23 | "grunt-contrib-concat": "^0.3.0", 24 | "grunt-contrib-copy": "^0.4.1", 25 | "grunt-contrib-jshint": "^0.4.3", 26 | "grunt-contrib-less": "~0.11.0", 27 | "grunt-contrib-uglify": "^0.2.7", 28 | "grunt-contrib-watch": "^0.4.4", 29 | "grunt-conventional-changelog": "^0.1.2", 30 | "grunt-html2js": "^0.1.9", 31 | "grunt-karma": "^0.8.2", 32 | "grunt-ngmin": "0.0.2", 33 | "karma": "^0.12.9", 34 | "karma-chai": "^0.1.0", 35 | "karma-coffee-preprocessor": "^0.2.1", 36 | "karma-firefox-launcher": "^0.1.3", 37 | "karma-jasmine": "^0.1.5", 38 | "karma-mocha": "^0.1.3", 39 | "mocha": "^1.18.2" 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /vendor/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "author": "Andrei Vlad Sambra", 3 | "name": "Cimba", 4 | "version": "2.0.0", 5 | "homepage": "https://github.com/linkeddata/cimba", 6 | "licenses": { 7 | "type": "MIT", 8 | "url": "https://raw.github.com/linkeddata/cimba/master/LICENSE" 9 | }, 10 | "bugs": "https://github.com/linkeddata/cimba/issues", 11 | "repository": { 12 | "type": "git", 13 | "url": "git@github.com:linkeddata/cimba.git" 14 | }, 15 | "dependencies": {}, 16 | "devDependencies": { 17 | "chai": "^1.9.1", 18 | "grunt": "~0.4.1", 19 | "grunt-bump": "0.0.6", 20 | "grunt-coffeelint": "~0.0.10", 21 | "grunt-contrib-clean": "^0.4.1", 22 | "grunt-contrib-coffee": "^0.7.0", 23 | "grunt-contrib-concat": "^0.3.0", 24 | "grunt-contrib-copy": "^0.4.1", 25 | "grunt-contrib-jshint": "^0.4.3", 26 | "grunt-contrib-less": "~0.11.0", 27 | "grunt-contrib-uglify": "^0.2.7", 28 | "grunt-contrib-watch": "^0.4.4", 29 | "grunt-conventional-changelog": "^0.1.2", 30 | "grunt-html2js": "^0.1.9", 31 | "grunt-karma": "^0.8.2", 32 | "grunt-ngmin": "0.0.2", 33 | "karma": "^0.12.9", 34 | "karma-chai": "^0.1.0", 35 | "karma-coffee-preprocessor": "^0.2.1", 36 | "karma-firefox-launcher": "^0.1.3", 37 | "karma-jasmine": "^0.1.5", 38 | "karma-mocha": "^0.1.3", 39 | "mocha": "^1.18.2" 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /vendor/bootstrap/less/labels.less: -------------------------------------------------------------------------------- 1 | // 2 | // Labels 3 | // -------------------------------------------------- 4 | 5 | .label { 6 | display: inline; 7 | padding: .2em .6em .3em; 8 | font-size: 75%; 9 | font-weight: bold; 10 | line-height: 1; 11 | color: @label-color; 12 | text-align: center; 13 | white-space: nowrap; 14 | vertical-align: baseline; 15 | border-radius: .25em; 16 | 17 | // Add hover effects, but only for links 18 | &[href] { 19 | &:hover, 20 | &:focus { 21 | color: @label-link-hover-color; 22 | text-decoration: none; 23 | cursor: pointer; 24 | } 25 | } 26 | 27 | // Empty labels collapse automatically (not available in IE8) 28 | &:empty { 29 | display: none; 30 | } 31 | 32 | // Quick fix for labels in buttons 33 | .btn & { 34 | position: relative; 35 | top: -1px; 36 | } 37 | } 38 | 39 | // Colors 40 | // Contextual variations (linked labels get darker on :hover) 41 | 42 | .label-default { 43 | .label-variant(@label-default-bg); 44 | } 45 | 46 | .label-primary { 47 | .label-variant(@label-primary-bg); 48 | } 49 | 50 | .label-success { 51 | .label-variant(@label-success-bg); 52 | } 53 | 54 | .label-info { 55 | .label-variant(@label-info-bg); 56 | } 57 | 58 | .label-warning { 59 | .label-variant(@label-warning-bg); 60 | } 61 | 62 | .label-danger { 63 | .label-variant(@label-danger-bg); 64 | } 65 | -------------------------------------------------------------------------------- /vendor/bootstrap/grunt/bs-glyphicons-data-generator.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Grunt task for Glyphicons data generation 3 | * http://getbootstrap.com 4 | * Copyright 2014 Twitter, Inc. 5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 6 | */ 7 | 'use strict'; 8 | var fs = require('fs'); 9 | 10 | module.exports = function generateGlyphiconsData() { 11 | // Pass encoding, utf8, so `readFileSync` will return a string instead of a 12 | // buffer 13 | var glyphiconsFile = fs.readFileSync('less/glyphicons.less', 'utf8'); 14 | var glpyhiconsLines = glyphiconsFile.split('\n'); 15 | 16 | // Use any line that starts with ".glyphicon-" and capture the class name 17 | var iconClassName = /^\.(glyphicon-[^\s]+)/; 18 | var glyphiconsData = '# This file is generated via Grunt task. **Do not edit directly.**\n' + 19 | '# See the \'build-glyphicons-data\' task in Gruntfile.js.\n\n'; 20 | for (var i = 0, len = glpyhiconsLines.length; i < len; i++) { 21 | var match = glpyhiconsLines[i].match(iconClassName); 22 | 23 | if (match !== null) { 24 | glyphiconsData += '- ' + match[1] + '\n'; 25 | } 26 | } 27 | 28 | // Create the `_data` directory if it doesn't already exist 29 | if (!fs.existsSync('docs/_data')) { 30 | fs.mkdirSync('docs/_data'); 31 | } 32 | 33 | fs.writeFileSync('docs/_data/glyphicons.yml', glyphiconsData); 34 | }; 35 | -------------------------------------------------------------------------------- /vendor/jquery/src/core/access.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | // Multifunctional method to get and set values of a collection 6 | // The value/s can optionally be executed if it's a function 7 | var access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) { 8 | var i = 0, 9 | len = elems.length, 10 | bulk = key == null; 11 | 12 | // Sets many values 13 | if ( jQuery.type( key ) === "object" ) { 14 | chainable = true; 15 | for ( i in key ) { 16 | jQuery.access( elems, fn, i, key[i], true, emptyGet, raw ); 17 | } 18 | 19 | // Sets one value 20 | } else if ( value !== undefined ) { 21 | chainable = true; 22 | 23 | if ( !jQuery.isFunction( value ) ) { 24 | raw = true; 25 | } 26 | 27 | if ( bulk ) { 28 | // Bulk operations run against the entire set 29 | if ( raw ) { 30 | fn.call( elems, value ); 31 | fn = null; 32 | 33 | // ...except when executing function values 34 | } else { 35 | bulk = fn; 36 | fn = function( elem, key, value ) { 37 | return bulk.call( jQuery( elem ), value ); 38 | }; 39 | } 40 | } 41 | 42 | if ( fn ) { 43 | for ( ; i < len; i++ ) { 44 | fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) ); 45 | } 46 | } 47 | } 48 | 49 | return chainable ? 50 | elems : 51 | 52 | // Gets 53 | bulk ? 54 | fn.call( elems ) : 55 | len ? fn( elems[0], key ) : emptyGet; 56 | }; 57 | 58 | return access; 59 | 60 | }); 61 | -------------------------------------------------------------------------------- /tpl/channel-list.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | 5 | 6 | 7 |
8 |
9 | {{u.name}} (me) 10 | 11 | 12 |
13 |
14 |
15 |

16 | 17 | {{ch.title}} 18 |

19 |
20 |
-------------------------------------------------------------------------------- /vendor/jquery/src/ajax/script.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "../ajax" 4 | ], function( jQuery ) { 5 | 6 | // Install script dataType 7 | jQuery.ajaxSetup({ 8 | accepts: { 9 | script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" 10 | }, 11 | contents: { 12 | script: /(?:java|ecma)script/ 13 | }, 14 | converters: { 15 | "text script": function( text ) { 16 | jQuery.globalEval( text ); 17 | return text; 18 | } 19 | } 20 | }); 21 | 22 | // Handle cache's special case and crossDomain 23 | jQuery.ajaxPrefilter( "script", function( s ) { 24 | if ( s.cache === undefined ) { 25 | s.cache = false; 26 | } 27 | if ( s.crossDomain ) { 28 | s.type = "GET"; 29 | } 30 | }); 31 | 32 | // Bind script tag hack transport 33 | jQuery.ajaxTransport( "script", function( s ) { 34 | // This transport only deals with cross domain requests 35 | if ( s.crossDomain ) { 36 | var script, callback; 37 | return { 38 | send: function( _, complete ) { 39 | script = jQuery(" 19 | ``` 20 | 21 | ## Documentation 22 | 23 | Documentation is available on the 24 | [AngularJS docs site](http://docs.angularjs.org/). 25 | 26 | ## License 27 | 28 | The MIT License 29 | 30 | Copyright (c) 2010-2012 Google, Inc. http://angularjs.org 31 | 32 | Permission is hereby granted, free of charge, to any person obtaining a copy 33 | of this software and associated documentation files (the "Software"), to deal 34 | in the Software without restriction, including without limitation the rights 35 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 36 | copies of the Software, and to permit persons to whom the Software is 37 | furnished to do so, subject to the following conditions: 38 | 39 | The above copyright notice and this permission notice shall be included in 40 | all copies or substantial portions of the Software. 41 | 42 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 43 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 44 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 45 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 46 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 47 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 48 | THE SOFTWARE. 49 | -------------------------------------------------------------------------------- /vendor/jquery/src/wrap.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./core", 3 | "./core/init", 4 | "./traversing" // parent, contents 5 | ], function( jQuery ) { 6 | 7 | jQuery.fn.extend({ 8 | wrapAll: function( html ) { 9 | var wrap; 10 | 11 | if ( jQuery.isFunction( html ) ) { 12 | return this.each(function( i ) { 13 | jQuery( this ).wrapAll( html.call(this, i) ); 14 | }); 15 | } 16 | 17 | if ( this[ 0 ] ) { 18 | 19 | // The elements to wrap the target around 20 | wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); 21 | 22 | if ( this[ 0 ].parentNode ) { 23 | wrap.insertBefore( this[ 0 ] ); 24 | } 25 | 26 | wrap.map(function() { 27 | var elem = this; 28 | 29 | while ( elem.firstElementChild ) { 30 | elem = elem.firstElementChild; 31 | } 32 | 33 | return elem; 34 | }).append( this ); 35 | } 36 | 37 | return this; 38 | }, 39 | 40 | wrapInner: function( html ) { 41 | if ( jQuery.isFunction( html ) ) { 42 | return this.each(function( i ) { 43 | jQuery( this ).wrapInner( html.call(this, i) ); 44 | }); 45 | } 46 | 47 | return this.each(function() { 48 | var self = jQuery( this ), 49 | contents = self.contents(); 50 | 51 | if ( contents.length ) { 52 | contents.wrapAll( html ); 53 | 54 | } else { 55 | self.append( html ); 56 | } 57 | }); 58 | }, 59 | 60 | wrap: function( html ) { 61 | var isFunction = jQuery.isFunction( html ); 62 | 63 | return this.each(function( i ) { 64 | jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html ); 65 | }); 66 | }, 67 | 68 | unwrap: function() { 69 | return this.parent().each(function() { 70 | if ( !jQuery.nodeName( this, "body" ) ) { 71 | jQuery( this ).replaceWith( this.childNodes ); 72 | } 73 | }).end(); 74 | } 75 | }); 76 | 77 | return jQuery; 78 | }); 79 | -------------------------------------------------------------------------------- /src/README.md: -------------------------------------------------------------------------------- 1 | # The `src` Directory 2 | 3 | ## Overview 4 | 5 | The `src/` directory contains all code used in the application along with all 6 | tests of such code. 7 | 8 | ``` 9 | src/ 10 | |- app/ 11 | | |- about/ 12 | | |- home/ 13 | | |- app.js 14 | | |- app.spec.js 15 | |- assets/ 16 | |- common/ 17 | | |- plusOne/ 18 | |- less/ 19 | | |- main.less 20 | | |- variables.less 21 | |- index.html 22 | ``` 23 | 24 | - `src/app/` - application-specific code, i.e. code not likely to be reused in 25 | another application. [Read more »](app/README.md) 26 | - `src/assets/` - static files like fonts and images. 27 | [Read more »](assets/README.md) 28 | - `src/common/` - third-party libraries or components likely to be reused in 29 | another application. [Read more »](common/README.md) 30 | - `src/less/` - LESS CSS files. [Read more »](less/README.md) 31 | - `src/index.html` - this is the HTML document of the single-page application. 32 | See below. 33 | 34 | See each directory for a detailed explanation. 35 | 36 | ## `index.html` 37 | 38 | The `index.html` file is the HTML document of the single-page application (SPA) 39 | that should contain all markup that applies to everything in the app, such as 40 | the header and footer. It declares with `ngApp` that this is `ngBoilerplate`, 41 | specifies the main `AppCtrl` controller, and contains the `ngView` directive 42 | into which route templates are placed. 43 | 44 | Unlike any other HTML document (e.g. the templates), `index.html` is compiled as 45 | a Grunt template, so variables from `Gruntfile.js` and `package.json` can be 46 | referenced from within it. Changing `name` in `package.json` from 47 | "ng-boilerplate" will rename the resultant CSS and JavaScript placed in `build/`, 48 | so this HTML references them by variable for convenience. 49 | -------------------------------------------------------------------------------- /vendor/src/README.md: -------------------------------------------------------------------------------- 1 | # The `src` Directory 2 | 3 | ## Overview 4 | 5 | The `src/` directory contains all code used in the application along with all 6 | tests of such code. 7 | 8 | ``` 9 | src/ 10 | |- app/ 11 | | |- about/ 12 | | |- home/ 13 | | |- app.js 14 | | |- app.spec.js 15 | |- assets/ 16 | |- common/ 17 | | |- plusOne/ 18 | |- less/ 19 | | |- main.less 20 | | |- variables.less 21 | |- index.html 22 | ``` 23 | 24 | - `src/app/` - application-specific code, i.e. code not likely to be reused in 25 | another application. [Read more »](app/README.md) 26 | - `src/assets/` - static files like fonts and images. 27 | [Read more »](assets/README.md) 28 | - `src/common/` - third-party libraries or components likely to be reused in 29 | another application. [Read more »](common/README.md) 30 | - `src/less/` - LESS CSS files. [Read more »](less/README.md) 31 | - `src/index.html` - this is the HTML document of the single-page application. 32 | See below. 33 | 34 | See each directory for a detailed explanation. 35 | 36 | ## `index.html` 37 | 38 | The `index.html` file is the HTML document of the single-page application (SPA) 39 | that should contain all markup that applies to everything in the app, such as 40 | the header and footer. It declares with `ngApp` that this is `ngBoilerplate`, 41 | specifies the main `AppCtrl` controller, and contains the `ngView` directive 42 | into which route templates are placed. 43 | 44 | Unlike any other HTML document (e.g. the templates), `index.html` is compiled as 45 | a Grunt template, so variables from `Gruntfile.js` and `package.json` can be 46 | referenced from within it. Changing `name` in `package.json` from 47 | "ng-boilerplate" will rename the resultant CSS and JavaScript placed in `build/`, 48 | so this HTML references them by variable for convenience. 49 | -------------------------------------------------------------------------------- /src/app/login/login.spec.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Tests sit right alongside the file they are testing, which is more intuitive 3 | * and portable than separating `src` and `test` directories. Additionally, the 4 | * build process will exclude all `.spec.js` files from the build 5 | * automatically. 6 | */ 7 | describe('login section', function() { 8 | beforeEach(module('Cimba')); 9 | beforeEach(module("Cimba.login")); 10 | var LoginCtrl, $location, $root, $scope, $http, $sce, httpBackend; 11 | 12 | beforeEach(inject(function($controller, _$location_, $http, $sce, $rootScope, $httpBackend) { 13 | $location = _$location_; 14 | $root = $rootScope; 15 | $scope = $rootScope.$new(); 16 | httpBackend = $httpBackend; 17 | LoginCtrl = $controller('LoginCtrl', { 18 | $scope: $scope, 19 | $http: $http, 20 | $location: $location, 21 | $sce: $sce 22 | }); 23 | })); 24 | 25 | it('should pass a dummy test', inject(function() { 26 | expect(LoginCtrl).toBeTruthy(); 27 | })); 28 | 29 | it('should not have an empty signup widget link', inject(function() { 30 | expect($scope.signupWidget.length).not.toBeGreaterThan(0); 31 | })); 32 | 33 | // The test below fails because the factory for noticesData is not integrated 34 | it('should set the userProfile to the value of the WebID', inject(function() { 35 | var webid = '//deiu.rww.io/profile/card#me'; 36 | // AngularJS does not encode : anymore so we have to hack around it 37 | httpBackend.expectGET('http://api.webizen.org/v1/search?q='+'https:'+encodeURIComponent(webid)).respond(200, ''); 38 | 39 | $scope.login('https:'+webid); 40 | expect($scope.userProfile.webid).toEqual('https:'+webid); 41 | expect($location.$$path).toEqual('/home'); 42 | expect($scope.showLogin).toBeFalsy(); 43 | expect($root.loginSuccess).toBeTruthy(); 44 | httpBackend.flush(); 45 | })); 46 | 47 | }); -------------------------------------------------------------------------------- /vendor/bootstrap/test-infra/sauce_browsers.yml: -------------------------------------------------------------------------------- 1 | [ 2 | # Docs: https://saucelabs.com/docs/platforms/webdriver 3 | 4 | { 5 | browserName: "safari", 6 | platform: "OS X 10.9" 7 | }, 8 | # { 9 | # browserName: "googlechrome", 10 | # platform: "OS X 10.9", 11 | # version: "31" 12 | # }, 13 | { 14 | browserName: "firefox", 15 | platform: "OS X 10.9" 16 | }, 17 | 18 | # Mac Opera not currently supported by Sauce Labs 19 | 20 | { 21 | browserName: "internet explorer", 22 | version: "11", 23 | platform: "Windows 8.1" 24 | }, 25 | { 26 | browserName: "internet explorer", 27 | version: "10", 28 | platform: "Windows 8" 29 | }, 30 | # { 31 | # browserName: "internet explorer", 32 | # version: "9", 33 | # platform: "Windows 7" 34 | # }, 35 | # { 36 | # browserName: "internet explorer", 37 | # version: "8", 38 | # platform: "Windows 7" 39 | # }, 40 | 41 | # { # Unofficial 42 | # browserName: "internet explorer", 43 | # version: "7", 44 | # platform: "Windows XP" 45 | # }, 46 | 47 | { 48 | browserName: "googlechrome", 49 | platform: "Windows 8.1" 50 | }, 51 | { 52 | browserName: "firefox", 53 | platform: "Windows 8.1" 54 | }, 55 | 56 | # Win Opera 15+ not currently supported by Sauce Labs 57 | 58 | { 59 | browserName: "iphone", 60 | platform: "OS X 10.9", 61 | version: "7" 62 | }, 63 | 64 | # iOS Chrome not currently supported by Sauce Labs 65 | 66 | # Linux (unofficial) 67 | { 68 | browserName: "googlechrome", 69 | platform: "Linux" 70 | }, 71 | { 72 | browserName: "firefox", 73 | platform: "Linux" 74 | } 75 | 76 | # Android Chrome not currently supported by Sauce Labs 77 | 78 | # { # Android Browser (super-unofficial) 79 | # browserName: "android", 80 | # version: "4.0", 81 | # platform: "Linux" 82 | # } 83 | ] 84 | -------------------------------------------------------------------------------- /vendor/bootstrap/less/progress-bars.less: -------------------------------------------------------------------------------- 1 | // 2 | // Progress bars 3 | // -------------------------------------------------- 4 | 5 | 6 | // Bar animations 7 | // ------------------------- 8 | 9 | // WebKit 10 | @-webkit-keyframes progress-bar-stripes { 11 | from { background-position: 40px 0; } 12 | to { background-position: 0 0; } 13 | } 14 | 15 | // Spec and IE10+ 16 | @keyframes progress-bar-stripes { 17 | from { background-position: 40px 0; } 18 | to { background-position: 0 0; } 19 | } 20 | 21 | 22 | 23 | // Bar itself 24 | // ------------------------- 25 | 26 | // Outer container 27 | .progress { 28 | overflow: hidden; 29 | height: @line-height-computed; 30 | margin-bottom: @line-height-computed; 31 | background-color: @progress-bg; 32 | border-radius: @border-radius-base; 33 | .box-shadow(inset 0 1px 2px rgba(0,0,0,.1)); 34 | } 35 | 36 | // Bar of progress 37 | .progress-bar { 38 | float: left; 39 | width: 0%; 40 | height: 100%; 41 | font-size: @font-size-small; 42 | line-height: @line-height-computed; 43 | color: @progress-bar-color; 44 | text-align: center; 45 | background-color: @progress-bar-bg; 46 | .box-shadow(inset 0 -1px 0 rgba(0,0,0,.15)); 47 | .transition(width .6s ease); 48 | } 49 | 50 | // Striped bars 51 | .progress-striped .progress-bar { 52 | #gradient > .striped(); 53 | background-size: 40px 40px; 54 | } 55 | 56 | // Call animation for the active one 57 | .progress.active .progress-bar { 58 | .animation(progress-bar-stripes 2s linear infinite); 59 | } 60 | 61 | 62 | 63 | // Variations 64 | // ------------------------- 65 | 66 | .progress-bar-success { 67 | .progress-bar-variant(@progress-bar-success-bg); 68 | } 69 | 70 | .progress-bar-info { 71 | .progress-bar-variant(@progress-bar-info-bg); 72 | } 73 | 74 | .progress-bar-warning { 75 | .progress-bar-variant(@progress-bar-warning-bg); 76 | } 77 | 78 | .progress-bar-danger { 79 | .progress-bar-variant(@progress-bar-danger-bg); 80 | } 81 | -------------------------------------------------------------------------------- /vendor/jquery/src/dimensions.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./core", 3 | "./core/access", 4 | "./css" 5 | ], function( jQuery, access ) { 6 | 7 | // Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods 8 | jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { 9 | jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, function( defaultExtra, funcName ) { 10 | // margin is only for outerHeight, outerWidth 11 | jQuery.fn[ funcName ] = function( margin, value ) { 12 | var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ), 13 | extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" ); 14 | 15 | return access( this, function( elem, type, value ) { 16 | var doc; 17 | 18 | if ( jQuery.isWindow( elem ) ) { 19 | // As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there 20 | // isn't a whole lot we can do. See pull request at this URL for discussion: 21 | // https://github.com/jquery/jquery/pull/764 22 | return elem.document.documentElement[ "client" + name ]; 23 | } 24 | 25 | // Get document width or height 26 | if ( elem.nodeType === 9 ) { 27 | doc = elem.documentElement; 28 | 29 | // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], 30 | // whichever is greatest 31 | return Math.max( 32 | elem.body[ "scroll" + name ], doc[ "scroll" + name ], 33 | elem.body[ "offset" + name ], doc[ "offset" + name ], 34 | doc[ "client" + name ] 35 | ); 36 | } 37 | 38 | return value === undefined ? 39 | // Get width or height on the element, requesting but not forcing parseFloat 40 | jQuery.css( elem, type, extra ) : 41 | 42 | // Set width or height on the element 43 | jQuery.style( elem, type, value, extra ); 44 | }, type, chainable ? margin : undefined, chainable, null ); 45 | }; 46 | }); 47 | }); 48 | 49 | return jQuery; 50 | }); 51 | -------------------------------------------------------------------------------- /vendor/jquery/src/ajax/load.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "../core/parseHTML", 4 | "../ajax", 5 | "../traversing", 6 | "../manipulation", 7 | "../selector", 8 | // Optional event/alias dependency 9 | "../event/alias" 10 | ], function( jQuery ) { 11 | 12 | // Keep a copy of the old load method 13 | var _load = jQuery.fn.load; 14 | 15 | /** 16 | * Load a url into a page 17 | */ 18 | jQuery.fn.load = function( url, params, callback ) { 19 | if ( typeof url !== "string" && _load ) { 20 | return _load.apply( this, arguments ); 21 | } 22 | 23 | var selector, type, response, 24 | self = this, 25 | off = url.indexOf(" "); 26 | 27 | if ( off >= 0 ) { 28 | selector = jQuery.trim( url.slice( off ) ); 29 | url = url.slice( 0, off ); 30 | } 31 | 32 | // If it's a function 33 | if ( jQuery.isFunction( params ) ) { 34 | 35 | // We assume that it's the callback 36 | callback = params; 37 | params = undefined; 38 | 39 | // Otherwise, build a param string 40 | } else if ( params && typeof params === "object" ) { 41 | type = "POST"; 42 | } 43 | 44 | // If we have elements to modify, make the request 45 | if ( self.length > 0 ) { 46 | jQuery.ajax({ 47 | url: url, 48 | 49 | // if "type" variable is undefined, then "GET" method will be used 50 | type: type, 51 | dataType: "html", 52 | data: params 53 | }).done(function( responseText ) { 54 | 55 | // Save response for use in complete callback 56 | response = arguments; 57 | 58 | self.html( selector ? 59 | 60 | // If a selector was specified, locate the right elements in a dummy div 61 | // Exclude scripts to avoid IE 'Permission Denied' errors 62 | jQuery("
").append( jQuery.parseHTML( responseText ) ).find( selector ) : 63 | 64 | // Otherwise use the full result 65 | responseText ); 66 | 67 | }).complete( callback && function( jqXHR, status ) { 68 | self.each( callback, response || [ jqXHR.responseText, status, jqXHR ] ); 69 | }); 70 | } 71 | 72 | return this; 73 | }; 74 | 75 | }); 76 | -------------------------------------------------------------------------------- /karma/karma-unit.tpl.js: -------------------------------------------------------------------------------- 1 | module.exports = function ( karma ) { 2 | karma.set({ 3 | /** 4 | * From where to look for files, starting with the location of this file. 5 | */ 6 | basePath: '../', 7 | 8 | /** 9 | * This is the list of file patterns to load into the browser during testing. 10 | */ 11 | files: [ 12 | <% scripts.forEach( function ( file ) { %>'<%= file %>', 13 | <% }); %> 14 | 'src/**/*.js', 15 | 'src/**/*.coffee', 16 | ], 17 | exclude: [ 18 | 'src/assets/**/*.js' 19 | ], 20 | frameworks: [ 'jasmine' ], 21 | plugins: [ 'karma-jasmine', 'karma-firefox-launcher', 'karma-coffee-preprocessor' ], 22 | preprocessors: { 23 | '**/*.coffee': 'coffee', 24 | }, 25 | 26 | /** 27 | * How to report, by default. 28 | */ 29 | reporters: 'dots', 30 | 31 | /** 32 | * On which port should the browser connect, on which port is the test runner 33 | * operating, and what is the URL path for the browser to use. 34 | */ 35 | port: 9018, 36 | runnerPort: 9100, 37 | urlRoot: '/test/', 38 | 39 | /** 40 | * Disable file watching by default. 41 | */ 42 | autoWatch: true, 43 | 44 | /** 45 | * The list of browsers to launch to test on. This includes only "Firefox" by 46 | * default, but other browser names include: 47 | * Chrome, ChromeCanary, Firefox, Opera, Safari, PhantomJS 48 | * 49 | * Note that you can also use the executable name of the browser, like "chromium" 50 | * or "firefox", but that these vary based on your operating system. 51 | * 52 | * You may also leave this blank and manually navigate your browser to 53 | * http://localhost:9018/ when you're running tests. The window/tab can be left 54 | * open and the tests will automatically occur there during the build. This has 55 | * the aesthetic advantage of not launching a browser every time you save. 56 | */ 57 | browsers: [ 58 | 'Firefox' 59 | ] 60 | }); 61 | }; 62 | 63 | -------------------------------------------------------------------------------- /vendor/karma/karma-unit.tpl.js: -------------------------------------------------------------------------------- 1 | module.exports = function ( karma ) { 2 | karma.set({ 3 | /** 4 | * From where to look for files, starting with the location of this file. 5 | */ 6 | basePath: '../', 7 | 8 | /** 9 | * This is the list of file patterns to load into the browser during testing. 10 | */ 11 | files: [ 12 | <% scripts.forEach( function ( file ) { %>'<%= file %>', 13 | <% }); %> 14 | 'src/**/*.js', 15 | 'src/**/*.coffee', 16 | ], 17 | exclude: [ 18 | 'src/assets/**/*.js' 19 | ], 20 | frameworks: [ 'jasmine' ], 21 | plugins: [ 'karma-jasmine', 'karma-firefox-launcher', 'karma-coffee-preprocessor' ], 22 | preprocessors: { 23 | '**/*.coffee': 'coffee', 24 | }, 25 | 26 | /** 27 | * How to report, by default. 28 | */ 29 | reporters: 'dots', 30 | 31 | /** 32 | * On which port should the browser connect, on which port is the test runner 33 | * operating, and what is the URL path for the browser to use. 34 | */ 35 | port: 9018, 36 | runnerPort: 9100, 37 | urlRoot: '/test/', 38 | 39 | /** 40 | * Disable file watching by default. 41 | */ 42 | autoWatch: true, 43 | 44 | /** 45 | * The list of browsers to launch to test on. This includes only "Firefox" by 46 | * default, but other browser names include: 47 | * Chrome, ChromeCanary, Firefox, Opera, Safari, PhantomJS 48 | * 49 | * Note that you can also use the executable name of the browser, like "chromium" 50 | * or "firefox", but that these vary based on your operating system. 51 | * 52 | * You may also leave this blank and manually navigate your browser to 53 | * http://localhost:9018/ when you're running tests. The window/tab can be left 54 | * open and the tests will automatically occur there during the build. This has 55 | * the aesthetic advantage of not launching a browser every time you save. 56 | */ 57 | browsers: [ 58 | 'Firefox' 59 | ] 60 | }); 61 | }; 62 | 63 | -------------------------------------------------------------------------------- /vendor/bootstrap/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bootstrap", 3 | "description": "Sleek, intuitive, and powerful front-end framework for faster and easier web development.", 4 | "version": "3.1.1", 5 | "keywords": [ 6 | "bootstrap", 7 | "css" 8 | ], 9 | "homepage": "http://getbootstrap.com", 10 | "author": "Twitter, Inc.", 11 | "scripts": { 12 | "test": "grunt test" 13 | }, 14 | "style": "./dist/css/bootstrap.css", 15 | "less": "./less/bootstrap.less", 16 | "repository": { 17 | "type": "git", 18 | "url": "https://github.com/twbs/bootstrap.git" 19 | }, 20 | "bugs": { 21 | "url": "https://github.com/twbs/bootstrap/issues" 22 | }, 23 | "license": { 24 | "type": "MIT", 25 | "url": "https://github.com/twbs/bootstrap/blob/master/LICENSE" 26 | }, 27 | "devDependencies": { 28 | "btoa": "~1.1.1", 29 | "canonical-json": "~0.0.3", 30 | "grunt": "~0.4.2", 31 | "grunt-banner": "~0.2.0", 32 | "grunt-contrib-clean": "~0.5.0", 33 | "grunt-contrib-concat": "~0.3.0", 34 | "grunt-contrib-connect": "~0.6.0", 35 | "grunt-contrib-copy": "~0.5.0", 36 | "grunt-contrib-csslint": "~0.2.0", 37 | "grunt-contrib-cssmin": "~0.7.0", 38 | "grunt-contrib-jade": "~0.9.1", 39 | "grunt-contrib-jshint": "~0.8.0", 40 | "grunt-contrib-less": "~0.9.0", 41 | "grunt-contrib-qunit": "~0.4.0", 42 | "grunt-contrib-uglify": "~0.3.0", 43 | "grunt-contrib-watch": "~0.5.3", 44 | "grunt-csscomb": "~2.0.1", 45 | "grunt-exec": "0.4.3", 46 | "grunt-html-validation": "~0.1.13", 47 | "grunt-jekyll": "~0.4.1", 48 | "grunt-jscs-checker": "~0.3.0", 49 | "grunt-saucelabs": "~5.0.0", 50 | "grunt-sed": "~0.1.1", 51 | "load-grunt-tasks": "~0.3.0", 52 | "markdown": "~0.5.0" 53 | }, 54 | "jspm": { 55 | "main": "js/bootstrap", 56 | "directories": { 57 | "example": "examples", 58 | "lib": "dist" 59 | }, 60 | "shim": { 61 | "js/bootstrap": { 62 | "imports": "jquery", 63 | "exports": "$" 64 | } 65 | }, 66 | "buildConfig": { 67 | "uglify": true 68 | } 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /vendor/bootstrap/less/print.less: -------------------------------------------------------------------------------- 1 | // 2 | // Basic print styles 3 | // -------------------------------------------------- 4 | // Source: https://github.com/h5bp/html5-boilerplate/blob/master/css/main.css 5 | 6 | @media print { 7 | 8 | * { 9 | text-shadow: none !important; 10 | color: #000 !important; // Black prints faster: h5bp.com/s 11 | background: transparent !important; 12 | box-shadow: none !important; 13 | } 14 | 15 | a, 16 | a:visited { 17 | text-decoration: underline; 18 | } 19 | 20 | a[href]:after { 21 | content: " (" attr(href) ")"; 22 | } 23 | 24 | abbr[title]:after { 25 | content: " (" attr(title) ")"; 26 | } 27 | 28 | // Don't show links for images, or javascript/internal links 29 | a[href^="javascript:"]:after, 30 | a[href^="#"]:after { 31 | content: ""; 32 | } 33 | 34 | pre, 35 | blockquote { 36 | border: 1px solid #999; 37 | page-break-inside: avoid; 38 | } 39 | 40 | thead { 41 | display: table-header-group; // h5bp.com/t 42 | } 43 | 44 | tr, 45 | img { 46 | page-break-inside: avoid; 47 | } 48 | 49 | img { 50 | max-width: 100% !important; 51 | } 52 | 53 | p, 54 | h2, 55 | h3 { 56 | orphans: 3; 57 | widows: 3; 58 | } 59 | 60 | h2, 61 | h3 { 62 | page-break-after: avoid; 63 | } 64 | 65 | // Chrome (OSX) fix for https://github.com/twbs/bootstrap/issues/11245 66 | // Once fixed, we can just straight up remove this. 67 | select { 68 | background: #fff !important; 69 | } 70 | 71 | // Bootstrap components 72 | .navbar { 73 | display: none; 74 | } 75 | .table { 76 | td, 77 | th { 78 | background-color: #fff !important; 79 | } 80 | } 81 | .btn, 82 | .dropup > .btn { 83 | > .caret { 84 | border-top-color: #000 !important; 85 | } 86 | } 87 | .label { 88 | border: 1px solid #000; 89 | } 90 | 91 | .table { 92 | border-collapse: collapse !important; 93 | } 94 | .table-bordered { 95 | th, 96 | td { 97 | border: 1px solid #ddd !important; 98 | } 99 | } 100 | 101 | } 102 | -------------------------------------------------------------------------------- /vendor/jquery/src/css/defaultDisplay.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "../manipulation" // appendTo 4 | ], function( jQuery ) { 5 | 6 | var iframe, 7 | elemdisplay = {}; 8 | 9 | /** 10 | * Retrieve the actual display of a element 11 | * @param {String} name nodeName of the element 12 | * @param {Object} doc Document object 13 | */ 14 | // Called only from within defaultDisplay 15 | function actualDisplay( name, doc ) { 16 | var style, 17 | elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ), 18 | 19 | // getDefaultComputedStyle might be reliably used only on attached element 20 | display = window.getDefaultComputedStyle && ( style = window.getDefaultComputedStyle( elem[ 0 ] ) ) ? 21 | 22 | // Use of this method is a temporary fix (more like optmization) until something better comes along, 23 | // since it was removed from specification and supported only in FF 24 | style.display : jQuery.css( elem[ 0 ], "display" ); 25 | 26 | // We don't have any data stored on the element, 27 | // so use "detach" method as fast way to get rid of the element 28 | elem.detach(); 29 | 30 | return display; 31 | } 32 | 33 | /** 34 | * Try to determine the default display value of an element 35 | * @param {String} nodeName 36 | */ 37 | function defaultDisplay( nodeName ) { 38 | var doc = document, 39 | display = elemdisplay[ nodeName ]; 40 | 41 | if ( !display ) { 42 | display = actualDisplay( nodeName, doc ); 43 | 44 | // If the simple way fails, read from inside an iframe 45 | if ( display === "none" || !display ) { 46 | 47 | // Use the already-created iframe if possible 48 | iframe = (iframe || jQuery( "