Repository: ambari
Updated Branches:
  refs/heads/trunk 76ad10f4a -> f3c8c2856


AMBARI-6466. Create UI skeleton. (onechiporenko)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/f3c8c285
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/f3c8c285
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/f3c8c285

Branch: refs/heads/trunk
Commit: f3c8c28562c6726733541b36b9a271d443aa0b16
Parents: 76ad10f
Author: Oleg Nechiporenko <onechipore...@apache.org>
Authored: Fri Jul 11 14:11:36 2014 +0300
Committer: Oleg Nechiporenko <onechipore...@apache.org>
Committed: Fri Jul 11 14:11:36 2014 +0300

----------------------------------------------------------------------
 .../views/jobs/src/main/resources/ui/.bowerrc   |   3 +
 .../jobs/src/main/resources/ui/.editorconfig    |  22 ++
 .../jobs/src/main/resources/ui/.gitattributes   |   1 +
 .../views/jobs/src/main/resources/ui/.gitignore |   8 +
 .../views/jobs/src/main/resources/ui/.jshintrc  |  24 ++
 .../jobs/src/main/resources/ui/Gruntfile.js     | 379 +++++++++++++++++++
 .../jobs/src/main/resources/ui/app/index.html   |  45 +++
 .../src/main/resources/ui/app/scripts/app.js    |  28 ++
 .../src/main/resources/ui/app/scripts/router.js |  21 +
 .../ui/app/scripts/routes/application_route.js  |  25 ++
 .../src/main/resources/ui/app/scripts/store.js  |  19 +
 .../src/main/resources/ui/app/styles/main.less  |  19 +
 .../resources/ui/app/templates/application.hbs  |  21 +
 .../main/resources/ui/app/templates/index.hbs   |  19 +
 .../views/jobs/src/main/resources/ui/bower.json |  15 +
 .../jobs/src/main/resources/ui/package.json     |  35 ++
 .../jobs/src/main/resources/ui/test/.bowerrc    |   3 +
 .../jobs/src/main/resources/ui/test/bower.json  |   9 +
 .../jobs/src/main/resources/ui/test/index.html  |  27 ++
 .../src/main/resources/ui/test/spec/test.js     |  29 ++
 20 files changed, 752 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/f3c8c285/contrib/views/jobs/src/main/resources/ui/.bowerrc
----------------------------------------------------------------------
diff --git a/contrib/views/jobs/src/main/resources/ui/.bowerrc 
b/contrib/views/jobs/src/main/resources/ui/.bowerrc
new file mode 100644
index 0000000..ba0accc
--- /dev/null
+++ b/contrib/views/jobs/src/main/resources/ui/.bowerrc
@@ -0,0 +1,3 @@
+{
+    "directory": "app/bower_components"
+}

http://git-wip-us.apache.org/repos/asf/ambari/blob/f3c8c285/contrib/views/jobs/src/main/resources/ui/.editorconfig
----------------------------------------------------------------------
diff --git a/contrib/views/jobs/src/main/resources/ui/.editorconfig 
b/contrib/views/jobs/src/main/resources/ui/.editorconfig
new file mode 100644
index 0000000..d087eda
--- /dev/null
+++ b/contrib/views/jobs/src/main/resources/ui/.editorconfig
@@ -0,0 +1,22 @@
+# EditorConfig helps developers define and maintain consistent
+# EditorConfig helps developers define and maintain consistent
+# coding styles between different editors and IDEs
+# editorconfig.org
+
+root = true
+
+
+[*]
+
+# Change these settings to your own preference
+indent_style = space
+indent_size = 4
+
+# We recommend you to keep these unchanged
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+
+[*.md]
+trim_trailing_whitespace = false

http://git-wip-us.apache.org/repos/asf/ambari/blob/f3c8c285/contrib/views/jobs/src/main/resources/ui/.gitattributes
----------------------------------------------------------------------
diff --git a/contrib/views/jobs/src/main/resources/ui/.gitattributes 
b/contrib/views/jobs/src/main/resources/ui/.gitattributes
new file mode 100644
index 0000000..2125666
--- /dev/null
+++ b/contrib/views/jobs/src/main/resources/ui/.gitattributes
@@ -0,0 +1 @@
+* text=auto
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/f3c8c285/contrib/views/jobs/src/main/resources/ui/.gitignore
----------------------------------------------------------------------
diff --git a/contrib/views/jobs/src/main/resources/ui/.gitignore 
b/contrib/views/jobs/src/main/resources/ui/.gitignore
new file mode 100644
index 0000000..503a8a9
--- /dev/null
+++ b/contrib/views/jobs/src/main/resources/ui/.gitignore
@@ -0,0 +1,8 @@
+node_modules
+temp
+dist
+.sass-cache
+.tmp
+app/bower_components
+test/bower_components
+.editorconfig
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/f3c8c285/contrib/views/jobs/src/main/resources/ui/.jshintrc
----------------------------------------------------------------------
diff --git a/contrib/views/jobs/src/main/resources/ui/.jshintrc 
b/contrib/views/jobs/src/main/resources/ui/.jshintrc
new file mode 100644
index 0000000..780790d
--- /dev/null
+++ b/contrib/views/jobs/src/main/resources/ui/.jshintrc
@@ -0,0 +1,24 @@
+{
+    "node": true,
+    "browser": true,
+    "esnext": true,
+    "bitwise": false,
+    "curly": false,
+    "eqeqeq": true,
+    "eqnull": true,
+    "immed": true,
+    "latedef": true,
+    "newcap": true,
+    "noarg": true,
+    "undef": true,
+    "strict": false,
+    "trailing": false,
+    "smarttabs": true,
+    "globals": {
+        "App": true,
+        "jQuery": true,
+        "Ember": true,
+        "Handlebars": true,
+        "DS": true
+    }
+}

http://git-wip-us.apache.org/repos/asf/ambari/blob/f3c8c285/contrib/views/jobs/src/main/resources/ui/Gruntfile.js
----------------------------------------------------------------------
diff --git a/contrib/views/jobs/src/main/resources/ui/Gruntfile.js 
b/contrib/views/jobs/src/main/resources/ui/Gruntfile.js
new file mode 100644
index 0000000..5ebf75d
--- /dev/null
+++ b/contrib/views/jobs/src/main/resources/ui/Gruntfile.js
@@ -0,0 +1,379 @@
+// Generated on 2014-06-24 using generator-ember 0.8.4
+'use strict';
+var LIVERELOAD_PORT = 35729;
+var lrSnippet = require('connect-livereload')({port: LIVERELOAD_PORT});
+var mountFolder = function (connect, dir) {
+  return connect.static(require('path').resolve(dir));
+};
+
+// # Globbing
+// for performance reasons we're only matching one level down:
+// 'test/spec/{,*/}*.js'
+// use this if you want to match all subfolders:
+// 'test/spec/**/*.js'
+
+module.exports = function (grunt) {
+  // show elapsed time at the end
+  require('time-grunt')(grunt);
+  // load all grunt tasks
+  require('load-grunt-tasks')(grunt);
+
+  // configurable paths
+  var yeomanConfig = {
+    app: 'app',
+    dist: 'dist'
+  };
+
+  grunt.initConfig({
+    yeoman: yeomanConfig,
+    watch: {
+      emberTemplates: {
+        files: '<%= yeoman.app %>/templates/**/*.hbs',
+        tasks: ['emberTemplates']
+      },
+      neuter: {
+        files: ['<%= yeoman.app %>/scripts/{,*/}*.js'],
+        tasks: ['neuter']
+      },
+      less: {
+        files: '<%= yeoman.app %>/styles/**/*.less',
+        tasks: ['less:development']
+      },
+      livereload: {
+        options: {
+          livereload: LIVERELOAD_PORT
+        },
+        files: [
+          '.tmp/scripts/*.js',
+          '<%= yeoman.app %>/*.html',
+          '{.tmp,<%= yeoman.app %>}/styles/{,*/}*.css',
+          '<%= yeoman.app %>/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}'
+        ]
+      }
+    },
+    connect: {
+      options: {
+        port: 9000,
+        // change this to '0.0.0.0' to access the server from outside
+        hostname: 'localhost'
+      },
+      livereload: {
+        options: {
+          middleware: function (connect) {
+            return [
+              lrSnippet,
+              mountFolder(connect, '.tmp'),
+              mountFolder(connect, yeomanConfig.app)
+            ];
+          }
+        }
+      },
+      test: {
+        options: {
+          middleware: function (connect) {
+            return [
+              mountFolder(connect, 'test'),
+              mountFolder(connect, '.tmp')
+            ];
+          }
+        }
+      },
+      dist: {
+        options: {
+          middleware: function (connect) {
+            return [
+              mountFolder(connect, yeomanConfig.dist)
+            ];
+          }
+        }
+      }
+    },
+    open: {
+      server: {
+        path: 'http://localhost:<%= connect.options.port %>'
+      }
+    },
+    clean: {
+      dist: {
+        files: [
+          {
+            dot: true,
+            src: [
+              '.tmp',
+              '<%= yeoman.dist %>/*',
+              '!<%= yeoman.dist %>/.git*'
+            ]
+          }
+        ]
+      },
+      server: '.tmp'
+    },
+    jshint: {
+      options: {
+        jshintrc: '.jshintrc',
+        reporter: require('jshint-stylish')
+      },
+      all: [
+        'Gruntfile.js',
+        '<%= yeoman.app %>/scripts/{,*/}*.js',
+        '!<%= yeoman.app %>/scripts/vendor/*',
+        'test/spec/{,*/}*.js'
+      ]
+    },
+    mocha: {
+      all: {
+        options: {
+          run: true,
+          urls: ['http://localhost:<%= connect.options.port %>/index.html']
+        }
+      }
+    },
+    // not used since Uglify task does concat,
+    // but still available if needed
+    /*concat: {
+     dist: {}
+     },*/
+    // not enabled since usemin task does concat and uglify
+    // check index.html to edit your build targets
+    // enable this task if you prefer defining your build targets here
+    /*uglify: {
+     dist: {}
+     },*/
+    rev: {
+      dist: {
+        files: {
+          src: [
+            '<%= yeoman.dist %>/scripts/{,*/}*.js',
+            '<%= yeoman.dist %>/styles/{,*/}*.css',
+            '<%= yeoman.dist %>/images/{,*/}*.{png,jpg,jpeg,gif,webp}',
+            '<%= yeoman.dist %>/styles/fonts/*'
+          ]
+        }
+      }
+    },
+    useminPrepare: {
+      html: '.tmp/index.html',
+      options: {
+        dest: '<%= yeoman.dist %>'
+      }
+    },
+    usemin: {
+      html: ['<%= yeoman.dist %>/{,*/}*.html'],
+      css: ['<%= yeoman.dist %>/styles/{,*/}*.css'],
+      options: {
+        dirs: ['<%= yeoman.dist %>']
+      }
+    },
+    imagemin: {
+      dist: {
+        files: [
+          {
+            expand: true,
+            cwd: '<%= yeoman.app %>/images',
+            src: '{,*/}*.{png,jpg,jpeg}',
+            dest: '<%= yeoman.dist %>/images'
+          }
+        ]
+      }
+    },
+    svgmin: {
+      dist: {
+        files: [
+          {
+            expand: true,
+            cwd: '<%= yeoman.app %>/images',
+            src: '{,*/}*.svg',
+            dest: '<%= yeoman.dist %>/images'
+          }
+        ]
+      }
+    },
+    cssmin: {
+      dist: {
+        files: {
+          '<%= yeoman.dist %>/styles/main.css': [
+            '.tmp/styles/{,*/}*.css',
+            '<%= yeoman.app %>/styles/{,*/}*.css'
+          ]
+        }
+      }
+    },
+    htmlmin: {
+      dist: {
+        options: {
+          /*removeCommentsFromCDATA: true,
+           // https://github.com/yeoman/grunt-usemin/issues/44
+           //collapseWhitespace: true,
+           collapseBooleanAttributes: true,
+           removeAttributeQuotes: true,
+           removeRedundantAttributes: true,
+           useShortDoctype: true,
+           removeEmptyAttributes: true,
+           removeOptionalTags: true*/
+        },
+        files: [
+          {
+            expand: true,
+            cwd: '<%= yeoman.app %>',
+            src: '*.html',
+            dest: '<%= yeoman.dist %>'
+          }
+        ]
+      }
+    },
+    replace: {
+      app: {
+        options: {
+          variables: {
+            ember: 'bower_components/ember/ember.js',
+            ember_data: 'bower_components/ember-data/ember-data.js'
+          }
+        },
+        files: [
+          {src: '<%= yeoman.app %>/index.html', dest: '.tmp/index.html'}
+        ]
+      },
+      dist: {
+        options: {
+          variables: {
+            ember: 'bower_components/ember/ember.prod.js',
+            ember_data: 'bower_components/ember-data/ember-data.prod.js'
+          }
+        },
+        files: [
+          {src: '<%= yeoman.app %>/index.html', dest: '.tmp/index.html'}
+        ]
+      }
+    },
+    // Put files not handled in other tasks here
+    copy: {
+      dist: {
+        files: [
+          {
+            expand: true,
+            dot: true,
+            cwd: '<%= yeoman.app %>',
+            dest: '<%= yeoman.dist %>',
+            src: [
+              '*.{ico,txt,php}',
+              '.htaccess',
+              'images/{,*/}*.{webp,gif}',
+              'styles/fonts/*'
+            ]
+          }
+        ]
+      }
+    },
+    concurrent: {
+      server: [
+        'emberTemplates'
+      ],
+      test: [
+        'emberTemplates'
+      ],
+      dist: [
+        'emberTemplates',
+        'imagemin',
+        'svgmin',
+        'htmlmin'
+      ]
+    },
+    emberTemplates: {
+      options: {
+        templateName: function (sourceFile) {
+          var templatePath = yeomanConfig.app + '/templates/';
+          return sourceFile.replace(templatePath, '');
+        }
+      },
+      dist: {
+        files: {
+          '.tmp/scripts/compiled-templates.js': '<%= yeoman.app 
%>/templates/**/*.hbs'
+        }
+      }
+    },
+
+    less: {
+      development: {
+        options: {
+          paths: ["<%= yeoman.app %>/styles"]
+        },
+        files: {
+          ".tmp/styles/styles.css": "<%= yeoman.app %>/styles/**/*.less"
+        }
+      },
+      production: {
+        options: {
+          paths: ["<%= yeoman.app %>/styles"],
+          cleancss: true
+        },
+        files: {
+          ".tmp/styles/styles.css": "<%= yeoman.app %>/styles/**/*.less"
+        }
+      }
+    },
+
+    neuter: {
+      app: {
+        options: {
+          filepathTransform: function (filepath) {
+            return yeomanConfig.app + '/' + filepath;
+          }
+        },
+        src: '<%= yeoman.app %>/scripts/app.js',
+        dest: '.tmp/scripts/combined-scripts.js'
+      }
+    }
+  });
+
+  grunt.registerTask('server', function (target) {
+    grunt.log.warn('The `server` task has been deprecated. Use `grunt serve` 
to start a server.');
+    grunt.task.run(['serve:' + target]);
+  });
+
+  grunt.registerTask('serve', function (target) {
+    if (target === 'dist') {
+      return grunt.task.run(['build', 'open', 'connect:dist:keepalive']);
+    }
+
+    grunt.task.run([
+      'clean:server',
+      'replace:app',
+      'concurrent:server',
+      'neuter:app',
+      'less:development',
+      'connect:livereload',
+      'open',
+      'watch'
+    ]);
+  });
+
+  grunt.registerTask('test', [
+    'clean:server',
+    'replace:app',
+    'concurrent:test',
+    'connect:test',
+    'neuter:app',
+    'mocha'
+  ]);
+
+  grunt.registerTask('build', [
+    'clean:dist',
+    'replace:app',
+    'useminPrepare',
+    'concurrent:dist',
+    'neuter:app',
+    'less:production',
+    'concat',
+    'cssmin',
+    //'uglify',
+    'copy',
+    //'rev',
+    'usemin'
+  ]);
+
+  grunt.registerTask('default', [
+    'jshint',
+    'test',
+    'build'
+  ]);
+};
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/f3c8c285/contrib/views/jobs/src/main/resources/ui/app/index.html
----------------------------------------------------------------------
diff --git a/contrib/views/jobs/src/main/resources/ui/app/index.html 
b/contrib/views/jobs/src/main/resources/ui/app/index.html
new file mode 100644
index 0000000..850126e
--- /dev/null
+++ b/contrib/views/jobs/src/main/resources/ui/app/index.html
@@ -0,0 +1,45 @@
+<!--
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+-->
+
+<!doctype html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <title>Jobs</title>
+
+    <!-- build:css styles/main.css -->
+    <!-- endbuild -->
+  </head>
+  <body>
+    <!-- build:js(app) scripts/components.js -->
+    <script src="bower_components/jquery/dist/jquery.js"></script>
+    <script src="bower_components/handlebars/handlebars.runtime.js"></script>
+    <script src="@@ember"></script>
+    <script src="@@ember_data"></script>
+    <script 
src="bower_components/ember-json-mapper/ember-json-mapper.js"></script>
+    <!-- endbuild -->
+
+    <!-- build:js(.tmp) scripts/templates.js -->
+    <script src="scripts/compiled-templates.js"></script>
+    <!-- endbuild -->
+
+    <!-- build:js(.tmp) scripts/main.js -->
+    <script src="scripts/combined-scripts.js"></script>
+    <!-- endbuild -->
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/ambari/blob/f3c8c285/contrib/views/jobs/src/main/resources/ui/app/scripts/app.js
----------------------------------------------------------------------
diff --git a/contrib/views/jobs/src/main/resources/ui/app/scripts/app.js 
b/contrib/views/jobs/src/main/resources/ui/app/scripts/app.js
new file mode 100644
index 0000000..4b83e74
--- /dev/null
+++ b/contrib/views/jobs/src/main/resources/ui/app/scripts/app.js
@@ -0,0 +1,28 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+var App = window.App = Ember.Application.create();
+
+/* Order and include as you please. */
+require('scripts/controllers/*');
+require('scripts/store');
+require('scripts/models/*');
+require('scripts/routes/*');
+require('scripts/components/*');
+require('scripts/views/*');
+require('scripts/router');

http://git-wip-us.apache.org/repos/asf/ambari/blob/f3c8c285/contrib/views/jobs/src/main/resources/ui/app/scripts/router.js
----------------------------------------------------------------------
diff --git a/contrib/views/jobs/src/main/resources/ui/app/scripts/router.js 
b/contrib/views/jobs/src/main/resources/ui/app/scripts/router.js
new file mode 100644
index 0000000..15bd8dc
--- /dev/null
+++ b/contrib/views/jobs/src/main/resources/ui/app/scripts/router.js
@@ -0,0 +1,21 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+App.Router.map(function () {
+  // Add your routes here
+});

http://git-wip-us.apache.org/repos/asf/ambari/blob/f3c8c285/contrib/views/jobs/src/main/resources/ui/app/scripts/routes/application_route.js
----------------------------------------------------------------------
diff --git 
a/contrib/views/jobs/src/main/resources/ui/app/scripts/routes/application_route.js
 
b/contrib/views/jobs/src/main/resources/ui/app/scripts/routes/application_route.js
new file mode 100644
index 0000000..f6b9ec1
--- /dev/null
+++ 
b/contrib/views/jobs/src/main/resources/ui/app/scripts/routes/application_route.js
@@ -0,0 +1,25 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+App.ApplicationRoute = Ember.Route.extend({
+  // admittedly, this should be in IndexRoute and not in the
+  // top level ApplicationRoute; we're in transition... :-)
+  model: function () {
+    return ['red', 'yellow', 'blue'];
+  }
+});

http://git-wip-us.apache.org/repos/asf/ambari/blob/f3c8c285/contrib/views/jobs/src/main/resources/ui/app/scripts/store.js
----------------------------------------------------------------------
diff --git a/contrib/views/jobs/src/main/resources/ui/app/scripts/store.js 
b/contrib/views/jobs/src/main/resources/ui/app/scripts/store.js
new file mode 100644
index 0000000..de7154b
--- /dev/null
+++ b/contrib/views/jobs/src/main/resources/ui/app/scripts/store.js
@@ -0,0 +1,19 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+App.ApplicationAdapter = DS.FixtureAdapter;

http://git-wip-us.apache.org/repos/asf/ambari/blob/f3c8c285/contrib/views/jobs/src/main/resources/ui/app/styles/main.less
----------------------------------------------------------------------
diff --git a/contrib/views/jobs/src/main/resources/ui/app/styles/main.less 
b/contrib/views/jobs/src/main/resources/ui/app/styles/main.less
new file mode 100644
index 0000000..c1997c2
--- /dev/null
+++ b/contrib/views/jobs/src/main/resources/ui/app/styles/main.less
@@ -0,0 +1,19 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+@import '../../app/bower_components/bootstrap/less/bootstrap';
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/f3c8c285/contrib/views/jobs/src/main/resources/ui/app/templates/application.hbs
----------------------------------------------------------------------
diff --git 
a/contrib/views/jobs/src/main/resources/ui/app/templates/application.hbs 
b/contrib/views/jobs/src/main/resources/ui/app/templates/application.hbs
new file mode 100644
index 0000000..1a0b52e
--- /dev/null
+++ b/contrib/views/jobs/src/main/resources/ui/app/templates/application.hbs
@@ -0,0 +1,21 @@
+{{!
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+}}
+
+<div class="container">
+  {{outlet}}
+</div>

http://git-wip-us.apache.org/repos/asf/ambari/blob/f3c8c285/contrib/views/jobs/src/main/resources/ui/app/templates/index.hbs
----------------------------------------------------------------------
diff --git a/contrib/views/jobs/src/main/resources/ui/app/templates/index.hbs 
b/contrib/views/jobs/src/main/resources/ui/app/templates/index.hbs
new file mode 100644
index 0000000..7470eef
--- /dev/null
+++ b/contrib/views/jobs/src/main/resources/ui/app/templates/index.hbs
@@ -0,0 +1,19 @@
+{{!
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+}}
+
+Jobs will be here

http://git-wip-us.apache.org/repos/asf/ambari/blob/f3c8c285/contrib/views/jobs/src/main/resources/ui/bower.json
----------------------------------------------------------------------
diff --git a/contrib/views/jobs/src/main/resources/ui/bower.json 
b/contrib/views/jobs/src/main/resources/ui/bower.json
new file mode 100644
index 0000000..0619e51
--- /dev/null
+++ b/contrib/views/jobs/src/main/resources/ui/bower.json
@@ -0,0 +1,15 @@
+{
+  "name": "jobs-ui",
+  "version": "0.0.1",
+  "dependencies": {
+    "ember": "1.5.0",
+    "handlebars": "1.2.1",
+    "ember-data": "1.0.0-beta.7",
+    "bootstrap": ">3.0",
+    "ember-addons.bs_for_ember": ">=0.7",
+    "ember-json-mapper": "master"
+  },
+  "devDependencies": {
+    "ember-mocha-adapter": "0.1.2"
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/f3c8c285/contrib/views/jobs/src/main/resources/ui/package.json
----------------------------------------------------------------------
diff --git a/contrib/views/jobs/src/main/resources/ui/package.json 
b/contrib/views/jobs/src/main/resources/ui/package.json
new file mode 100644
index 0000000..aeac669
--- /dev/null
+++ b/contrib/views/jobs/src/main/resources/ui/package.json
@@ -0,0 +1,35 @@
+{
+  "name": "jobs-ui",
+  "version": "0.0.1",
+  "dependencies": {},
+  "devDependencies": {
+    "grunt": "~0.4.1",
+    "grunt-contrib-copy": "~0.4.1",
+    "grunt-contrib-concat": "~0.3.0",
+    "grunt-contrib-uglify": "~0.2.0",
+    "grunt-contrib-jshint": "~0.6.3",
+    "grunt-contrib-cssmin": "~0.6.0",
+    "grunt-contrib-connect": "~0.3.0",
+    "grunt-contrib-clean": "~0.5.0",
+    "grunt-contrib-htmlmin": "~0.1.3",
+    "grunt-contrib-imagemin": "~0.2.0",
+    "grunt-contrib-watch": "~0.5.2",
+    "grunt-rev": "~0.1.0",
+    "grunt-usemin": "~0.1.12",
+    "grunt-mocha": "~0.4.1",
+    "grunt-open": "~0.2.0",
+    "grunt-svgmin": "~0.2.0",
+    "grunt-concurrent": "~0.3.0",
+    "load-grunt-tasks": "~0.1.0",
+    "connect-livereload": "~0.2.0",
+    "grunt-ember-templates": "0.4.14",
+    "time-grunt": "~0.1.1",
+    "grunt-replace": "~0.4.4",
+    "jshint-stylish": "~0.1.3",
+    "grunt-neuter": "~0.6.0",
+    "grunt-contrib-less": "~0.11"
+  },
+  "engines": {
+    "node": ">=0.8.0"
+  }
+}

http://git-wip-us.apache.org/repos/asf/ambari/blob/f3c8c285/contrib/views/jobs/src/main/resources/ui/test/.bowerrc
----------------------------------------------------------------------
diff --git a/contrib/views/jobs/src/main/resources/ui/test/.bowerrc 
b/contrib/views/jobs/src/main/resources/ui/test/.bowerrc
new file mode 100644
index 0000000..44491d3
--- /dev/null
+++ b/contrib/views/jobs/src/main/resources/ui/test/.bowerrc
@@ -0,0 +1,3 @@
+{
+    "directory": "bower_components"
+}

http://git-wip-us.apache.org/repos/asf/ambari/blob/f3c8c285/contrib/views/jobs/src/main/resources/ui/test/bower.json
----------------------------------------------------------------------
diff --git a/contrib/views/jobs/src/main/resources/ui/test/bower.json 
b/contrib/views/jobs/src/main/resources/ui/test/bower.json
new file mode 100644
index 0000000..5453ee2
--- /dev/null
+++ b/contrib/views/jobs/src/main/resources/ui/test/bower.json
@@ -0,0 +1,9 @@
+{
+  "name": "ui",
+  "private": true,
+  "dependencies": {
+    "chai": "~1.8.0",
+    "mocha": "~1.14.0"
+  },
+  "devDependencies": {}
+}

http://git-wip-us.apache.org/repos/asf/ambari/blob/f3c8c285/contrib/views/jobs/src/main/resources/ui/test/index.html
----------------------------------------------------------------------
diff --git a/contrib/views/jobs/src/main/resources/ui/test/index.html 
b/contrib/views/jobs/src/main/resources/ui/test/index.html
new file mode 100644
index 0000000..bbc83a2
--- /dev/null
+++ b/contrib/views/jobs/src/main/resources/ui/test/index.html
@@ -0,0 +1,27 @@
+<!doctype html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <title>Mocha Spec Runner</title>
+    <link rel="stylesheet" href="bower_components/mocha/mocha.css">
+  </head>
+  <body>
+    <div id="mocha"></div>
+    <script src="bower_components/mocha/mocha.js"></script>
+    <script>mocha.setup('bdd')</script>
+    <script src="bower_components/chai/chai.js"></script>
+    <script>
+      var assert = chai.assert;
+      var expect = chai.expect;
+      var should = chai.should();
+    </script>
+
+    <!-- include source files here... -->
+
+    <!-- include spec files here... -->
+    <script src="spec/test.js"></script>
+
+    <script>mocha.run()</script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/ambari/blob/f3c8c285/contrib/views/jobs/src/main/resources/ui/test/spec/test.js
----------------------------------------------------------------------
diff --git a/contrib/views/jobs/src/main/resources/ui/test/spec/test.js 
b/contrib/views/jobs/src/main/resources/ui/test/spec/test.js
new file mode 100644
index 0000000..8a8c550
--- /dev/null
+++ b/contrib/views/jobs/src/main/resources/ui/test/spec/test.js
@@ -0,0 +1,29 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+(function () {
+  'use strict';
+
+  describe('Give it some context', function () {
+    describe('maybe a bit more context here', function () {
+      it('should run here few assertions', function () {
+        expect(true).to.be.ok;
+      });
+    });
+  });
+})();

Reply via email to