diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index a368e66..0000000 --- a/.travis.yml +++ /dev/null @@ -1,14 +0,0 @@ -language: node_js -node_js: - - 0.10 - -before_script: - - export DISPLAY=:99.0 - - sh -e /etc/init.d/xvfb start - - npm start > /dev/null & - - npm run update-webdriver - - sleep 1 # give server time to start - -script: - - node_modules/.bin/karma start test/karma.conf.js --no-auto-watch --single-run --reporters=dots --browsers=Firefox - - node_modules/.bin/protractor test/protractor-conf.js --browser=firefox diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 9ced331..0000000 --- a/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License - -Copyright (c) 2010-2014 Google, Inc. http://angularjs.org - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - diff --git a/README.md b/README.md index e5540ca..fe3f017 100644 --- a/README.md +++ b/README.md @@ -1,289 +1 @@ -# angular-seed — the seed for AngularJS apps - -This project is an application skeleton for a typical [AngularJS](http://angularjs.org/) web app. -You can use it to quickly bootstrap your angular webapp projects and dev environment for these -projects. - -The seed contains a sample AngularJS application and is preconfigured to install the Angular -framework and a bunch of development and testing tools for instant web development gratification. - -The seed app doesn't do much, just shows how to wire two controllers and views together. - - -## Getting Started - -To get you started you can simply clone the angular-seed repository and install the dependencies: - -### Prerequisites - -You need git to clone the angular-seed repository. You can get it from -[http://git-scm.com/](http://git-scm.com/). - -We also use a number of node.js tools to initialize and test angular-seed. You must have node.js and -its package manager (npm) installed. You can get them from [http://nodejs.org/](http://nodejs.org/). - -### Clone angular-seed - -Clone the angular-seed repository using [git][git]: - -``` -git clone https://github.com/angular/angular-seed.git -cd angular-seed -``` - -### Install Dependencies - -We have two kinds of dependencies in this project: tools and angular framework code. The tools help -us manage and test the application. - -* We get the tools we depend upon via `npm`, the [node package manager][npm]. -* We get the angular code via `bower`, a [client-side code package manager][bower]. - -We have preconfigured `npm` to automatically run `bower` so we can simply do: - -``` -npm install -``` - -Behind the scenes this will also call `bower install`. You should find that you have two new -folders in your project. - -* `node_modules` - contains the npm packages for the tools we need -* `app/bower_components` - contains the angular framework files - -*Note that the `bower_components` folder would normally be installed in the root folder but -angular-seed changes this location through the `.bowerrc` file. Putting it in the app folder makes -it easier to serve the files by a webserver.* - -### Run the Application - -We have preconfigured the project with a simple development web server. The simplest way to start -this server is: - -``` -npm start -``` - -Now browse to the app at `http://localhost:8000/app/index.html`. - - - -## Directory Layout - - app/ --> all of the files to be used in production - css/ --> css files - app.css --> default stylesheet - img/ --> image files - index.html --> app layout file (the main html template file of the app) - index-async.html --> just like index.html, but loads js files asynchronously - js/ --> javascript files - app.js --> application - controllers.js --> application controllers - directives.js --> application directives - filters.js --> custom angular filters - services.js --> custom angular services - partials/ --> angular view partials (partial html templates) - partial1.html - partial2.html - - test/ --> test config and source files - protractor-conf.js --> config file for running e2e tests with Protractor - e2e/ --> end-to-end specs - scenarios.js - karma.conf.js --> config file for running unit tests with Karma - unit/ --> unit level specs/tests - controllersSpec.js --> specs for controllers - directivessSpec.js --> specs for directives - filtersSpec.js --> specs for filters - servicesSpec.js --> specs for services - - -## Testing - -There are two kinds of tests in the angular-seed application: Unit tests and End to End tests. - -### Running Unit Tests - -The angular-seed app comes preconfigured with unit tests. These are written in -[Jasmine][jasmine], which we run with the [Karma Test Runner][karma]. We provide a Karma -configuration file to run them. - -* the configuration is found at `test/karma.conf.js` -* the unit tests are found in `test/unit/`. - -The easiest way to run the unit tests is to use the supplied npm script: - -``` -npm test -``` - -This script will start the Karma test runner to execute the unit tests. Moreover, Karma will sit and -watch the source and test files for changes and then re-run the tests whenever any of them change. -This is the recommended strategy; if your unit tests are being run every time you save a file then -you receive instant feedback on any changes that break the expected code functionality. - -You can also ask Karma to do a single run of the tests and then exit. This is useful if you want to -check that a particular version of the code is operating as expected. The project contains a -predefined script to do this: - -``` -npm run test-single-run -``` - - -### End to end testing - -The angular-seed app comes with end-to-end tests, again written in [Jasmine][jasmine]. These tests -are run with the [Protractor][protractor] End-to-End test runner. It uses native events and has -special features for Angular applications. - -* the configuration is found at `test/protractor-conf.js` -* the end-to-end tests are found in `test/e2e/` - -Protractor simulates interaction with our web app and verifies that the application responds -correctly. Therefore, our web server needs to be serving up the application, so that Protractor -can interact with it. - -``` -npm start -``` - -In addition, since Protractor is built upon WebDriver we need to install this. The angular-seed -project comes with a predefined script to do this: - -``` -npm run update-webdriver -``` - -This will download and install the latest version of the stand-alone WebDriver tool. - -Once you have ensured that the development web server hosting our application is up and running -and WebDriver is updated, you can run the end-to-end tests using the supplied npm script: - -``` -npm run protractor -``` - -This script will execute the end-to-end tests against the application being hosted on the -development server. - - -## Updating Angular - -Previously we recommended that you merge in changes to angular-seed into your own fork of the project. -Now that the angular framework library code and tools are acquired through package managers (npm and -bower) you can use these tools instead to update the dependencies. - -You can update the tool dependencies by running: - -``` -npm update -``` - -This will find the latest versions that match the version ranges specified in the `package.json` file. - -You can update the Angular dependencies by running: - -``` -bower update -``` - -This will find the latest versions that match the version ranges specified in the `bower.json` file. - - -## Loading Angular Asynchronously - -The angular-seed project supports loading the framework and application scripts asynchronously. The -special `index-async.html` is designed to support this style of loading. For it to work you must -inject a piece of Angular JavaScript into the HTML page. The project has a predefined script to help -do this. - -``` -npm run update-index-async -``` - -This will copy the contents of the `angular-loader.js` library file into the `index-async.html` page. -You can run this every time you update the version of Angular that you are using. - - -## Serving the Application Files - -While angular is client-side-only technology and it's possible to create angular webapps that -don't require a backend server at all, we recommend serving the project files using a local -webserver during development to avoid issues with security restrictions (sandbox) in browsers. The -sandbox implementation varies between browsers, but quite often prevents things like cookies, xhr, -etc to function properly when an html page is opened via `file://` scheme instead of `http://`. - - -### Running the App during Development - -The angular-seed project comes preconfigured with a local development webserver. It is a node.js -tool called [http-server][http-server]. You can start this webserver with `npm start` but you may choose to -install the tool globally: - -``` -sudo npm install -g http-server -``` - -Then you can start your own development web server to serve static files from a folder by -running: - -``` -http-server -``` - -Alternatively, you can choose to configure your own webserver, such as apache or nginx. Just -configure your server to serve the files under the `app/` directory. - - -### Running the App in Production - -This really depends on how complex is your app and the overall infrastructure of your system, but -the general rule is that all you need in production are all the files under the `app/` directory. -Everything else should be omitted. - -Angular apps are really just a bunch of static html, css and js files that just need to be hosted -somewhere they can be accessed by browsers. - -If your Angular app is talking to the backend server via xhr or other means, you need to figure -out what is the best way to host the static files to comply with the same origin policy if -applicable. Usually this is done by hosting the files by the backend server or through -reverse-proxying the backend server(s) and webserver(s). - - -## Continuous Integration - -### Travis CI - -[Travis CI][travis] is a continuous integration service, which can monitor GitHub for new commits -to your repository and execute scripts such as building the app or running tests. The angular-seed -project contains a Travis configuration file, `.travis.yml`, which will cause Travis to run your -tests when you push to GitHub. - -You will need to enable the integration between Travis and GitHub. See the Travis website for more -instruction on how to do this. - -### CloudBees - -CloudBees have provided a CI/deployment setup: - - - - -If you run this, you will get a cloned version of this repo to start working on in a private git repo, -along with a CI service (in Jenkins) hosted that will run unit and end to end tests in both Firefox and Chrome. - - -## Contact - -For more information on AngularJS please check out http://angularjs.org/ - -[git]: http://git-scm.com/ -[bower]: http://bower.io -[npm]: https://www.npmjs.org/ -[node]: http://nodejs.org -[protractor]: https://github.com/angular/protractor -[jasmine]: http://pivotal.github.com/jasmine/ -[karma]: http://karma-runner.github.io -[travis]: https://travis-ci.org/ -[http-server]: https://github.com/nodeapps/http-server \ No newline at end of file +# Performance Tracker \ No newline at end of file diff --git a/app/css/app.less b/app/css/app.less index 4578755..8966b0d 100755 --- a/app/css/app.less +++ b/app/css/app.less @@ -1,7 +1,8 @@ @import "../bower_components/mobile-angular-ui/dist/css/mobile-angular-ui-hover.css"; @import "../bower_components/mobile-angular-ui/dist/css/mobile-angular-ui-base.css"; -@import "../bower_components/mobile-angular-ui/dist/css/mobile-angular-ui-desktop.css"; +/*@import "../bower_components/mobile-angular-ui/dist/css/mobile-angular-ui-desktop.css";*/ @import "../js/clients/styles/clients.less"; +@import "../js/clients/styles/exercises.less"; .menu { list-style: none; @@ -36,5 +37,18 @@ .app{ background: white; - color: #48C9AF; -} \ No newline at end of file + /*color: #48C9AF;*/ +} + +.error-message { + padding: 10px; + color: #555555; +} +#login { + input.form-control { + width: 40%; + } + .alert { + width: 40%; + } +} diff --git a/app/css/mobile-angular-ui-base.css b/app/css/mobile-angular-ui-base.css deleted file mode 100644 index 9f37730..0000000 --- a/app/css/mobile-angular-ui-base.css +++ /dev/null @@ -1,7457 +0,0 @@ -/* FONT PATH - * -------------------------- */ - -@font-face { - font-family: 'FontAwesome'; - src: url('../fonts/fontawesome-webfont.eot?v=4.1.0'); - src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.1.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff?v=4.1.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.1.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.1.0#fontawesomeregular') format('svg'); - font-weight: normal; - font-style: normal; -} - -.fa { - display: inline-block; - font-family: FontAwesome; - font-style: normal; - font-weight: normal; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -/* makes the font 33% larger relative to the icon container */ - -.fa-lg { - font-size: 1.33333333em; - line-height: 0.75em; - vertical-align: -15%; -} - -.fa-2x { - font-size: 2em; -} - -.fa-3x { - font-size: 3em; -} - -.fa-4x { - font-size: 4em; -} - -.fa-5x { - font-size: 5em; -} - -.fa-fw { - width: 1.28571429em; - text-align: center; -} - -.fa-ul { - padding-left: 0; - margin-left: 2.14285714em; - list-style-type: none; -} - -.fa-ul > li { - position: relative; -} - -.fa-li { - position: absolute; - left: -2.14285714em; - width: 2.14285714em; - top: 0.14285714em; - text-align: center; -} - -.fa-li.fa-lg { - left: -1.85714286em; -} - -.fa-border { - padding: .2em .25em .15em; - border: solid 0.08em #eeeeee; - border-radius: .1em; -} - -.pull-right { - float: right; -} - -.pull-left { - float: left; -} - -.fa.pull-left { - margin-right: .3em; -} - -.fa.pull-right { - margin-left: .3em; -} - -.fa-spin { - -webkit-animation: spin 2s infinite linear; - -moz-animation: spin 2s infinite linear; - -o-animation: spin 2s infinite linear; - animation: spin 2s infinite linear; -} - -@-moz-keyframes spin { - 0% { - -moz-transform: rotate(0deg); - } - - 100% { - -moz-transform: rotate(359deg); - } -} - -@-webkit-keyframes spin { - 0% { - -webkit-transform: rotate(0deg); - } - - 100% { - -webkit-transform: rotate(359deg); - } -} - -@-o-keyframes spin { - 0% { - -o-transform: rotate(0deg); - } - - 100% { - -o-transform: rotate(359deg); - } -} - -@keyframes spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} - -.fa-rotate-90 { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); - -webkit-transform: rotate(90deg); - -moz-transform: rotate(90deg); - -ms-transform: rotate(90deg); - -o-transform: rotate(90deg); - transform: rotate(90deg); -} - -.fa-rotate-180 { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); - -webkit-transform: rotate(180deg); - -moz-transform: rotate(180deg); - -ms-transform: rotate(180deg); - -o-transform: rotate(180deg); - transform: rotate(180deg); -} - -.fa-rotate-270 { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); - -webkit-transform: rotate(270deg); - -moz-transform: rotate(270deg); - -ms-transform: rotate(270deg); - -o-transform: rotate(270deg); - transform: rotate(270deg); -} - -.fa-flip-horizontal { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1); - -webkit-transform: scale(-1, 1); - -moz-transform: scale(-1, 1); - -ms-transform: scale(-1, 1); - -o-transform: scale(-1, 1); - transform: scale(-1, 1); -} - -.fa-flip-vertical { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1); - -webkit-transform: scale(1, -1); - -moz-transform: scale(1, -1); - -ms-transform: scale(1, -1); - -o-transform: scale(1, -1); - transform: scale(1, -1); -} - -.fa-stack { - position: relative; - display: inline-block; - width: 2em; - height: 2em; - line-height: 2em; - vertical-align: middle; -} - -.fa-stack-1x, -.fa-stack-2x { - position: absolute; - left: 0; - width: 100%; - text-align: center; -} - -.fa-stack-1x { - line-height: inherit; -} - -.fa-stack-2x { - font-size: 2em; -} - -.fa-inverse { - color: #ffffff; -} - -/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen - readers do not read off random characters that represent icons */ - -.fa-glass:before { - content: "\f000"; -} - -.fa-music:before { - content: "\f001"; -} - -.fa-search:before { - content: "\f002"; -} - -.fa-envelope-o:before { - content: "\f003"; -} - -.fa-heart:before { - content: "\f004"; -} - -.fa-star:before { - content: "\f005"; -} - -.fa-star-o:before { - content: "\f006"; -} - -.fa-user:before { - content: "\f007"; -} - -.fa-film:before { - content: "\f008"; -} - -.fa-th-large:before { - content: "\f009"; -} - -.fa-th:before { - content: "\f00a"; -} - -.fa-th-list:before { - content: "\f00b"; -} - -.fa-check:before { - content: "\f00c"; -} - -.fa-times:before { - content: "\f00d"; -} - -.fa-search-plus:before { - content: "\f00e"; -} - -.fa-search-minus:before { - content: "\f010"; -} - -.fa-power-off:before { - content: "\f011"; -} - -.fa-signal:before { - content: "\f012"; -} - -.fa-gear:before, -.fa-cog:before { - content: "\f013"; -} - -.fa-trash-o:before { - content: "\f014"; -} - -.fa-home:before { - content: "\f015"; -} - -.fa-file-o:before { - content: "\f016"; -} - -.fa-clock-o:before { - content: "\f017"; -} - -.fa-road:before { - content: "\f018"; -} - -.fa-download:before { - content: "\f019"; -} - -.fa-arrow-circle-o-down:before { - content: "\f01a"; -} - -.fa-arrow-circle-o-up:before { - content: "\f01b"; -} - -.fa-inbox:before { - content: "\f01c"; -} - -.fa-play-circle-o:before { - content: "\f01d"; -} - -.fa-rotate-right:before, -.fa-repeat:before { - content: "\f01e"; -} - -.fa-refresh:before { - content: "\f021"; -} - -.fa-list-alt:before { - content: "\f022"; -} - -.fa-lock:before { - content: "\f023"; -} - -.fa-flag:before { - content: "\f024"; -} - -.fa-headphones:before { - content: "\f025"; -} - -.fa-volume-off:before { - content: "\f026"; -} - -.fa-volume-down:before { - content: "\f027"; -} - -.fa-volume-up:before { - content: "\f028"; -} - -.fa-qrcode:before { - content: "\f029"; -} - -.fa-barcode:before { - content: "\f02a"; -} - -.fa-tag:before { - content: "\f02b"; -} - -.fa-tags:before { - content: "\f02c"; -} - -.fa-book:before { - content: "\f02d"; -} - -.fa-bookmark:before { - content: "\f02e"; -} - -.fa-print:before { - content: "\f02f"; -} - -.fa-camera:before { - content: "\f030"; -} - -.fa-font:before { - content: "\f031"; -} - -.fa-bold:before { - content: "\f032"; -} - -.fa-italic:before { - content: "\f033"; -} - -.fa-text-height:before { - content: "\f034"; -} - -.fa-text-width:before { - content: "\f035"; -} - -.fa-align-left:before { - content: "\f036"; -} - -.fa-align-center:before { - content: "\f037"; -} - -.fa-align-right:before { - content: "\f038"; -} - -.fa-align-justify:before { - content: "\f039"; -} - -.fa-list:before { - content: "\f03a"; -} - -.fa-dedent:before, -.fa-outdent:before { - content: "\f03b"; -} - -.fa-indent:before { - content: "\f03c"; -} - -.fa-video-camera:before { - content: "\f03d"; -} - -.fa-photo:before, -.fa-image:before, -.fa-picture-o:before { - content: "\f03e"; -} - -.fa-pencil:before { - content: "\f040"; -} - -.fa-map-marker:before { - content: "\f041"; -} - -.fa-adjust:before { - content: "\f042"; -} - -.fa-tint:before { - content: "\f043"; -} - -.fa-edit:before, -.fa-pencil-square-o:before { - content: "\f044"; -} - -.fa-share-square-o:before { - content: "\f045"; -} - -.fa-check-square-o:before { - content: "\f046"; -} - -.fa-arrows:before { - content: "\f047"; -} - -.fa-step-backward:before { - content: "\f048"; -} - -.fa-fast-backward:before { - content: "\f049"; -} - -.fa-backward:before { - content: "\f04a"; -} - -.fa-play:before { - content: "\f04b"; -} - -.fa-pause:before { - content: "\f04c"; -} - -.fa-stop:before { - content: "\f04d"; -} - -.fa-forward:before { - content: "\f04e"; -} - -.fa-fast-forward:before { - content: "\f050"; -} - -.fa-step-forward:before { - content: "\f051"; -} - -.fa-eject:before { - content: "\f052"; -} - -.fa-chevron-left:before { - content: "\f053"; -} - -.fa-chevron-right:before { - content: "\f054"; -} - -.fa-plus-circle:before { - content: "\f055"; -} - -.fa-minus-circle:before { - content: "\f056"; -} - -.fa-times-circle:before { - content: "\f057"; -} - -.fa-check-circle:before { - content: "\f058"; -} - -.fa-question-circle:before { - content: "\f059"; -} - -.fa-info-circle:before { - content: "\f05a"; -} - -.fa-crosshairs:before { - content: "\f05b"; -} - -.fa-times-circle-o:before { - content: "\f05c"; -} - -.fa-check-circle-o:before { - content: "\f05d"; -} - -.fa-ban:before { - content: "\f05e"; -} - -.fa-arrow-left:before { - content: "\f060"; -} - -.fa-arrow-right:before { - content: "\f061"; -} - -.fa-arrow-up:before { - content: "\f062"; -} - -.fa-arrow-down:before { - content: "\f063"; -} - -.fa-mail-forward:before, -.fa-share:before { - content: "\f064"; -} - -.fa-expand:before { - content: "\f065"; -} - -.fa-compress:before { - content: "\f066"; -} - -.fa-plus:before { - content: "\f067"; -} - -.fa-minus:before { - content: "\f068"; -} - -.fa-asterisk:before { - content: "\f069"; -} - -.fa-exclamation-circle:before { - content: "\f06a"; -} - -.fa-gift:before { - content: "\f06b"; -} - -.fa-leaf:before { - content: "\f06c"; -} - -.fa-fire:before { - content: "\f06d"; -} - -.fa-eye:before { - content: "\f06e"; -} - -.fa-eye-slash:before { - content: "\f070"; -} - -.fa-warning:before, -.fa-exclamation-triangle:before { - content: "\f071"; -} - -.fa-plane:before { - content: "\f072"; -} - -.fa-calendar:before { - content: "\f073"; -} - -.fa-random:before { - content: "\f074"; -} - -.fa-comment:before { - content: "\f075"; -} - -.fa-magnet:before { - content: "\f076"; -} - -.fa-chevron-up:before { - content: "\f077"; -} - -.fa-chevron-down:before { - content: "\f078"; -} - -.fa-retweet:before { - content: "\f079"; -} - -.fa-shopping-cart:before { - content: "\f07a"; -} - -.fa-folder:before { - content: "\f07b"; -} - -.fa-folder-open:before { - content: "\f07c"; -} - -.fa-arrows-v:before { - content: "\f07d"; -} - -.fa-arrows-h:before { - content: "\f07e"; -} - -.fa-bar-chart-o:before { - content: "\f080"; -} - -.fa-twitter-square:before { - content: "\f081"; -} - -.fa-facebook-square:before { - content: "\f082"; -} - -.fa-camera-retro:before { - content: "\f083"; -} - -.fa-key:before { - content: "\f084"; -} - -.fa-gears:before, -.fa-cogs:before { - content: "\f085"; -} - -.fa-comments:before { - content: "\f086"; -} - -.fa-thumbs-o-up:before { - content: "\f087"; -} - -.fa-thumbs-o-down:before { - content: "\f088"; -} - -.fa-star-half:before { - content: "\f089"; -} - -.fa-heart-o:before { - content: "\f08a"; -} - -.fa-sign-out:before { - content: "\f08b"; -} - -.fa-linkedin-square:before { - content: "\f08c"; -} - -.fa-thumb-tack:before { - content: "\f08d"; -} - -.fa-external-link:before { - content: "\f08e"; -} - -.fa-sign-in:before { - content: "\f090"; -} - -.fa-trophy:before { - content: "\f091"; -} - -.fa-github-square:before { - content: "\f092"; -} - -.fa-upload:before { - content: "\f093"; -} - -.fa-lemon-o:before { - content: "\f094"; -} - -.fa-phone:before { - content: "\f095"; -} - -.fa-square-o:before { - content: "\f096"; -} - -.fa-bookmark-o:before { - content: "\f097"; -} - -.fa-phone-square:before { - content: "\f098"; -} - -.fa-twitter:before { - content: "\f099"; -} - -.fa-facebook:before { - content: "\f09a"; -} - -.fa-github:before { - content: "\f09b"; -} - -.fa-unlock:before { - content: "\f09c"; -} - -.fa-credit-card:before { - content: "\f09d"; -} - -.fa-rss:before { - content: "\f09e"; -} - -.fa-hdd-o:before { - content: "\f0a0"; -} - -.fa-bullhorn:before { - content: "\f0a1"; -} - -.fa-bell:before { - content: "\f0f3"; -} - -.fa-certificate:before { - content: "\f0a3"; -} - -.fa-hand-o-right:before { - content: "\f0a4"; -} - -.fa-hand-o-left:before { - content: "\f0a5"; -} - -.fa-hand-o-up:before { - content: "\f0a6"; -} - -.fa-hand-o-down:before { - content: "\f0a7"; -} - -.fa-arrow-circle-left:before { - content: "\f0a8"; -} - -.fa-arrow-circle-right:before { - content: "\f0a9"; -} - -.fa-arrow-circle-up:before { - content: "\f0aa"; -} - -.fa-arrow-circle-down:before { - content: "\f0ab"; -} - -.fa-globe:before { - content: "\f0ac"; -} - -.fa-wrench:before { - content: "\f0ad"; -} - -.fa-tasks:before { - content: "\f0ae"; -} - -.fa-filter:before { - content: "\f0b0"; -} - -.fa-briefcase:before { - content: "\f0b1"; -} - -.fa-arrows-alt:before { - content: "\f0b2"; -} - -.fa-group:before, -.fa-users:before { - content: "\f0c0"; -} - -.fa-chain:before, -.fa-link:before { - content: "\f0c1"; -} - -.fa-cloud:before { - content: "\f0c2"; -} - -.fa-flask:before { - content: "\f0c3"; -} - -.fa-cut:before, -.fa-scissors:before { - content: "\f0c4"; -} - -.fa-copy:before, -.fa-files-o:before { - content: "\f0c5"; -} - -.fa-paperclip:before { - content: "\f0c6"; -} - -.fa-save:before, -.fa-floppy-o:before { - content: "\f0c7"; -} - -.fa-square:before { - content: "\f0c8"; -} - -.fa-navicon:before, -.fa-reorder:before, -.fa-bars:before { - content: "\f0c9"; -} - -.fa-list-ul:before { - content: "\f0ca"; -} - -.fa-list-ol:before { - content: "\f0cb"; -} - -.fa-strikethrough:before { - content: "\f0cc"; -} - -.fa-underline:before { - content: "\f0cd"; -} - -.fa-table:before { - content: "\f0ce"; -} - -.fa-magic:before { - content: "\f0d0"; -} - -.fa-truck:before { - content: "\f0d1"; -} - -.fa-pinterest:before { - content: "\f0d2"; -} - -.fa-pinterest-square:before { - content: "\f0d3"; -} - -.fa-google-plus-square:before { - content: "\f0d4"; -} - -.fa-google-plus:before { - content: "\f0d5"; -} - -.fa-money:before { - content: "\f0d6"; -} - -.fa-caret-down:before { - content: "\f0d7"; -} - -.fa-caret-up:before { - content: "\f0d8"; -} - -.fa-caret-left:before { - content: "\f0d9"; -} - -.fa-caret-right:before { - content: "\f0da"; -} - -.fa-columns:before { - content: "\f0db"; -} - -.fa-unsorted:before, -.fa-sort:before { - content: "\f0dc"; -} - -.fa-sort-down:before, -.fa-sort-desc:before { - content: "\f0dd"; -} - -.fa-sort-up:before, -.fa-sort-asc:before { - content: "\f0de"; -} - -.fa-envelope:before { - content: "\f0e0"; -} - -.fa-linkedin:before { - content: "\f0e1"; -} - -.fa-rotate-left:before, -.fa-undo:before { - content: "\f0e2"; -} - -.fa-legal:before, -.fa-gavel:before { - content: "\f0e3"; -} - -.fa-dashboard:before, -.fa-tachometer:before { - content: "\f0e4"; -} - -.fa-comment-o:before { - content: "\f0e5"; -} - -.fa-comments-o:before { - content: "\f0e6"; -} - -.fa-flash:before, -.fa-bolt:before { - content: "\f0e7"; -} - -.fa-sitemap:before { - content: "\f0e8"; -} - -.fa-umbrella:before { - content: "\f0e9"; -} - -.fa-paste:before, -.fa-clipboard:before { - content: "\f0ea"; -} - -.fa-lightbulb-o:before { - content: "\f0eb"; -} - -.fa-exchange:before { - content: "\f0ec"; -} - -.fa-cloud-download:before { - content: "\f0ed"; -} - -.fa-cloud-upload:before { - content: "\f0ee"; -} - -.fa-user-md:before { - content: "\f0f0"; -} - -.fa-stethoscope:before { - content: "\f0f1"; -} - -.fa-suitcase:before { - content: "\f0f2"; -} - -.fa-bell-o:before { - content: "\f0a2"; -} - -.fa-coffee:before { - content: "\f0f4"; -} - -.fa-cutlery:before { - content: "\f0f5"; -} - -.fa-file-text-o:before { - content: "\f0f6"; -} - -.fa-building-o:before { - content: "\f0f7"; -} - -.fa-hospital-o:before { - content: "\f0f8"; -} - -.fa-ambulance:before { - content: "\f0f9"; -} - -.fa-medkit:before { - content: "\f0fa"; -} - -.fa-fighter-jet:before { - content: "\f0fb"; -} - -.fa-beer:before { - content: "\f0fc"; -} - -.fa-h-square:before { - content: "\f0fd"; -} - -.fa-plus-square:before { - content: "\f0fe"; -} - -.fa-angle-double-left:before { - content: "\f100"; -} - -.fa-angle-double-right:before { - content: "\f101"; -} - -.fa-angle-double-up:before { - content: "\f102"; -} - -.fa-angle-double-down:before { - content: "\f103"; -} - -.fa-angle-left:before { - content: "\f104"; -} - -.fa-angle-right:before { - content: "\f105"; -} - -.fa-angle-up:before { - content: "\f106"; -} - -.fa-angle-down:before { - content: "\f107"; -} - -.fa-desktop:before { - content: "\f108"; -} - -.fa-laptop:before { - content: "\f109"; -} - -.fa-tablet:before { - content: "\f10a"; -} - -.fa-mobile-phone:before, -.fa-mobile:before { - content: "\f10b"; -} - -.fa-circle-o:before { - content: "\f10c"; -} - -.fa-quote-left:before { - content: "\f10d"; -} - -.fa-quote-right:before { - content: "\f10e"; -} - -.fa-spinner:before { - content: "\f110"; -} - -.fa-circle:before { - content: "\f111"; -} - -.fa-mail-reply:before, -.fa-reply:before { - content: "\f112"; -} - -.fa-github-alt:before { - content: "\f113"; -} - -.fa-folder-o:before { - content: "\f114"; -} - -.fa-folder-open-o:before { - content: "\f115"; -} - -.fa-smile-o:before { - content: "\f118"; -} - -.fa-frown-o:before { - content: "\f119"; -} - -.fa-meh-o:before { - content: "\f11a"; -} - -.fa-gamepad:before { - content: "\f11b"; -} - -.fa-keyboard-o:before { - content: "\f11c"; -} - -.fa-flag-o:before { - content: "\f11d"; -} - -.fa-flag-checkered:before { - content: "\f11e"; -} - -.fa-terminal:before { - content: "\f120"; -} - -.fa-code:before { - content: "\f121"; -} - -.fa-mail-reply-all:before, -.fa-reply-all:before { - content: "\f122"; -} - -.fa-star-half-empty:before, -.fa-star-half-full:before, -.fa-star-half-o:before { - content: "\f123"; -} - -.fa-location-arrow:before { - content: "\f124"; -} - -.fa-crop:before { - content: "\f125"; -} - -.fa-code-fork:before { - content: "\f126"; -} - -.fa-unlink:before, -.fa-chain-broken:before { - content: "\f127"; -} - -.fa-question:before { - content: "\f128"; -} - -.fa-info:before { - content: "\f129"; -} - -.fa-exclamation:before { - content: "\f12a"; -} - -.fa-superscript:before { - content: "\f12b"; -} - -.fa-subscript:before { - content: "\f12c"; -} - -.fa-eraser:before { - content: "\f12d"; -} - -.fa-puzzle-piece:before { - content: "\f12e"; -} - -.fa-microphone:before { - content: "\f130"; -} - -.fa-microphone-slash:before { - content: "\f131"; -} - -.fa-shield:before { - content: "\f132"; -} - -.fa-calendar-o:before { - content: "\f133"; -} - -.fa-fire-extinguisher:before { - content: "\f134"; -} - -.fa-rocket:before { - content: "\f135"; -} - -.fa-maxcdn:before { - content: "\f136"; -} - -.fa-chevron-circle-left:before { - content: "\f137"; -} - -.fa-chevron-circle-right:before { - content: "\f138"; -} - -.fa-chevron-circle-up:before { - content: "\f139"; -} - -.fa-chevron-circle-down:before { - content: "\f13a"; -} - -.fa-html5:before { - content: "\f13b"; -} - -.fa-css3:before { - content: "\f13c"; -} - -.fa-anchor:before { - content: "\f13d"; -} - -.fa-unlock-alt:before { - content: "\f13e"; -} - -.fa-bullseye:before { - content: "\f140"; -} - -.fa-ellipsis-h:before { - content: "\f141"; -} - -.fa-ellipsis-v:before { - content: "\f142"; -} - -.fa-rss-square:before { - content: "\f143"; -} - -.fa-play-circle:before { - content: "\f144"; -} - -.fa-ticket:before { - content: "\f145"; -} - -.fa-minus-square:before { - content: "\f146"; -} - -.fa-minus-square-o:before { - content: "\f147"; -} - -.fa-level-up:before { - content: "\f148"; -} - -.fa-level-down:before { - content: "\f149"; -} - -.fa-check-square:before { - content: "\f14a"; -} - -.fa-pencil-square:before { - content: "\f14b"; -} - -.fa-external-link-square:before { - content: "\f14c"; -} - -.fa-share-square:before { - content: "\f14d"; -} - -.fa-compass:before { - content: "\f14e"; -} - -.fa-toggle-down:before, -.fa-caret-square-o-down:before { - content: "\f150"; -} - -.fa-toggle-up:before, -.fa-caret-square-o-up:before { - content: "\f151"; -} - -.fa-toggle-right:before, -.fa-caret-square-o-right:before { - content: "\f152"; -} - -.fa-euro:before, -.fa-eur:before { - content: "\f153"; -} - -.fa-gbp:before { - content: "\f154"; -} - -.fa-dollar:before, -.fa-usd:before { - content: "\f155"; -} - -.fa-rupee:before, -.fa-inr:before { - content: "\f156"; -} - -.fa-cny:before, -.fa-rmb:before, -.fa-yen:before, -.fa-jpy:before { - content: "\f157"; -} - -.fa-ruble:before, -.fa-rouble:before, -.fa-rub:before { - content: "\f158"; -} - -.fa-won:before, -.fa-krw:before { - content: "\f159"; -} - -.fa-bitcoin:before, -.fa-btc:before { - content: "\f15a"; -} - -.fa-file:before { - content: "\f15b"; -} - -.fa-file-text:before { - content: "\f15c"; -} - -.fa-sort-alpha-asc:before { - content: "\f15d"; -} - -.fa-sort-alpha-desc:before { - content: "\f15e"; -} - -.fa-sort-amount-asc:before { - content: "\f160"; -} - -.fa-sort-amount-desc:before { - content: "\f161"; -} - -.fa-sort-numeric-asc:before { - content: "\f162"; -} - -.fa-sort-numeric-desc:before { - content: "\f163"; -} - -.fa-thumbs-up:before { - content: "\f164"; -} - -.fa-thumbs-down:before { - content: "\f165"; -} - -.fa-youtube-square:before { - content: "\f166"; -} - -.fa-youtube:before { - content: "\f167"; -} - -.fa-xing:before { - content: "\f168"; -} - -.fa-xing-square:before { - content: "\f169"; -} - -.fa-youtube-play:before { - content: "\f16a"; -} - -.fa-dropbox:before { - content: "\f16b"; -} - -.fa-stack-overflow:before { - content: "\f16c"; -} - -.fa-instagram:before { - content: "\f16d"; -} - -.fa-flickr:before { - content: "\f16e"; -} - -.fa-adn:before { - content: "\f170"; -} - -.fa-bitbucket:before { - content: "\f171"; -} - -.fa-bitbucket-square:before { - content: "\f172"; -} - -.fa-tumblr:before { - content: "\f173"; -} - -.fa-tumblr-square:before { - content: "\f174"; -} - -.fa-long-arrow-down:before { - content: "\f175"; -} - -.fa-long-arrow-up:before { - content: "\f176"; -} - -.fa-long-arrow-left:before { - content: "\f177"; -} - -.fa-long-arrow-right:before { - content: "\f178"; -} - -.fa-apple:before { - content: "\f179"; -} - -.fa-windows:before { - content: "\f17a"; -} - -.fa-android:before { - content: "\f17b"; -} - -.fa-linux:before { - content: "\f17c"; -} - -.fa-dribbble:before { - content: "\f17d"; -} - -.fa-skype:before { - content: "\f17e"; -} - -.fa-foursquare:before { - content: "\f180"; -} - -.fa-trello:before { - content: "\f181"; -} - -.fa-female:before { - content: "\f182"; -} - -.fa-male:before { - content: "\f183"; -} - -.fa-gittip:before { - content: "\f184"; -} - -.fa-sun-o:before { - content: "\f185"; -} - -.fa-moon-o:before { - content: "\f186"; -} - -.fa-archive:before { - content: "\f187"; -} - -.fa-bug:before { - content: "\f188"; -} - -.fa-vk:before { - content: "\f189"; -} - -.fa-weibo:before { - content: "\f18a"; -} - -.fa-renren:before { - content: "\f18b"; -} - -.fa-pagelines:before { - content: "\f18c"; -} - -.fa-stack-exchange:before { - content: "\f18d"; -} - -.fa-arrow-circle-o-right:before { - content: "\f18e"; -} - -.fa-arrow-circle-o-left:before { - content: "\f190"; -} - -.fa-toggle-left:before, -.fa-caret-square-o-left:before { - content: "\f191"; -} - -.fa-dot-circle-o:before { - content: "\f192"; -} - -.fa-wheelchair:before { - content: "\f193"; -} - -.fa-vimeo-square:before { - content: "\f194"; -} - -.fa-turkish-lira:before, -.fa-try:before { - content: "\f195"; -} - -.fa-plus-square-o:before { - content: "\f196"; -} - -.fa-space-shuttle:before { - content: "\f197"; -} - -.fa-slack:before { - content: "\f198"; -} - -.fa-envelope-square:before { - content: "\f199"; -} - -.fa-wordpress:before { - content: "\f19a"; -} - -.fa-openid:before { - content: "\f19b"; -} - -.fa-institution:before, -.fa-bank:before, -.fa-university:before { - content: "\f19c"; -} - -.fa-mortar-board:before, -.fa-graduation-cap:before { - content: "\f19d"; -} - -.fa-yahoo:before { - content: "\f19e"; -} - -.fa-google:before { - content: "\f1a0"; -} - -.fa-reddit:before { - content: "\f1a1"; -} - -.fa-reddit-square:before { - content: "\f1a2"; -} - -.fa-stumbleupon-circle:before { - content: "\f1a3"; -} - -.fa-stumbleupon:before { - content: "\f1a4"; -} - -.fa-delicious:before { - content: "\f1a5"; -} - -.fa-digg:before { - content: "\f1a6"; -} - -.fa-pied-piper-square:before, -.fa-pied-piper:before { - content: "\f1a7"; -} - -.fa-pied-piper-alt:before { - content: "\f1a8"; -} - -.fa-drupal:before { - content: "\f1a9"; -} - -.fa-joomla:before { - content: "\f1aa"; -} - -.fa-language:before { - content: "\f1ab"; -} - -.fa-fax:before { - content: "\f1ac"; -} - -.fa-building:before { - content: "\f1ad"; -} - -.fa-child:before { - content: "\f1ae"; -} - -.fa-paw:before { - content: "\f1b0"; -} - -.fa-spoon:before { - content: "\f1b1"; -} - -.fa-cube:before { - content: "\f1b2"; -} - -.fa-cubes:before { - content: "\f1b3"; -} - -.fa-behance:before { - content: "\f1b4"; -} - -.fa-behance-square:before { - content: "\f1b5"; -} - -.fa-steam:before { - content: "\f1b6"; -} - -.fa-steam-square:before { - content: "\f1b7"; -} - -.fa-recycle:before { - content: "\f1b8"; -} - -.fa-automobile:before, -.fa-car:before { - content: "\f1b9"; -} - -.fa-cab:before, -.fa-taxi:before { - content: "\f1ba"; -} - -.fa-tree:before { - content: "\f1bb"; -} - -.fa-spotify:before { - content: "\f1bc"; -} - -.fa-deviantart:before { - content: "\f1bd"; -} - -.fa-soundcloud:before { - content: "\f1be"; -} - -.fa-database:before { - content: "\f1c0"; -} - -.fa-file-pdf-o:before { - content: "\f1c1"; -} - -.fa-file-word-o:before { - content: "\f1c2"; -} - -.fa-file-excel-o:before { - content: "\f1c3"; -} - -.fa-file-powerpoint-o:before { - content: "\f1c4"; -} - -.fa-file-photo-o:before, -.fa-file-picture-o:before, -.fa-file-image-o:before { - content: "\f1c5"; -} - -.fa-file-zip-o:before, -.fa-file-archive-o:before { - content: "\f1c6"; -} - -.fa-file-sound-o:before, -.fa-file-audio-o:before { - content: "\f1c7"; -} - -.fa-file-movie-o:before, -.fa-file-video-o:before { - content: "\f1c8"; -} - -.fa-file-code-o:before { - content: "\f1c9"; -} - -.fa-vine:before { - content: "\f1ca"; -} - -.fa-codepen:before { - content: "\f1cb"; -} - -.fa-jsfiddle:before { - content: "\f1cc"; -} - -.fa-life-bouy:before, -.fa-life-saver:before, -.fa-support:before, -.fa-life-ring:before { - content: "\f1cd"; -} - -.fa-circle-o-notch:before { - content: "\f1ce"; -} - -.fa-ra:before, -.fa-rebel:before { - content: "\f1d0"; -} - -.fa-ge:before, -.fa-empire:before { - content: "\f1d1"; -} - -.fa-git-square:before { - content: "\f1d2"; -} - -.fa-git:before { - content: "\f1d3"; -} - -.fa-hacker-news:before { - content: "\f1d4"; -} - -.fa-tencent-weibo:before { - content: "\f1d5"; -} - -.fa-qq:before { - content: "\f1d6"; -} - -.fa-wechat:before, -.fa-weixin:before { - content: "\f1d7"; -} - -.fa-send:before, -.fa-paper-plane:before { - content: "\f1d8"; -} - -.fa-send-o:before, -.fa-paper-plane-o:before { - content: "\f1d9"; -} - -.fa-history:before { - content: "\f1da"; -} - -.fa-circle-thin:before { - content: "\f1db"; -} - -.fa-header:before { - content: "\f1dc"; -} - -.fa-paragraph:before { - content: "\f1dd"; -} - -.fa-sliders:before { - content: "\f1de"; -} - -.fa-share-alt:before { - content: "\f1e0"; -} - -.fa-share-alt-square:before { - content: "\f1e1"; -} - -.fa-bomb:before { - content: "\f1e2"; -} - -/*! normalize.css v3.0.0 | MIT License | git.io/normalize */ - -html { - font-family: sans-serif; - -ms-text-size-adjust: 100%; - -webkit-text-size-adjust: 100%; -} - -body { - margin: 0; -} - -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -nav, -section, -summary { - display: block; -} - -audio, -canvas, -progress, -video { - display: inline-block; - vertical-align: baseline; -} - -audio:not([controls]) { - display: none; - height: 0; -} - -[hidden], -template { - display: none; -} - -a { - background: transparent; -} - -a:active { - outline: 0; -} - -abbr[title] { - border-bottom: 1px dotted; -} - -b, -strong { - font-weight: bold; -} - -dfn { - font-style: italic; -} - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -mark { - background: #ff0; - color: #000; -} - -small { - font-size: 80%; -} - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sup { - top: -0.5em; -} - -sub { - bottom: -0.25em; -} - -img { - border: 0; -} - -svg:not(:root) { - overflow: hidden; -} - -figure { - margin: 1em 40px; -} - -hr { - -moz-box-sizing: content-box; - box-sizing: content-box; - height: 0; -} - -pre { - overflow: auto; -} - -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; -} - -button, -input, -optgroup, -select, -textarea { - color: inherit; - font: inherit; - margin: 0; -} - -button { - overflow: visible; -} - -button, -select { - text-transform: none; -} - -button, -html input[type="button"], -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; - cursor: pointer; -} - -button[disabled], -html input[disabled] { - cursor: default; -} - -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; -} - -input { - line-height: normal; -} - -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; - padding: 0; -} - -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -input[type="search"] { - -webkit-appearance: textfield; - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; - box-sizing: content-box; -} - -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; -} - -legend { - border: 0; - padding: 0; -} - -textarea { - overflow: auto; -} - -optgroup { - font-weight: bold; -} - -table { - border-collapse: collapse; - border-spacing: 0; -} - -td, -th { - padding: 0; -} - -* { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -*:before, -*:after { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -html { - font-size: 62.5%; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -} - -body { - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 14px; - line-height: 1.42857143; - color: #333333; - background-color: #ffffff; -} - -input, -button, -select, -textarea { - font-family: inherit; - font-size: inherit; - line-height: inherit; -} - -a { - color: #48C9AF; - text-decoration: none; -} - -a:focus { - color: #0055b3; - text-decoration: underline; -} - -a:focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} - -figure { - margin: 0; -} - -img { - vertical-align: middle; -} - -.img-responsive, -.thumbnail > img, -.thumbnail a > img, -.carousel-inner > .item > img, -.carousel-inner > .item > a > img { - display: block; - max-width: 100%; - height: auto; -} - -.img-rounded { - border-radius: 6px; -} - -.img-thumbnail { - padding: 4px; - line-height: 1.42857143; - background-color: #ffffff; - border: 1px solid #dddddd; - border-radius: 4px; - -webkit-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; - display: inline-block; - max-width: 100%; - height: auto; -} - -.img-circle { - border-radius: 50%; -} - -hr { - margin-top: 20px; - margin-bottom: 20px; - border: 0; - border-top: 1px solid #eeeeee; -} - -.sr-only { - position: absolute; - width: 1px; - height: 1px; - margin: -1px; - padding: 0; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; -} - -h1, -h2, -h3, -h4, -h5, -h6, -.h1, -.h2, -.h3, -.h4, -.h5, -.h6 { - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-weight: normal; - line-height: 1.1; - color: inherit; -} - -h1 small, -h2 small, -h3 small, -h4 small, -h5 small, -h6 small, -.h1 small, -.h2 small, -.h3 small, -.h4 small, -.h5 small, -.h6 small, -h1 .small, -h2 .small, -h3 .small, -h4 .small, -h5 .small, -h6 .small, -.h1 .small, -.h2 .small, -.h3 .small, -.h4 .small, -.h5 .small, -.h6 .small { - font-weight: normal; - line-height: 1; - color: #999999; -} - -h1, -.h1, -h2, -.h2, -h3, -.h3 { - margin-top: 20px; - margin-bottom: 10px; -} - -h1 small, -.h1 small, -h2 small, -.h2 small, -h3 small, -.h3 small, -h1 .small, -.h1 .small, -h2 .small, -.h2 .small, -h3 .small, -.h3 .small { - font-size: 65%; -} - -h4, -.h4, -h5, -.h5, -h6, -.h6 { - margin-top: 10px; - margin-bottom: 10px; -} - -h4 small, -.h4 small, -h5 small, -.h5 small, -h6 small, -.h6 small, -h4 .small, -.h4 .small, -h5 .small, -.h5 .small, -h6 .small, -.h6 .small { - font-size: 75%; -} - -h1, -.h1 { - font-size: 36px; -} - -h2, -.h2 { - font-size: 30px; -} - -h3, -.h3 { - font-size: 24px; -} - -h4, -.h4 { - font-size: 18px; -} - -h5, -.h5 { - font-size: 14px; -} - -h6, -.h6 { - font-size: 12px; -} - -p { - margin: 0 0 10px; -} - -.lead { - margin-bottom: 20px; - font-size: 16px; - font-weight: 200; - line-height: 1.4; -} - -small, -.small { - font-size: 85%; -} - -cite { - font-style: normal; -} - -.text-left { - text-align: left; -} - -.text-right { - text-align: right; -} - -.text-center { - text-align: center; -} - -.text-justify { - text-align: justify; -} - -.text-muted { - color: #999999; -} - -.text-primary { - color: #48C9AF; -} - -.text-success { - color: #3c763d; -} - -.text-info { - color: #31708f; -} - -.text-warning { - color: #8a6d3b; -} - -.text-danger { - color: #a94442; -} - -.bg-primary { - color: #fff; - background-color: #48C9AF; -} - -.bg-success { - background-color: #dff0d8; -} - -.bg-info { - background-color: #d9edf7; -} - -.bg-warning { - background-color: #fcf8e3; -} - -.bg-danger { - background-color: #f2dede; -} - -.page-header { - padding-bottom: 9px; - margin: 40px 0 20px; - border-bottom: 1px solid #eeeeee; -} - -ul, -ol { - margin-top: 0; - margin-bottom: 10px; -} - -ul ul, -ol ul, -ul ol, -ol ol { - margin-bottom: 0; -} - -.list-unstyled { - padding-left: 0; - list-style: none; -} - -.list-inline { - padding-left: 0; - list-style: none; - margin-left: -5px; -} - -.list-inline > li { - display: inline-block; - padding-left: 5px; - padding-right: 5px; -} - -dl { - margin-top: 0; - margin-bottom: 20px; -} - -dt, -dd { - line-height: 1.42857143; -} - -dt { - font-weight: bold; -} - -dd { - margin-left: 0; -} - -abbr[title], -abbr[data-original-title] { - cursor: help; - border-bottom: 1px dotted #999999; -} - -.initialism { - font-size: 90%; - text-transform: uppercase; -} - -blockquote { - padding: 10px 20px; - margin: 0 0 20px; - font-size: 17.5px; - border-left: 5px solid #eeeeee; -} - -blockquote p:last-child, -blockquote ul:last-child, -blockquote ol:last-child { - margin-bottom: 0; -} - -blockquote footer, -blockquote small, -blockquote .small { - display: block; - font-size: 80%; - line-height: 1.42857143; - color: #999999; -} - -blockquote footer:before, -blockquote small:before, -blockquote .small:before { - content: '\2014 \00A0'; -} - -.blockquote-reverse, -blockquote.pull-right { - padding-right: 15px; - padding-left: 0; - border-right: 5px solid #eeeeee; - border-left: 0; - text-align: right; -} - -.blockquote-reverse footer:before, -blockquote.pull-right footer:before, -.blockquote-reverse small:before, -blockquote.pull-right small:before, -.blockquote-reverse .small:before, -blockquote.pull-right .small:before { - content: ''; -} - -.blockquote-reverse footer:after, -blockquote.pull-right footer:after, -.blockquote-reverse small:after, -blockquote.pull-right small:after, -.blockquote-reverse .small:after, -blockquote.pull-right .small:after { - content: '\00A0 \2014'; -} - -blockquote:before, -blockquote:after { - content: ""; -} - -address { - margin-bottom: 20px; - font-style: normal; - line-height: 1.42857143; -} - -code, -kbd, -pre, -samp { - font-family: Menlo, Monaco, Consolas, "Courier New", monospace; -} - -code { - padding: 2px 4px; - font-size: 90%; - color: #c7254e; - background-color: #f9f2f4; - white-space: nowrap; - border-radius: 4px; -} - -kbd { - padding: 2px 4px; - font-size: 90%; - color: #ffffff; - background-color: #333333; - border-radius: 3px; - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); -} - -pre { - display: block; - padding: 9.5px; - margin: 0 0 10px; - font-size: 13px; - line-height: 1.42857143; - word-break: break-all; - word-wrap: break-word; - color: #333333; - background-color: #f5f5f5; - border: 1px solid #cccccc; - border-radius: 4px; -} - -pre code { - padding: 0; - font-size: inherit; - color: inherit; - white-space: pre-wrap; - background-color: transparent; - border-radius: 0; -} - -.pre-scrollable { - max-height: 340px; - overflow-y: scroll; -} - -.container { - margin-right: auto; - margin-left: auto; - padding-left: 15px; - padding-right: 15px; -} - -.container-fluid { - margin-right: auto; - margin-left: auto; - padding-left: 15px; - padding-right: 15px; -} - -.row { - margin-left: -15px; - margin-right: -15px; -} - -.col-xs-1, -.col-sm-1, -.col-md-1, -.col-lg-1, -.col-xs-2, -.col-sm-2, -.col-md-2, -.col-lg-2, -.col-xs-3, -.col-sm-3, -.col-md-3, -.col-lg-3, -.col-xs-4, -.col-sm-4, -.col-md-4, -.col-lg-4, -.col-xs-5, -.col-sm-5, -.col-md-5, -.col-lg-5, -.col-xs-6, -.col-sm-6, -.col-md-6, -.col-lg-6, -.col-xs-7, -.col-sm-7, -.col-md-7, -.col-lg-7, -.col-xs-8, -.col-sm-8, -.col-md-8, -.col-lg-8, -.col-xs-9, -.col-sm-9, -.col-md-9, -.col-lg-9, -.col-xs-10, -.col-sm-10, -.col-md-10, -.col-lg-10, -.col-xs-11, -.col-sm-11, -.col-md-11, -.col-lg-11, -.col-xs-12, -.col-sm-12, -.col-md-12, -.col-lg-12 { - position: relative; - min-height: 1px; - padding-left: 15px; - padding-right: 15px; -} - -.col-xs-1, -.col-xs-2, -.col-xs-3, -.col-xs-4, -.col-xs-5, -.col-xs-6, -.col-xs-7, -.col-xs-8, -.col-xs-9, -.col-xs-10, -.col-xs-11, -.col-xs-12 { - float: left; -} - -.col-xs-12 { - width: 100%; -} - -.col-xs-11 { - width: 91.66666667%; -} - -.col-xs-10 { - width: 83.33333333%; -} - -.col-xs-9 { - width: 75%; -} - -.col-xs-8 { - width: 66.66666667%; -} - -.col-xs-7 { - width: 58.33333333%; -} - -.col-xs-6 { - width: 50%; -} - -.col-xs-5 { - width: 41.66666667%; -} - -.col-xs-4 { - width: 33.33333333%; -} - -.col-xs-3 { - width: 25%; -} - -.col-xs-2 { - width: 16.66666667%; -} - -.col-xs-1 { - width: 8.33333333%; -} - -.col-xs-pull-12 { - right: 100%; -} - -.col-xs-pull-11 { - right: 91.66666667%; -} - -.col-xs-pull-10 { - right: 83.33333333%; -} - -.col-xs-pull-9 { - right: 75%; -} - -.col-xs-pull-8 { - right: 66.66666667%; -} - -.col-xs-pull-7 { - right: 58.33333333%; -} - -.col-xs-pull-6 { - right: 50%; -} - -.col-xs-pull-5 { - right: 41.66666667%; -} - -.col-xs-pull-4 { - right: 33.33333333%; -} - -.col-xs-pull-3 { - right: 25%; -} - -.col-xs-pull-2 { - right: 16.66666667%; -} - -.col-xs-pull-1 { - right: 8.33333333%; -} - -.col-xs-pull-0 { - right: 0%; -} - -.col-xs-push-12 { - left: 100%; -} - -.col-xs-push-11 { - left: 91.66666667%; -} - -.col-xs-push-10 { - left: 83.33333333%; -} - -.col-xs-push-9 { - left: 75%; -} - -.col-xs-push-8 { - left: 66.66666667%; -} - -.col-xs-push-7 { - left: 58.33333333%; -} - -.col-xs-push-6 { - left: 50%; -} - -.col-xs-push-5 { - left: 41.66666667%; -} - -.col-xs-push-4 { - left: 33.33333333%; -} - -.col-xs-push-3 { - left: 25%; -} - -.col-xs-push-2 { - left: 16.66666667%; -} - -.col-xs-push-1 { - left: 8.33333333%; -} - -.col-xs-push-0 { - left: 0%; -} - -.col-xs-offset-12 { - margin-left: 100%; -} - -.col-xs-offset-11 { - margin-left: 91.66666667%; -} - -.col-xs-offset-10 { - margin-left: 83.33333333%; -} - -.col-xs-offset-9 { - margin-left: 75%; -} - -.col-xs-offset-8 { - margin-left: 66.66666667%; -} - -.col-xs-offset-7 { - margin-left: 58.33333333%; -} - -.col-xs-offset-6 { - margin-left: 50%; -} - -.col-xs-offset-5 { - margin-left: 41.66666667%; -} - -.col-xs-offset-4 { - margin-left: 33.33333333%; -} - -.col-xs-offset-3 { - margin-left: 25%; -} - -.col-xs-offset-2 { - margin-left: 16.66666667%; -} - -.col-xs-offset-1 { - margin-left: 8.33333333%; -} - -.col-xs-offset-0 { - margin-left: 0%; -} - -table { - max-width: 100%; - background-color: transparent; -} - -th { - text-align: left; -} - -.table { - width: 100%; - margin-bottom: 20px; -} - -.table > thead > tr > th, -.table > tbody > tr > th, -.table > tfoot > tr > th, -.table > thead > tr > td, -.table > tbody > tr > td, -.table > tfoot > tr > td { - padding: 8px; - line-height: 1.42857143; - vertical-align: top; - border-top: 1px solid #dddddd; -} - -.table > thead > tr > th { - vertical-align: bottom; - border-bottom: 2px solid #dddddd; -} - -.table > caption + thead > tr:first-child > th, -.table > colgroup + thead > tr:first-child > th, -.table > thead:first-child > tr:first-child > th, -.table > caption + thead > tr:first-child > td, -.table > colgroup + thead > tr:first-child > td, -.table > thead:first-child > tr:first-child > td { - border-top: 0; -} - -.table > tbody + tbody { - border-top: 2px solid #dddddd; -} - -.table .table { - background-color: #ffffff; -} - -.table-condensed > thead > tr > th, -.table-condensed > tbody > tr > th, -.table-condensed > tfoot > tr > th, -.table-condensed > thead > tr > td, -.table-condensed > tbody > tr > td, -.table-condensed > tfoot > tr > td { - padding: 5px; -} - -.table-bordered { - border: 1px solid #dddddd; -} - -.table-bordered > thead > tr > th, -.table-bordered > tbody > tr > th, -.table-bordered > tfoot > tr > th, -.table-bordered > thead > tr > td, -.table-bordered > tbody > tr > td, -.table-bordered > tfoot > tr > td { - border: 1px solid #dddddd; -} - -.table-bordered > thead > tr > th, -.table-bordered > thead > tr > td { - border-bottom-width: 2px; -} - -.table-striped > tbody > tr:nth-child(odd) > td, -.table-striped > tbody > tr:nth-child(odd) > th { - background-color: #f9f9f9; -} - -table col[class*="col-"] { - position: static; - float: none; - display: table-column; -} - -table td[class*="col-"], -table th[class*="col-"] { - position: static; - float: none; - display: table-cell; -} - -.table > thead > tr > td.active, -.table > tbody > tr > td.active, -.table > tfoot > tr > td.active, -.table > thead > tr > th.active, -.table > tbody > tr > th.active, -.table > tfoot > tr > th.active, -.table > thead > tr.active > td, -.table > tbody > tr.active > td, -.table > tfoot > tr.active > td, -.table > thead > tr.active > th, -.table > tbody > tr.active > th, -.table > tfoot > tr.active > th { - background-color: #f5f5f5; -} - -.table > thead > tr > td.success, -.table > tbody > tr > td.success, -.table > tfoot > tr > td.success, -.table > thead > tr > th.success, -.table > tbody > tr > th.success, -.table > tfoot > tr > th.success, -.table > thead > tr.success > td, -.table > tbody > tr.success > td, -.table > tfoot > tr.success > td, -.table > thead > tr.success > th, -.table > tbody > tr.success > th, -.table > tfoot > tr.success > th { - background-color: #dff0d8; -} - -.table > thead > tr > td.info, -.table > tbody > tr > td.info, -.table > tfoot > tr > td.info, -.table > thead > tr > th.info, -.table > tbody > tr > th.info, -.table > tfoot > tr > th.info, -.table > thead > tr.info > td, -.table > tbody > tr.info > td, -.table > tfoot > tr.info > td, -.table > thead > tr.info > th, -.table > tbody > tr.info > th, -.table > tfoot > tr.info > th { - background-color: #d9edf7; -} - -.table > thead > tr > td.warning, -.table > tbody > tr > td.warning, -.table > tfoot > tr > td.warning, -.table > thead > tr > th.warning, -.table > tbody > tr > th.warning, -.table > tfoot > tr > th.warning, -.table > thead > tr.warning > td, -.table > tbody > tr.warning > td, -.table > tfoot > tr.warning > td, -.table > thead > tr.warning > th, -.table > tbody > tr.warning > th, -.table > tfoot > tr.warning > th { - background-color: #fcf8e3; -} - -.table > thead > tr > td.danger, -.table > tbody > tr > td.danger, -.table > tfoot > tr > td.danger, -.table > thead > tr > th.danger, -.table > tbody > tr > th.danger, -.table > tfoot > tr > th.danger, -.table > thead > tr.danger > td, -.table > tbody > tr.danger > td, -.table > tfoot > tr.danger > td, -.table > thead > tr.danger > th, -.table > tbody > tr.danger > th, -.table > tfoot > tr.danger > th { - background-color: #f2dede; -} - -fieldset { - padding: 0; - margin: 0; - border: 0; - min-width: 0; -} - -legend { - display: block; - width: 100%; - padding: 0; - margin-bottom: 20px; - font-size: 21px; - line-height: inherit; - color: #333333; - border: 0; - border-bottom: 1px solid #e5e5e5; -} - -label { - display: inline-block; - margin-bottom: 5px; - font-weight: bold; -} - -input[type="search"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -input[type="radio"], -input[type="checkbox"] { - margin: 4px 0 0; - margin-top: 1px \9; - /* IE8-9 */ - line-height: normal; -} - -input[type="file"] { - display: block; -} - -input[type="range"] { - display: block; - width: 100%; -} - -select[multiple], -select[size] { - height: auto; -} - -input[type="file"]:focus, -input[type="radio"]:focus, -input[type="checkbox"]:focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} - -output { - display: block; - padding-top: 7px; - font-size: 14px; - line-height: 1.42857143; - color: #555555; -} - -.form-control { - display: block; - width: 100%; - height: 34px; - padding: 6px 12px; - font-size: 14px; - line-height: 1.42857143; - color: #555555; - background-color: #ffffff; - background-image: none; - border: 1px solid #cccccc; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; -} - -.form-control:focus { - border-color: #66afe9; - outline: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); -} - -.form-control::-moz-placeholder { - color: #999999; - opacity: 1; -} - -.form-control:-ms-input-placeholder { - color: #999999; -} - -.form-control::-webkit-input-placeholder { - color: #999999; -} - -.form-control[disabled], -.form-control[readonly], -fieldset[disabled] .form-control { - cursor: not-allowed; - background-color: #eeeeee; - opacity: 1; -} - -textarea.form-control { - height: auto; -} - -input[type="search"] { - -webkit-appearance: none; -} - -input[type="date"] { - line-height: 34px; -} - -.form-group { - margin-bottom: 15px; -} - -.radio, -.checkbox { - display: block; - min-height: 20px; - margin-top: 10px; - margin-bottom: 10px; - padding-left: 20px; -} - -.radio label, -.checkbox label { - display: inline; - font-weight: normal; - cursor: pointer; -} - -.radio input[type="radio"], -.radio-inline input[type="radio"], -.checkbox input[type="checkbox"], -.checkbox-inline input[type="checkbox"] { - float: left; - margin-left: -20px; -} - -.radio + .radio, -.checkbox + .checkbox { - margin-top: -5px; -} - -.radio-inline, -.checkbox-inline { - display: inline-block; - padding-left: 20px; - margin-bottom: 0; - vertical-align: middle; - font-weight: normal; - cursor: pointer; -} - -.radio-inline + .radio-inline, -.checkbox-inline + .checkbox-inline { - margin-top: 0; - margin-left: 10px; -} - -input[type="radio"][disabled], -input[type="checkbox"][disabled], -.radio[disabled], -.radio-inline[disabled], -.checkbox[disabled], -.checkbox-inline[disabled], -fieldset[disabled] input[type="radio"], -fieldset[disabled] input[type="checkbox"], -fieldset[disabled] .radio, -fieldset[disabled] .radio-inline, -fieldset[disabled] .checkbox, -fieldset[disabled] .checkbox-inline { - cursor: not-allowed; -} - -.input-sm { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} - -select.input-sm { - height: 30px; - line-height: 30px; -} - -textarea.input-sm, -select[multiple].input-sm { - height: auto; -} - -.input-lg { - height: 46px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.33; - border-radius: 6px; -} - -select.input-lg { - height: 46px; - line-height: 46px; -} - -textarea.input-lg, -select[multiple].input-lg { - height: auto; -} - -.has-feedback { - position: relative; -} - -.has-feedback .form-control { - padding-right: 42.5px; -} - -.has-feedback .form-control-feedback { - position: absolute; - top: 25px; - right: 0; - display: block; - width: 34px; - height: 34px; - line-height: 34px; - text-align: center; -} - -.has-success .help-block, -.has-success .control-label, -.has-success .radio, -.has-success .checkbox, -.has-success .radio-inline, -.has-success .checkbox-inline { - color: #3c763d; -} - -.has-success .form-control { - border-color: #3c763d; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} - -.has-success .form-control:focus { - border-color: #2b542c; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; -} - -.has-success .input-group-addon { - color: #3c763d; - border-color: #3c763d; - background-color: #dff0d8; -} - -.has-success .form-control-feedback { - color: #3c763d; -} - -.has-warning .help-block, -.has-warning .control-label, -.has-warning .radio, -.has-warning .checkbox, -.has-warning .radio-inline, -.has-warning .checkbox-inline { - color: #8a6d3b; -} - -.has-warning .form-control { - border-color: #8a6d3b; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} - -.has-warning .form-control:focus { - border-color: #66512c; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; -} - -.has-warning .input-group-addon { - color: #8a6d3b; - border-color: #8a6d3b; - background-color: #fcf8e3; -} - -.has-warning .form-control-feedback { - color: #8a6d3b; -} - -.has-error .help-block, -.has-error .control-label, -.has-error .radio, -.has-error .checkbox, -.has-error .radio-inline, -.has-error .checkbox-inline { - color: #a94442; -} - -.has-error .form-control { - border-color: #a94442; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} - -.has-error .form-control:focus { - border-color: #843534; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; -} - -.has-error .input-group-addon { - color: #a94442; - border-color: #a94442; - background-color: #f2dede; -} - -.has-error .form-control-feedback { - color: #a94442; -} - -.form-control-static { - margin-bottom: 0; -} - -.help-block { - display: block; - margin-top: 5px; - margin-bottom: 10px; - color: #737373; -} - -.form-horizontal .control-label, -.form-horizontal .radio, -.form-horizontal .checkbox, -.form-horizontal .radio-inline, -.form-horizontal .checkbox-inline { - margin-top: 0; - margin-bottom: 0; - padding-top: 7px; -} - -.form-horizontal .radio, -.form-horizontal .checkbox { - min-height: 27px; -} - -.form-horizontal .form-group { - margin-left: -15px; - margin-right: -15px; -} - -.form-horizontal .form-control-static { - padding-top: 7px; -} - -.form-horizontal .has-feedback .form-control-feedback { - top: 0; - right: 15px; -} - -.btn { - display: inline-block; - margin-bottom: 0; - font-weight: normal; - text-align: center; - vertical-align: middle; - cursor: pointer; - background-image: none; - border: 1px solid transparent; - white-space: nowrap; - padding: 6px 12px; - font-size: 14px; - line-height: 1.42857143; - border-radius: 4px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.btn:focus, -.btn:active:focus, -.btn.active:focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} - -.btn:focus { - color: #333333; - text-decoration: none; -} - -.btn:active, -.btn.active { - outline: 0; - background-image: none; - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); -} - -.btn.disabled, -.btn[disabled], -fieldset[disabled] .btn { - cursor: not-allowed; - pointer-events: none; - opacity: 0.65; - filter: alpha(opacity=65); - -webkit-box-shadow: none; - box-shadow: none; -} - -.btn-default { - color: #333333; - background-color: #ffffff; - border-color: #cccccc; -} - -.btn-default:focus, -.btn-default:active, -.btn-default.active, -.open .dropdown-toggle.btn-default { - color: #333333; - background-color: #ebebeb; - border-color: #adadad; -} - -.btn-default:active, -.btn-default.active, -.open .dropdown-toggle.btn-default { - background-image: none; -} - -.btn-default.disabled, -.btn-default[disabled], -fieldset[disabled] .btn-default, -.btn-default.disabled:focus, -.btn-default[disabled]:focus, -fieldset[disabled] .btn-default:focus, -.btn-default.disabled:active, -.btn-default[disabled]:active, -fieldset[disabled] .btn-default:active, -.btn-default.disabled.active, -.btn-default[disabled].active, -fieldset[disabled] .btn-default.active { - background-color: #ffffff; - border-color: #cccccc; -} - -.btn-default .badge { - color: #ffffff; - background-color: #333333; -} - -.btn-primary { - color: #ffffff; - background-color: #48C9AF; - border-color: #006ee6; -} - -.btn-primary:focus, -.btn-primary:active, -.btn-primary.active, -.open .dropdown-toggle.btn-primary { - color: #ffffff; - background-color: #0066d6; - border-color: #0051a8; -} - -.btn-primary:active, -.btn-primary.active, -.open .dropdown-toggle.btn-primary { - background-image: none; -} - -.btn-primary.disabled, -.btn-primary[disabled], -fieldset[disabled] .btn-primary, -.btn-primary.disabled:focus, -.btn-primary[disabled]:focus, -fieldset[disabled] .btn-primary:focus, -.btn-primary.disabled:active, -.btn-primary[disabled]:active, -fieldset[disabled] .btn-primary:active, -.btn-primary.disabled.active, -.btn-primary[disabled].active, -fieldset[disabled] .btn-primary.active { - background-color: #48C9AF; - border-color: #006ee6; -} - -.btn-primary .badge { - color: #48C9AF; - background-color: #ffffff; -} - -.btn-success { - color: #ffffff; - background-color: #4cd964; - border-color: #37d552; -} - -.btn-success:focus, -.btn-success:active, -.btn-success.active, -.open .dropdown-toggle.btn-success { - color: #ffffff; - background-color: #2cd048; - border-color: #24aa3b; -} - -.btn-success:active, -.btn-success.active, -.open .dropdown-toggle.btn-success { - background-image: none; -} - -.btn-success.disabled, -.btn-success[disabled], -fieldset[disabled] .btn-success, -.btn-success.disabled:focus, -.btn-success[disabled]:focus, -fieldset[disabled] .btn-success:focus, -.btn-success.disabled:active, -.btn-success[disabled]:active, -fieldset[disabled] .btn-success:active, -.btn-success.disabled.active, -.btn-success[disabled].active, -fieldset[disabled] .btn-success.active { - background-color: #4cd964; - border-color: #37d552; -} - -.btn-success .badge { - color: #4cd964; - background-color: #ffffff; -} - -.btn-info { - color: #ffffff; - background-color: #34aadc; - border-color: #249ed2; -} - -.btn-info:focus, -.btn-info:active, -.btn-info.active, -.open .dropdown-toggle.btn-info { - color: #ffffff; - background-color: #2295c5; - border-color: #1b779e; -} - -.btn-info:active, -.btn-info.active, -.open .dropdown-toggle.btn-info { - background-image: none; -} - -.btn-info.disabled, -.btn-info[disabled], -fieldset[disabled] .btn-info, -.btn-info.disabled:focus, -.btn-info[disabled]:focus, -fieldset[disabled] .btn-info:focus, -.btn-info.disabled:active, -.btn-info[disabled]:active, -fieldset[disabled] .btn-info:active, -.btn-info.disabled.active, -.btn-info[disabled].active, -fieldset[disabled] .btn-info.active { - background-color: #34aadc; - border-color: #249ed2; -} - -.btn-info .badge { - color: #34aadc; - background-color: #ffffff; -} - -.btn-warning { - color: #ffffff; - background-color: #ffcc00; - border-color: #e6b800; -} - -.btn-warning:focus, -.btn-warning:active, -.btn-warning.active, -.open .dropdown-toggle.btn-warning { - color: #ffffff; - background-color: #d6ab00; - border-color: #a88700; -} - -.btn-warning:active, -.btn-warning.active, -.open .dropdown-toggle.btn-warning { - background-image: none; -} - -.btn-warning.disabled, -.btn-warning[disabled], -fieldset[disabled] .btn-warning, -.btn-warning.disabled:focus, -.btn-warning[disabled]:focus, -fieldset[disabled] .btn-warning:focus, -.btn-warning.disabled:active, -.btn-warning[disabled]:active, -fieldset[disabled] .btn-warning:active, -.btn-warning.disabled.active, -.btn-warning[disabled].active, -fieldset[disabled] .btn-warning.active { - background-color: #ffcc00; - border-color: #e6b800; -} - -.btn-warning .badge { - color: #ffcc00; - background-color: #ffffff; -} - -.btn-danger { - color: #ffffff; - background-color: #ff3b30; - border-color: #ff2317; -} - -.btn-danger:focus, -.btn-danger:active, -.btn-danger.active, -.open .dropdown-toggle.btn-danger { - color: #ffffff; - background-color: #ff1407; - border-color: #d80b00; -} - -.btn-danger:active, -.btn-danger.active, -.open .dropdown-toggle.btn-danger { - background-image: none; -} - -.btn-danger.disabled, -.btn-danger[disabled], -fieldset[disabled] .btn-danger, -.btn-danger.disabled:focus, -.btn-danger[disabled]:focus, -fieldset[disabled] .btn-danger:focus, -.btn-danger.disabled:active, -.btn-danger[disabled]:active, -fieldset[disabled] .btn-danger:active, -.btn-danger.disabled.active, -.btn-danger[disabled].active, -fieldset[disabled] .btn-danger.active { - background-color: #ff3b30; - border-color: #ff2317; -} - -.btn-danger .badge { - color: #ff3b30; - background-color: #ffffff; -} - -.btn-link { - color: #48C9AF; - font-weight: normal; - cursor: pointer; - border-radius: 0; -} - -.btn-link, -.btn-link:active, -.btn-link[disabled], -fieldset[disabled] .btn-link { - background-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; -} - -.btn-link, -.btn-link:focus, -.btn-link:active { - border-color: transparent; -} - -.btn-link:focus { - color: #0055b3; - text-decoration: underline; - background-color: transparent; -} - -.btn-link[disabled]:focus, -fieldset[disabled] .btn-link:focus { - color: #999999; - text-decoration: none; -} - -.btn-lg, -.btn-group-lg > .btn { - padding: 10px 16px; - font-size: 18px; - line-height: 1.33; - border-radius: 6px; -} - -.btn-sm, -.btn-group-sm > .btn { - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} - -.btn-xs, -.btn-group-xs > .btn { - padding: 1px 5px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} - -.btn-block { - display: block; - width: 100%; - padding-left: 0; - padding-right: 0; -} - -.btn-block + .btn-block { - margin-top: 5px; -} - -input[type="submit"].btn-block, -input[type="reset"].btn-block, -input[type="button"].btn-block { - width: 100%; -} - -.fade { - opacity: 0; - -webkit-transition: opacity 0.15s linear; - transition: opacity 0.15s linear; -} - -.fade.in { - opacity: 1; -} - -.collapse { - display: none; -} - -.collapse.in { - display: block; -} - -.collapsing { - position: relative; - height: 0; - overflow: hidden; - -webkit-transition: height 0.35s ease; - transition: height 0.35s ease; -} - -.caret { - display: inline-block; - width: 0; - height: 0; - margin-left: 2px; - vertical-align: middle; - border-top: 4px solid; - border-right: 4px solid transparent; - border-left: 4px solid transparent; -} - -.dropdown { - position: relative; -} - -.dropdown-toggle:focus { - outline: 0; -} - -.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - display: none; - float: left; - min-width: 160px; - padding: 5px 0; - margin: 2px 0 0; - list-style: none; - font-size: 14px; - background-color: #ffffff; - border: 1px solid #cccccc; - border: 1px solid rgba(0, 0, 0, 0.15); - border-radius: 4px; - -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - background-clip: padding-box; -} - -.dropdown-menu.pull-right { - right: 0; - left: auto; -} - -.dropdown-menu .divider { - height: 1px; - margin: 9px 0; - overflow: hidden; - background-color: #e5e5e5; -} - -.dropdown-menu > li > a { - display: block; - padding: 3px 20px; - clear: both; - font-weight: normal; - line-height: 1.42857143; - color: #333333; - white-space: nowrap; -} - -.dropdown-menu > li > a:focus { - text-decoration: none; - color: #262626; - background-color: #f5f5f5; -} - -.dropdown-menu > .active > a, -.dropdown-menu > .active > a:focus { - color: #ffffff; - text-decoration: none; - outline: 0; - background-color: #48C9AF; -} - -.dropdown-menu > .disabled > a, -.dropdown-menu > .disabled > a:focus { - color: #999999; -} - -.dropdown-menu > .disabled > a:focus { - text-decoration: none; - background-color: transparent; - background-image: none; - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - cursor: not-allowed; -} - -.open > .dropdown-menu { - display: block; -} - -.open > a { - outline: 0; -} - -.dropdown-menu-right { - left: auto; - right: 0; -} - -.dropdown-menu-left { - left: 0; - right: auto; -} - -.dropdown-header { - display: block; - padding: 3px 20px; - font-size: 12px; - line-height: 1.42857143; - color: #999999; -} - -.dropdown-backdrop { - position: fixed; - left: 0; - right: 0; - bottom: 0; - top: 0; - z-index: 990; -} - -.pull-right > .dropdown-menu { - right: 0; - left: auto; -} - -.dropup .caret, -.navbar-fixed-bottom .dropdown .caret { - border-top: 0; - border-bottom: 4px solid; - content: ""; -} - -.dropup .dropdown-menu, -.navbar-fixed-bottom .dropdown .dropdown-menu { - top: auto; - bottom: 100%; - margin-bottom: 1px; -} - -.btn-group, -.btn-group-vertical { - position: relative; - display: inline-block; - vertical-align: middle; -} - -.btn-group > .btn, -.btn-group-vertical > .btn { - position: relative; - float: left; -} - -.btn-group > .btn:focus, -.btn-group-vertical > .btn:focus, -.btn-group > .btn:active, -.btn-group-vertical > .btn:active, -.btn-group > .btn.active, -.btn-group-vertical > .btn.active { - z-index: 2; -} - -.btn-group > .btn:focus, -.btn-group-vertical > .btn:focus { - outline: none; -} - -.btn-group .btn + .btn, -.btn-group .btn + .btn-group, -.btn-group .btn-group + .btn, -.btn-group .btn-group + .btn-group { - margin-left: -1px; -} - -.btn-toolbar { - margin-left: -5px; -} - -.btn-toolbar .btn-group, -.btn-toolbar .input-group { - float: left; -} - -.btn-toolbar > .btn, -.btn-toolbar > .btn-group, -.btn-toolbar > .input-group { - margin-left: 5px; -} - -.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { - border-radius: 0; -} - -.btn-group > .btn:first-child { - margin-left: 0; -} - -.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { - border-bottom-right-radius: 0; - border-top-right-radius: 0; -} - -.btn-group > .btn:last-child:not(:first-child), -.btn-group > .dropdown-toggle:not(:first-child) { - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} - -.btn-group > .btn-group { - float: left; -} - -.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} - -.btn-group > .btn-group:first-child > .btn:last-child, -.btn-group > .btn-group:first-child > .dropdown-toggle { - border-bottom-right-radius: 0; - border-top-right-radius: 0; -} - -.btn-group > .btn-group:last-child > .btn:first-child { - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} - -.btn-group .dropdown-toggle:active, -.btn-group.open .dropdown-toggle { - outline: 0; -} - -.btn-group > .btn + .dropdown-toggle { - padding-left: 8px; - padding-right: 8px; -} - -.btn-group > .btn-lg + .dropdown-toggle { - padding-left: 12px; - padding-right: 12px; -} - -.btn-group.open .dropdown-toggle { - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); -} - -.btn-group.open .dropdown-toggle.btn-link { - -webkit-box-shadow: none; - box-shadow: none; -} - -.btn .caret { - margin-left: 0; -} - -.btn-lg .caret { - border-width: 5px 5px 0; - border-bottom-width: 0; -} - -.dropup .btn-lg .caret { - border-width: 0 5px 5px; -} - -.btn-group-vertical > .btn, -.btn-group-vertical > .btn-group, -.btn-group-vertical > .btn-group > .btn { - display: block; - float: none; - width: 100%; - max-width: 100%; -} - -.btn-group-vertical > .btn-group > .btn { - float: none; -} - -.btn-group-vertical > .btn + .btn, -.btn-group-vertical > .btn + .btn-group, -.btn-group-vertical > .btn-group + .btn, -.btn-group-vertical > .btn-group + .btn-group { - margin-top: -1px; - margin-left: 0; -} - -.btn-group-vertical > .btn:not(:first-child):not(:last-child) { - border-radius: 0; -} - -.btn-group-vertical > .btn:first-child:not(:last-child) { - border-top-right-radius: 4px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} - -.btn-group-vertical > .btn:last-child:not(:first-child) { - border-bottom-left-radius: 4px; - border-top-right-radius: 0; - border-top-left-radius: 0; -} - -.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} - -.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, -.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} - -.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { - border-top-right-radius: 0; - border-top-left-radius: 0; -} - -.btn-group-justified { - display: table; - width: 100%; - table-layout: fixed; - border-collapse: separate; -} - -.btn-group-justified > .btn, -.btn-group-justified > .btn-group { - float: none; - display: table-cell; - width: 1%; -} - -.btn-group-justified > .btn-group .btn { - width: 100%; -} - -[data-toggle="buttons"] > .btn > input[type="radio"], -[data-toggle="buttons"] > .btn > input[type="checkbox"] { - display: none; -} - -.input-group { - position: relative; - display: table; - border-collapse: separate; -} - -.input-group[class*="col-"] { - float: none; - padding-left: 0; - padding-right: 0; -} - -.input-group .form-control { - position: relative; - z-index: 2; - float: left; - width: 100%; - margin-bottom: 0; -} - -.input-group-lg > .form-control, -.input-group-lg > .input-group-addon, -.input-group-lg > .input-group-btn > .btn { - height: 46px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.33; - border-radius: 6px; -} - -select.input-group-lg > .form-control, -select.input-group-lg > .input-group-addon, -select.input-group-lg > .input-group-btn > .btn { - height: 46px; - line-height: 46px; -} - -textarea.input-group-lg > .form-control, -textarea.input-group-lg > .input-group-addon, -textarea.input-group-lg > .input-group-btn > .btn, -select[multiple].input-group-lg > .form-control, -select[multiple].input-group-lg > .input-group-addon, -select[multiple].input-group-lg > .input-group-btn > .btn { - height: auto; -} - -.input-group-sm > .form-control, -.input-group-sm > .input-group-addon, -.input-group-sm > .input-group-btn > .btn { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} - -select.input-group-sm > .form-control, -select.input-group-sm > .input-group-addon, -select.input-group-sm > .input-group-btn > .btn { - height: 30px; - line-height: 30px; -} - -textarea.input-group-sm > .form-control, -textarea.input-group-sm > .input-group-addon, -textarea.input-group-sm > .input-group-btn > .btn, -select[multiple].input-group-sm > .form-control, -select[multiple].input-group-sm > .input-group-addon, -select[multiple].input-group-sm > .input-group-btn > .btn { - height: auto; -} - -.input-group-addon, -.input-group-btn, -.input-group .form-control { - display: table-cell; -} - -.input-group-addon:not(:first-child):not(:last-child), -.input-group-btn:not(:first-child):not(:last-child), -.input-group .form-control:not(:first-child):not(:last-child) { - border-radius: 0; -} - -.input-group-addon, -.input-group-btn { - width: 1%; - white-space: nowrap; - vertical-align: middle; -} - -.input-group-addon { - padding: 6px 12px; - font-size: 14px; - font-weight: normal; - line-height: 1; - color: #555555; - text-align: center; - background-color: #eeeeee; - border: 1px solid #cccccc; - border-radius: 4px; -} - -.input-group-addon.input-sm { - padding: 5px 10px; - font-size: 12px; - border-radius: 3px; -} - -.input-group-addon.input-lg { - padding: 10px 16px; - font-size: 18px; - border-radius: 6px; -} - -.input-group-addon input[type="radio"], -.input-group-addon input[type="checkbox"] { - margin-top: 0; -} - -.input-group .form-control:first-child, -.input-group-addon:first-child, -.input-group-btn:first-child > .btn, -.input-group-btn:first-child > .btn-group > .btn, -.input-group-btn:first-child > .dropdown-toggle, -.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), -.input-group-btn:last-child > .btn-group:not(:last-child) > .btn { - border-bottom-right-radius: 0; - border-top-right-radius: 0; -} - -.input-group-addon:first-child { - border-right: 0; -} - -.input-group .form-control:last-child, -.input-group-addon:last-child, -.input-group-btn:last-child > .btn, -.input-group-btn:last-child > .btn-group > .btn, -.input-group-btn:last-child > .dropdown-toggle, -.input-group-btn:first-child > .btn:not(:first-child), -.input-group-btn:first-child > .btn-group:not(:first-child) > .btn { - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} - -.input-group-addon:last-child { - border-left: 0; -} - -.input-group-btn { - position: relative; - font-size: 0; - white-space: nowrap; -} - -.input-group-btn > .btn { - position: relative; -} - -.input-group-btn > .btn + .btn { - margin-left: -1px; -} - -.input-group-btn > .btn:focus, -.input-group-btn > .btn:active { - z-index: 2; -} - -.input-group-btn:first-child > .btn, -.input-group-btn:first-child > .btn-group { - margin-right: -1px; -} - -.input-group-btn:last-child > .btn, -.input-group-btn:last-child > .btn-group { - margin-left: -1px; -} - -.nav { - margin-bottom: 0; - padding-left: 0; - list-style: none; -} - -.nav > li { - position: relative; - display: block; -} - -.nav > li > a { - position: relative; - display: block; - padding: 10px 15px; -} - -.nav > li > a:focus { - text-decoration: none; - background-color: #eeeeee; -} - -.nav > li.disabled > a { - color: #999999; -} - -.nav > li.disabled > a:focus { - color: #999999; - text-decoration: none; - background-color: transparent; - cursor: not-allowed; -} - -.nav .open > a, -.nav .open > a:focus { - background-color: #eeeeee; - border-color: #48C9AF; -} - -.nav .nav-divider { - height: 1px; - margin: 9px 0; - overflow: hidden; - background-color: #e5e5e5; -} - -.nav > li > a > img { - max-width: none; -} - -.nav-tabs { - border-bottom: 1px solid #dddddd; -} - -.nav-tabs > li { - float: left; - margin-bottom: -1px; -} - -.nav-tabs > li > a { - margin-right: 2px; - line-height: 1.42857143; - border: 1px solid transparent; - border-radius: 4px 4px 0 0; -} - -.nav-tabs > li.active > a, -.nav-tabs > li.active > a:focus { - color: #555555; - background-color: #ffffff; - border: 1px solid #dddddd; - border-bottom-color: transparent; - cursor: default; -} - -.nav-tabs.nav-justified { - width: 100%; - border-bottom: 0; -} - -.nav-tabs.nav-justified > li { - float: none; -} - -.nav-tabs.nav-justified > li > a { - text-align: center; - margin-bottom: 5px; -} - -.nav-tabs.nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; -} - -.nav-tabs.nav-justified > li > a { - margin-right: 0; - border-radius: 4px; -} - -.nav-tabs.nav-justified > .active > a, -.nav-tabs.nav-justified > .active > a:focus { - border: 1px solid #dddddd; -} - -.nav-pills > li { - float: left; -} - -.nav-pills > li > a { - border-radius: 4px; -} - -.nav-pills > li + li { - margin-left: 2px; -} - -.nav-pills > li.active > a, -.nav-pills > li.active > a:focus { - color: #ffffff; - background-color: #48C9AF; -} - -.nav-stacked > li { - float: none; -} - -.nav-stacked > li + li { - margin-top: 2px; - margin-left: 0; -} - -.nav-justified { - width: 100%; -} - -.nav-justified > li { - float: none; -} - -.nav-justified > li > a { - text-align: center; - margin-bottom: 5px; -} - -.nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; -} - -.nav-tabs-justified { - border-bottom: 0; -} - -.nav-tabs-justified > li > a { - margin-right: 0; - border-radius: 4px; -} - -.nav-tabs-justified > .active > a, -.nav-tabs-justified > .active > a:focus { - border: 1px solid #dddddd; -} - -.tab-content > .tab-pane { - display: none; -} - -.tab-content > .active { - display: block; -} - -.nav-tabs .dropdown-menu { - margin-top: -1px; - border-top-right-radius: 0; - border-top-left-radius: 0; -} - -.navbar { - position: relative; - min-height: 50px; - margin-bottom: 20px; - border: 1px solid transparent; -} - -.navbar-collapse { - max-height: 340px; - overflow-x: visible; - padding-right: 15px; - padding-left: 15px; - border-top: 1px solid transparent; - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); - -webkit-overflow-scrolling: touch; -} - -.navbar-collapse.in { - overflow-y: auto; -} - -.container > .navbar-header, -.container-fluid > .navbar-header, -.container > .navbar-collapse, -.container-fluid > .navbar-collapse { - margin-right: -15px; - margin-left: -15px; -} - -.navbar-static-top { - z-index: 1000; - border-width: 0 0 1px; -} - -.navbar-fixed-top, -.navbar-fixed-bottom { - position: fixed; - right: 0; - left: 0; - z-index: 1030; -} - -.navbar-fixed-top { - top: 0; - border-width: 0 0 1px; -} - -.navbar-fixed-bottom { - bottom: 0; - margin-bottom: 0; - border-width: 1px 0 0; -} - -.navbar-brand { - float: left; - padding: 15px 15px; - font-size: 18px; - line-height: 20px; - height: 50px; -} - -.navbar-brand:focus { - text-decoration: none; -} - -.navbar-toggle { - position: relative; - float: right; - margin-right: 15px; - padding: 9px 10px; - margin-top: 8px; - margin-bottom: 8px; - background-color: transparent; - background-image: none; - border: 1px solid transparent; - border-radius: 4px; -} - -.navbar-toggle:focus { - outline: none; -} - -.navbar-toggle .icon-bar { - display: block; - width: 22px; - height: 2px; - border-radius: 1px; -} - -.navbar-toggle .icon-bar + .icon-bar { - margin-top: 4px; -} - -.navbar-nav { - margin: 7.5px -15px; -} - -.navbar-nav > li > a { - padding-top: 10px; - padding-bottom: 10px; - line-height: 20px; -} - -.navbar-form { - margin-left: -15px; - margin-right: -15px; - padding: 10px 15px; - border-top: 1px solid transparent; - border-bottom: 1px solid transparent; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); - margin-top: 8px; - margin-bottom: 8px; -} - -.navbar-nav > li > .dropdown-menu { - margin-top: 0; - border-top-right-radius: 0; - border-top-left-radius: 0; -} - -.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} - -.navbar-btn { - margin-top: 8px; - margin-bottom: 8px; -} - -.navbar-btn.btn-sm { - margin-top: 10px; - margin-bottom: 10px; -} - -.navbar-btn.btn-xs { - margin-top: 14px; - margin-bottom: 14px; -} - -.navbar-text { - margin-top: 15px; - margin-bottom: 15px; -} - -.navbar-default { - background-color: #f7f7f7; - border-color: #cccccc; -} - -.navbar-default .navbar-brand { - color: #48C9AF; -} - -.navbar-default .navbar-brand:focus { - color: #0062cc; - background-color: transparent; -} - -.navbar-default .navbar-text { - color: #48C9AF; -} - -.navbar-default .navbar-nav > li > a { - color: #48C9AF; -} - -.navbar-default .navbar-nav > li > a:focus { - color: #006ee6; - background-color: transparent; -} - -.navbar-default .navbar-nav > .active > a, -.navbar-default .navbar-nav > .active > a:focus { - color: #1a87ff; - background-color: #e6e6e6; -} - -.navbar-default .navbar-nav > .disabled > a, -.navbar-default .navbar-nav > .disabled > a:focus { - color: #66afff; - background-color: transparent; -} - -.navbar-default .navbar-toggle { - border-color: #dddddd; -} - -.navbar-default .navbar-toggle:focus { - background-color: #dddddd; -} - -.navbar-default .navbar-toggle .icon-bar { - background-color: #cccccc; -} - -.navbar-default .navbar-collapse, -.navbar-default .navbar-form { - border-color: #cccccc; -} - -.navbar-default .navbar-nav > .open > a, -.navbar-default .navbar-nav > .open > a:focus { - background-color: #e6e6e6; - color: #1a87ff; -} - -.navbar-default .navbar-link { - color: #48C9AF; -} - -.navbar-inverse { - background-color: #222222; - border-color: #080808; -} - -.navbar-inverse .navbar-brand { - color: #999999; -} - -.navbar-inverse .navbar-brand:focus { - color: #ffffff; - background-color: transparent; -} - -.navbar-inverse .navbar-text { - color: #999999; -} - -.navbar-inverse .navbar-nav > li > a { - color: #999999; -} - -.navbar-inverse .navbar-nav > li > a:focus { - color: #ffffff; - background-color: transparent; -} - -.navbar-inverse .navbar-nav > .active > a, -.navbar-inverse .navbar-nav > .active > a:focus { - color: #ffffff; - background-color: #080808; -} - -.navbar-inverse .navbar-nav > .disabled > a, -.navbar-inverse .navbar-nav > .disabled > a:focus { - color: #444444; - background-color: transparent; -} - -.navbar-inverse .navbar-toggle { - border-color: #333333; -} - -.navbar-inverse .navbar-toggle:focus { - background-color: #333333; -} - -.navbar-inverse .navbar-toggle .icon-bar { - background-color: #ffffff; -} - -.navbar-inverse .navbar-collapse, -.navbar-inverse .navbar-form { - border-color: #101010; -} - -.navbar-inverse .navbar-nav > .open > a, -.navbar-inverse .navbar-nav > .open > a:focus { - background-color: #080808; - color: #ffffff; -} - -.navbar-inverse .navbar-link { - color: #999999; -} - -.pager { - padding-left: 0; - margin: 20px 0; - list-style: none; - text-align: center; -} - -.pager li { - display: inline; -} - -.pager li > a, -.pager li > span { - display: inline-block; - padding: 5px 14px; - background-color: #ffffff; - border: 1px solid #dddddd; - border-radius: 15px; -} - -.pager li > a:focus { - text-decoration: none; - background-color: #eeeeee; -} - -.pager .next > a, -.pager .next > span { - float: right; -} - -.pager .previous > a, -.pager .previous > span { - float: left; -} - -.pager .disabled > a, -.pager .disabled > a:focus, -.pager .disabled > span { - color: #999999; - background-color: #ffffff; - cursor: not-allowed; -} - -.label { - display: inline; - padding: .2em .6em .3em; - font-size: 75%; - font-weight: bold; - line-height: 1; - color: #ffffff; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: .25em; -} - -.label[href]:focus { - color: #ffffff; - text-decoration: none; - cursor: pointer; -} - -.label:empty { - display: none; -} - -.btn .label { - position: relative; - top: -1px; -} - -.label-default { - background-color: #999999; -} - -.label-default[href]:focus { - background-color: #808080; -} - -.label-primary { - background-color: #48C9AF; -} - -.label-primary[href]:focus { - background-color: #0062cc; -} - -.label-success { - background-color: #4cd964; -} - -.label-success[href]:focus { - background-color: #2ac845; -} - -.label-info { - background-color: #34aadc; -} - -.label-info[href]:focus { - background-color: #218ebd; -} - -.label-warning { - background-color: #ffcc00; -} - -.label-warning[href]:focus { - background-color: #cca300; -} - -.label-danger { - background-color: #ff3b30; -} - -.label-danger[href]:focus { - background-color: #fc0d00; -} - -.badge { - display: inline-block; - min-width: 10px; - padding: 3px 7px; - font-size: 12px; - font-weight: normal; - color: #ffffff; - line-height: 1; - vertical-align: baseline; - white-space: nowrap; - text-align: center; - background-color: #999999; - border-radius: 10px; -} - -.badge:empty { - display: none; -} - -.btn .badge { - position: relative; - top: -1px; -} - -.btn-xs .badge { - top: 0; - padding: 1px 5px; -} - -a.badge:focus { - color: #ffffff; - text-decoration: none; - cursor: pointer; -} - -a.list-group-item.active > .badge, -.nav-pills > .active > a > .badge { - color: #48C9AF; - background-color: #ffffff; -} - -.nav-pills > li > a > .badge { - margin-left: 3px; -} - -.thumbnail { - display: block; - padding: 4px; - margin-bottom: 20px; - line-height: 1.42857143; - background-color: #ffffff; - border: 1px solid #dddddd; - border-radius: 4px; - -webkit-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; -} - -.thumbnail > img, -.thumbnail a > img { - margin-left: auto; - margin-right: auto; -} - -a.thumbnail:focus, -a.thumbnail.active { - border-color: #48C9AF; -} - -.thumbnail .caption { - padding: 9px; - color: #333333; -} - -.alert { - padding: 15px; - margin-bottom: 20px; - border: 1px solid transparent; - border-radius: 4px; -} - -.alert h4 { - margin-top: 0; - color: inherit; -} - -.alert .alert-link { - font-weight: normal; -} - -.alert > p, -.alert > ul { - margin-bottom: 0; -} - -.alert > p + p { - margin-top: 5px; -} - -.alert-dismissable { - padding-right: 35px; -} - -.alert-dismissable .close { - position: relative; - top: -2px; - right: -21px; - color: inherit; -} - -.alert-success { - background-color: #dff0d8; - border-color: #d6e9c6; - color: #3c763d; -} - -.alert-success hr { - border-top-color: #c9e2b3; -} - -.alert-success .alert-link { - color: #2b542c; -} - -.alert-info { - background-color: #d9edf7; - border-color: #bce8f1; - color: #31708f; -} - -.alert-info hr { - border-top-color: #a6e1ec; -} - -.alert-info .alert-link { - color: #245269; -} - -.alert-warning { - background-color: #fcf8e3; - border-color: #faebcc; - color: #8a6d3b; -} - -.alert-warning hr { - border-top-color: #f7e1b5; -} - -.alert-warning .alert-link { - color: #66512c; -} - -.alert-danger { - background-color: #f2dede; - border-color: #ebccd1; - color: #a94442; -} - -.alert-danger hr { - border-top-color: #e4b9c0; -} - -.alert-danger .alert-link { - color: #843534; -} - -@-webkit-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - - to { - background-position: 0 0; - } -} - -@keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - - to { - background-position: 0 0; - } -} - -.progress { - overflow: hidden; - height: 20px; - margin-bottom: 20px; - background-color: #f5f5f5; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); -} - -.progress-bar { - float: left; - width: 0%; - height: 100%; - font-size: 12px; - line-height: 20px; - color: #ffffff; - text-align: center; - background-color: #48C9AF; - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - -webkit-transition: width 0.6s ease; - transition: width 0.6s ease; -} - -.progress-striped .progress-bar { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-size: 40px 40px; -} - -.progress.active .progress-bar { - -webkit-animation: progress-bar-stripes 2s linear infinite; - animation: progress-bar-stripes 2s linear infinite; -} - -.progress-bar-success { - background-color: #4cd964; -} - -.progress-striped .progress-bar-success { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} - -.progress-bar-info { - background-color: #34aadc; -} - -.progress-striped .progress-bar-info { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} - -.progress-bar-warning { - background-color: #ffcc00; -} - -.progress-striped .progress-bar-warning { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} - -.progress-bar-danger { - background-color: #ff3b30; -} - -.progress-striped .progress-bar-danger { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} - -.media, -.media-body { - overflow: hidden; - zoom: 1; -} - -.media, -.media .media { - margin-top: 15px; -} - -.media:first-child { - margin-top: 0; -} - -.media-object { - display: block; -} - -.media-heading { - margin: 0 0 5px; -} - -.media > .pull-left { - margin-right: 10px; -} - -.media > .pull-right { - margin-left: 10px; -} - -.media-list { - padding-left: 0; - list-style: none; -} - -.list-group { - margin-bottom: 20px; - padding-left: 0; -} - -.list-group-item { - position: relative; - display: block; - padding: 10px 15px; - margin-bottom: -1px; - background-color: #ffffff; - border: 1px solid #dddddd; -} - -.list-group-item:first-child { - border-top-right-radius: 4px; - border-top-left-radius: 4px; -} - -.list-group-item:last-child { - margin-bottom: 0; - border-bottom-right-radius: 4px; - border-bottom-left-radius: 4px; -} - -.list-group-item > .badge { - float: right; -} - -.list-group-item > .badge + .badge { - margin-right: 5px; -} - -a.list-group-item { - color: #555555; -} - -a.list-group-item .list-group-item-heading { - color: #333333; -} - -a.list-group-item:focus { - text-decoration: none; - background-color: #f5f5f5; -} - -a.list-group-item.active, -a.list-group-item.active:focus { - z-index: 2; - color: #ffffff; - background-color: #48C9AF; - border-color: #48C9AF; -} - -a.list-group-item.active .list-group-item-heading, -a.list-group-item.active:focus .list-group-item-heading { - color: inherit; -} - -a.list-group-item.active .list-group-item-text, -a.list-group-item.active:focus .list-group-item-text { - color: #cce4ff; -} - -.list-group-item-success { - color: #3c763d; - background-color: #dff0d8; -} - -a.list-group-item-success { - color: #3c763d; -} - -a.list-group-item-success .list-group-item-heading { - color: inherit; -} - -a.list-group-item-success:focus { - color: #3c763d; - background-color: #d0e9c6; -} - -a.list-group-item-success.active, -a.list-group-item-success.active:focus { - color: #fff; - background-color: #3c763d; - border-color: #3c763d; -} - -.list-group-item-info { - color: #31708f; - background-color: #d9edf7; -} - -a.list-group-item-info { - color: #31708f; -} - -a.list-group-item-info .list-group-item-heading { - color: inherit; -} - -a.list-group-item-info:focus { - color: #31708f; - background-color: #c4e3f3; -} - -a.list-group-item-info.active, -a.list-group-item-info.active:focus { - color: #fff; - background-color: #31708f; - border-color: #31708f; -} - -.list-group-item-warning { - color: #8a6d3b; - background-color: #fcf8e3; -} - -a.list-group-item-warning { - color: #8a6d3b; -} - -a.list-group-item-warning .list-group-item-heading { - color: inherit; -} - -a.list-group-item-warning:focus { - color: #8a6d3b; - background-color: #faf2cc; -} - -a.list-group-item-warning.active, -a.list-group-item-warning.active:focus { - color: #fff; - background-color: #8a6d3b; - border-color: #8a6d3b; -} - -.list-group-item-danger { - color: #a94442; - background-color: #f2dede; -} - -a.list-group-item-danger { - color: #a94442; -} - -a.list-group-item-danger .list-group-item-heading { - color: inherit; -} - -a.list-group-item-danger:focus { - color: #a94442; - background-color: #ebcccc; -} - -a.list-group-item-danger.active, -a.list-group-item-danger.active:focus { - color: #fff; - background-color: #a94442; - border-color: #a94442; -} - -.list-group-item-heading { - margin-top: 0; - margin-bottom: 5px; -} - -.list-group-item-text { - margin-bottom: 0; - line-height: 1.3; -} - -.panel { - margin-bottom: 20px; - background-color: #ffffff; - border: 1px solid transparent; - border-radius: 4px; - -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); -} - -.panel-body { - padding: 15px; -} - -.panel-heading { - padding: 10px 15px; - border-bottom: 1px solid transparent; - border-top-right-radius: 3px; - border-top-left-radius: 3px; -} - -.panel-heading > .dropdown .dropdown-toggle { - color: inherit; -} - -.panel-title { - margin-top: 0; - margin-bottom: 0; - font-size: 16px; - color: inherit; -} - -.panel-title > a { - color: inherit; -} - -.panel-footer { - padding: 10px 15px; - background-color: #f5f5f5; - border-top: 1px solid #dddddd; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} - -.panel > .list-group { - margin-bottom: 0; -} - -.panel > .list-group .list-group-item { - border-width: 1px 0; - border-radius: 0; -} - -.panel > .list-group:first-child .list-group-item:first-child { - border-top: 0; - border-top-right-radius: 3px; - border-top-left-radius: 3px; -} - -.panel > .list-group:last-child .list-group-item:last-child { - border-bottom: 0; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} - -.panel-heading + .list-group .list-group-item:first-child { - border-top-width: 0; -} - -.panel > .table, -.panel > .table-responsive > .table { - margin-bottom: 0; -} - -.panel > .table:first-child, -.panel > .table-responsive:first-child > .table:first-child { - border-top-right-radius: 3px; - border-top-left-radius: 3px; -} - -.panel > .table:first-child > thead:first-child > tr:first-child td:first-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, -.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, -.panel > .table:first-child > thead:first-child > tr:first-child th:first-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, -.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { - border-top-left-radius: 3px; -} - -.panel > .table:first-child > thead:first-child > tr:first-child td:last-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, -.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, -.panel > .table:first-child > thead:first-child > tr:first-child th:last-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, -.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { - border-top-right-radius: 3px; -} - -.panel > .table:last-child, -.panel > .table-responsive:last-child > .table:last-child { - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} - -.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, -.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { - border-bottom-left-radius: 3px; -} - -.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, -.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { - border-bottom-right-radius: 3px; -} - -.panel > .panel-body + .table, -.panel > .panel-body + .table-responsive { - border-top: 1px solid #dddddd; -} - -.panel > .table > tbody:first-child > tr:first-child th, -.panel > .table > tbody:first-child > tr:first-child td { - border-top: 0; -} - -.panel > .table-bordered, -.panel > .table-responsive > .table-bordered { - border: 0; -} - -.panel > .table-bordered > thead > tr > th:first-child, -.panel > .table-responsive > .table-bordered > thead > tr > th:first-child, -.panel > .table-bordered > tbody > tr > th:first-child, -.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, -.panel > .table-bordered > tfoot > tr > th:first-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, -.panel > .table-bordered > thead > tr > td:first-child, -.panel > .table-responsive > .table-bordered > thead > tr > td:first-child, -.panel > .table-bordered > tbody > tr > td:first-child, -.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, -.panel > .table-bordered > tfoot > tr > td:first-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; -} - -.panel > .table-bordered > thead > tr > th:last-child, -.panel > .table-responsive > .table-bordered > thead > tr > th:last-child, -.panel > .table-bordered > tbody > tr > th:last-child, -.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, -.panel > .table-bordered > tfoot > tr > th:last-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, -.panel > .table-bordered > thead > tr > td:last-child, -.panel > .table-responsive > .table-bordered > thead > tr > td:last-child, -.panel > .table-bordered > tbody > tr > td:last-child, -.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, -.panel > .table-bordered > tfoot > tr > td:last-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; -} - -.panel > .table-bordered > thead > tr:first-child > td, -.panel > .table-responsive > .table-bordered > thead > tr:first-child > td, -.panel > .table-bordered > tbody > tr:first-child > td, -.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, -.panel > .table-bordered > thead > tr:first-child > th, -.panel > .table-responsive > .table-bordered > thead > tr:first-child > th, -.panel > .table-bordered > tbody > tr:first-child > th, -.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th { - border-bottom: 0; -} - -.panel > .table-bordered > tbody > tr:last-child > td, -.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, -.panel > .table-bordered > tfoot > tr:last-child > td, -.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, -.panel > .table-bordered > tbody > tr:last-child > th, -.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, -.panel > .table-bordered > tfoot > tr:last-child > th, -.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th { - border-bottom: 0; -} - -.panel > .table-responsive { - border: 0; - margin-bottom: 0; -} - -.panel-group { - margin-bottom: 20px; -} - -.panel-group .panel { - margin-bottom: 0; - border-radius: 4px; - overflow: hidden; -} - -.panel-group .panel + .panel { - margin-top: 5px; -} - -.panel-group .panel-heading { - border-bottom: 0; -} - -.panel-group .panel-heading + .panel-collapse .panel-body { - border-top: 1px solid #dddddd; -} - -.panel-group .panel-footer { - border-top: 0; -} - -.panel-group .panel-footer + .panel-collapse .panel-body { - border-bottom: 1px solid #dddddd; -} - -.panel-default { - border-color: #dddddd; -} - -.panel-default > .panel-heading { - color: #333333; - background-color: #f5f5f5; - border-color: #dddddd; -} - -.panel-default > .panel-heading + .panel-collapse .panel-body { - border-top-color: #dddddd; -} - -.panel-default > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: #dddddd; -} - -.panel-primary { - border-color: #48C9AF; -} - -.panel-primary > .panel-heading { - color: #ffffff; - background-color: #48C9AF; - border-color: #48C9AF; -} - -.panel-primary > .panel-heading + .panel-collapse .panel-body { - border-top-color: #48C9AF; -} - -.panel-primary > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: #48C9AF; -} - -.panel-success { - border-color: #d6e9c6; -} - -.panel-success > .panel-heading { - color: #3c763d; - background-color: #dff0d8; - border-color: #d6e9c6; -} - -.panel-success > .panel-heading + .panel-collapse .panel-body { - border-top-color: #d6e9c6; -} - -.panel-success > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: #d6e9c6; -} - -.panel-info { - border-color: #bce8f1; -} - -.panel-info > .panel-heading { - color: #31708f; - background-color: #d9edf7; - border-color: #bce8f1; -} - -.panel-info > .panel-heading + .panel-collapse .panel-body { - border-top-color: #bce8f1; -} - -.panel-info > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: #bce8f1; -} - -.panel-warning { - border-color: #faebcc; -} - -.panel-warning > .panel-heading { - color: #8a6d3b; - background-color: #fcf8e3; - border-color: #faebcc; -} - -.panel-warning > .panel-heading + .panel-collapse .panel-body { - border-top-color: #faebcc; -} - -.panel-warning > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: #faebcc; -} - -.panel-danger { - border-color: #ebccd1; -} - -.panel-danger > .panel-heading { - color: #a94442; - background-color: #f2dede; - border-color: #ebccd1; -} - -.panel-danger > .panel-heading + .panel-collapse .panel-body { - border-top-color: #ebccd1; -} - -.panel-danger > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: #ebccd1; -} - -.well { - min-height: 20px; - padding: 19px; - margin-bottom: 20px; - background-color: #f5f5f5; - border: 1px solid #e3e3e3; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); -} - -.well blockquote { - border-color: #ddd; - border-color: rgba(0, 0, 0, 0.15); -} - -.well-lg { - padding: 24px; - border-radius: 6px; -} - -.well-sm { - padding: 9px; - border-radius: 3px; -} - -.close { - float: right; - font-size: 21px; - font-weight: normal; - line-height: 1; - color: #000000; - text-shadow: 0 1px 0 #ffffff; - opacity: 0.2; - filter: alpha(opacity=20); -} - -.close:focus { - color: #000000; - text-decoration: none; - cursor: pointer; - opacity: 0.5; - filter: alpha(opacity=50); -} - -button.close { - padding: 0; - cursor: pointer; - background: transparent; - border: 0; - -webkit-appearance: none; -} - -.modal-open { - overflow: hidden; -} - -.modal { - display: none; - overflow: auto; - overflow-y: scroll; - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1050; - -webkit-overflow-scrolling: touch; - outline: 0; -} - -.modal.fade .modal-dialog { - -webkit-transform: translate(0, -25%); - -ms-transform: translate(0, -25%); - transform: translate(0, -25%); - -webkit-transition: -webkit-transform 0.3s ease-out; - -moz-transition: -moz-transform 0.3s ease-out; - -o-transition: -o-transform 0.3s ease-out; - transition: transform 0.3s ease-out; -} - -.modal.in .modal-dialog { - -webkit-transform: translate(0, 0); - -ms-transform: translate(0, 0); - transform: translate(0, 0); -} - -.modal-dialog { - position: relative; - width: auto; - margin: 10px; -} - -.modal-content { - position: relative; - background-color: #ffffff; - border: 1px solid #999999; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 6px; - -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); - box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); - background-clip: padding-box; - outline: none; -} - -.modal-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1040; - background-color: #000000; -} - -.modal-backdrop.fade { - opacity: 0; - filter: alpha(opacity=0); -} - -.modal-backdrop.in { - opacity: 0.5; - filter: alpha(opacity=50); -} - -.modal-header { - padding: 15px; - border-bottom: 1px solid #e5e5e5; - min-height: 16.42857143px; -} - -.modal-header .close { - margin-top: -2px; -} - -.modal-title { - margin: 0; - line-height: 1.42857143; -} - -.modal-body { - position: relative; - padding: 20px; -} - -.modal-footer { - margin-top: 15px; - padding: 19px 20px 20px; - text-align: right; - border-top: 1px solid #e5e5e5; -} - -.modal-footer .btn + .btn { - margin-left: 5px; - margin-bottom: 0; -} - -.modal-footer .btn-group .btn + .btn { - margin-left: -1px; -} - -.modal-footer .btn-block + .btn-block { - margin-left: 0; -} - -.tooltip { - position: absolute; - z-index: 1030; - display: block; - visibility: visible; - font-size: 12px; - line-height: 1.4; - opacity: 0; - filter: alpha(opacity=0); -} - -.tooltip.in { - opacity: 0.9; - filter: alpha(opacity=90); -} - -.tooltip.top { - margin-top: -3px; - padding: 5px 0; -} - -.tooltip.right { - margin-left: 3px; - padding: 0 5px; -} - -.tooltip.bottom { - margin-top: 3px; - padding: 5px 0; -} - -.tooltip.left { - margin-left: -3px; - padding: 0 5px; -} - -.tooltip-inner { - max-width: 200px; - padding: 3px 8px; - color: #ffffff; - text-align: center; - text-decoration: none; - background-color: #000000; - border-radius: 4px; -} - -.tooltip-arrow { - position: absolute; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} - -.tooltip.top .tooltip-arrow { - bottom: 0; - left: 50%; - margin-left: -5px; - border-width: 5px 5px 0; - border-top-color: #000000; -} - -.tooltip.top-left .tooltip-arrow { - bottom: 0; - left: 5px; - border-width: 5px 5px 0; - border-top-color: #000000; -} - -.tooltip.top-right .tooltip-arrow { - bottom: 0; - right: 5px; - border-width: 5px 5px 0; - border-top-color: #000000; -} - -.tooltip.right .tooltip-arrow { - top: 50%; - left: 0; - margin-top: -5px; - border-width: 5px 5px 5px 0; - border-right-color: #000000; -} - -.tooltip.left .tooltip-arrow { - top: 50%; - right: 0; - margin-top: -5px; - border-width: 5px 0 5px 5px; - border-left-color: #000000; -} - -.tooltip.bottom .tooltip-arrow { - top: 0; - left: 50%; - margin-left: -5px; - border-width: 0 5px 5px; - border-bottom-color: #000000; -} - -.tooltip.bottom-left .tooltip-arrow { - top: 0; - left: 5px; - border-width: 0 5px 5px; - border-bottom-color: #000000; -} - -.tooltip.bottom-right .tooltip-arrow { - top: 0; - right: 5px; - border-width: 0 5px 5px; - border-bottom-color: #000000; -} - -.popover { - position: absolute; - top: 0; - left: 0; - z-index: 1010; - display: none; - max-width: 276px; - padding: 1px; - text-align: left; - background-color: #ffffff; - background-clip: padding-box; - border: 1px solid #cccccc; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 6px; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - white-space: normal; -} - -.popover.top { - margin-top: -10px; -} - -.popover.right { - margin-left: 10px; -} - -.popover.bottom { - margin-top: 10px; -} - -.popover.left { - margin-left: -10px; -} - -.popover-title { - margin: 0; - padding: 8px 14px; - font-size: 14px; - font-weight: normal; - line-height: 18px; - background-color: #f7f7f7; - border-bottom: 1px solid #ebebeb; - border-radius: 5px 5px 0 0; -} - -.popover-content { - padding: 9px 14px; -} - -.popover > .arrow, -.popover > .arrow:after { - position: absolute; - display: block; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} - -.popover > .arrow { - border-width: 11px; -} - -.popover > .arrow:after { - border-width: 10px; - content: ""; -} - -.popover.top > .arrow { - left: 50%; - margin-left: -11px; - border-bottom-width: 0; - border-top-color: #999999; - border-top-color: rgba(0, 0, 0, 0.25); - bottom: -11px; -} - -.popover.top > .arrow:after { - content: " "; - bottom: 1px; - margin-left: -10px; - border-bottom-width: 0; - border-top-color: #ffffff; -} - -.popover.right > .arrow { - top: 50%; - left: -11px; - margin-top: -11px; - border-left-width: 0; - border-right-color: #999999; - border-right-color: rgba(0, 0, 0, 0.25); -} - -.popover.right > .arrow:after { - content: " "; - left: 1px; - bottom: -10px; - border-left-width: 0; - border-right-color: #ffffff; -} - -.popover.bottom > .arrow { - left: 50%; - margin-left: -11px; - border-top-width: 0; - border-bottom-color: #999999; - border-bottom-color: rgba(0, 0, 0, 0.25); - top: -11px; -} - -.popover.bottom > .arrow:after { - content: " "; - top: 1px; - margin-left: -10px; - border-top-width: 0; - border-bottom-color: #ffffff; -} - -.popover.left > .arrow { - top: 50%; - right: -11px; - margin-top: -11px; - border-right-width: 0; - border-left-color: #999999; - border-left-color: rgba(0, 0, 0, 0.25); -} - -.popover.left > .arrow:after { - content: " "; - right: 1px; - border-right-width: 0; - border-left-color: #ffffff; - bottom: -10px; -} - -.carousel { - position: relative; -} - -.carousel-inner { - position: relative; - overflow: hidden; - width: 100%; -} - -.carousel-inner > .item { - display: none; - position: relative; - -webkit-transition: 0.6s ease-in-out left; - transition: 0.6s ease-in-out left; -} - -.carousel-inner > .item > img, -.carousel-inner > .item > a > img { - line-height: 1; -} - -.carousel-inner > .active, -.carousel-inner > .next, -.carousel-inner > .prev { - display: block; -} - -.carousel-inner > .active { - left: 0; -} - -.carousel-inner > .next, -.carousel-inner > .prev { - position: absolute; - top: 0; - width: 100%; -} - -.carousel-inner > .next { - left: 100%; -} - -.carousel-inner > .prev { - left: -100%; -} - -.carousel-inner > .next.left, -.carousel-inner > .prev.right { - left: 0; -} - -.carousel-inner > .active.left { - left: -100%; -} - -.carousel-inner > .active.right { - left: 100%; -} - -.carousel-control { - position: absolute; - top: 0; - left: 0; - bottom: 0; - width: 15%; - opacity: 0.5; - filter: alpha(opacity=50); - font-size: 20px; - color: #ffffff; - text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); -} - -.carousel-control.left { - background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.5) 0%), color-stop(rgba(0, 0, 0, 0.0001) 100%)); - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); -} - -.carousel-control.right { - left: auto; - right: 0; - background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.0001) 0%), color-stop(rgba(0, 0, 0, 0.5) 100%)); - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); -} - -.carousel-control:focus { - outline: none; - color: #ffffff; - text-decoration: none; - opacity: 0.9; - filter: alpha(opacity=90); -} - -.carousel-control .icon-prev, -.carousel-control .icon-next, -.carousel-control .glyphicon-chevron-left, -.carousel-control .glyphicon-chevron-right { - position: absolute; - top: 50%; - z-index: 5; - display: inline-block; -} - -.carousel-control .icon-prev, -.carousel-control .glyphicon-chevron-left { - left: 50%; -} - -.carousel-control .icon-next, -.carousel-control .glyphicon-chevron-right { - right: 50%; -} - -.carousel-control .icon-prev, -.carousel-control .icon-next { - width: 20px; - height: 20px; - margin-top: -10px; - margin-left: -10px; - font-family: serif; -} - -.carousel-control .icon-prev:before { - content: '\2039'; -} - -.carousel-control .icon-next:before { - content: '\203a'; -} - -.carousel-indicators { - position: absolute; - bottom: 10px; - left: 50%; - z-index: 15; - width: 60%; - margin-left: -30%; - padding-left: 0; - list-style: none; - text-align: center; -} - -.carousel-indicators li { - display: inline-block; - width: 10px; - height: 10px; - margin: 1px; - text-indent: -999px; - border: 1px solid #ffffff; - border-radius: 10px; - cursor: pointer; - background-color: #000 \9; - background-color: rgba(0, 0, 0, 0); -} - -.carousel-indicators .active { - margin: 0; - width: 12px; - height: 12px; - background-color: #ffffff; -} - -.carousel-caption { - position: absolute; - left: 15%; - right: 15%; - bottom: 20px; - z-index: 10; - padding-top: 20px; - padding-bottom: 20px; - color: #ffffff; - text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); -} - -.carousel-caption .btn { - text-shadow: none; -} - -.clearfix:before, -.clearfix:after, -.container:before, -.container:after, -.container-fluid:before, -.container-fluid:after, -.row:before, -.row:after, -.form-horizontal .form-group:before, -.form-horizontal .form-group:after, -.btn-toolbar:before, -.btn-toolbar:after, -.btn-group-vertical > .btn-group:before, -.btn-group-vertical > .btn-group:after, -.nav:before, -.nav:after, -.navbar:before, -.navbar:after, -.navbar-header:before, -.navbar-header:after, -.navbar-collapse:before, -.navbar-collapse:after, -.pager:before, -.pager:after, -.panel-body:before, -.panel-body:after, -.modal-footer:before, -.modal-footer:after { - content: " "; - display: table; -} - -.clearfix:after, -.container:after, -.container-fluid:after, -.row:after, -.form-horizontal .form-group:after, -.btn-toolbar:after, -.btn-group-vertical > .btn-group:after, -.nav:after, -.navbar:after, -.navbar-header:after, -.navbar-collapse:after, -.pager:after, -.panel-body:after, -.modal-footer:after { - clear: both; -} - -.center-block { - display: block; - margin-left: auto; - margin-right: auto; -} - -.pull-right { - float: right !important; -} - -.pull-left { - float: left !important; -} - -.hide { - display: none !important; -} - -.show { - display: block !important; -} - -.invisible { - visibility: hidden; -} - -.text-hide { - font: 0/0 a; - color: transparent; - text-shadow: none; - background-color: transparent; - border: 0; -} - -.hidden { - display: none !important; - visibility: hidden !important; -} - -.affix { - position: fixed; -} - -@-ms-viewport { - width: device-width; -} - -.visible-xs, -.visible-sm, -.visible-md, -.visible-lg { - display: none !important; -} - -.visible-print { - display: none !important; -} - -html { - height: 100%; - width: 100%; - overflow: hidden; -} - -body { - height: 100%; - width: 100%; - overflow: hidden; - font-weight: 200; -} - -a { - text-decoration: none; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); - color: #48C9AF; -} - -a:active, -.btn:active { - opacity: 0.6; - filter: alpha(opacity=60); - -webkit-box-shadow: none; - box-shadow: none; -} - -a:focus { - outline: 0 none; -} - -h1, -h2, -h3, -h4, -h5, -h6 { - margin-top: 0; - padding-top: 0; -} - -.page-header { - margin-top: 10px; -} - -.page-header h1, -.page-header h2, -.page-header h3, -.page-header h4, -.page-header h5, -.page-header h6 { - margin-bottom: 0; - padding-bottom: 0; -} - -img { - max-width: 100%; -} - -html { - height: 100%; - width: 100%; - overflow: hidden; -} - -body { - height: 100%; - width: 100%; - overflow: hidden; -} - -textarea, -input[type="email"], -input[type="number"], -input[type="search"], -input[type="tel"], -input[type="text"], -input[type="url"] { - -webkit-appearance: none; -} - -.form-control:focus { - outline: 0; - -webkit-box-shadow: none; - box-shadow: none; -} - -.form-control { - -webkit-box-shadow: none; - box-shadow: none; - border: 1px solid #cccccc; -} - -.form-group { - margin-bottom: 0; - padding: 10px 0; -} - -.input-group-addon { - background: #ffffff; -} - -.control-label { - line-height: 34px; - margin: 0; -} - -.app-search { - border-radius: 0; -} - -.form-actions { - margin-top: -20px; -} - -.switch { - cursor: pointer; - position: relative; - display: block; - width: 68px; - height: 34px; - background-color: #ffffff; - border: 1px solid #cccccc; - border-radius: 999px; -} - -.switch .switch-handle { - position: absolute; - top: -1px; - left: -1px; - z-index: 2; - width: 34px; - height: 34px; - background-color: #ffffff; - border: 1px solid #cccccc; - border-radius: 999px; -} - -.switch.active { - background-color: #48C9AF; - border: 1px solid #48C9AF; -} - -.switch.active .switch-handle { - border-color: #48C9AF; - -webkit-transform: translate3d(34px, 0, 0); - transform: translate3d(34px, 0, 0); -} - -.switch-transition-enabled { - -webkit-transition: background-color 200ms ease, border 200ms ease; - transition: background-color 200ms ease, border 200ms ease; -} - -.switch-transition-enabled > .switch-handle { - -webkit-transition: -webkit-transform 200ms ease, background-color 200ms ease; - -moz-transition: -moz-transform 200ms ease, background-color 200ms ease; - -o-transition: -o-transform 200ms ease, background-color 200ms ease; - transition: transform 200ms ease, background-color 200ms ease; -} - -.btn.active, -.btn.active:focus, -.btn.active:active { - -webkit-box-shadow: none; - box-shadow: none; -} - -.btn-group.justified > .btn:not(:last-child) { - border-right-width: 0; -} - -.btn-group.justified > .btn:last-child, -.btn-group.justified > .btn.active { - border-right-width: 1px; -} - -.btn-group.justified > .btn:not(:last-child).active + .btn { - border-left-width: 0; -} - -.btn-group.nav-tabs { - border: 0 none; -} - -.btn-group > .btn-default.active, -.btn-group > .btn-default.active:focus { - color: #ffffff; - background-color: #48C9AF; - border-color: #006ee6; -} - -.list-group-item, -a.list-group-item { - margin-bottom: 0; - border: 0 none; - border-bottom: 1px solid #dddddd; -} - -.list-group-item:first-child, -a.list-group-item:first-child { - border-top-right-radius: 0; - border-top-left-radius: 0; -} - -.list-group-item:last-child, -a.list-group-item:last-child { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} - -.list-group-item .fa.pull-right, -a.list-group-item .fa.pull-right, -.list-group-item .icon.pull-right, -a.list-group-item .icon.pull-right { - line-height: 1.42857143; -} - -.list-group-item.media { - margin-bottom: 0; - margin-top: 0; -} - -.app { - height: 100%; - position: relative; - z-index: 2; - width: 100%; - background: #999999; - overflow: hidden; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - -webkit-transition: -webkit-transform 400ms ease; - -moz-transition: -moz-transform 400ms ease; - -o-transition: -o-transform 400ms ease; - transition: transform 400ms ease; - -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, 0.4); - box-shadow: 0 0 4px rgba(0, 0, 0, 0.4); -} - -.app-body { - display: block; - height: 100%; - padding: 0; - overflow: hidden; -} - -.app-content { - display: block; - position: relative; - height: 100%; - width: 100%; - padding: 0; - overflow: hidden; -} - -.app-search { - position: relative; - border-width: 0 0 1px; - z-index: 1029; - width: 100%; -} - -.navbar-app { - min-height: 50px; - border-color: #cccccc; - background: #f7f7f7; - border-width: 1px; - border-style: solid; - color: #48C9AF; -} - -.navbar-app .btn-icon-only .fa, -.navbar-app .btn-icon-only .icon { - font-size: 22px; - vertical-align: middle; -} - -.navbar-app .btn-navbar, -.navbar-app .btn { - background: none; - border: none; - line-height: 50px; - padding-top: 0; - padding-bottom: 0; - color: #48C9AF; - text-transform: uppercase; -} - -.navbar-brand-center { - position: absolute; - text-align: center; - width: 100%; - white-space: nowrap; - overflow: hidden; - -o-text-overflow: ellipsis; - text-overflow: ellipsis; -} - -.navbar-absolute-top, -.navbar-absolute-bottom { - position: absolute; - z-index: 1000; - border-width: 0; - left: 0; - right: 0; - width: 100%; - margin: 0; -} - -.has-navbar-top .app-body { - padding-top: 51px; -} - -.has-navbar-bottom .app-body { - padding-bottom: 51px; -} - -.navbar-absolute-top { - top: 0; - border-bottom-width: 1px; -} - -.navbar-absolute-bottom { - top: auto; - bottom: 0; - border-bottom: 0 none; - border-top-width: 1px; -} - -.sidebar { - z-index: 0; - position: absolute; - top: 0; - bottom: 0; - display: block; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - -webkit-transition: -webkit-transform 400ms ease; - -moz-transition: -moz-transform 400ms ease; - -o-transition: -o-transform 400ms ease; - transition: transform 400ms ease; -} - -.sidebar-left { - background: #555555; - width: 300px; - left: 0; - right: auto; - -webkit-transition: width 400ms ease; - transition: width 400ms ease; -} - -.sidebar-right { - background: #555555; - width: 300px; - left: auto; - right: 0; - opacity: 1; - filter: alpha(opacity=100); - -webkit-transition: opacity 600ms cubic-bezier(1, 0, 1, 0), width 400ms ease; - transition: opacity 600ms cubic-bezier(1, 0, 1, 0), width 400ms ease; -} - -.sidebar-left-in .sidebar-right { - z-index: -100; - opacity: 0; - filter: alpha(opacity=0); - -webkit-transition: opacity 600ms cubic-bezier(1, 0, 1, 0), width 400ms ease; - transition: opacity 600ms cubic-bezier(1, 0, 1, 0), width 400ms ease; -} - -.sidebar-left-in .app { - width: 100%; - -webkit-transform: translate3d(300px, 0, 0); - transform: translate3d(300px, 0, 0); - -webkit-transition: -webkit-transform 400ms ease; - -moz-transition: -moz-transform 400ms ease; - -o-transition: -o-transform 400ms ease; - transition: transform 400ms ease; -} - -.sidebar-right-in .app { - width: 100%; - -webkit-transform: translate3d(-300px, 0, 0); - transform: translate3d(-300px, 0, 0); - -webkit-transition: -webkit-transform 400ms ease; - -moz-transition: -moz-transform 400ms ease; - -o-transition: -o-transform 400ms ease; - transition: transform 400ms ease; -} - -.sidebar-header, -.app-name { - position: relative; - width: 100%; - line-height: 70px; - padding: 0 10px; - font-size: 23px; - color: #ffffff; - margin: 0; - z-index: 10; -} - -.section { - background: #ffffff; - padding-top: 10px; - padding-bottom: 10px; -} - -.section.section-condensed { - padding-top: 0; - padding-bottom: 0; -} - -.section.section-break { - margin-bottom: 20px; - -webkit-box-shadow: 0 -1px rgba(0, 0, 0, 0.08), 0 1px rgba(0, 0, 0, 0.07), 0 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: 0 -1px rgba(0, 0, 0, 0.08), 0 1px rgba(0, 0, 0, 0.07), 0 1px 1px rgba(0, 0, 0, 0.05); -} - -.section-default { - background-color: #999999; - color: #ffffff; -} - -.section-primary { - background-color: #48C9AF; - color: #ffffff; -} - -.section-success { - background-color: #4cd964; - color: #ffffff; -} - -.section-info { - background-color: #34aadc; - color: #ffffff; -} - -.section-warning { - background-color: #ffcc00; - color: #ffffff; -} - -.section-danger { - background-color: #ff3b30; - color: #ffffff; -} - -.justified { - display: table; - width: 100%; -} - -.justified > * { - display: table-cell; - width: 1%; - float: none !important; -} - -.scrollable { - position: absolute; - width: 100%; - height: 100%; - top: 0; - bottom: 0; - left: 0; - right: 0; -} - -.scrollable-content { - width: 100%; - height: 100%; - overflow: auto; - -webkit-overflow-scrolling: touch; -} - -.sidebar-header + .scrollable, -.app-name + .scrollable { - padding-top: 70px; -} - -.app-search + .scrollable { - padding-top: 34px; -} - -[overlay], -[data-overlay] { - display: none; -} - -.overlay { - display: none; - position: absolute; - left: 0; - top: 0; - bottom: 0; - right: 0; -} - -.overlay .overlay-inner { - width: 100%; - height: 100%; - position: relative; - overflow: hidden; -} - -.overlay .overlay-inner > .overlay-background { - position: absolute; - left: 0; - top: 0; - bottom: 0; - right: 0; - margin: -5px -5px -5px -5px; - background: rgba(255, 255, 255, 0.8); - z-index: 1040; -} - -.overlay .overlay-inner > .overlay-dismiss { - position: absolute; - right: 10px; - top: 10px; - z-index: 1051; - font-size: 24px; -} - -.overlay .overlay-inner > .overlay-content { - width: 100%; - box-sizing: border-box; - display: table; - background: transparent; - text-align: center; - color: #000000; - height: 100%; - z-index: 1050; - position: absolute; - left: 0; - top: 0; - bottom: 0; - right: 0; - padding: 20px; -} - -.overlay .overlay-inner > .overlay-content > .overlay-body { - display: table-cell; - vertical-align: middle; -} - -.overlay-in > .overlay-show { - display: block; -} - -.overlay-in > .app, -.overlay-in > .sidebar { - -webkit-filter: blur(5px); - -moz-filter: blur(5px); - -o-filter: blur(5px); - -ms-filter: blur(5px); - filter: blur(5px); -} - -input.ng-invalid, -textarea.ng-invalid { - border-color: #ffcc00; -} - -.ng-dirty input.ng-invalid { - border-color: #ffcc00; -} - -.ng-dirty input.ng-invalid ~ span.ko { - color: #ff3b30; -} - -.panel { - -webkit-box-shadow: none; - box-shadow: none; - background: #ffffff; -} - -.panel-group .panel + .panel { - margin-top: -1px; -} - -.panel-group .panel-heading[toggle] { - cursor: pointer; -} - -html .panel-group .panel-heading { - padding: 0 15px; -} - -html .panel-group .panel-title { - line-height: 40px; -} - -.panel-heading, -.panel-body { - padding: 10px 15px; - border: 0; -} - -.panel-body { - background: #ffffff; -} - -.panel-heading { - border-bottom: 1px solid #dddddd; -} - -.panel-title { - color: #999999; - font-weight: 200; - font-size: 20px; -} - -form .panel-heading { - margin-bottom: 0; - padding-bottom: 10px; -} - -form .panel-body { - padding-top: 0; - padding-bottom: 0; -} - -.panel-group .panel-heading + .panel-collapse .panel-body { - border-top: 0; -} - -.panel-default .panel-heading { - padding: 0 0 10px 0; -} - -.panel-default .panel-body { - padding: 15px; -} - -.carousel, -.carousel-inner, -.carousel-inner > .item { - height: 100%; - max-width: 100%; - text-align: center; -} - -.carousel-inner > .item > a > img, -.carousel-inner > .item > img { - max-width: 100%; - max-height: 100%; - margin: auto; -} -@media (min-width: 768px) { - .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 { - float: left; - } - .col-sm-12 { - width: 100%; - } - .col-sm-11 { - width: 91.66666667%; - } - .col-sm-10 { - width: 83.33333333%; - } - .col-sm-9 { - width: 75%; - } - .col-sm-8 { - width: 66.66666667%; - } - .col-sm-7 { - width: 58.33333333%; - } - .col-sm-6 { - width: 50%; - } - .col-sm-5 { - width: 41.66666667%; - } - .col-sm-4 { - width: 33.33333333%; - } - .col-sm-3 { - width: 25%; - } - .col-sm-2 { - width: 16.66666667%; - } - .col-sm-1 { - width: 8.33333333%; - } - .col-sm-pull-12 { - right: 100%; - } - .col-sm-pull-11 { - right: 91.66666667%; - } - .col-sm-pull-10 { - right: 83.33333333%; - } - .col-sm-pull-9 { - right: 75%; - } - .col-sm-pull-8 { - right: 66.66666667%; - } - .col-sm-pull-7 { - right: 58.33333333%; - } - .col-sm-pull-6 { - right: 50%; - } - .col-sm-pull-5 { - right: 41.66666667%; - } - .col-sm-pull-4 { - right: 33.33333333%; - } - .col-sm-pull-3 { - right: 25%; - } - .col-sm-pull-2 { - right: 16.66666667%; - } - .col-sm-pull-1 { - right: 8.33333333%; - } - .col-sm-pull-0 { - right: 0%; - } - .col-sm-push-12 { - left: 100%; - } - .col-sm-push-11 { - left: 91.66666667%; - } - .col-sm-push-10 { - left: 83.33333333%; - } - .col-sm-push-9 { - left: 75%; - } - .col-sm-push-8 { - left: 66.66666667%; - } - .col-sm-push-7 { - left: 58.33333333%; - } - .col-sm-push-6 { - left: 50%; - } - .col-sm-push-5 { - left: 41.66666667%; - } - .col-sm-push-4 { - left: 33.33333333%; - } - .col-sm-push-3 { - left: 25%; - } - .col-sm-push-2 { - left: 16.66666667%; - } - .col-sm-push-1 { - left: 8.33333333%; - } - .col-sm-push-0 { - left: 0%; - } - .col-sm-offset-12 { - margin-left: 100%; - } - .col-sm-offset-11 { - margin-left: 91.66666667%; - } - .col-sm-offset-10 { - margin-left: 83.33333333%; - } - .col-sm-offset-9 { - margin-left: 75%; - } - .col-sm-offset-8 { - margin-left: 66.66666667%; - } - .col-sm-offset-7 { - margin-left: 58.33333333%; - } - .col-sm-offset-6 { - margin-left: 50%; - } - .col-sm-offset-5 { - margin-left: 41.66666667%; - } - .col-sm-offset-4 { - margin-left: 33.33333333%; - } - .col-sm-offset-3 { - margin-left: 25%; - } - .col-sm-offset-2 { - margin-left: 16.66666667%; - } - .col-sm-offset-1 { - margin-left: 8.33333333%; - } - .col-sm-offset-0 { - margin-left: 0%; - } -} -@media (min-width: 480px) { - .sidebar-left { - width: 440px; - } - .sidebar-right { - width: 440px; - } - .sidebar-left-in .app { - -webkit-transform: translate3d(440px, 0, 0); - transform: translate3d(440px, 0, 0); - } - .sidebar-right-in .app { - -webkit-transform: translate3d(-440px, 0, 0); - transform: translate3d(-440px, 0, 0); - } -} -@media (min-width: 768px) { - .sidebar-left { - width: 688px; - } - .sidebar-right { - width: 688px; - } - .sidebar-left-in .app { - -webkit-transform: translate3d(688px, 0, 0); - transform: translate3d(688px, 0, 0); - } - .sidebar-right-in .app { - -webkit-transform: translate3d(-688px, 0, 0); - transform: translate3d(-688px, 0, 0); - } -} diff --git a/app/css/variables.less b/app/css/variables.less new file mode 100644 index 0000000..8ddb50d --- /dev/null +++ b/app/css/variables.less @@ -0,0 +1,112 @@ +@import "font-awesome/less/variables"; +@import "bootstrap/less/variables.less"; + + +// Bootstrap Overrides +@brand-primary: #48C9AF; +@brand-success: #4cd964; +@brand-warning: #fc0; +@brand-danger: #ff3b30; +@brand-info: #34aadc; + +@headings-font-family: @font-family-base; +@headings-font-weight: normal; +@btn-font-weight: normal; +@alert-link-font-weight: normal; +@badge-font-weight: normal; +@close-font-weight: normal; + +@navbar-default-color: @brand-primary; +@navbar-default-bg: #f7f7f7; +@navbar-default-link-color: @brand-primary; +@navbar-default-link-hover-color: darken(@brand-primary, 5%); +@navbar-default-link-active-color: lighten(@brand-primary, 5%); +@navbar-default-link-disabled-color: lighten(@brand-primary, 20%); +@navbar-default-toggle-icon-bar-bg: #ccc; +@navbar-default-border: #ccc; +@navbar-border-radius: 0; + +@border-radius-base: 4px; +@border-radius-large: 6px; +@border-radius-small: 3px; + +// Globals +@font-weight: 200; +@active-link-opacity: .6; +@page-header-margin-top: 10px; + +// App +@app-bg: @gray-light; +@zindex-app: 2; +@zindex-app-search: 1029; +@app-shadow: 0 0 4px rgba(0,0,0,0.4); + +// Forms +@form-actions-margin-top: -20px; +@app-search-border-radius: 0; + +// Switch +@switch-handle-diameter: @input-height-base; +@switch-width: @switch-handle-diameter * 2; +@switch-height: @switch-handle-diameter; +@switch-active-color: @brand-primary; +@zindex-switch-handle: 2; +@switch-border-radius: 999px; +@switch-handle-border-radius: @switch-border-radius; + +// Navbars +@btn-icon-only-font-size: 22px; +@navbar-app-height: 50px; + +// Overlays +@overlay-margin: -5px -5px -5px -5px; +@overlay-background: rgba(255, 255, 255, .8); +@overlay-content-padding: 20px; +@overlay-dismiss-font-size: 24px; +@overlay-dismiss-margin: @overlay-content-padding / 2; +@overlay-dismiss-margin-top: @overlay-dismiss-margin; +@overlay-dismiss-margin-right: @overlay-dismiss-margin; +@overlay-content-color: #000; +@overlay-blur: 5px; + +// Panels + +@panel-padding: 10px 15px; +@panel-title-font-size: 20px; +@panel-title-font-weight: 200; +@panel-group-panel-heading-padding: 0 15px; +@panel-title-line-height: @line-height-computed * 2; +@panel-default-panel-heading-padding: 0 0 10px 0; +@panel-default-panel-body-padding: 15px; + +// Sidebars +@sidebar-width: 300px; +@sidebar-width-xs: @screen-xs-min - 40; +@sidebar-width-sm: @screen-sm-min - 80; +@sidebar-width-md: 300px; +@sidebar-width-lg: 320px; +@sidebar-left-width: @sidebar-width; +@sidebar-right-width: @sidebar-width; + +@sidebar-left-width-xs: @sidebar-width-xs; +@sidebar-right-width-xs: @sidebar-width-xs; + +@sidebar-left-width-sm: @sidebar-width-sm; +@sidebar-right-width-sm: @sidebar-width-sm; + +@sidebar-left-width-md: @sidebar-width-md; +@sidebar-right-width-md: @sidebar-width-md; + +@sidebar-left-width-lg: @sidebar-width-lg; +@sidebar-right-width-lg: @sidebar-width-lg; + + + +@sidebar-header-height: 70px; +@sidebar-header-font-size: 23px; +@zindex-sidebar-header: 10; +@sidebar-header-padding: 0 10px; +@sidebar-header-color: #fff; +@sidebar-background: @gray; +@sidebar-left-background: @sidebar-background; +@sidebar-right-background: @sidebar-background; \ No newline at end of file diff --git a/app/index-async.html b/app/index-async.html deleted file mode 100755 index ae63286..0000000 --- a/app/index-async.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - My AngularJS App - - - - - -
- -
Angular seed app: v
- - - diff --git a/app/index.html b/app/index.html index f1103fa..3d06bee 100755 --- a/app/index.html +++ b/app/index.html @@ -20,9 +20,7 @@

Performance Tracker

@@ -40,10 +38,11 @@

Performance Tracker

- +
+ \ No newline at end of file diff --git a/app/js/app.js b/app/js/app.js index 6173d70..2caa64d 100755 --- a/app/js/app.js +++ b/app/js/app.js @@ -3,23 +3,66 @@ define([ 'angular', 'controllers', + 'loginController', 'routes', 'clients/clients', 'angularRoute', 'angularUI', + 'angularBootstrap', + 'angularBootstrapTpls', 'linechart' -], function(angular, controllers, routes, clientsModule) { +], function(angular, controllers, loginController, routes, clientsModule) { - // Declare app level module which depends on filters, and services return angular.module('myApp', [ clientsModule, 'ngRoute', 'mobile-angular-ui', + 'ui.bootstrap', 'myApp.controllers', 'n3-line-chart' ]) - .config(routes) + .controller('loginController', loginController) .run(function($http) { - $http.defaults.headers.common.Authorization = 'Basic YnJhZGxleXRyYWdlckBnbWFpbC5jb206cGFzc3dvcmQ=' - }); + var username = sessionStorage.getItem("username"); + var password = sessionStorage.getItem("password"); + if (username && password) { + $http.defaults.headers.common.Authorization = 'Basic ' + btoa(username + ':' + password); + } + }) + .config(routes) + .config(['$httpProvider', + function($httpProvider) { + $httpProvider.interceptors.push(['$q', '$location', '$rootScope', '$timeout', + function($q, $location, $rootScope, $timeout) { + return { + 'request': function(config) { + return config; + }, + + 'requestError': function(rejection) { + if (canRecover(rejection)) { + return responseOrNewPromise + } + return $q.reject(rejection); + }, + + 'response': function(response) { + $rootScope.isLoggedIn = true; + return response; + }, + + 'responseError': function(rejection) { + if (rejection.status == 403) { + $location.path("/login"); + $timeout(function() { + $rootScope.$broadcast('loginError'); + }); + } + return $q.reject(rejection); + } + }; + } + ]); + } + ]); }); \ No newline at end of file diff --git a/app/js/clients/clients.js b/app/js/clients/clients.js index 077e4a3..698647d 100755 --- a/app/js/clients/clients.js +++ b/app/js/clients/clients.js @@ -3,12 +3,21 @@ define([ 'angular', 'clients/clientsController', -], function(angular, clientsController) { + 'clients/exercisesController', + 'clients/clientsService', + 'clients/d3BarsDirective', + 'clients/routes', + 'angularRoute', +], function(angular, clientsController, exercisesController, clientsService, d3BarsDirective, routes) { var moduleName = 'clients'; - angular.module(moduleName, []) - .controller("clientsController", clientsController); + angular.module(moduleName, ['ngRoute']) + .controller("clientsController", clientsController) + .controller("exercisesController", exercisesController) + .service('clientsService', clientsService) + .directive('d3Bars', d3BarsDirective) + .config(routes); return moduleName; diff --git a/app/js/clients/clientsController.js b/app/js/clients/clientsController.js index 4ef19e0..73e7a5e 100755 --- a/app/js/clients/clientsController.js +++ b/app/js/clients/clientsController.js @@ -1,19 +1,15 @@ 'use strict'; -define([ - 'angular' -], function(angular, controller) { - - // Declare app level module which depends on filters, and services - var clientsController = function($scope, $http) { - $http.get('http://pt.trackformance.com/RESTfm/PT_Demo/script/listClientsForLoggedInUser/json-user/.json').then(function(clients) { - $scope.clients = clients.data.data; - $scope.clients.forEach(function(client) { - client.id = client['pkClientID']; - client.name = client['Client Name']; - client.email = client['Email']; - client.studio = client['fk Studio ID']; - }) +define([], function() { + + var clientsController = function($scope, clientsService, clientList) { + $scope.clients = clientList.data.data; + + $scope.clients.forEach(function(client) { + client.id = client['pkClientID']; + client.name = client['Client Name']; + client.email = client['Email']; + client.studio = client['fk Studio ID']; }); $scope.client = {}; @@ -31,6 +27,6 @@ define([ } }; - return ['$scope', '$http', clientsController]; + return ['$scope', 'clientsService', 'clientList', clientsController]; }); \ No newline at end of file diff --git a/app/js/clients/clientsService.js b/app/js/clients/clientsService.js new file mode 100644 index 0000000..cdd250e --- /dev/null +++ b/app/js/clients/clientsService.js @@ -0,0 +1,41 @@ +'use strict'; + +define([], function() { + + var clientsService = function($http, $q) { + var service = this; + var STAGE_URL = 'PT_Demo'; + var PROD_URL = 'PerfTrackerRESTfm'; + var BASE_URL = 'http://pt.trackformance.com/RESTfm/' + PROD_URL + '/script/'; + + this.get = function() { + return $http.get(BASE_URL + 'listClientsForLoggedInUser/json-user/.json'); + }; + + this.getClient = function(clientId) { + return service.get().then(function() { + return $http.get(BASE_URL + 'listUser/json-user/.json?RFMscriptParam=' + clientId); + }); + }; + + this.getExercises = function(clientId, period) { + return service.getClient(clientId).then(function() { + return $http.get(BASE_URL + 'listExercisesForClient/json-exerciseList/.json?RFMscriptParam=' + period); + }); + }; + + this.getReportingPeriods = function() { + return $http.get(BASE_URL + 'listReportPeriodOptions/ReportingPeriods/.json'); + }; + + this.getReport = function(exerciseId, clientId, period) { + var url = BASE_URL + "listHistoryForClientForExercise/json-history/.json?RFMscriptParam=" + exerciseId; + return service.getExercises(clientId, period).then(function() { + return $http.get(url); + }); + } + + }; + + return ['$http', '$q', clientsService]; +}); \ No newline at end of file diff --git a/app/js/clients/d3BarsDirective.js b/app/js/clients/d3BarsDirective.js new file mode 100644 index 0000000..0792310 --- /dev/null +++ b/app/js/clients/d3BarsDirective.js @@ -0,0 +1,176 @@ +'use strict'; + +define([], function() { + + var d3BarsDirective = function() { + return { + restrict: 'EA', + scope: { + lineData: "=", + barData: "=", + data:"=", + label: "@", + onClick: "&" + }, + link: function(scope, element, iAttrs) { + var lineData = scope.lineData; + var barData = scope.barData; + var data = scope.data; + var svg = d3.select(element[0]) + .append("svg") + // watch for data changes and re-render + scope.$watch('lineData', function(newVals, oldVals) { + return scope.render(newVals); + }, true); + + // define render function + scope.render = function(data) { + var COLUMN_WIDTH = 50; + var HEIGHT = 300, + MARGINS = { + top: 50, + right: 50, + bottom: 50, + left: 50 + }; + var WIDTH = scope.lineData.length * COLUMN_WIDTH + MARGINS.right + MARGINS.left, + LINE_COLOR = '#1871A4', + BAR_COLOR = '#BFBFBF', + CIRCLE_COLOR = '#1871A4'; + svg.selectAll("*").remove(); + + svg.attr("width", WIDTH + "px") + .attr("height", HEIGHT); + + var graph = svg; + + var xRange = d3.scale.ordinal() + .rangeRoundBands([MARGINS.left, WIDTH - MARGINS.right], 0) + .domain(scope.barData.map(function(d) { + return d.x; + })); + var yRangeBar = d3.scale.linear() + .range([HEIGHT - MARGINS.top, MARGINS.bottom]) + .domain([d3.min(scope.barData, function(d) { + return d.y - 0.2 * d.y; + }), d3.max(scope.barData, function(d) { + return d.y + 0.2 * d.y; + })]); + + var yRangeLine = d3.scale.linear() + .range([HEIGHT - MARGINS.top, MARGINS.bottom]) + .domain([d3.min(scope.lineData, function(d) { + return d.y - 0.2 * d.y; + }), d3.max(scope.lineData, function(d) { + return d.y + 0.2 * d.y; + })]); + + var xAxis = d3.svg.axis() + .scale(xRange) + .tickSize(1) + .tickFormat(function(index) { + + var msTime = scope.data[index].Date + var date = new Date(msTime); + + var dateParts = date.toString().split(" "); + var formattedDate = dateParts[1] + dateParts[2]; + return formattedDate; + }) + .tickSubdivide(true); + + var yAxis = d3.svg.axis() + .scale(yRangeBar) + .tickSize(1) + .orient('left') + .tickFormat(function(d) { + return d + " lbs" + }) + .tickSubdivide(true); + + var y2Axis = d3.svg.axis() + .scale(yRangeLine) + .tickSize(1) + .orient('right') + .tickFormat(function(d) { + return d + " s" + }) + .tickSubdivide(true); + + graph.append('svg:g') + .attr('class', 'axis') + .attr('transform', 'translate(0,' + (HEIGHT - MARGINS.bottom) + ')') + .call(xAxis); + + graph.append('svg:g') + .attr('class', 'axis') + .attr('transform', 'translate(' + (MARGINS.left) + ',0)') + .call(yAxis); + + graph.append('svg:g') + .attr('class', 'axis') + .attr('transform', 'translate(' + (WIDTH - MARGINS.right) + ',0)') + .call(y2Axis); + + var lineFunc = d3.svg.line() + .x(function(d) { + return xRange(d.x) + xRange.rangeBand() / 2; + }) + .y(function(d) { + return yRangeLine(d.y); + }) + .interpolate('cardinal') + .tension(0.8); + + + + graph.selectAll('rect') + .data(scope.barData) + .enter() + .append('rect') + .attr('x', function(d) { + return xRange(d.x); + }) + .attr('y', function(d) { + return yRangeBar(d.y); + }) + .attr('width', xRange.rangeBand()) + .attr('height', function(d) { + return ((HEIGHT - MARGINS.bottom) - yRangeBar(d.y)); + }) + .attr('rx', 1) + .attr('ry', 1) + .attr('fill', BAR_COLOR) + .attr('stroke', tinycolor.darken(BAR_COLOR, 50)) + .attr('stroke-width', 1) + .attr('opacity', 0.5); + + graph.append('path') + .attr('d', lineFunc(scope.lineData)) + .attr('stroke', LINE_COLOR) + .attr('stroke-width', 2) + .attr('fill', 'none'); + graph + .selectAll("circle") + .data(scope.lineData) + .enter().append("circle") + .attr("class", "dot") + .attr("fill", "white") + .attr("stroke", CIRCLE_COLOR) + .attr("stroke-width", "2") + .attr("z-index", 10) + .attr("r", 5) + .attr("cx", function(d) { + return xRange(d.x) + xRange.rangeBand() / 2; + }) + .attr("cy", function(d) { + return yRangeLine(d.y); + }); + + + }; + } + }; + } + return [d3BarsDirective]; +}); \ No newline at end of file diff --git a/app/js/clients/exercisesController.js b/app/js/clients/exercisesController.js new file mode 100755 index 0000000..192f4b9 --- /dev/null +++ b/app/js/clients/exercisesController.js @@ -0,0 +1,197 @@ +'use strict'; + +define([], function() { + + var exercisesController = function($scope, $routeParams, clientsService) { + var BASE_URL = 'http://pt.trackformance.com/RESTfm/PT_Demo/script/'; + $scope.lineData = []; + $scope.barData = []; + $scope.data = []; + var loadData = function() { + return clientsService.getReportingPeriods().then(function(periods) { + $scope.periods = periods.data.data; + + if (!$scope.period) { + $scope.period = $scope.periods[0]; + } + + return clientsService.getExercises($routeParams.clientId, $scope.period.PeriodValueDays).then( + + function(exercises) { + $scope.exercises = exercises.data.data; + $scope.exercises.forEach(function(exercise) { + exercise.id = exercise['pk Exercise ID']; + exercise.name = exercise['Exercise Name']; + }); + + if ($scope.selectedExerciseId) { + $scope.getReport($scope.selectedExerciseId); + } + }, + + function(error) { + $scope.exercisesError = error.data.info["X-RESTfm-FM-Reason"]; + } + ); + }); + }; + + loadData(); + + clientsService.getClient($routeParams.clientId).then(function(client) { + $scope.client = client.data.data[0]; + $scope.client.name = $scope.client['Client Name']; + $scope.client.email = $scope.client['Email']; + $scope.client.studio = $scope.client['fk Studio ID']; + $scope.client.id = $scope.client['pkClientID']; + }); + + + + $scope.setPeriod = function(period) { + $scope.period = period; + loadData().then(function() { + $scope.getReport($scope.selectedExercise); + }); + }; + + $scope.getReport = function(exerciseId) { + $scope.selectedExercise = exerciseId; + clientsService.getReport(exerciseId, $routeParams.clientId, $scope.period.PeriodValueDays).then(function(response) { + var report = response.data.data; + console.log(report); + var dates = []; + + var timestamps = []; + var goToFailures = []; + var performances = []; + var currentWeights = []; + var netChangeWeights = []; + var timeUnderLoads = []; + var rangeOfMotions = []; + var outOfSequences = []; + + var barData = []; + var lineData = []; + + report.forEach(function(data, index) { + data["Date"] = new Date(data["Date"]).getTime(); + data["dateIndex"] = index; + dates.push(data["dateIndex"]); + var timeParts = data["Total Time"].split(":"); + var time = 60 * parseInt(timeParts[1]) + parseInt(timeParts[2]); + data["Total Time"] = time; + data["Current Weight"] = parseInt(data["Current Weight"]); + + var timestamp = new Date(data["Timestamp"]); + var hours = timestamp.getHours(); + if (hours == 0) { + timestamp = "12 AM"; + } else if (hours > 12) { + timestamp = (hours - 12) + " PM"; + } else { + timestamp = hours + " AM" + } + timestamps.push(timestamp); + goToFailures.push("N/A"); + outOfSequences.push(data["oosView"]); + performances.push(data["performanceView"]); + currentWeights.push(data["Current Weight"]); + netChangeWeights.push(data["netChangeWeight"] ? data["netChangeWeight"] + "%" : ""); + + var timeUnderLoadMinutes = Math.floor(data["Total Time"] / 60); + var timeUnderLoadSeconds = data["Total Time"] % 60; + timeUnderLoads.push(timeUnderLoadMinutes + "m " + timeUnderLoadSeconds + "s"); + rangeOfMotions.push(data["Current Range"]); + + barData.push({ + x: index, + y: data["Current Weight"] + }); + lineData.push({ + x: index, + y: data["Total Time"] + }); + + }); + $scope.barData = barData; + $scope.lineData = lineData; + $scope.data = report; + $scope.timestamps = timestamps; + $scope.goToFailures = goToFailures; + $scope.performances = performances; + $scope.outOfSequences = outOfSequences; + $scope.currentWeights = currentWeights; + $scope.netChangeWeights = netChangeWeights; + $scope.timeUnderLoads = timeUnderLoads; + $scope.rangeOfMotions = rangeOfMotions; + + var ymin = 0.9 * d3.min(currentWeights); + var ymax = 1.1 * d3.max(currentWeights); + + $scope.options = { + series: [{ + y: "Current Weight", + label: "Current Weight", + color: "#BFBFBF", + type: "column", + axis: "y2", + id: "series_0" + }, { + y: "Total Time", + label: "Time Under Load", + color: "#1871A4", + type: "line", + thickness: "3px", + dotSize: 10, + axis: "y", + id: "series_1" + }], + axes: { + x: { + type: "linear", + key: "dateIndex", + labelFunction: function(index) { + if (dates.indexOf(index) == -1) { + return ""; + } + var msTime = $scope.data[index].Date + var date = new Date(msTime); + + var dateParts = date.toString().split(" "); + var formattedDate = dateParts[1] + dateParts[2]; + return formattedDate; + } + }, + y: { + type: "linear", + labelFunction: function(seconds) { + var seconds = parseInt(seconds); + var minutes = Math.floor(seconds / 60); + var remainingSeconds = seconds - 60 * minutes; + return minutes.toString() + ":" + remainingSeconds.toString(); + } + }, + y2: { + type: "linear", + labelFunction: function(weight) { + return weight + " lbs" + }, + min: ymin, + max: ymax + } + }, + lineMode: "linear", + tension: 0.7, + drawLegend: true, + drawDots: true, + columnsHGap: 5 + }; + }); + }; + + }; + + return ['$scope', '$routeParams', 'clientsService', exercisesController]; + +}); \ No newline at end of file diff --git a/app/js/clients/partials/clients.html b/app/js/clients/partials/clients.html index b7314e7..46d1ce4 100644 --- a/app/js/clients/partials/clients.html +++ b/app/js/clients/partials/clients.html @@ -3,7 +3,7 @@
-
-
-
- close -
+
+
+ close +

-
+ View Report +
+
\ No newline at end of file diff --git a/app/js/clients/partials/exercises.html b/app/js/clients/partials/exercises.html new file mode 100644 index 0000000..424ed90 --- /dev/null +++ b/app/js/clients/partials/exercises.html @@ -0,0 +1,55 @@ +
+
+

Report for +
+ + +
+

+
+
+
+
+

()

+
+
+
+
+ + + + + + + + + + + + + +
Timestamp
Go to Failure
Performance
Out of Sequence
+
+ +
+ + + + + + + + + + + + + +
Current Weight
Net Change Weight
Time Under Load
Range of Motion
+
+
+
\ No newline at end of file diff --git a/app/js/clients/routes.js b/app/js/clients/routes.js new file mode 100644 index 0000000..125d9a7 --- /dev/null +++ b/app/js/clients/routes.js @@ -0,0 +1,26 @@ +'use strict'; + +define([], function() { + + var routes = function($routeProvider) { + + $routeProvider.when('/clients', { + templateUrl: 'js/clients/partials/clients.html', + controller: 'clientsController', + resolve: { + clientList: ['clientsService', function(clientsService) { + return clientsService.get(); + }] + } + }); + + $routeProvider.when('/exercises/:clientId', { + templateUrl: 'js/clients/partials/exercises.html', + controller: 'exercisesController' + }); + + }; + + return ['$routeProvider', routes]; + +}); \ No newline at end of file diff --git a/app/js/clients/styles/exercises.less b/app/js/clients/styles/exercises.less new file mode 100644 index 0000000..4ff67a3 --- /dev/null +++ b/app/js/clients/styles/exercises.less @@ -0,0 +1,114 @@ +#exercises { + margin:10px; + + table { + margin:10px 0; + } + + tbody { + white-space: nowrap; + } + + td:not(:first-child) { + text-align: center; + font-size: 9pt; + font-weight: bold; + } + .topTable, .bottomTable { + td { + width: 50px; + height: 25px; + white-space: nowrap; + display: inline-block; + padding:2px; + } + td:first-child { + border:none; + font-size: 12pt; + width: 150px; + } +} + + .topTable { + tr:first-child td:not(:first-child) { + border-top: 1px black solid; + background-color: #FCF99F; + } + tr:nth-child(2) td:not(:first-child){ + background-color: #B6E494; + } + tr:nth-child(3) td:not(:first-child){ + background-color: #9CE05A; + } + tr:nth-child(4) td:not(:first-child){ + background-color: #FDA18B; + } + + + td:nth-child(2) { + border-left: 1px lightgray dashed; + } + td { + border: 1px black dashed; + } + td:last-child { + border-right: 1px lightgray dashed; + } + } + + .bottomTable { + tr:first-child td:not(:first-child) { + border-top: none; + background-color: white; + } + tr:nth-child(2) td:not(:first-child){ + background-color: #ADBB8C; + } + tr:nth-child(3) td:not(:first-child){ + background-color: white; + } + tr:nth-child(4) td:not(:first-child){ + background-color: #A0EEEA; + } + + /*td:nth-child(2) { + border-left: 1px lightgray dashed; + }*/ + td { + border: 1px lightgray solid; + } + td:last-child { + border-right: 1px lightgray dashed; + } + } + + + + .exerciseName { + float: left; + width: 100px; + height: 60px; + border:1px solid gray; + text-align: center; + padding:5px; + + &:hover, &.active { + background: gray; + cursor: pointer; + } + + } + + .reportHeader { + text-align: center; + + li { + text-align: left; + } + } + + .exercisesError { + text-align: center; + color:black; + } +} \ No newline at end of file diff --git a/app/js/loginController.js b/app/js/loginController.js new file mode 100755 index 0000000..d094c0d --- /dev/null +++ b/app/js/loginController.js @@ -0,0 +1,41 @@ +'use strict'; + +define([], function() { + + var loginController = function($scope, $http, $location, $timeout) { + $scope.$on('loginError', function() { + $timeout(function() { + $scope.$apply(function() { + showErrorMessage({ + msg: 'The email or password you entered is incorrect.', + type: 'danger' + }); + }); + }); + + }); + + $scope.login = function(username, password) { + setSession(username, password); + $http.defaults.headers.common.Authorization = 'Basic ' + btoa(username + ':' + password); + $location.path('/clients'); + }; + + function setSession(username, password) { + sessionStorage.setItem("username", username); + sessionStorage.setItem("password", password); + } + + function showErrorMessage(message) { + $scope.errorMessage = message; + + $timeout(function() { + $scope.errorMessage = {}; + }, 5000); + } + + }; + + return ['$scope', '$http', '$location', '$timeout', loginController]; + +}); \ No newline at end of file diff --git a/app/js/main.js b/app/js/main.js index 0974955..8acff17 100644 --- a/app/js/main.js +++ b/app/js/main.js @@ -7,6 +7,8 @@ require.config({ angularMocks: '../bower_components/angular-mocks/angular-mocks', text: '../bower_components/requirejs-text/text', angularUI: '../bower_components/mobile-angular-ui/dist/js/mobile-angular-ui.min', + angularBootstrap: '../bower_components/angular-bootstrap/ui-bootstrap', + angularBootstrapTpls: '../bower_components/angular-bootstrap/ui-bootstrap-tpls', linechart: '../bower_components/n3-line-chart/dist/line-chart' }, shim: { @@ -19,6 +21,8 @@ require.config({ 'exports': 'angular.mock' }, 'angularUI': ['angular'], + 'angularBootstrap': ['angular'], + 'angularBootstrapTpls': ['angularBootstrap'], 'linechart': ['angular'] }, priority: [ @@ -37,15 +41,14 @@ require([ 'angularMocks' ], function(angular, app, routes, mockBackend) { - var isDevMode = true; - + var isDevMode = false; + $(function() { - if(isDevMode){ - angular.bootstrap($('#myApp'), ['myApp', mockBackend]); - } - else { - angular.bootstrap($('#myApp'), ['myApp']); - } + var appModules = ['myApp']; + if (isDevMode) { + appModules.push(mockBackend); + } + angular.bootstrap($('#myApp'), appModules); }); - + }); \ No newline at end of file diff --git a/app/js/mockBackend/clientExercises.js b/app/js/mockBackend/clientExercises.js new file mode 100644 index 0000000..f7be7e6 --- /dev/null +++ b/app/js/mockBackend/clientExercises.js @@ -0,0 +1,38 @@ +define([], function() { + return { + "data": [{ + "Exercise Name": "Pull Down", + "pk Exercise ID": "exercise2" + }, { + "Exercise Name": "Leg Press", + "pk Exercise ID": "exercise3" + }, { + "Exercise Name": "Calf Extension", + "pk Exercise ID": "exercise4" + }, { + "Exercise Name": "Trunk Extension", + "pk Exercise ID": "exercise5" + }, { + "Exercise Name": "Calf Raise", + "pk Exercise ID": "exercise6" + }, { + "Exercise Name": "Lower Back", + "pk Exercise ID": "exercise7" + }, { + "Exercise Name": "PF Chest Press", + "pk Exercise ID": "exercise17" + }, { + "Exercise Name": "PF Lower Back", + "pk Exercise ID": "exercise18" + }, { + "Exercise Name": "PF Calf Raise", + "pk Exercise ID": "exercise20" + }, { + "Exercise Name": "PF Lat Pull Down", + "pk Exercise ID": "exercise24" + }, { + "Exercise Name": "PF Leg Press", + "pk Exercise ID": "exercise27" + }] + }; +}); \ No newline at end of file diff --git a/app/js/mockBackend/exerciseReport.js b/app/js/mockBackend/exerciseReport.js new file mode 100644 index 0000000..310c773 --- /dev/null +++ b/app/js/mockBackend/exerciseReport.js @@ -0,0 +1,1429 @@ +define([], function() { + return { + "data": [{ + "Timestamp": "10\/03\/2012 09:53:18", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "215", + "performanceView": "D", + "Date": "10\/03\/2012", + "fk Client Name": "Don Svedeman", + "Total Time": "00:03:24", + "Current Range": "", + "dayOfWeek": "Wed", + "hourOfDay": "9 AM" + }, { + "Timestamp": "10\/10\/2012 09:16:21", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "215", + "performanceView": "D", + "Date": "10\/10\/2012", + "fk Client Name": "Don Svedeman", + "Total Time": "00:03:30", + "Current Range": "", + "dayOfWeek": "Wed", + "hourOfDay": "9 AM" + }, { + "Timestamp": "10\/18\/2012 10:42:51", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "2", + "Current Weight": "220", + "performanceView": "D", + "Date": "10\/18\/2012", + "fk Client Name": "Don Svedeman", + "Total Time": "00:03:24", + "Current Range": "", + "dayOfWeek": "Thu", + "hourOfDay": "10 AM" + }, { + "Timestamp": "10\/24\/2012 09:48:38", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "2", + "Current Weight": "225", + "performanceView": "D", + "Date": "10\/24\/2012", + "fk Client Name": "Don Svedeman", + "Total Time": "00:03:12", + "Current Range": "", + "dayOfWeek": "Wed", + "hourOfDay": "9 AM" + }, { + "Timestamp": "10\/31\/2012 09:46:47", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "2", + "Current Weight": "230", + "performanceView": "D", + "Date": "10\/31\/2012", + "fk Client Name": "Don Svedeman", + "Total Time": "00:03:19", + "Current Range": "", + "dayOfWeek": "Wed", + "hourOfDay": "9 AM" + }, { + "Timestamp": "11\/07\/2012 09:45:45", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "2", + "Current Weight": "235", + "performanceView": "D", + "Date": "11\/07\/2012", + "fk Client Name": "Don Svedeman", + "Total Time": "00:03:12", + "Current Range": "", + "dayOfWeek": "Wed", + "hourOfDay": "9 AM" + }, { + "Timestamp": "11\/14\/2012 09:47:40", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "2", + "Current Weight": "240", + "performanceView": "D", + "Date": "11\/14\/2012", + "fk Client Name": "Don Svedeman", + "Total Time": "00:03:04", + "Current Range": "", + "dayOfWeek": "Wed", + "hourOfDay": "9 AM" + }, { + "Timestamp": "11\/21\/2012 09:44:00", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "2", + "Current Weight": "245", + "performanceView": "D", + "Date": "11\/21\/2012", + "fk Client Name": "Don Svedeman", + "Total Time": "00:03:07", + "Current Range": "", + "dayOfWeek": "Wed", + "hourOfDay": "9 AM" + }, { + "Timestamp": "11\/28\/2012 09:41:32", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "2", + "Current Weight": "250", + "performanceView": "D", + "Date": "11\/28\/2012", + "fk Client Name": "Don Svedeman", + "Total Time": "00:03:00", + "Current Range": "", + "dayOfWeek": "Wed", + "hourOfDay": "9 AM" + }, { + "Timestamp": "12\/05\/2012 09:33:31", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "250", + "performanceView": "D", + "Date": "12\/05\/2012", + "fk Client Name": "Don Svedeman", + "Total Time": "00:03:07", + "Current Range": "", + "dayOfWeek": "Wed", + "hourOfDay": "9 AM" + }, { + "Timestamp": "12\/12\/2012 09:53:16", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "2", + "Current Weight": "255", + "performanceView": "D", + "Date": "12\/12\/2012", + "fk Client Name": "Don Svedeman", + "Total Time": "00:03:02", + "Current Range": "", + "dayOfWeek": "Wed", + "hourOfDay": "9 AM" + }, { + "Timestamp": "12\/19\/2012 09:47:55", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "2", + "Current Weight": "260", + "performanceView": "D", + "Date": "12\/19\/2012", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:59", + "Current Range": "", + "dayOfWeek": "Wed", + "hourOfDay": "9 AM" + }, { + "Timestamp": "01\/02\/2013 09:46:28", + "oosView": "4 \/ 7", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "2", + "Current Weight": "265", + "performanceView": "D", + "Date": "01\/02\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:24", + "Current Range": "", + "dayOfWeek": "Wed", + "hourOfDay": "9 AM" + }, { + "Timestamp": "01\/09\/2013 09:37:23", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "2", + "Current Weight": "270", + "performanceView": "D", + "Date": "01\/09\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:53", + "Current Range": "", + "dayOfWeek": "Wed", + "hourOfDay": "9 AM" + }, { + "Timestamp": "01\/16\/2013 09:50:26", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "2", + "Current Weight": "275", + "performanceView": "D", + "Date": "01\/16\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:19", + "Current Range": "", + "dayOfWeek": "Wed", + "hourOfDay": "9 AM" + }, { + "Timestamp": "01\/23\/2013 09:52:43", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "2", + "Current Weight": "280", + "performanceView": "D", + "Date": "01\/23\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:16", + "Current Range": "", + "dayOfWeek": "Wed", + "hourOfDay": "9 AM" + }, { + "Timestamp": "01\/30\/2013 09:38:09", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "2", + "Current Weight": "285", + "performanceView": "D", + "Date": "01\/30\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:21", + "Current Range": "", + "dayOfWeek": "Wed", + "hourOfDay": "9 AM" + }, { + "Timestamp": "02\/06\/2013 10:00:25", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "285", + "performanceView": "D", + "Date": "02\/06\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:10", + "Current Range": "", + "dayOfWeek": "Wed", + "hourOfDay": "10 AM" + }, { + "Timestamp": "02\/13\/2013 09:52:40", + "oosView": "4 \/ 7", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "2", + "Current Weight": "290", + "performanceView": "D", + "Date": "02\/13\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:21", + "Current Range": "", + "dayOfWeek": "Wed", + "hourOfDay": "9 AM" + }, { + "Timestamp": "02\/20\/2013 09:51:43", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "2", + "Current Weight": "295", + "performanceView": "D", + "Date": "02\/20\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:01:54", + "Current Range": "", + "dayOfWeek": "Wed", + "hourOfDay": "9 AM" + }, { + "Timestamp": "02\/27\/2013 09:39:58", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "295", + "performanceView": "D", + "Date": "02\/27\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:16", + "Current Range": "", + "dayOfWeek": "Wed", + "hourOfDay": "9 AM" + }, { + "Timestamp": "03\/06\/2013 09:44:27", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "2", + "Current Weight": "300", + "performanceView": "D", + "Date": "03\/06\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:01:19", + "Current Range": "", + "dayOfWeek": "Wed", + "hourOfDay": "9 AM" + }, { + "Timestamp": "03\/13\/2013 09:19:21", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "300", + "performanceView": "D", + "Date": "03\/13\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:01:41", + "Current Range": "", + "dayOfWeek": "Wed", + "hourOfDay": "9 AM" + }, { + "Timestamp": "03\/20\/2013 09:38:33", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "300", + "performanceView": "D", + "Date": "03\/20\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:01:49", + "Current Range": "", + "dayOfWeek": "Wed", + "hourOfDay": "9 AM" + }, { + "Timestamp": "03\/30\/2013 10:15:46", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "300", + "performanceView": "D", + "Date": "03\/30\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:01:25", + "Current Range": "", + "dayOfWeek": "Sat", + "hourOfDay": "10 AM" + }, { + "Timestamp": "04\/06\/2013 07:46:58", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "300", + "performanceView": "D", + "Date": "04\/06\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:01:28", + "Current Range": "", + "dayOfWeek": "Sat", + "hourOfDay": "7 AM" + }, { + "Timestamp": "04\/13\/2013 07:30:39", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "300", + "performanceView": "D", + "Date": "04\/13\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:03", + "Current Range": "", + "dayOfWeek": "Sat", + "hourOfDay": "7 AM" + }, { + "Timestamp": "04\/20\/2013 11:00:49", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "300", + "performanceView": "D", + "Date": "04\/20\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:01:53", + "Current Range": "", + "dayOfWeek": "Sat", + "hourOfDay": "11 AM" + }, { + "Timestamp": "04\/27\/2013 09:24:05", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "300", + "performanceView": "D", + "Date": "04\/27\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:01:29", + "Current Range": "", + "dayOfWeek": "Sat", + "hourOfDay": "9 AM" + }, { + "Timestamp": "05\/04\/2013 10:40:13", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "300", + "performanceView": "D", + "Date": "05\/04\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:01:58", + "Current Range": "", + "dayOfWeek": "Sat", + "hourOfDay": "10 AM" + }, { + "Timestamp": "05\/11\/2013 08:13:13", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "300", + "performanceView": "D", + "Date": "05\/11\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:01:58", + "Current Range": "", + "dayOfWeek": "Sat", + "hourOfDay": "8 AM" + }, { + "Timestamp": "05\/18\/2013 10:22:29", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "300", + "performanceView": "D", + "Date": "05\/18\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:20", + "Current Range": "", + "dayOfWeek": "Sat", + "hourOfDay": "10 AM" + }, { + "Timestamp": "05\/25\/2013 10:04:20", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "2", + "Current Weight": "305", + "performanceView": "D", + "Date": "05\/25\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:01", + "Current Range": "", + "dayOfWeek": "Sat", + "hourOfDay": "10 AM" + }, { + "Timestamp": "06\/01\/2013 10:37:39", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "305", + "performanceView": "D", + "Date": "06\/01\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:04", + "Current Range": "", + "dayOfWeek": "Sat", + "hourOfDay": "10 AM" + }, { + "Timestamp": "06\/14\/2013 10:46:37", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "305", + "performanceView": "D", + "Date": "06\/14\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:17", + "Current Range": "", + "dayOfWeek": "Fri", + "hourOfDay": "10 AM" + }, { + "Timestamp": "07\/06\/2013 11:28:25", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "305", + "performanceView": "D", + "Date": "07\/06\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:47", + "Current Range": "", + "dayOfWeek": "Sat", + "hourOfDay": "11 AM" + }, { + "Timestamp": "07\/09\/2013 11:26:02", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "305", + "performanceView": "D", + "Date": "07\/09\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:31", + "Current Range": "", + "dayOfWeek": "Tue", + "hourOfDay": "11 AM" + }, { + "Timestamp": "07\/18\/2013 17:44:08", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "2", + "Current Weight": "310", + "performanceView": "D", + "Date": "07\/18\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:47", + "Current Range": "", + "dayOfWeek": "Thu", + "hourOfDay": "5 PM" + }, { + "Timestamp": "07\/22\/2013 17:46:42", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "310", + "performanceView": "D", + "Date": "07\/22\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:43", + "Current Range": "", + "dayOfWeek": "Mon", + "hourOfDay": "5 PM" + }, { + "Timestamp": "07\/29\/2013 15:21:52", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "2", + "Current Weight": "315", + "performanceView": "D", + "Date": "07\/29\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:27", + "Current Range": "", + "dayOfWeek": "Mon", + "hourOfDay": "3 PM" + }, { + "Timestamp": "08\/01\/2013 15:00:44", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "315", + "performanceView": "D", + "Date": "08\/01\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:40", + "Current Range": "", + "dayOfWeek": "Thu", + "hourOfDay": "3 PM" + }, { + "Timestamp": "08\/08\/2013 18:24:39", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "2", + "Current Weight": "320", + "performanceView": "D", + "Date": "08\/08\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:03:05", + "Current Range": "", + "dayOfWeek": "Thu", + "hourOfDay": "6 PM" + }, { + "Timestamp": "08\/19\/2013 16:31:13", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "320", + "performanceView": "D", + "Date": "08\/19\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:52", + "Current Range": "", + "dayOfWeek": "Mon", + "hourOfDay": "4 PM" + }, { + "Timestamp": "08\/26\/2013 17:29:34", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "2", + "Current Weight": "325", + "performanceView": "D", + "Date": "08\/26\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:37", + "Current Range": "", + "dayOfWeek": "Mon", + "hourOfDay": "5 PM" + }, { + "Timestamp": "09\/05\/2013 18:29:59", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "325", + "performanceView": "D", + "Date": "09\/05\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:37", + "Current Range": "", + "dayOfWeek": "Thu", + "hourOfDay": "6 PM" + }, { + "Timestamp": "09\/11\/2013 15:59:11", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "2", + "Current Weight": "330", + "performanceView": "D", + "Date": "09\/11\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:44", + "Current Range": "", + "dayOfWeek": "Wed", + "hourOfDay": "3 PM" + }, { + "Timestamp": "09\/21\/2013 10:35:39", + "oosView": "3 \/ 4", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "2", + "Current Weight": "335", + "performanceView": "D", + "Date": "09\/21\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:39", + "Current Range": "", + "dayOfWeek": "Sat", + "hourOfDay": "10 AM" + }, { + "Timestamp": "10\/07\/2013 15:17:06", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "335", + "performanceView": "D", + "Date": "10\/07\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:54", + "Current Range": "", + "dayOfWeek": "Mon", + "hourOfDay": "3 PM" + }, { + "Timestamp": "10\/16\/2013 11:39:35", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "3", + "Current Weight": "345", + "performanceView": "D", + "Date": "10\/16\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:52", + "Current Range": "", + "dayOfWeek": "Wed", + "hourOfDay": "11 AM" + }, { + "Timestamp": "10\/26\/2013 12:15:01", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "1", + "Current Weight": "350", + "performanceView": "D", + "Date": "10\/26\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:39", + "Current Range": "", + "dayOfWeek": "Sat", + "hourOfDay": "12 AM" + }, { + "Timestamp": "11\/02\/2013 09:26:24", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "1", + "Current Weight": "355", + "performanceView": "D", + "Date": "11\/02\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:48", + "Current Range": "", + "dayOfWeek": "Sat", + "hourOfDay": "9 AM" + }, { + "Timestamp": "11\/08\/2013 15:00:26", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "1", + "Current Weight": "360", + "performanceView": "D", + "Date": "11\/08\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:07", + "Current Range": "", + "dayOfWeek": "Fri", + "hourOfDay": "3 PM" + }, { + "Timestamp": "11\/16\/2013 10:51:34", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "360", + "performanceView": "D", + "Date": "11\/16\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:06", + "Current Range": "", + "dayOfWeek": "Sat", + "hourOfDay": "10 AM" + }, { + "Timestamp": "11\/23\/2013 11:08:19", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "360", + "performanceView": "D", + "Date": "11\/23\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:33", + "Current Range": "", + "dayOfWeek": "Sat", + "hourOfDay": "11 AM" + }, { + "Timestamp": "12\/07\/2013 09:21:29", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "1", + "Current Weight": "365", + "performanceView": "D", + "Date": "12\/07\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:11", + "Current Range": "", + "dayOfWeek": "Sat", + "hourOfDay": "9 AM" + }, { + "Timestamp": "12\/14\/2013 09:44:25", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "365", + "performanceView": "D", + "Date": "12\/14\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:38", + "Current Range": "", + "dayOfWeek": "Sat", + "hourOfDay": "9 AM" + }, { + "Timestamp": "12\/21\/2013 10:01:35", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "1", + "Current Weight": "370", + "performanceView": "D", + "Date": "12\/21\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:33", + "Current Range": "", + "dayOfWeek": "Sat", + "hourOfDay": "10 AM" + }, { + "Timestamp": "12\/30\/2013 17:02:32", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "1", + "Current Weight": "375", + "performanceView": "D", + "Date": "12\/30\/2013", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:22", + "Current Range": "", + "dayOfWeek": "Mon", + "hourOfDay": "5 PM" + }, { + "Timestamp": "01\/14\/2014 16:03:40", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "375", + "performanceView": "D", + "Date": "01\/14\/2014", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:39", + "Current Range": "", + "dayOfWeek": "Tue", + "hourOfDay": "4 PM" + }, { + "Timestamp": "01\/20\/2014 16:48:22", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "1", + "Current Weight": "380", + "performanceView": "D", + "Date": "01\/20\/2014", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:14", + "Current Range": "", + "dayOfWeek": "Mon", + "hourOfDay": "4 PM" + }, { + "Timestamp": "02\/01\/2014 12:31:31", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "380", + "performanceView": "D", + "Date": "02\/01\/2014", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:05", + "Current Range": "", + "dayOfWeek": "Sat", + "hourOfDay": "12 AM" + }, { + "Timestamp": "02\/05\/2014 15:27:27", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "380", + "performanceView": "D", + "Date": "02\/05\/2014", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:31", + "Current Range": "", + "dayOfWeek": "Wed", + "hourOfDay": "3 PM" + }, { + "Timestamp": "02\/20\/2014 12:28:49", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "1", + "Current Weight": "385", + "performanceView": "D", + "Date": "02\/20\/2014", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:45", + "Current Range": "", + "dayOfWeek": "Thu", + "hourOfDay": "12 AM" + }, { + "Timestamp": "03\/04\/2014 15:40:27", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "1", + "Current Weight": "390", + "performanceView": "D", + "Date": "03\/04\/2014", + "fk Client Name": "Don Svedeman", + "Total Time": "00:01:49", + "Current Range": "", + "dayOfWeek": "Tue", + "hourOfDay": "3 PM" + }, { + "Timestamp": "03\/08\/2014 11:26:30", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "390", + "performanceView": "D", + "Date": "03\/08\/2014", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:15", + "Current Range": "", + "dayOfWeek": "Sat", + "hourOfDay": "11 AM" + }, { + "Timestamp": "03\/15\/2014 11:32:57", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "1", + "Current Weight": "395", + "performanceView": "D", + "Date": "03\/15\/2014", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:27", + "Current Range": "", + "dayOfWeek": "Sat", + "hourOfDay": "11 AM" + }, { + "Timestamp": "03\/19\/2014 16:44:07", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "395", + "performanceView": "D", + "Date": "03\/19\/2014", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:25", + "Current Range": "", + "dayOfWeek": "Wed", + "hourOfDay": "4 PM" + }, { + "Timestamp": "03\/31\/2014 18:35:52", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "1", + "Current Weight": "400", + "performanceView": "D", + "Date": "03\/31\/2014", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:18", + "Current Range": "", + "dayOfWeek": "Mon", + "hourOfDay": "6 PM" + }, { + "Timestamp": "04\/14\/2014 10:46:21", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "400", + "performanceView": "D", + "Date": "04\/14\/2014", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:18", + "Current Range": "", + "dayOfWeek": "Mon", + "hourOfDay": "10 AM" + }, { + "Timestamp": "04\/30\/2014 16:43:01", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "1", + "Current Weight": "405", + "performanceView": "D", + "Date": "04\/30\/2014", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:13", + "Current Range": "", + "dayOfWeek": "Wed", + "hourOfDay": "4 PM" + }, { + "Timestamp": "05\/12\/2014 18:45:18", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "1", + "Current Weight": "410", + "performanceView": "D", + "Date": "05\/12\/2014", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:19", + "Current Range": "", + "dayOfWeek": "Mon", + "hourOfDay": "6 PM" + }, { + "Timestamp": "05\/24\/2014 10:20:25", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "410", + "performanceView": "D", + "Date": "05\/24\/2014", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:19", + "Current Range": "", + "dayOfWeek": "Sat", + "hourOfDay": "10 AM" + }, { + "Timestamp": "06\/07\/2014 10:54:38", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "410", + "performanceView": "D", + "Date": "06\/07\/2014", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:30", + "Current Range": "", + "dayOfWeek": "Sat", + "hourOfDay": "10 AM" + }, { + "Timestamp": "06\/14\/2014 10:26:33", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "1", + "Current Weight": "415", + "performanceView": "D", + "Date": "06\/14\/2014", + "fk Client Name": "Don Svedeman", + "Total Time": "00:01:46", + "Current Range": "", + "dayOfWeek": "Sat", + "hourOfDay": "10 AM" + }, { + "Timestamp": "06\/28\/2014 10:58:01", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "415", + "performanceView": "D", + "Date": "06\/28\/2014", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:07", + "Current Range": "", + "dayOfWeek": "Sat", + "hourOfDay": "10 AM" + }, { + "Timestamp": "07\/05\/2014 10:55:00", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "415", + "performanceView": "D", + "Date": "07\/05\/2014", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:25", + "Current Range": "", + "dayOfWeek": "Sat", + "hourOfDay": "10 AM" + }, { + "Timestamp": "07\/16\/2014 12:39:16", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "1", + "Current Weight": "420", + "performanceView": "D", + "Date": "07\/16\/2014", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:42", + "Current Range": "", + "dayOfWeek": "Wed", + "hourOfDay": "12 AM" + }, { + "Timestamp": "07\/23\/2014 13:14:37", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "420", + "performanceView": "D", + "Date": "07\/23\/2014", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:04", + "Current Range": "", + "dayOfWeek": "Wed", + "hourOfDay": "1 PM" + }, { + "Timestamp": "08\/09\/2014 11:27:12", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "420", + "performanceView": "D", + "Date": "08\/09\/2014", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:29", + "Current Range": "", + "dayOfWeek": "Sat", + "hourOfDay": "11 AM" + }, { + "Timestamp": "08\/16\/2014 10:53:01", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "420", + "performanceView": "D", + "Date": "08\/16\/2014", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:56", + "Current Range": "", + "dayOfWeek": "Sat", + "hourOfDay": "10 AM" + }, { + "Timestamp": "08\/20\/2014 10:01:16", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "1", + "Current Weight": "425", + "performanceView": "D", + "Date": "08\/20\/2014", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:21", + "Current Range": "", + "dayOfWeek": "Wed", + "hourOfDay": "10 AM" + }, { + "Timestamp": "08\/26\/2014 14:23:48", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "425", + "performanceView": "D", + "Date": "08\/26\/2014", + "fk Client Name": "Don Svedeman", + "Total Time": "00:01:56", + "Current Range": "", + "dayOfWeek": "Tue", + "hourOfDay": "2 PM" + }, { + "Timestamp": "09\/08\/2014 15:38:15", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "425", + "performanceView": "D", + "Date": "09\/08\/2014", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:20", + "Current Range": "", + "dayOfWeek": "Mon", + "hourOfDay": "3 PM" + }, { + "Timestamp": "09\/23\/2014 15:50:28", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "425", + "performanceView": "D", + "Date": "09\/23\/2014", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:31", + "Current Range": "", + "dayOfWeek": "Tue", + "hourOfDay": "3 PM" + }, { + "Timestamp": "10\/02\/2014 16:25:50", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "1", + "Current Weight": "430", + "performanceView": "D", + "Date": "10\/02\/2014", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:05", + "Current Range": "", + "dayOfWeek": "Thu", + "hourOfDay": "4 PM" + }, { + "Timestamp": "10\/10\/2014 12:55:25", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "430", + "performanceView": "D", + "Date": "10\/10\/2014", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:30", + "Current Range": "", + "dayOfWeek": "Fri", + "hourOfDay": "12 AM" + }, { + "Timestamp": "10\/18\/2014 09:22:36", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "430", + "performanceView": "D", + "Date": "10\/18\/2014", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:34", + "Current Range": "", + "dayOfWeek": "Sat", + "hourOfDay": "9 AM" + }, { + "Timestamp": "10\/29\/2014 17:36:43", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "1", + "Current Weight": "435", + "performanceView": "D", + "Date": "10\/29\/2014", + "fk Client Name": "Don Svedeman", + "Total Time": "00:01:58", + "Current Range": "", + "dayOfWeek": "Wed", + "hourOfDay": "5 PM" + }, { + "Timestamp": "11\/06\/2014 16:04:44", + "oosView": " ", + "Exercise Name": "Leg Press", + "fkClientID": "3F4CD934-FD30-4C2E-916B-78772131B60B", + "Exercise ID": "75BE50C1-B321-4D37-820F-FFA40D53B593", + "fk Studio ID": "222B6829-2653-4709-85A4-CFD1F0B56227", + "netChangeWeight": "", + "Current Weight": "435", + "performanceView": "D", + "Date": "11\/06\/2014", + "fk Client Name": "Don Svedeman", + "Total Time": "00:02:20", + "Current Range": "", + "dayOfWeek": "Thu", + "hourOfDay": "4 PM" + }] + }; +}); \ No newline at end of file diff --git a/app/js/mockBackend/mockBackendRunner.js b/app/js/mockBackend/mockBackendRunner.js index 4f96db3..5ee20a4 100644 --- a/app/js/mockBackend/mockBackendRunner.js +++ b/app/js/mockBackend/mockBackendRunner.js @@ -2,15 +2,30 @@ define([ 'angular', 'app', 'mockBackend/clientList', + 'mockBackend/clientExercises', + 'mockBackend/reportingPeriods', + 'mockBackend/exerciseReport', 'angularMocks' -], function(angular, app, clients) { +], function(angular, app, clients, clientExercises, reportingPeriods, exerciseReport) { var mockBackendRunner = function($httpBackend) { - // returns the fixture data - $httpBackend.whenGET('http://pt.trackformance.com/RESTfm/PT_Demo/script/listClientsForLoggedInUser/json-user/.json').respond(clients); - $httpBackend.whenGET(/partials\//).passThrough(); + var clientListURL = /listClientsForLoggedInUser\/json-user/; + var clientURL = /listUser\/json-user/; + var clientExercisesURL = /listExercisesForClient\/json-exerciseList/; + var reportingPeriodsURL = /listReportPeriodOptions\/ReportingPeriods/; + var exerciseReportURL = /listHistoryForClientForExercise\/json-history/; + var templateUrl = /partials\//; + + $httpBackend.whenGET(clientExercisesURL).respond(clientExercises); + $httpBackend.whenGET(clientURL).respond(clients); + $httpBackend.whenGET(clientListURL).respond(clients); + $httpBackend.whenGET(reportingPeriodsURL).respond(reportingPeriods); + $httpBackend.whenGET(exerciseReportURL).respond(exerciseReport); + + $httpBackend.whenGET(templateUrl).passThrough(); }; return ['$httpBackend', mockBackendRunner]; + }); \ No newline at end of file diff --git a/app/js/mockBackend/reportingPeriods.js b/app/js/mockBackend/reportingPeriods.js new file mode 100644 index 0000000..b61e902 --- /dev/null +++ b/app/js/mockBackend/reportingPeriods.js @@ -0,0 +1,11 @@ +define([], function() { + return { + "data": [{ + "PeriodName": "Lifetime", + "PeriodValueDays": "0" + }, { + "PeriodName": "Previous 3 Months", + "PeriodValueDays": "90" + }] + }; +}); \ No newline at end of file diff --git a/app/js/routes.js b/app/js/routes.js index 4b2ef62..4c9f47a 100644 --- a/app/js/routes.js +++ b/app/js/routes.js @@ -1,6 +1,6 @@ 'use strict'; -define(['angular', 'app'], function(angular, app) { +define([], function() { var routes = function($routeProvider) { @@ -8,16 +8,14 @@ define(['angular', 'app'], function(angular, app) { templateUrl: 'partials/partial1.html', controller: 'MyCtrl1' }); - $routeProvider.when('/view2', { - templateUrl: 'partials/partial2.html', - controller: 'MyCtrl2' - }); - $routeProvider.when('/clients', { - templateUrl: 'js/clients/partials/clients.html', - controller: 'clientsController' + + $routeProvider.when('/login', { + templateUrl: 'partials/login.html', + controller: 'loginController' }); + $routeProvider.otherwise({ - redirectTo: '/view1' + redirectTo: '/login' }); }; diff --git a/app/partials/login.html b/app/partials/login.html new file mode 100755 index 0000000..b541747 --- /dev/null +++ b/app/partials/login.html @@ -0,0 +1,23 @@ +
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ {{errorMessage.msg}} +
+
+
+ \ No newline at end of file diff --git a/app/partials/partial2.html b/app/partials/partial2.html deleted file mode 100755 index b6503ee..0000000 --- a/app/partials/partial2.html +++ /dev/null @@ -1,5 +0,0 @@ -

This is the partial for view 2.

-

- Showing of 'interpolate' filter: - {{ 'Current version is v%VERSION%.' | interpolate }} -

diff --git a/bower.json b/bower.json index 5b09615..6baaa18 100644 --- a/bower.json +++ b/bower.json @@ -1,9 +1,9 @@ { - "name": "angular-seed", - "description": "A starter project for AngularJS", + "name": "performance-tracker", + "description": "", "version": "0.0.0", - "homepage": "https://github.com/angular/angular-seed", - "license": "MIT", + "homepage": "", + "license": "", "private": true, "dependencies": { "angular": "1.2.x", @@ -15,7 +15,9 @@ "mobile-angular-ui": "~1.1.0-beta.27", "requirejs": "~2.1.9", "requirejs-text": "~2.0.10", - "less": "~1.7.4" + "less": "~1.7.4", + "angular-bootstrap": "~0.11.0", + "tinycolor": "~0.11.1" }, "devDependencies": { "jquery": "~2.1.1" diff --git a/clients-test-data.js b/clients-test-data.js deleted file mode 100644 index aa08a82..0000000 --- a/clients-test-data.js +++ /dev/null @@ -1,118 +0,0 @@ -var clients = { - "data": [{ - "Client Name": "Joanne cleins", - "Email": "", - "fk Studio ID": "studio4", - "pkClientID": "client1" - }, { - "Client Name": "Brenda Jones", - "Email": "", - "fk Studio ID": "studio4", - "pkClientID": "client2" - }, { - "Client Name": "Susan Elms", - "Email": "", - "fk Studio ID": "studio4", - "pkClientID": "client3" - }, { - "Client Name": "Roger Bills", - "Email": "", - "fk Studio ID": "studio4", - "pkClientID": "client4" - }, { - "Client Name": "Cindy Cole", - "Email": "", - "fk Studio ID": "studio4", - "pkClientID": "client5" - }, { - "Client Name": "Susan Jones", - "Email": "", - "fk Studio ID": "studio4", - "pkClientID": "client6" - }, { - "Client Name": "Abby Stanciki", - "Email": "", - "fk Studio ID": "studio4", - "pkClientID": "client7" - }, { - "Client Name": "Nicholas Roberts", - "Email": "", - "fk Studio ID": "studio4", - "pkClientID": "client8" - }, { - "Client Name": "Trent Telman", - "Email": "", - "fk Studio ID": "studio4", - "pkClientID": "client9" - }, { - "Client Name": "Stephanie Rowe", - "Email": "", - "fk Studio ID": "studio4", - "pkClientID": "client11" - }, { - "Client Name": "Bill McGillis", - "Email": "", - "fk Studio ID": "studio4", - "pkClientID": "client12" - }, { - "Client Name": "Clive Custer", - "Email": "", - "fk Studio ID": "studio4", - "pkClientID": "client13" - }, { - "Client Name": "Roy Hibbs", - "Email": "", - "fk Studio ID": "studio4", - "pkClientID": "client15" - }, { - "Client Name": "Gene Simons", - "Email": "", - "fk Studio ID": "studio4", - "pkClientID": "client18" - }, { - "Client Name": "Geoff Slater", - "Email": "", - "fk Studio ID": "studio4", - "pkClientID": "client19" - }, { - "Client Name": "Brenda Jones", - "Email": "", - "fk Studio ID": "studio4", - "pkClientID": "client21" - }, { - "Client Name": "Jeff Smith", - "Email": "", - "fk Studio ID": "studio4", - "pkClientID": "client32" - }, { - "Client Name": "Jill Reys", - "Email": "", - "fk Studio ID": "studio4", - "pkClientID": "client38" - }, { - "Client Name": "Jill Malloy", - "Email": "", - "fk Studio ID": "studio4", - "pkClientID": "client39" - }, { - "Client Name": "Stu Shafeer", - "Email": "", - "fk Studio ID": "studio4", - "pkClientID": "client40" - }, { - "Client Name": "Carol Mcguffy", - "Email": "", - "fk Studio ID": "studio4", - "pkClientID": "client41" - }, { - "Client Name": "Mickey Coke", - "Email": "mickey@thecokes.net", - "fk Studio ID": "studio4", - "pkClientID": "client42" - }, { - "Client Name": "Bradley Trager", - "Email": "bradleytrager@gmail.com", - "fk Studio ID": "studio4", - "pkClientID": "client1195" - }] -}; \ No newline at end of file diff --git a/package.json b/package.json index 1de2171..bb421c7 100644 --- a/package.json +++ b/package.json @@ -1,10 +1,10 @@ { - "name": "angular-seed", + "name": "performance-tracker", "private": true, "version": "0.0.0", - "description": "A starter project for AngularJS", - "repository": "https://github.com/angular/angular-seed", - "license": "MIT", + "description": "", + "repository": "", + "license": "", "devDependencies": { "karma": "~0.10", "protractor": "~0.20.1", diff --git a/test/e2e/scenarios.js b/test/e2e/scenarios.js deleted file mode 100644 index 109a275..0000000 --- a/test/e2e/scenarios.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; - -/* https://github.com/angular/protractor/blob/master/docs/getting-started.md */ - -describe('my app', function() { - - browser.get('index.html'); - - it('should automatically redirect to /view1 when location hash/fragment is empty', function() { - expect(browser.getLocationAbsUrl()).toMatch("/view1"); - }); - - - describe('view1', function() { - - beforeEach(function() { - browser.get('index.html#/view1'); - }); - - - it('should render view1 when user navigates to /view1', function() { - expect(element.all(by.css('[ng-view] p')).first().getText()). - toMatch(/partial for view 1/); - }); - - }); - - - describe('view2', function() { - - beforeEach(function() { - browser.get('index.html#/view2'); - }); - - - it('should render view2 when user navigates to /view2', function() { - expect(element.all(by.css('[ng-view] p')).first().getText()). - toMatch(/partial for view 2/); - }); - - }); -}); diff --git a/test/karma.conf.js b/test/karma.conf.js deleted file mode 100644 index 1aee850..0000000 --- a/test/karma.conf.js +++ /dev/null @@ -1,33 +0,0 @@ -module.exports = function(config){ - config.set({ - - basePath : '../', - - files : [ - 'app/bower_components/angular/angular.js', - 'app/bower_components/angular-route/angular-route.js', - 'app/bower_components/angular-mocks/angular-mocks.js', - 'app/js/**/*.js', - 'test/unit/**/*.js' - ], - - autoWatch : true, - - frameworks: ['jasmine'], - - browsers : ['Chrome'], - - plugins : [ - 'karma-chrome-launcher', - 'karma-firefox-launcher', - 'karma-jasmine', - 'karma-junit-reporter' - ], - - junitReporter : { - outputFile: 'test_out/unit.xml', - suite: 'unit' - } - - }); -}; diff --git a/test/protractor-conf.js b/test/protractor-conf.js deleted file mode 100644 index 7720db5..0000000 --- a/test/protractor-conf.js +++ /dev/null @@ -1,19 +0,0 @@ -exports.config = { - allScriptsTimeout: 11000, - - specs: [ - 'e2e/*.js' - ], - - capabilities: { - 'browserName': 'chrome' - }, - - baseUrl: 'http://localhost:8000/app/', - - framework: 'jasmine', - - jasmineNodeOpts: { - defaultTimeoutInterval: 30000 - } -}; diff --git a/test/unit/controllersSpec.js b/test/unit/controllersSpec.js deleted file mode 100644 index 819bf99..0000000 --- a/test/unit/controllersSpec.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -/* jasmine specs for controllers go here */ - -describe('controllers', function(){ - beforeEach(module('myApp.controllers')); - - - it('should ....', inject(function($controller) { - //spec body - var myCtrl1 = $controller('MyCtrl1', { $scope: {} }); - expect(myCtrl1).toBeDefined(); - })); - - it('should ....', inject(function($controller) { - //spec body - var myCtrl2 = $controller('MyCtrl2', { $scope: {} }); - expect(myCtrl2).toBeDefined(); - })); -}); diff --git a/test/unit/directivesSpec.js b/test/unit/directivesSpec.js deleted file mode 100644 index 6061842..0000000 --- a/test/unit/directivesSpec.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -/* jasmine specs for directives go here */ - -describe('directives', function() { - beforeEach(module('myApp.directives')); - - describe('app-version', function() { - it('should print current version', function() { - module(function($provide) { - $provide.value('version', 'TEST_VER'); - }); - inject(function($compile, $rootScope) { - var element = $compile('')($rootScope); - expect(element.text()).toEqual('TEST_VER'); - }); - }); - }); -}); diff --git a/test/unit/filtersSpec.js b/test/unit/filtersSpec.js deleted file mode 100644 index 19af329..0000000 --- a/test/unit/filtersSpec.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -/* jasmine specs for filters go here */ - -describe('filter', function() { - beforeEach(module('myApp.filters')); - - - describe('interpolate', function() { - beforeEach(module(function($provide) { - $provide.value('version', 'TEST_VER'); - })); - - - it('should replace VERSION', inject(function(interpolateFilter) { - expect(interpolateFilter('before %VERSION% after')).toEqual('before TEST_VER after'); - })); - }); -}); diff --git a/test/unit/servicesSpec.js b/test/unit/servicesSpec.js deleted file mode 100644 index 3864c8d..0000000 --- a/test/unit/servicesSpec.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -/* jasmine specs for services go here */ - -describe('service', function() { - beforeEach(module('myApp.services')); - - - describe('version', function() { - it('should return current version', inject(function(version) { - expect(version).toEqual('0.1'); - })); - }); -});