Bruno

Initial commit - Base Yeowman angular project

  1 +{
  2 + "directory": "bower_components"
  3 +}
  1 +# EditorConfig helps developers define and maintain consistent
  2 +# coding styles between different editors and IDEs
  3 +# editorconfig.org
  4 +
  5 +root = true
  6 +
  7 +
  8 +[*]
  9 +
  10 +# Change these settings to your own preference
  11 +indent_style = space
  12 +indent_size = 2
  13 +
  14 +# We recommend you to keep these unchanged
  15 +end_of_line = lf
  16 +charset = utf-8
  17 +trim_trailing_whitespace = true
  18 +insert_final_newline = true
  19 +
  20 +[*.md]
  21 +trim_trailing_whitespace = false
  1 +* text=auto
  1 +/node_modules
  2 +/dist
  3 +/.tmp
  4 +/.sass-cache
  5 +/bower_components
  1 +{
  2 + "requireCamelCaseOrUpperCaseIdentifiers": true,
  3 + "requireCapitalizedConstructors": true,
  4 + "requireParenthesesAroundIIFE": true,
  5 + "validateQuoteMarks": "'"
  6 +}
  1 +{
  2 + "bitwise": true,
  3 + "browser": true,
  4 + "curly": true,
  5 + "eqeqeq": true,
  6 + "esnext": true,
  7 + "latedef": true,
  8 + "noarg": true,
  9 + "node": true,
  10 + "strict": true,
  11 + "undef": true,
  12 + "unused": true,
  13 + "globals": {
  14 + "angular": false
  15 + }
  16 +}
  1 +{
  2 + "generator-karma": {
  3 + "base-path": "../",
  4 + "frameworks": "jasmine",
  5 + "browsers": "PhantomJS",
  6 + "app-files": "app/scripts/**/*.js",
  7 + "files-comments": "bower:js,endbower",
  8 + "bower-components-path": "bower_components",
  9 + "test-files": "test/mock/**/*.js,test/spec/**/*.js"
  10 + }
  11 +}
  1 +// Generated on 2016-03-28 using generator-angular 0.15.1
  2 +'use strict';
  3 +
  4 +// # Globbing
  5 +// for performance reasons we're only matching one level down:
  6 +// 'test/spec/{,*/}*.js'
  7 +// use this if you want to recursively match all subfolders:
  8 +// 'test/spec/**/*.js'
  9 +
  10 +module.exports = function (grunt) {
  11 +
  12 + // Time how long tasks take. Can help when optimizing build times
  13 + require('time-grunt')(grunt);
  14 +
  15 + // Automatically load required Grunt tasks
  16 + require('jit-grunt')(grunt, {
  17 + useminPrepare: 'grunt-usemin',
  18 + ngtemplates: 'grunt-angular-templates',
  19 + cdnify: 'grunt-google-cdn'
  20 + });
  21 +
  22 + // Configurable paths for the application
  23 + var appConfig = {
  24 + app: require('./bower.json').appPath || 'app',
  25 + dist: 'dist'
  26 + };
  27 +
  28 + // Define the configuration for all the tasks
  29 + grunt.initConfig({
  30 +
  31 + // Project settings
  32 + yeoman: appConfig,
  33 +
  34 + // Watches files for changes and runs tasks based on the changed files
  35 + watch: {
  36 + bower: {
  37 + files: ['bower.json'],
  38 + tasks: ['wiredep']
  39 + },
  40 + js: {
  41 + files: ['<%= yeoman.app %>/scripts/{,*/}*.js'],
  42 + tasks: ['newer:jshint:all', 'newer:jscs:all'],
  43 + options: {
  44 + livereload: '<%= connect.options.livereload %>'
  45 + }
  46 + },
  47 + jsTest: {
  48 + files: ['test/spec/{,*/}*.js'],
  49 + tasks: ['newer:jshint:test', 'newer:jscs:test', 'karma']
  50 + },
  51 + compass: {
  52 + files: ['<%= yeoman.app %>/styles/{,*/}*.{scss,sass}'],
  53 + tasks: ['compass:server', 'postcss:server']
  54 + },
  55 + gruntfile: {
  56 + files: ['Gruntfile.js']
  57 + },
  58 + livereload: {
  59 + options: {
  60 + livereload: '<%= connect.options.livereload %>'
  61 + },
  62 + files: [
  63 + '<%= yeoman.app %>/{,*/}*.html',
  64 + '.tmp/styles/{,*/}*.css',
  65 + '<%= yeoman.app %>/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}'
  66 + ]
  67 + }
  68 + },
  69 +
  70 + // The actual grunt server settings
  71 + connect: {
  72 + options: {
  73 + port: 9000,
  74 + // Change this to '0.0.0.0' to access the server from outside.
  75 + hostname: 'localhost',
  76 + livereload: 35729
  77 + },
  78 + livereload: {
  79 + options: {
  80 + open: true,
  81 + middleware: function (connect) {
  82 + return [
  83 + connect.static('.tmp'),
  84 + connect().use(
  85 + '/bower_components',
  86 + connect.static('./bower_components')
  87 + ),
  88 + connect().use(
  89 + '/app/styles',
  90 + connect.static('./app/styles')
  91 + ),
  92 + connect.static(appConfig.app)
  93 + ];
  94 + }
  95 + }
  96 + },
  97 + test: {
  98 + options: {
  99 + port: 9001,
  100 + middleware: function (connect) {
  101 + return [
  102 + connect.static('.tmp'),
  103 + connect.static('test'),
  104 + connect().use(
  105 + '/bower_components',
  106 + connect.static('./bower_components')
  107 + ),
  108 + connect.static(appConfig.app)
  109 + ];
  110 + }
  111 + }
  112 + },
  113 + dist: {
  114 + options: {
  115 + open: true,
  116 + base: '<%= yeoman.dist %>'
  117 + }
  118 + }
  119 + },
  120 +
  121 + // Make sure there are no obvious mistakes
  122 + jshint: {
  123 + options: {
  124 + jshintrc: '.jshintrc',
  125 + reporter: require('jshint-stylish')
  126 + },
  127 + all: {
  128 + src: [
  129 + 'Gruntfile.js',
  130 + '<%= yeoman.app %>/scripts/{,*/}*.js'
  131 + ]
  132 + },
  133 + test: {
  134 + options: {
  135 + jshintrc: 'test/.jshintrc'
  136 + },
  137 + src: ['test/spec/{,*/}*.js']
  138 + }
  139 + },
  140 +
  141 + // Make sure code styles are up to par
  142 + jscs: {
  143 + options: {
  144 + config: '.jscsrc',
  145 + verbose: true
  146 + },
  147 + all: {
  148 + src: [
  149 + 'Gruntfile.js',
  150 + '<%= yeoman.app %>/scripts/{,*/}*.js'
  151 + ]
  152 + },
  153 + test: {
  154 + src: ['test/spec/{,*/}*.js']
  155 + }
  156 + },
  157 +
  158 + // Empties folders to start fresh
  159 + clean: {
  160 + dist: {
  161 + files: [{
  162 + dot: true,
  163 + src: [
  164 + '.tmp',
  165 + '<%= yeoman.dist %>/{,*/}*',
  166 + '!<%= yeoman.dist %>/.git{,*/}*'
  167 + ]
  168 + }]
  169 + },
  170 + server: '.tmp'
  171 + },
  172 +
  173 + // Add vendor prefixed styles
  174 + postcss: {
  175 + options: {
  176 + processors: [
  177 + require('autoprefixer-core')({browsers: ['last 1 version']})
  178 + ]
  179 + },
  180 + server: {
  181 + options: {
  182 + map: true
  183 + },
  184 + files: [{
  185 + expand: true,
  186 + cwd: '.tmp/styles/',
  187 + src: '{,*/}*.css',
  188 + dest: '.tmp/styles/'
  189 + }]
  190 + },
  191 + dist: {
  192 + files: [{
  193 + expand: true,
  194 + cwd: '.tmp/styles/',
  195 + src: '{,*/}*.css',
  196 + dest: '.tmp/styles/'
  197 + }]
  198 + }
  199 + },
  200 +
  201 + // Automatically inject Bower components into the app
  202 + wiredep: {
  203 + app: {
  204 + src: ['<%= yeoman.app %>/index.html'],
  205 + ignorePath: /\.\.\//
  206 + },
  207 + test: {
  208 + devDependencies: true,
  209 + src: '<%= karma.unit.configFile %>',
  210 + ignorePath: /\.\.\//,
  211 + fileTypes:{
  212 + js: {
  213 + block: /(([\s\t]*)\/{2}\s*?bower:\s*?(\S*))(\n|\r|.)*?(\/{2}\s*endbower)/gi,
  214 + detect: {
  215 + js: /'(.*\.js)'/gi
  216 + },
  217 + replace: {
  218 + js: '\'{{filePath}}\','
  219 + }
  220 + }
  221 + }
  222 + },
  223 + sass: {
  224 + src: ['<%= yeoman.app %>/styles/{,*/}*.{scss,sass}'],
  225 + ignorePath: /(\.\.\/){1,2}bower_components\//
  226 + }
  227 + },
  228 +
  229 + // Compiles Sass to CSS and generates necessary files if requested
  230 + compass: {
  231 + options: {
  232 + sassDir: '<%= yeoman.app %>/styles',
  233 + cssDir: '.tmp/styles',
  234 + generatedImagesDir: '.tmp/images/generated',
  235 + imagesDir: '<%= yeoman.app %>/images',
  236 + javascriptsDir: '<%= yeoman.app %>/scripts',
  237 + fontsDir: '<%= yeoman.app %>/styles/fonts',
  238 + importPath: './bower_components',
  239 + httpImagesPath: '/images',
  240 + httpGeneratedImagesPath: '/images/generated',
  241 + httpFontsPath: '/styles/fonts',
  242 + relativeAssets: false,
  243 + assetCacheBuster: false,
  244 + raw: 'Sass::Script::Number.precision = 10\n'
  245 + },
  246 + dist: {
  247 + options: {
  248 + generatedImagesDir: '<%= yeoman.dist %>/images/generated'
  249 + }
  250 + },
  251 + server: {
  252 + options: {
  253 + sourcemap: true
  254 + }
  255 + }
  256 + },
  257 +
  258 + // Renames files for browser caching purposes
  259 + filerev: {
  260 + dist: {
  261 + src: [
  262 + '<%= yeoman.dist %>/scripts/{,*/}*.js',
  263 + '<%= yeoman.dist %>/styles/{,*/}*.css',
  264 + '<%= yeoman.dist %>/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}',
  265 + '<%= yeoman.dist %>/styles/fonts/*'
  266 + ]
  267 + }
  268 + },
  269 +
  270 + // Reads HTML for usemin blocks to enable smart builds that automatically
  271 + // concat, minify and revision files. Creates configurations in memory so
  272 + // additional tasks can operate on them
  273 + useminPrepare: {
  274 + html: '<%= yeoman.app %>/index.html',
  275 + options: {
  276 + dest: '<%= yeoman.dist %>',
  277 + flow: {
  278 + html: {
  279 + steps: {
  280 + js: ['concat', 'uglifyjs'],
  281 + css: ['cssmin']
  282 + },
  283 + post: {}
  284 + }
  285 + }
  286 + }
  287 + },
  288 +
  289 + // Performs rewrites based on filerev and the useminPrepare configuration
  290 + usemin: {
  291 + html: ['<%= yeoman.dist %>/{,*/}*.html'],
  292 + css: ['<%= yeoman.dist %>/styles/{,*/}*.css'],
  293 + js: ['<%= yeoman.dist %>/scripts/{,*/}*.js'],
  294 + options: {
  295 + assetsDirs: [
  296 + '<%= yeoman.dist %>',
  297 + '<%= yeoman.dist %>/images',
  298 + '<%= yeoman.dist %>/styles'
  299 + ],
  300 + patterns: {
  301 + js: [[/(images\/[^''""]*\.(png|jpg|jpeg|gif|webp|svg))/g, 'Replacing references to images']]
  302 + }
  303 + }
  304 + },
  305 +
  306 + // The following *-min tasks will produce minified files in the dist folder
  307 + // By default, your `index.html`'s <!-- Usemin block --> will take care of
  308 + // minification. These next options are pre-configured if you do not wish
  309 + // to use the Usemin blocks.
  310 + // cssmin: {
  311 + // dist: {
  312 + // files: {
  313 + // '<%= yeoman.dist %>/styles/main.css': [
  314 + // '.tmp/styles/{,*/}*.css'
  315 + // ]
  316 + // }
  317 + // }
  318 + // },
  319 + // uglify: {
  320 + // dist: {
  321 + // files: {
  322 + // '<%= yeoman.dist %>/scripts/scripts.js': [
  323 + // '<%= yeoman.dist %>/scripts/scripts.js'
  324 + // ]
  325 + // }
  326 + // }
  327 + // },
  328 + // concat: {
  329 + // dist: {}
  330 + // },
  331 +
  332 + imagemin: {
  333 + dist: {
  334 + files: [{
  335 + expand: true,
  336 + cwd: '<%= yeoman.app %>/images',
  337 + src: '{,*/}*.{png,jpg,jpeg,gif}',
  338 + dest: '<%= yeoman.dist %>/images'
  339 + }]
  340 + }
  341 + },
  342 +
  343 + svgmin: {
  344 + dist: {
  345 + files: [{
  346 + expand: true,
  347 + cwd: '<%= yeoman.app %>/images',
  348 + src: '{,*/}*.svg',
  349 + dest: '<%= yeoman.dist %>/images'
  350 + }]
  351 + }
  352 + },
  353 +
  354 + htmlmin: {
  355 + dist: {
  356 + options: {
  357 + collapseWhitespace: true,
  358 + conservativeCollapse: true,
  359 + collapseBooleanAttributes: true,
  360 + removeCommentsFromCDATA: true
  361 + },
  362 + files: [{
  363 + expand: true,
  364 + cwd: '<%= yeoman.dist %>',
  365 + src: ['*.html'],
  366 + dest: '<%= yeoman.dist %>'
  367 + }]
  368 + }
  369 + },
  370 +
  371 + ngtemplates: {
  372 + dist: {
  373 + options: {
  374 + module: 'adminBuilderBoilerplateApp',
  375 + htmlmin: '<%= htmlmin.dist.options %>',
  376 + usemin: 'scripts/scripts.js'
  377 + },
  378 + cwd: '<%= yeoman.app %>',
  379 + src: 'views/{,*/}*.html',
  380 + dest: '.tmp/templateCache.js'
  381 + }
  382 + },
  383 +
  384 + // ng-annotate tries to make the code safe for minification automatically
  385 + // by using the Angular long form for dependency injection.
  386 + ngAnnotate: {
  387 + dist: {
  388 + files: [{
  389 + expand: true,
  390 + cwd: '.tmp/concat/scripts',
  391 + src: '*.js',
  392 + dest: '.tmp/concat/scripts'
  393 + }]
  394 + }
  395 + },
  396 +
  397 + // Replace Google CDN references
  398 + cdnify: {
  399 + dist: {
  400 + html: ['<%= yeoman.dist %>/*.html']
  401 + }
  402 + },
  403 +
  404 + // Copies remaining files to places other tasks can use
  405 + copy: {
  406 + dist: {
  407 + files: [{
  408 + expand: true,
  409 + dot: true,
  410 + cwd: '<%= yeoman.app %>',
  411 + dest: '<%= yeoman.dist %>',
  412 + src: [
  413 + '*.{ico,png,txt}',
  414 + '*.html',
  415 + 'images/{,*/}*.{webp}',
  416 + 'styles/fonts/{,*/}*.*'
  417 + ]
  418 + }, {
  419 + expand: true,
  420 + cwd: '.tmp/images',
  421 + dest: '<%= yeoman.dist %>/images',
  422 + src: ['generated/*']
  423 + }, {
  424 + expand: true,
  425 + cwd: '.',
  426 + src: 'bower_components/bootstrap-sass-official/assets/fonts/bootstrap/*',
  427 + dest: '<%= yeoman.dist %>'
  428 + }]
  429 + },
  430 + styles: {
  431 + expand: true,
  432 + cwd: '<%= yeoman.app %>/styles',
  433 + dest: '.tmp/styles/',
  434 + src: '{,*/}*.css'
  435 + }
  436 + },
  437 +
  438 + // Run some tasks in parallel to speed up the build process
  439 + concurrent: {
  440 + server: [
  441 + 'compass:server'
  442 + ],
  443 + test: [
  444 + 'compass'
  445 + ],
  446 + dist: [
  447 + 'compass:dist',
  448 + 'imagemin',
  449 + 'svgmin'
  450 + ]
  451 + },
  452 +
  453 + // Test settings
  454 + karma: {
  455 + unit: {
  456 + configFile: 'test/karma.conf.js',
  457 + singleRun: true
  458 + }
  459 + }
  460 + });
  461 +
  462 +
  463 + grunt.registerTask('serve', 'Compile then start a connect web server', function (target) {
  464 + if (target === 'dist') {
  465 + return grunt.task.run(['build', 'connect:dist:keepalive']);
  466 + }
  467 +
  468 + grunt.task.run([
  469 + 'clean:server',
  470 + 'wiredep',
  471 + 'concurrent:server',
  472 + 'postcss:server',
  473 + 'connect:livereload',
  474 + 'watch'
  475 + ]);
  476 + });
  477 +
  478 + grunt.registerTask('server', 'DEPRECATED TASK. Use the "serve" task instead', function (target) {
  479 + grunt.log.warn('The `server` task has been deprecated. Use `grunt serve` to start a server.');
  480 + grunt.task.run(['serve:' + target]);
  481 + });
  482 +
  483 + grunt.registerTask('test', [
  484 + 'clean:server',
  485 + 'wiredep',
  486 + 'concurrent:test',
  487 + 'postcss',
  488 + 'connect:test',
  489 + 'karma'
  490 + ]);
  491 +
  492 + grunt.registerTask('build', [
  493 + 'clean:dist',
  494 + 'wiredep',
  495 + 'useminPrepare',
  496 + 'concurrent:dist',
  497 + 'postcss',
  498 + 'ngtemplates',
  499 + 'concat',
  500 + 'ngAnnotate',
  501 + 'copy:dist',
  502 + 'cdnify',
  503 + 'cssmin',
  504 + 'uglify',
  505 + 'filerev',
  506 + 'usemin',
  507 + 'htmlmin'
  508 + ]);
  509 +
  510 + grunt.registerTask('default', [
  511 + 'newer:jshint',
  512 + 'newer:jscs',
  513 + 'test',
  514 + 'build'
  515 + ]);
  516 +};
  1 +# admin-builder-boilerplate
  2 +
  3 +This project is generated with [yo angular generator](https://github.com/yeoman/generator-angular)
  4 +version 0.15.1.
  5 +
  6 +## Build & development
  7 +
  8 +Run `grunt` for building and `grunt serve` for preview.
  9 +
  10 +## Testing
  11 +
  12 +Running `grunt test` will run the unit tests with karma.
  1 +<!doctype html>
  2 +<html lang="en">
  3 + <head>
  4 + <meta charset="utf-8">
  5 + <title>Page Not Found :(</title>
  6 + <style>
  7 + ::-moz-selection {
  8 + background: #b3d4fc;
  9 + text-shadow: none;
  10 + }
  11 +
  12 + ::selection {
  13 + background: #b3d4fc;
  14 + text-shadow: none;
  15 + }
  16 +
  17 + html {
  18 + padding: 30px 10px;
  19 + font-size: 20px;
  20 + line-height: 1.4;
  21 + color: #737373;
  22 + background: #f0f0f0;
  23 + -webkit-text-size-adjust: 100%;
  24 + -ms-text-size-adjust: 100%;
  25 + }
  26 +
  27 + html,
  28 + input {
  29 + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  30 + }
  31 +
  32 + body {
  33 + max-width: 500px;
  34 + padding: 30px 20px 50px;
  35 + border: 1px solid #b3b3b3;
  36 + border-radius: 4px;
  37 + margin: 0 auto;
  38 + box-shadow: 0 1px 10px #a7a7a7, inset 0 1px 0 #fff;
  39 + background: #fcfcfc;
  40 + }
  41 +
  42 + h1 {
  43 + margin: 0 10px;
  44 + font-size: 50px;
  45 + text-align: center;
  46 + }
  47 +
  48 + h1 span {
  49 + color: #bbb;
  50 + }
  51 +
  52 + h3 {
  53 + margin: 1.5em 0 0.5em;
  54 + }
  55 +
  56 + p {
  57 + margin: 1em 0;
  58 + }
  59 +
  60 + ul {
  61 + padding: 0 0 0 40px;
  62 + margin: 1em 0;
  63 + }
  64 +
  65 + .container {
  66 + max-width: 380px;
  67 + margin: 0 auto;
  68 + }
  69 +
  70 + /* google search */
  71 +
  72 + #goog-fixurl ul {
  73 + list-style: none;
  74 + padding: 0;
  75 + margin: 0;
  76 + }
  77 +
  78 + #goog-fixurl form {
  79 + margin: 0;
  80 + }
  81 +
  82 + #goog-wm-qt,
  83 + #goog-wm-sb {
  84 + border: 1px solid #bbb;
  85 + font-size: 16px;
  86 + line-height: normal;
  87 + vertical-align: top;
  88 + color: #444;
  89 + border-radius: 2px;
  90 + }
  91 +
  92 + #goog-wm-qt {
  93 + width: 220px;
  94 + height: 20px;
  95 + padding: 5px;
  96 + margin: 5px 10px 0 0;
  97 + box-shadow: inset 0 1px 1px #ccc;
  98 + }
  99 +
  100 + #goog-wm-sb {
  101 + display: inline-block;
  102 + height: 32px;
  103 + padding: 0 10px;
  104 + margin: 5px 0 0;
  105 + white-space: nowrap;
  106 + cursor: pointer;
  107 + background-color: #f5f5f5;
  108 + background-image: -webkit-linear-gradient(rgba(255,255,255,0), #f1f1f1);
  109 + background-image: -moz-linear-gradient(rgba(255,255,255,0), #f1f1f1);
  110 + background-image: -ms-linear-gradient(rgba(255,255,255,0), #f1f1f1);
  111 + background-image: -o-linear-gradient(rgba(255,255,255,0), #f1f1f1);
  112 + -webkit-appearance: none;
  113 + -moz-appearance: none;
  114 + appearance: none;
  115 + }
  116 +
  117 + #goog-wm-sb:hover,
  118 + #goog-wm-sb:focus {
  119 + border-color: #aaa;
  120 + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
  121 + background-color: #f8f8f8;
  122 + }
  123 +
  124 + #goog-wm-qt:hover,
  125 + #goog-wm-qt:focus {
  126 + border-color: #105cb6;
  127 + outline: 0;
  128 + color: #222;
  129 + }
  130 +
  131 + input::-moz-focus-inner {
  132 + padding: 0;
  133 + border: 0;
  134 + }
  135 + </style>
  136 + </head>
  137 + <body>
  138 + <div class="container">
  139 + <h1>Not found <span>:(</span></h1>
  140 + <p>Sorry, but the page you were trying to view does not exist.</p>
  141 + <p>It looks like this was the result of either:</p>
  142 + <ul>
  143 + <li>a mistyped address</li>
  144 + <li>an out-of-date link</li>
  145 + </ul>
  146 + <script>
  147 + var GOOG_FIXURL_LANG = (navigator.language || '').slice(0,2),GOOG_FIXURL_SITE = location.host;
  148 + </script>
  149 + <script src="//linkhelp.clients.google.com/tbproxy/lh/wm/fixurl.js"></script>
  150 + </div>
  151 + </body>
  152 +</html>
No preview for this file type
  1 +<!doctype html>
  2 +<html>
  3 + <head>
  4 + <meta charset="utf-8">
  5 + <title></title>
  6 + <meta name="description" content="">
  7 + <meta name="viewport" content="width=device-width">
  8 + <!-- Place favicon.ico and apple-touch-icon.png in the root directory -->
  9 + <!-- build:css(.) styles/vendor.css -->
  10 + <!-- bower:css -->
  11 + <!-- endbower -->
  12 + <!-- endbuild -->
  13 + <!-- build:css(.tmp) styles/main.css -->
  14 + <link rel="stylesheet" href="styles/main.css">
  15 + <!-- endbuild -->
  16 + </head>
  17 + <body ng-app="adminBuilderBoilerplateApp">
  18 + <!--[if lte IE 8]>
  19 + <p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p>
  20 + <![endif]-->
  21 +
  22 + <!-- Add your site or application content here -->
  23 + <div class="header">
  24 + <div class="navbar navbar-default" role="navigation">
  25 + <div class="container">
  26 + <div class="navbar-header">
  27 +
  28 + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#js-navbar-collapse">
  29 + <span class="sr-only">Toggle navigation</span>
  30 + <span class="icon-bar"></span>
  31 + <span class="icon-bar"></span>
  32 + <span class="icon-bar"></span>
  33 + </button>
  34 +
  35 + <a class="navbar-brand" href="#/">adminBuilderBoilerplate</a>
  36 + </div>
  37 +
  38 + <div class="collapse navbar-collapse" id="js-navbar-collapse">
  39 +
  40 + <ul class="nav navbar-nav">
  41 + <li class="active"><a href="#/">Home</a></li>
  42 + <li><a ng-href="#/about">About</a></li>
  43 + <li><a ng-href="#/">Contact</a></li>
  44 + </ul>
  45 + </div>
  46 + </div>
  47 + </div>
  48 + </div>
  49 +
  50 + <div class="container">
  51 + <div ng-view=""></div>
  52 + </div>
  53 +
  54 + <div class="footer">
  55 + <div class="container">
  56 + <p><span class="glyphicon glyphicon-heart"></span> from the Yeoman team</p>
  57 + </div>
  58 + </div>
  59 +
  60 +
  61 + <!-- Google Analytics: change UA-XXXXX-X to be your site's ID -->
  62 + <script>
  63 + !function(A,n,g,u,l,a,r){A.GoogleAnalyticsObject=l,A[l]=A[l]||function(){
  64 + (A[l].q=A[l].q||[]).push(arguments)},A[l].l=+new Date,a=n.createElement(g),
  65 + r=n.getElementsByTagName(g)[0],a.src=u,r.parentNode.insertBefore(a,r)
  66 + }(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
  67 +
  68 + ga('create', 'UA-XXXXX-X');
  69 + ga('send', 'pageview');
  70 + </script>
  71 +
  72 + <!-- build:js(.) scripts/vendor.js -->
  73 + <!-- bower:js -->
  74 + <script src="bower_components/jquery/dist/jquery.js"></script>
  75 + <script src="bower_components/angular/angular.js"></script>
  76 + <script src="bower_components/bootstrap-sass-official/assets/javascripts/bootstrap.js"></script>
  77 + <script src="bower_components/angular-animate/angular-animate.js"></script>
  78 + <script src="bower_components/angular-cookies/angular-cookies.js"></script>
  79 + <script src="bower_components/angular-resource/angular-resource.js"></script>
  80 + <script src="bower_components/angular-route/angular-route.js"></script>
  81 + <script src="bower_components/angular-sanitize/angular-sanitize.js"></script>
  82 + <script src="bower_components/angular-touch/angular-touch.js"></script>
  83 + <!-- endbower -->
  84 + <!-- endbuild -->
  85 +
  86 + <!-- build:js({.tmp,app}) scripts/scripts.js -->
  87 + <script src="scripts/app.js"></script>
  88 + <script src="scripts/controllers/main.js"></script>
  89 + <script src="scripts/controllers/about.js"></script>
  90 + <!-- endbuild -->
  91 +</body>
  92 +</html>
  1 +# robotstxt.org
  2 +
  3 +User-agent: *
  4 +Disallow:
  1 +'use strict';
  2 +
  3 +/**
  4 + * @ngdoc overview
  5 + * @name adminBuilderBoilerplateApp
  6 + * @description
  7 + * # adminBuilderBoilerplateApp
  8 + *
  9 + * Main module of the application.
  10 + */
  11 +angular
  12 + .module('adminBuilderBoilerplateApp', [
  13 + 'ngAnimate',
  14 + 'ngCookies',
  15 + 'ngResource',
  16 + 'ngRoute',
  17 + 'ngSanitize',
  18 + 'ngTouch'
  19 + ])
  20 + .config(function ($routeProvider) {
  21 + $routeProvider
  22 + .when('/', {
  23 + templateUrl: 'views/main.html',
  24 + controller: 'MainCtrl',
  25 + controllerAs: 'main'
  26 + })
  27 + .when('/about', {
  28 + templateUrl: 'views/about.html',
  29 + controller: 'AboutCtrl',
  30 + controllerAs: 'about'
  31 + })
  32 + .otherwise({
  33 + redirectTo: '/'
  34 + });
  35 + });
  1 +'use strict';
  2 +
  3 +/**
  4 + * @ngdoc function
  5 + * @name adminBuilderBoilerplateApp.controller:AboutCtrl
  6 + * @description
  7 + * # AboutCtrl
  8 + * Controller of the adminBuilderBoilerplateApp
  9 + */
  10 +angular.module('adminBuilderBoilerplateApp')
  11 + .controller('AboutCtrl', function () {
  12 + this.awesomeThings = [
  13 + 'HTML5 Boilerplate',
  14 + 'AngularJS',
  15 + 'Karma'
  16 + ];
  17 + });
  1 +'use strict';
  2 +
  3 +/**
  4 + * @ngdoc function
  5 + * @name adminBuilderBoilerplateApp.controller:MainCtrl
  6 + * @description
  7 + * # MainCtrl
  8 + * Controller of the adminBuilderBoilerplateApp
  9 + */
  10 +angular.module('adminBuilderBoilerplateApp')
  11 + .controller('MainCtrl', function () {
  12 + this.awesomeThings = [
  13 + 'HTML5 Boilerplate',
  14 + 'AngularJS',
  15 + 'Karma'
  16 + ];
  17 + });
  1 +$icon-font-path: "../bower_components/bootstrap-sass-official/assets/fonts/bootstrap/";
  2 +// bower:scss
  3 +@import "bootstrap-sass-official/assets/stylesheets/_bootstrap.scss";
  4 +// endbower
  5 +
  6 +.browsehappy {
  7 + margin: 0.2em 0;
  8 + background: #ccc;
  9 + color: #000;
  10 + padding: 0.2em 0;
  11 +}
  12 +
  13 +body {
  14 + padding: 0;
  15 +}
  16 +
  17 +/* Everything but the jumbotron gets side spacing for mobile first views */
  18 +.header,
  19 +.marketing,
  20 +.footer {
  21 + padding-left: 15px;
  22 + padding-right: 15px;
  23 +}
  24 +
  25 +/* Custom page header */
  26 +.header {
  27 + border-bottom: 1px solid #e5e5e5;
  28 + margin-bottom: 10px;
  29 +
  30 + /* Make the masthead heading the same height as the navigation */
  31 + h3 {
  32 + margin-top: 0;
  33 + margin-bottom: 0;
  34 + line-height: 40px;
  35 + padding-bottom: 19px;
  36 + }
  37 +}
  38 +
  39 +/* Custom page footer */
  40 +.footer {
  41 + padding-top: 19px;
  42 + color: #777;
  43 + border-top: 1px solid #e5e5e5;
  44 +}
  45 +
  46 +.container-narrow > hr {
  47 + margin: 30px 0;
  48 +}
  49 +
  50 +/* Main marketing message and sign up button */
  51 +.jumbotron {
  52 + text-align: center;
  53 + border-bottom: 1px solid #e5e5e5;
  54 +
  55 + .btn {
  56 + font-size: 21px;
  57 + padding: 14px 24px;
  58 + }
  59 +}
  60 +
  61 +/* Supporting marketing content */
  62 +.marketing {
  63 + margin: 40px 0;
  64 +
  65 + p + h4 {
  66 + margin-top: 28px;
  67 + }
  68 +}
  69 +
  70 +/* Responsive: Portrait tablets and up */
  71 +@media screen and (min-width: 768px) {
  72 + .container {
  73 + max-width: 730px;
  74 + }
  75 +
  76 + /* Remove the padding we set earlier */
  77 + .header,
  78 + .marketing,
  79 + .footer {
  80 + padding-left: 0;
  81 + padding-right: 0;
  82 + }
  83 + /* Space out the masthead */
  84 + .header {
  85 + margin-bottom: 30px;
  86 + }
  87 + /* Remove the bottom border on the jumbotron for visual effect */
  88 + .jumbotron {
  89 + border-bottom: 0;
  90 + }
  91 +}
  1 +<p>This is the about view.</p>
  1 +<div class="jumbotron">
  2 + <h1>'Allo, 'Allo!</h1>
  3 + <p class="lead">
  4 + <img src="images/yeoman.png" alt="I'm Yeoman"><br>
  5 + Always a pleasure scaffolding your apps.
  6 + </p>
  7 + <p><a class="btn btn-lg btn-success" ng-href="#/">Splendid!<span class="glyphicon glyphicon-ok"></span></a></p>
  8 +</div>
  9 +
  10 +<div class="row marketing">
  11 + <h4>HTML5 Boilerplate</h4>
  12 + <p>
  13 + HTML5 Boilerplate is a professional front-end template for building fast, robust, and adaptable web apps or sites.
  14 + </p>
  15 +
  16 + <h4>Angular</h4>
  17 + <p>
  18 + AngularJS is a toolset for building the framework most suited to your application development.
  19 + </p>
  20 +
  21 + <h4>Karma</h4>
  22 + <p>Spectacular Test Runner for JavaScript.</p>
  23 +</div>
  1 +{
  2 + "name": "admin-builder-boilerplate",
  3 + "version": "0.0.0",
  4 + "dependencies": {
  5 + "angular": "^1.4.0",
  6 + "bootstrap-sass-official": "^3.2.0",
  7 + "angular-animate": "^1.4.0",
  8 + "angular-cookies": "^1.4.0",
  9 + "angular-resource": "^1.4.0",
  10 + "angular-route": "^1.4.0",
  11 + "angular-sanitize": "^1.4.0",
  12 + "angular-touch": "^1.4.0"
  13 + },
  14 + "devDependencies": {
  15 + "angular-mocks": "^1.4.0"
  16 + },
  17 + "appPath": "app",
  18 + "moduleName": "adminBuilderBoilerplateApp",
  19 + "overrides": {
  20 + "bootstrap": {
  21 + "main": [
  22 + "less/bootstrap.less",
  23 + "dist/css/bootstrap.css",
  24 + "dist/js/bootstrap.js"
  25 + ]
  26 + }
  27 + }
  28 +}
  1 +{
  2 + "name": "adminbuilderboilerplate",
  3 + "private": true,
  4 + "devDependencies": {
  5 + "autoprefixer-core": "^5.2.1",
  6 + "grunt": "^0.4.5",
  7 + "grunt-angular-templates": "^0.5.7",
  8 + "grunt-concurrent": "^1.0.0",
  9 + "grunt-contrib-clean": "^0.6.0",
  10 + "grunt-contrib-compass": "^1.0.0",
  11 + "grunt-contrib-concat": "^0.5.0",
  12 + "grunt-contrib-connect": "^0.9.0",
  13 + "grunt-contrib-copy": "^0.7.0",
  14 + "grunt-contrib-cssmin": "^0.12.0",
  15 + "grunt-contrib-htmlmin": "^0.4.0",
  16 + "grunt-contrib-imagemin": "^1.0.0",
  17 + "grunt-contrib-jshint": "^0.11.0",
  18 + "grunt-contrib-uglify": "^0.7.0",
  19 + "grunt-contrib-watch": "^0.6.1",
  20 + "grunt-filerev": "^2.1.2",
  21 + "grunt-google-cdn": "^0.4.3",
  22 + "grunt-jscs": "^1.8.0",
  23 + "grunt-newer": "^1.1.0",
  24 + "grunt-ng-annotate": "^0.9.2",
  25 + "grunt-postcss": "^0.5.5",
  26 + "grunt-svgmin": "^2.0.0",
  27 + "grunt-usemin": "^3.0.0",
  28 + "grunt-wiredep": "^2.0.0",
  29 + "jit-grunt": "^0.9.1",
  30 + "time-grunt": "^1.0.0",
  31 + "jshint-stylish": "^1.0.0"
  32 + },
  33 + "engines": {
  34 + "node": ">=0.10.0"
  35 + }
  36 +}
  1 +{
  2 + "bitwise": true,
  3 + "browser": true,
  4 + "curly": true,
  5 + "eqeqeq": true,
  6 + "esnext": true,
  7 + "jasmine": true,
  8 + "latedef": true,
  9 + "noarg": true,
  10 + "node": true,
  11 + "strict": true,
  12 + "undef": true,
  13 + "unused": true,
  14 + "globals": {
  15 + "angular": false,
  16 + "inject": false
  17 + }
  18 +}
  1 +// Karma configuration
  2 +// Generated on 2016-03-28
  3 +
  4 +module.exports = function(config) {
  5 + 'use strict';
  6 +
  7 + config.set({
  8 + // enable / disable watching file and executing tests whenever any file changes
  9 + autoWatch: true,
  10 +
  11 + // base path, that will be used to resolve files and exclude
  12 + basePath: '../',
  13 +
  14 + // testing framework to use (jasmine/mocha/qunit/...)
  15 + // as well as any additional frameworks (requirejs/chai/sinon/...)
  16 + frameworks: [
  17 + 'jasmine'
  18 + ],
  19 +
  20 + // list of files / patterns to load in the browser
  21 + files: [
  22 + // bower:js
  23 + 'bower_components/jquery/dist/jquery.js',
  24 + 'bower_components/angular/angular.js',
  25 + 'bower_components/bootstrap-sass-official/assets/javascripts/bootstrap.js',
  26 + 'bower_components/angular-animate/angular-animate.js',
  27 + 'bower_components/angular-cookies/angular-cookies.js',
  28 + 'bower_components/angular-resource/angular-resource.js',
  29 + 'bower_components/angular-route/angular-route.js',
  30 + 'bower_components/angular-sanitize/angular-sanitize.js',
  31 + 'bower_components/angular-touch/angular-touch.js',
  32 + 'bower_components/angular-mocks/angular-mocks.js',
  33 + // endbower
  34 + 'app/scripts/**/*.js',
  35 + 'test/mock/**/*.js',
  36 + 'test/spec/**/*.js'
  37 + ],
  38 +
  39 + // list of files / patterns to exclude
  40 + exclude: [
  41 + ],
  42 +
  43 + // web server port
  44 + port: 8080,
  45 +
  46 + // Start these browsers, currently available:
  47 + // - Chrome
  48 + // - ChromeCanary
  49 + // - Firefox
  50 + // - Opera
  51 + // - Safari (only Mac)
  52 + // - PhantomJS
  53 + // - IE (only Windows)
  54 + browsers: [
  55 + 'PhantomJS'
  56 + ],
  57 +
  58 + // Which plugins to enable
  59 + plugins: [
  60 + 'karma-phantomjs-launcher',
  61 + 'karma-jasmine'
  62 + ],
  63 +
  64 + // Continuous Integration mode
  65 + // if true, it capture browsers, run tests and exit
  66 + singleRun: false,
  67 +
  68 + colors: true,
  69 +
  70 + // level of logging
  71 + // possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG
  72 + logLevel: config.LOG_INFO,
  73 +
  74 + // Uncomment the following lines if you are using grunt's server to run the tests
  75 + // proxies: {
  76 + // '/': 'http://localhost:9000/'
  77 + // },
  78 + // URL root prevent conflicts with the site root
  79 + // urlRoot: '_karma_'
  80 + });
  81 +};
  1 +'use strict';
  2 +
  3 +describe('Controller: AboutCtrl', function () {
  4 +
  5 + // load the controller's module
  6 + beforeEach(module('adminBuilderBoilerplateApp'));
  7 +
  8 + var AboutCtrl,
  9 + scope;
  10 +
  11 + // Initialize the controller and a mock scope
  12 + beforeEach(inject(function ($controller, $rootScope) {
  13 + scope = $rootScope.$new();
  14 + AboutCtrl = $controller('AboutCtrl', {
  15 + $scope: scope
  16 + // place here mocked dependencies
  17 + });
  18 + }));
  19 +
  20 + it('should attach a list of awesomeThings to the scope', function () {
  21 + expect(AboutCtrl.awesomeThings.length).toBe(3);
  22 + });
  23 +});
  1 +'use strict';
  2 +
  3 +describe('Controller: MainCtrl', function () {
  4 +
  5 + // load the controller's module
  6 + beforeEach(module('adminBuilderBoilerplateApp'));
  7 +
  8 + var MainCtrl,
  9 + scope;
  10 +
  11 + // Initialize the controller and a mock scope
  12 + beforeEach(inject(function ($controller, $rootScope) {
  13 + scope = $rootScope.$new();
  14 + MainCtrl = $controller('MainCtrl', {
  15 + $scope: scope
  16 + // place here mocked dependencies
  17 + });
  18 + }));
  19 +
  20 + it('should attach a list of awesomeThings to the scope', function () {
  21 + expect(MainCtrl.awesomeThings.length).toBe(3);
  22 + });
  23 +});