mirror of
https://github.com/spring-projects/spring-petclinic.git
synced 2025-07-18 13:35:50 +00:00
First commit for Yo generated app
This commit is contained in:
parent
84667fb202
commit
9fa1907bc7
18 changed files with 759 additions and 0 deletions
3
assets/petclinic/.bowerrc
Normal file
3
assets/petclinic/.bowerrc
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"directory": "bower_components"
|
||||||
|
}
|
21
assets/petclinic/.editorconfig
Normal file
21
assets/petclinic/.editorconfig
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
# 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 = 2
|
||||||
|
|
||||||
|
# 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
|
1
assets/petclinic/.gitattributes
vendored
Normal file
1
assets/petclinic/.gitattributes
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
* text=auto
|
5
assets/petclinic/.gitignore
vendored
Normal file
5
assets/petclinic/.gitignore
vendored
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
node_modules
|
||||||
|
dist
|
||||||
|
.tmp
|
||||||
|
.sass-cache
|
||||||
|
bower_components
|
21
assets/petclinic/.jshintrc
Normal file
21
assets/petclinic/.jshintrc
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"node": true,
|
||||||
|
"browser": true,
|
||||||
|
"esnext": true,
|
||||||
|
"bitwise": true,
|
||||||
|
"camelcase": true,
|
||||||
|
"curly": true,
|
||||||
|
"eqeqeq": true,
|
||||||
|
"immed": true,
|
||||||
|
"indent": 2,
|
||||||
|
"latedef": true,
|
||||||
|
"newcap": true,
|
||||||
|
"noarg": true,
|
||||||
|
"quotmark": "single",
|
||||||
|
"undef": true,
|
||||||
|
"unused": true,
|
||||||
|
"strict": true,
|
||||||
|
"trailing": true,
|
||||||
|
"smarttabs": true,
|
||||||
|
"jquery": true
|
||||||
|
}
|
3
assets/petclinic/.yo-rc.json
Normal file
3
assets/petclinic/.yo-rc.json
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"generator-mocha": {}
|
||||||
|
}
|
426
assets/petclinic/Gruntfile.js
Normal file
426
assets/petclinic/Gruntfile.js
Normal file
|
@ -0,0 +1,426 @@
|
||||||
|
// Generated on 2015-01-19 using
|
||||||
|
// generator-webapp 0.5.1
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
// # Globbing
|
||||||
|
// for performance reasons we're only matching one level down:
|
||||||
|
// 'test/spec/{,*/}*.js'
|
||||||
|
// If you want to recursively match all subfolders, use:
|
||||||
|
// 'test/spec/**/*.js'
|
||||||
|
|
||||||
|
module.exports = function (grunt) {
|
||||||
|
|
||||||
|
// Time how long tasks take. Can help when optimizing build times
|
||||||
|
require('time-grunt')(grunt);
|
||||||
|
|
||||||
|
// Load grunt tasks automatically
|
||||||
|
require('load-grunt-tasks')(grunt);
|
||||||
|
|
||||||
|
// Configurable paths
|
||||||
|
var config = {
|
||||||
|
app: 'app',
|
||||||
|
dist: 'dist'
|
||||||
|
};
|
||||||
|
|
||||||
|
// Define the configuration for all the tasks
|
||||||
|
grunt.initConfig({
|
||||||
|
|
||||||
|
// Project settings
|
||||||
|
config: config,
|
||||||
|
|
||||||
|
// Watches files for changes and runs tasks based on the changed files
|
||||||
|
watch: {
|
||||||
|
bower: {
|
||||||
|
files: ['bower.json'],
|
||||||
|
tasks: ['wiredep']
|
||||||
|
},
|
||||||
|
js: {
|
||||||
|
files: ['<%= config.app %>/scripts/{,*/}*.js'],
|
||||||
|
tasks: ['jshint'],
|
||||||
|
options: {
|
||||||
|
livereload: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
jstest: {
|
||||||
|
files: ['test/spec/{,*/}*.js'],
|
||||||
|
tasks: ['test:watch']
|
||||||
|
},
|
||||||
|
gruntfile: {
|
||||||
|
files: ['Gruntfile.js']
|
||||||
|
},
|
||||||
|
sass: {
|
||||||
|
files: ['<%= config.app %>/styles/{,*/}*.{scss,sass}'],
|
||||||
|
tasks: ['sass:server', 'autoprefixer']
|
||||||
|
},
|
||||||
|
styles: {
|
||||||
|
files: ['<%= config.app %>/styles/{,*/}*.css'],
|
||||||
|
tasks: ['newer:copy:styles', 'autoprefixer']
|
||||||
|
},
|
||||||
|
livereload: {
|
||||||
|
options: {
|
||||||
|
livereload: '<%= connect.options.livereload %>'
|
||||||
|
},
|
||||||
|
files: [
|
||||||
|
'<%= config.app %>/{,*/}*.html',
|
||||||
|
'.tmp/styles/{,*/}*.css',
|
||||||
|
'<%= config.app %>/images/{,*/}*'
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// The actual grunt server settings
|
||||||
|
connect: {
|
||||||
|
options: {
|
||||||
|
port: 9000,
|
||||||
|
open: true,
|
||||||
|
livereload: 35729,
|
||||||
|
// Change this to '0.0.0.0' to access the server from outside
|
||||||
|
hostname: 'localhost'
|
||||||
|
},
|
||||||
|
livereload: {
|
||||||
|
options: {
|
||||||
|
middleware: function(connect) {
|
||||||
|
return [
|
||||||
|
connect.static('.tmp'),
|
||||||
|
connect().use('/bower_components', connect.static('./bower_components')),
|
||||||
|
connect.static(config.app)
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
test: {
|
||||||
|
options: {
|
||||||
|
open: false,
|
||||||
|
port: 9001,
|
||||||
|
middleware: function(connect) {
|
||||||
|
return [
|
||||||
|
connect.static('.tmp'),
|
||||||
|
connect.static('test'),
|
||||||
|
connect().use('/bower_components', connect.static('./bower_components')),
|
||||||
|
connect.static(config.app)
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
dist: {
|
||||||
|
options: {
|
||||||
|
base: '<%= config.dist %>',
|
||||||
|
livereload: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// Empties folders to start fresh
|
||||||
|
clean: {
|
||||||
|
dist: {
|
||||||
|
files: [{
|
||||||
|
dot: true,
|
||||||
|
src: [
|
||||||
|
'.tmp',
|
||||||
|
'<%= config.dist %>/*',
|
||||||
|
'!<%= config.dist %>/.git*'
|
||||||
|
]
|
||||||
|
}]
|
||||||
|
},
|
||||||
|
server: '.tmp'
|
||||||
|
},
|
||||||
|
|
||||||
|
// Make sure code styles are up to par and there are no obvious mistakes
|
||||||
|
jshint: {
|
||||||
|
options: {
|
||||||
|
jshintrc: '.jshintrc',
|
||||||
|
reporter: require('jshint-stylish')
|
||||||
|
},
|
||||||
|
all: [
|
||||||
|
'Gruntfile.js',
|
||||||
|
'<%= config.app %>/scripts/{,*/}*.js',
|
||||||
|
'!<%= config.app %>/scripts/vendor/*',
|
||||||
|
'test/spec/{,*/}*.js'
|
||||||
|
]
|
||||||
|
},
|
||||||
|
|
||||||
|
// Mocha testing framework configuration options
|
||||||
|
mocha: {
|
||||||
|
all: {
|
||||||
|
options: {
|
||||||
|
run: true,
|
||||||
|
urls: ['http://<%= connect.test.options.hostname %>:<%= connect.test.options.port %>/index.html']
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// Compiles Sass to CSS and generates necessary files if requested
|
||||||
|
sass: {
|
||||||
|
options: {
|
||||||
|
sourceMap: true,
|
||||||
|
includePaths: ['bower_components']
|
||||||
|
},
|
||||||
|
dist: {
|
||||||
|
files: [{
|
||||||
|
expand: true,
|
||||||
|
cwd: '<%= config.app %>/styles',
|
||||||
|
src: ['*.{scss,sass}'],
|
||||||
|
dest: '.tmp/styles',
|
||||||
|
ext: '.css'
|
||||||
|
}]
|
||||||
|
},
|
||||||
|
server: {
|
||||||
|
files: [{
|
||||||
|
expand: true,
|
||||||
|
cwd: '<%= config.app %>/styles',
|
||||||
|
src: ['*.{scss,sass}'],
|
||||||
|
dest: '.tmp/styles',
|
||||||
|
ext: '.css'
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// Add vendor prefixed styles
|
||||||
|
autoprefixer: {
|
||||||
|
options: {
|
||||||
|
browsers: ['> 1%', 'last 2 versions', 'Firefox ESR', 'Opera 12.1']
|
||||||
|
},
|
||||||
|
dist: {
|
||||||
|
files: [{
|
||||||
|
expand: true,
|
||||||
|
cwd: '.tmp/styles/',
|
||||||
|
src: '{,*/}*.css',
|
||||||
|
dest: '.tmp/styles/'
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// Automatically inject Bower components into the HTML file
|
||||||
|
wiredep: {
|
||||||
|
app: {
|
||||||
|
ignorePath: /^\/|\.\.\//,
|
||||||
|
src: ['<%= config.app %>/index.html'],
|
||||||
|
exclude: ['bower_components/bootstrap-sass-official/assets/javascripts/bootstrap.js']
|
||||||
|
},
|
||||||
|
sass: {
|
||||||
|
src: ['<%= config.app %>/styles/{,*/}*.{scss,sass}'],
|
||||||
|
ignorePath: /(\.\.\/){1,2}bower_components\//
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// Renames files for browser caching purposes
|
||||||
|
rev: {
|
||||||
|
dist: {
|
||||||
|
files: {
|
||||||
|
src: [
|
||||||
|
'<%= config.dist %>/scripts/{,*/}*.js',
|
||||||
|
'<%= config.dist %>/styles/{,*/}*.css',
|
||||||
|
'<%= config.dist %>/images/{,*/}*.*',
|
||||||
|
'<%= config.dist %>/styles/fonts/{,*/}*.*',
|
||||||
|
'<%= config.dist %>/*.{ico,png}'
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// Reads HTML for usemin blocks to enable smart builds that automatically
|
||||||
|
// concat, minify and revision files. Creates configurations in memory so
|
||||||
|
// additional tasks can operate on them
|
||||||
|
useminPrepare: {
|
||||||
|
options: {
|
||||||
|
dest: '<%= config.dist %>'
|
||||||
|
},
|
||||||
|
html: '<%= config.app %>/index.html'
|
||||||
|
},
|
||||||
|
|
||||||
|
// Performs rewrites based on rev and the useminPrepare configuration
|
||||||
|
usemin: {
|
||||||
|
options: {
|
||||||
|
assetsDirs: [
|
||||||
|
'<%= config.dist %>',
|
||||||
|
'<%= config.dist %>/images',
|
||||||
|
'<%= config.dist %>/styles'
|
||||||
|
]
|
||||||
|
},
|
||||||
|
html: ['<%= config.dist %>/{,*/}*.html'],
|
||||||
|
css: ['<%= config.dist %>/styles/{,*/}*.css']
|
||||||
|
},
|
||||||
|
|
||||||
|
// The following *-min tasks produce minified files in the dist folder
|
||||||
|
imagemin: {
|
||||||
|
dist: {
|
||||||
|
files: [{
|
||||||
|
expand: true,
|
||||||
|
cwd: '<%= config.app %>/images',
|
||||||
|
src: '{,*/}*.{gif,jpeg,jpg,png}',
|
||||||
|
dest: '<%= config.dist %>/images'
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
svgmin: {
|
||||||
|
dist: {
|
||||||
|
files: [{
|
||||||
|
expand: true,
|
||||||
|
cwd: '<%= config.app %>/images',
|
||||||
|
src: '{,*/}*.svg',
|
||||||
|
dest: '<%= config.dist %>/images'
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
htmlmin: {
|
||||||
|
dist: {
|
||||||
|
options: {
|
||||||
|
collapseBooleanAttributes: true,
|
||||||
|
collapseWhitespace: true,
|
||||||
|
conservativeCollapse: true,
|
||||||
|
removeAttributeQuotes: true,
|
||||||
|
removeCommentsFromCDATA: true,
|
||||||
|
removeEmptyAttributes: true,
|
||||||
|
removeOptionalTags: true,
|
||||||
|
removeRedundantAttributes: true,
|
||||||
|
useShortDoctype: true
|
||||||
|
},
|
||||||
|
files: [{
|
||||||
|
expand: true,
|
||||||
|
cwd: '<%= config.dist %>',
|
||||||
|
src: '{,*/}*.html',
|
||||||
|
dest: '<%= config.dist %>'
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// By default, your `index.html`'s <!-- Usemin block --> will take care
|
||||||
|
// of minification. These next options are pre-configured if you do not
|
||||||
|
// wish to use the Usemin blocks.
|
||||||
|
// cssmin: {
|
||||||
|
// dist: {
|
||||||
|
// files: {
|
||||||
|
// '<%= config.dist %>/styles/main.css': [
|
||||||
|
// '.tmp/styles/{,*/}*.css',
|
||||||
|
// '<%= config.app %>/styles/{,*/}*.css'
|
||||||
|
// ]
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
// uglify: {
|
||||||
|
// dist: {
|
||||||
|
// files: {
|
||||||
|
// '<%= config.dist %>/scripts/scripts.js': [
|
||||||
|
// '<%= config.dist %>/scripts/scripts.js'
|
||||||
|
// ]
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
// concat: {
|
||||||
|
// dist: {}
|
||||||
|
// },
|
||||||
|
|
||||||
|
// Copies remaining files to places other tasks can use
|
||||||
|
copy: {
|
||||||
|
dist: {
|
||||||
|
files: [{
|
||||||
|
expand: true,
|
||||||
|
dot: true,
|
||||||
|
cwd: '<%= config.app %>',
|
||||||
|
dest: '<%= config.dist %>',
|
||||||
|
src: [
|
||||||
|
'*.{ico,png,txt}',
|
||||||
|
'images/{,*/}*.webp',
|
||||||
|
'{,*/}*.html',
|
||||||
|
'styles/fonts/{,*/}*.*'
|
||||||
|
]
|
||||||
|
}, {
|
||||||
|
src: 'node_modules/apache-server-configs/dist/.htaccess',
|
||||||
|
dest: '<%= config.dist %>/.htaccess'
|
||||||
|
}, {
|
||||||
|
expand: true,
|
||||||
|
dot: true,
|
||||||
|
cwd: '.',
|
||||||
|
src: 'bower_components/bootstrap-sass-official/assets/fonts/bootstrap/*',
|
||||||
|
dest: '<%= config.dist %>'
|
||||||
|
}]
|
||||||
|
},
|
||||||
|
styles: {
|
||||||
|
expand: true,
|
||||||
|
dot: true,
|
||||||
|
cwd: '<%= config.app %>/styles',
|
||||||
|
dest: '.tmp/styles/',
|
||||||
|
src: '{,*/}*.css'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// Run some tasks in parallel to speed up build process
|
||||||
|
concurrent: {
|
||||||
|
server: [
|
||||||
|
'sass:server',
|
||||||
|
'copy:styles'
|
||||||
|
],
|
||||||
|
test: [
|
||||||
|
'copy:styles'
|
||||||
|
],
|
||||||
|
dist: [
|
||||||
|
'sass',
|
||||||
|
'copy:styles',
|
||||||
|
'imagemin',
|
||||||
|
'svgmin'
|
||||||
|
]
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
grunt.registerTask('serve', 'start the server and preview your app, --allow-remote for remote access', function (target) {
|
||||||
|
if (grunt.option('allow-remote')) {
|
||||||
|
grunt.config.set('connect.options.hostname', '0.0.0.0');
|
||||||
|
}
|
||||||
|
if (target === 'dist') {
|
||||||
|
return grunt.task.run(['build', 'connect:dist:keepalive']);
|
||||||
|
}
|
||||||
|
|
||||||
|
grunt.task.run([
|
||||||
|
'clean:server',
|
||||||
|
'wiredep',
|
||||||
|
'concurrent:server',
|
||||||
|
'autoprefixer',
|
||||||
|
'connect:livereload',
|
||||||
|
'watch'
|
||||||
|
]);
|
||||||
|
});
|
||||||
|
|
||||||
|
grunt.registerTask('server', function (target) {
|
||||||
|
grunt.log.warn('The `server` task has been deprecated. Use `grunt serve` to start a server.');
|
||||||
|
grunt.task.run([target ? ('serve:' + target) : 'serve']);
|
||||||
|
});
|
||||||
|
|
||||||
|
grunt.registerTask('test', function (target) {
|
||||||
|
if (target !== 'watch') {
|
||||||
|
grunt.task.run([
|
||||||
|
'clean:server',
|
||||||
|
'concurrent:test',
|
||||||
|
'autoprefixer'
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
grunt.task.run([
|
||||||
|
'connect:test',
|
||||||
|
'mocha'
|
||||||
|
]);
|
||||||
|
});
|
||||||
|
|
||||||
|
grunt.registerTask('build', [
|
||||||
|
'clean:dist',
|
||||||
|
'wiredep',
|
||||||
|
'useminPrepare',
|
||||||
|
'concurrent:dist',
|
||||||
|
'autoprefixer',
|
||||||
|
'concat',
|
||||||
|
'cssmin',
|
||||||
|
'uglify',
|
||||||
|
'copy:dist',
|
||||||
|
'rev',
|
||||||
|
'usemin',
|
||||||
|
'htmlmin'
|
||||||
|
]);
|
||||||
|
|
||||||
|
grunt.registerTask('default', [
|
||||||
|
'newer:jshint',
|
||||||
|
'test',
|
||||||
|
'build'
|
||||||
|
]);
|
||||||
|
};
|
BIN
assets/petclinic/app/favicon.ico
Normal file
BIN
assets/petclinic/app/favicon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.2 KiB |
115
assets/petclinic/app/index.html
Normal file
115
assets/petclinic/app/index.html
Normal file
|
@ -0,0 +1,115 @@
|
||||||
|
<!doctype html>
|
||||||
|
<html class="no-js">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>petclinic</title>
|
||||||
|
<meta name="description" content="">
|
||||||
|
<meta name="viewport" content="width=device-width">
|
||||||
|
<link rel="shortcut icon" href="/favicon.ico">
|
||||||
|
<!-- Place favicon.ico and apple-touch-icon.png in the root directory -->
|
||||||
|
<!-- build:css(.) styles/vendor.css -->
|
||||||
|
<!-- bower:css -->
|
||||||
|
<!-- endbower -->
|
||||||
|
<!-- endbuild -->
|
||||||
|
<!-- build:css(.tmp) styles/main.css -->
|
||||||
|
<link rel="stylesheet" href="styles/main.css">
|
||||||
|
<!-- endbuild -->
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!--[if lt IE 10]>
|
||||||
|
<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>
|
||||||
|
<![endif]-->
|
||||||
|
|
||||||
|
<nav class="navbar navbar-inverse navbar-fixed-top">
|
||||||
|
<div class="container">
|
||||||
|
<div class="navbar-header">
|
||||||
|
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
|
||||||
|
<span class="sr-only">Toggle navigation</span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
</button>
|
||||||
|
<a class="navbar-brand" href="#">Pet Clinic</a>
|
||||||
|
</div>
|
||||||
|
<div id="navbar" class="navbar-collapse collapse pull-right">
|
||||||
|
<ul class="nav navbar-nav">
|
||||||
|
<li class="active"><a href="#">Home</a></li>
|
||||||
|
<li><a href="#services">Services</a></li>
|
||||||
|
<li><a href="#vet">Veterinarians</a></li>
|
||||||
|
<li><a href="#owners">Owners</a></li>
|
||||||
|
<li><a href="#about">About</a></li>
|
||||||
|
</ul>
|
||||||
|
</div><!--/.navbar-collapse -->
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<!-- Main jumbotron for a primary marketing message or call to action -->
|
||||||
|
<div class="jumbotron">
|
||||||
|
<div class="container">
|
||||||
|
<h1>Hello, world!</h1>
|
||||||
|
<p>This is a template for a simple marketing or informational website. It includes a large callout called a jumbotron and three supporting pieces of content. Use it as a starting point to create something more unique.</p>
|
||||||
|
<p><a class="btn btn-primary btn-lg" href="#" role="button">Learn more »</a></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
<!-- Example row of columns -->
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-4">
|
||||||
|
<h2>Heading</h2>
|
||||||
|
<p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p>
|
||||||
|
<p><a class="btn btn-default" href="#" role="button">View details »</a></p>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-4">
|
||||||
|
<h2>Heading</h2>
|
||||||
|
<p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p>
|
||||||
|
<p><a class="btn btn-default" href="#" role="button">View details »</a></p>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-4">
|
||||||
|
<h2>Heading</h2>
|
||||||
|
<p>Donec sed odio dui. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Vestibulum id ligula porta felis euismod semper. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.</p>
|
||||||
|
<p><a class="btn btn-default" href="#" role="button">View details »</a></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<footer>
|
||||||
|
<p>© Company 2014</p>
|
||||||
|
</footer>
|
||||||
|
</div> <!-- /container -->
|
||||||
|
|
||||||
|
|
||||||
|
<!-- build:js(.) scripts/vendor.js -->
|
||||||
|
<!-- bower:js -->
|
||||||
|
<script src="bower_components/jquery/dist/jquery.js"></script>
|
||||||
|
<script src="bower_components/bootstrap-sass-official/assets/javascripts/bootstrap/affix.js"></script>
|
||||||
|
<script src="bower_components/bootstrap-sass-official/assets/javascripts/bootstrap/alert.js"></script>
|
||||||
|
<script src="bower_components/bootstrap-sass-official/assets/javascripts/bootstrap/button.js"></script>
|
||||||
|
<script src="bower_components/bootstrap-sass-official/assets/javascripts/bootstrap/carousel.js"></script>
|
||||||
|
<script src="bower_components/bootstrap-sass-official/assets/javascripts/bootstrap/collapse.js"></script>
|
||||||
|
<script src="bower_components/bootstrap-sass-official/assets/javascripts/bootstrap/dropdown.js"></script>
|
||||||
|
<script src="bower_components/bootstrap-sass-official/assets/javascripts/bootstrap/tab.js"></script>
|
||||||
|
<script src="bower_components/bootstrap-sass-official/assets/javascripts/bootstrap/transition.js"></script>
|
||||||
|
<script src="bower_components/bootstrap-sass-official/assets/javascripts/bootstrap/scrollspy.js"></script>
|
||||||
|
<script src="bower_components/bootstrap-sass-official/assets/javascripts/bootstrap/modal.js"></script>
|
||||||
|
<script src="bower_components/bootstrap-sass-official/assets/javascripts/bootstrap/tooltip.js"></script>
|
||||||
|
<script src="bower_components/bootstrap-sass-official/assets/javascripts/bootstrap/popover.js"></script>
|
||||||
|
<!-- endbower -->
|
||||||
|
<!-- endbuild -->
|
||||||
|
|
||||||
|
<!-- Google Analytics: change UA-XXXXX-X to be your site's ID. -->
|
||||||
|
<script>
|
||||||
|
(function(b,o,i,l,e,r){b.GoogleAnalyticsObject=l;b[l]||(b[l]=
|
||||||
|
function(){(b[l].q=b[l].q||[]).push(arguments)});b[l].l=+new Date;
|
||||||
|
e=o.createElement(i);r=o.getElementsByTagName(i)[0];
|
||||||
|
e.src='//www.google-analytics.com/analytics.js';
|
||||||
|
r.parentNode.insertBefore(e,r)}(window,document,'script','ga'));
|
||||||
|
ga('create','UA-XXXXX-X');ga('send','pageview');
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<!-- build:js({app,.tmp}) scripts/main.js -->
|
||||||
|
<script src="scripts/main.js"></script>
|
||||||
|
<!-- endbuild -->
|
||||||
|
</body>
|
||||||
|
</html>
|
3
assets/petclinic/app/robots.txt
Normal file
3
assets/petclinic/app/robots.txt
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
# robotstxt.org/
|
||||||
|
|
||||||
|
User-agent: *
|
1
assets/petclinic/app/scripts/main.js
Normal file
1
assets/petclinic/app/scripts/main.js
Normal file
|
@ -0,0 +1 @@
|
||||||
|
console.log('\'Allo \'Allo!');
|
70
assets/petclinic/app/styles/main.scss
Normal file
70
assets/petclinic/app/styles/main.scss
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
$icon-font-path: "../bower_components/bootstrap-sass-official/assets/fonts/bootstrap/";
|
||||||
|
// bower:scss
|
||||||
|
@import "bootstrap-sass-official/assets/stylesheets/_bootstrap.scss";
|
||||||
|
// endbower
|
||||||
|
|
||||||
|
.browsehappy {
|
||||||
|
margin: 0.2em 0;
|
||||||
|
background: #ccc;
|
||||||
|
color: #000;
|
||||||
|
padding: 0.2em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Space out content a bit */
|
||||||
|
body {
|
||||||
|
padding-top: 51px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Everything but the jumbotron gets side spacing for mobile first views */
|
||||||
|
.header,
|
||||||
|
.marketing,
|
||||||
|
.footer {
|
||||||
|
padding-left: 15px;
|
||||||
|
padding-right: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Custom page header */
|
||||||
|
.header {
|
||||||
|
border-bottom: 1px solid #e5e5e5;
|
||||||
|
|
||||||
|
/* Make the masthead heading the same height as the navigation */
|
||||||
|
h3 {
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 0;
|
||||||
|
line-height: 40px;
|
||||||
|
padding-bottom: 19px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Custom page footer */
|
||||||
|
.footer {
|
||||||
|
padding-top: 19px;
|
||||||
|
color: #777;
|
||||||
|
border-top: 1px solid #e5e5e5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container-narrow > hr {
|
||||||
|
margin: 30px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Main marketing message and sign up button */
|
||||||
|
.jumbotron {
|
||||||
|
text-align: center;
|
||||||
|
border-bottom: 1px solid #e5e5e5;
|
||||||
|
.btn {
|
||||||
|
font-size: 21px;
|
||||||
|
padding: 14px 24px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Supporting marketing content */
|
||||||
|
.marketing {
|
||||||
|
margin: 40px 0;
|
||||||
|
p + h4 {
|
||||||
|
margin-top: 28px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Responsive: Portrait tablets and up */
|
||||||
|
@media screen and (min-width: 768px) {
|
||||||
|
}
|
7
assets/petclinic/bower.json
Normal file
7
assets/petclinic/bower.json
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"name": "petclinic",
|
||||||
|
"private": true,
|
||||||
|
"dependencies": {
|
||||||
|
"bootstrap-sass-official": "~3.2.0"
|
||||||
|
}
|
||||||
|
}
|
32
assets/petclinic/package.json
Normal file
32
assets/petclinic/package.json
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
{
|
||||||
|
"name": "petclinic",
|
||||||
|
"devDependencies": {
|
||||||
|
"apache-server-configs": "^2.7.1",
|
||||||
|
"grunt": "^0.4.5",
|
||||||
|
"grunt-autoprefixer": "^1.0.0",
|
||||||
|
"grunt-concurrent": "^0.5.0",
|
||||||
|
"grunt-contrib-clean": "^0.6.0",
|
||||||
|
"grunt-contrib-concat": "^0.5.0",
|
||||||
|
"grunt-contrib-connect": "^0.8.0",
|
||||||
|
"grunt-contrib-copy": "^0.5.0",
|
||||||
|
"grunt-contrib-cssmin": "^0.10.0",
|
||||||
|
"grunt-contrib-htmlmin": "^0.3.0",
|
||||||
|
"grunt-contrib-imagemin": "^0.8.0",
|
||||||
|
"grunt-contrib-jshint": "^0.10.0",
|
||||||
|
"grunt-contrib-uglify": "^0.5.1",
|
||||||
|
"grunt-contrib-watch": "^0.6.1",
|
||||||
|
"grunt-mocha": "^0.4.10",
|
||||||
|
"grunt-newer": "^0.7.0",
|
||||||
|
"grunt-rev": "^0.1.0",
|
||||||
|
"grunt-sass": "^0.14.0",
|
||||||
|
"grunt-svgmin": "^0.4.0",
|
||||||
|
"grunt-usemin": "^2.3.0",
|
||||||
|
"grunt-wiredep": "^1.7.0",
|
||||||
|
"jshint-stylish": "^0.4.0",
|
||||||
|
"load-grunt-tasks": "^0.4.0",
|
||||||
|
"time-grunt": "^0.4.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=0.10.0"
|
||||||
|
}
|
||||||
|
}
|
3
assets/petclinic/test/.bowerrc
Normal file
3
assets/petclinic/test/.bowerrc
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"directory": "bower_components"
|
||||||
|
}
|
9
assets/petclinic/test/bower.json
Normal file
9
assets/petclinic/test/bower.json
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
"name": "petclinic",
|
||||||
|
"private": true,
|
||||||
|
"dependencies": {
|
||||||
|
"chai": "~1.8.0",
|
||||||
|
"mocha": "~1.14.0"
|
||||||
|
},
|
||||||
|
"devDependencies": {}
|
||||||
|
}
|
26
assets/petclinic/test/index.html
Normal file
26
assets/petclinic/test/index.html
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
<!doctype html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<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>
|
13
assets/petclinic/test/spec/test.js
Normal file
13
assets/petclinic/test/spec/test.js
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
/* global describe, it */
|
||||||
|
|
||||||
|
(function () {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
describe('Give it some context', function () {
|
||||||
|
describe('maybe a bit more context here', function () {
|
||||||
|
it('should run here few assertions', function () {
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
})();
|
Loading…
Reference in a new issue