# HG changeset patch # User Jie Kang # Date 1486135389 18000 # Node ID 4980b1410c790c55f4860accc468086066cdbe94 # Parent 3465c28a7b2e4842f0415588b1cbb97e552f1964# Parent b5c26476b5b9a2296712bfa77c0f690bf004bab2 Update website with new front page look. Merge from branch: development diff -r 3465c28a7b2e -r 4980b1410c79 .hgignore --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.hgignore Fri Feb 03 10:23:09 2017 -0500 @@ -0,0 +1,2 @@ +syntax:glob +css/style.css diff -r 3465c28a7b2e -r 4980b1410c79 content/contribute/content.html --- a/content/contribute/content.html Tue Jan 24 10:21:50 2017 -0500 +++ b/content/contribute/content.html Fri Feb 03 10:23:09 2017 -0500 @@ -1,99 +1,105 @@ -
-
-
-

Contributing to Thermostat

-
-
-

- Contributions to Thermostat are always appreciated. If you have any questions, please find us on IRC or join the mailing - list and send us an e-mail so that we can help you get started. -

-
- Mailing List - Thermostat IRC +
+
+
+
+

Contributing to Thermostat

-

- Tasks in Thermostat are usually tracked in Trello, or through the IcedTea bugzilla. Feel free to take a look for things to - work on. -

- -

Step 1: Build Thermostat

-

- The first step is to get Thermostat source code on your machine and to get the required dependencies to build Thermostat. - For Fedora you can run the following in a terminal: -

-

+

+
+
+

+ Contributions to Thermostat are always appreciated. If you have any questions, please find us on IRC or join the mailing + list and send us an e-mail so that we can help you get started. +

+ +

+ Tasks in Thermostat are usually tracked in Trello, or through the IcedTea bugzilla. Feel free to take a look for things to + work on. +

+ +

Step 1: Build Thermostat

+

+ The first step is to get Thermostat source code on your machine and to get the required dependencies to build Thermostat. + For Fedora you can run the following in a terminal: +

+

$ sudo dnf install mercurial maven mongodb mongodb-server java-1.8.0-openjdk libsecret-devel make gcc gtk2-devel autoconf automake libtool

-

+

$ hg clone http://icedtea.classpath.org/hg/thermostat

-

- This installs the development dependendcies and downloads the Thermostat main repository into the folder thermostat. -

-

- Thermostat uses the Maven build system. To build, run: -

-

+

+ This installs the development dependendcies and downloads the Thermostat main repository into the folder thermostat. +

+

+ Thermostat uses the Maven build system. To build, run: +

+

$ mvn clean integration-test

-

Step 2: Find something to work on

-

- Any pet peeves you have with using Thermostat would be perfect to work on. Tasks or bugs can be found on the Trello board - and in the IcedTea Bugzilla. You can also ask on the mailing list or in the IRC channel and people will have lots - of ideas to share. If you come up with something, it's best to talk about it with the community through an e-mail - or through IRC. -

-

Step 3: Complete the task

-

- Working on the task is up to you. If you need any assistance, just ask for help. For style, please see the HACKING and README - files in the repository. Your best bet is to look at what other people have done and follow their style. There are - also a lot of resources in the Thermostat wiki targeting developers. Javadocs are also hosted online. -

-
- Wiki - Javadocs for 1.6 +

Step 2: Find something to work on

+

+ Any issues you have with using Thermostat would be perfect to work on. Tasks or bugs can be found on the Trello board and + in the IcedTea Bugzilla. You can also ask on the mailing list or in the IRC channel and people will have lots + of ideas to share. If you come up with something, it's best to talk about it with the community through an + e-mail or through IRC. +

+

Step 3: Complete the task

+

+ Working on the task is up to you. If you need any assistance, just ask for help. For style, please see the HACKING and README + files in the repository. Your best bet is to look at what other people have done and follow their style. There + are also a lot of resources in the Thermostat wiki targeting developers. Javadocs are also hosted online. +

+ +

Step 4: Get your work reviewed

+

+ Once you have something that works, it's time to send it for review. This is done by sending an e-mail to the mailing list + with a title following the format: "[PATCH] Commit-Message", a body explaining the patch, and the patch attached + as a '.patch'' file. For example if you wish to send a patch with commit message "Fix issue with blob in blah", + then the title would be: "[PATCH] Fix issue with blob in blah". The body of the e-mail should contain a description + of the patch including what it does and why it does so. +

+
+

+ To generate a patch file from uncommitted changes, use: +

+ $ hg diff > file-name.patch. +
+
+

+ To generate a patch from your latest commit use: +

+ $ hg export > file-name.patch +
+

+ From here, the review process starts. Committers will look over the patch and reply to your e-mail with changes. It becomes + an iterative process where you respond to the changes with a revised patch and the reviewer looks it over again, + repeating till the reviewer is satisfied with the patch. +

+

Step 5: Get your work into the tree

+

+ If you do not have commit rights, when the patch is satisfactory, the reviewer will ask for a patch file with the commit + message included. This will be committed into the tree and pushed in your stead. For committers, they can push + the changes into the tree themselves. +

+

Step 6: Repeat

+

+ Congratulations and thank you for your contribution! From here feel free to repeat with new work. Once you have a number + of nontrivial fixes, you may recieve nomination as an IcedTea hacker from which point you can push work yourself + after it has been reviewed. +

+
+
-

Step 4: Get your work reviewed

-

- Once you have something that works, it's time to send it for review. This is done by sending an e-mail to the mailing list - with a title following the format: "[PATCH] Commit-Message", a body explaining the patch, and the patch attached - as a '.patch'' file. For example if you wish to send a patch with commit message "Fix issue with blob in blah", then - the title would be: "[PATCH] Fix issue with blob in blah". The body of the e-mail should contain a description of - the patch including what it does and why it does so. -

-
-

- To generate a patch file from uncommitted changes, use: -

- $ hg diff > file-name.patch. -
-
-

- To generate a patch from your latest commit use: -

- $ hg export > file-name.patch -
-

- From here, the review process starts. Committers will look over the patch and reply to your e-mail with changes. It becomes - an iterative process where you respond to the changes with a revised patch and the reviewer looks it over again, - repeating till the reviewer is satisfied with the patch. -

-

Step 5: Get your work into the tree

-

- If you do not have commit rights, when the patch is satisfactory, the reviewer will ask for a patch file with the commit - message included. This will be committed into the tree and pushed in your stead. For committers, they can push the - changes into the tree themselves. -

-

Step 6: Repeat

-

- Congratulations and thank you for your contribution! From here feel free to repeat with new work. Once you have a number - of nontrivial fixes, you may recieve nomination as an IcedTea hacker from which point you can push work yourself - after it has been reviewed. -

\ No newline at end of file diff -r 3465c28a7b2e -r 4980b1410c79 content/documentation/content.html --- a/content/documentation/content.html Tue Jan 24 10:21:50 2017 -0500 +++ b/content/documentation/content.html Fri Feb 03 10:23:09 2017 -0500 @@ -1,374 +1,382 @@ -
-
-
-
-

Documentation

-
-
-
-
-

User Guide

-
-
-

- This is the latest user guide for Thermostat 1.99.x. For older guides see the Archives -

-
+
+
+
+
+
+

Documentation

-
+
-

Component Overview

-
-
-

- Storage -

-

- The Storage is where data gets stored. Currently, Thermostat supports Mongodb backends. -

-

- Web Endpoint -

-

- The Web Endpoint is an HTTP layer that runs in front of the Storage. By using the web endpoint, the Storage can be hidden - from direct connection while Agents and Clients connect with credentials through HTTP. -

-

- Agent -

-

- The Agent monitors JVMs that run on the machine with the same userid as the Agent, storing the data through the Web Endpoint - or directly into the Storage. The Agent also listens on a Command Channel for Client requests - such as heap dumping or full garbage collection on JVMs being monitored. Agents require a - valid Storage connection to start. -

-

- GUI and CLI Client -

-

- The Clients allow for displaying of data from the Storage (through the Web Endpoint or directly from Storage) as well as - performing actions on JVMs such as a heap dump or full garbage collection through the Command - Channel with the Agent. Clients require a valid Storage connection for most functions as - well as a valid Agent connection for Command Channel actions. -

-
-
-
-
-
-
-

Local Setup Tutorial

+

User Guide

- This tutorial will guide you through setting Thermostat up on a single machine. The machine will hold the Storage, accessed - through HTTP via the Web Endpoint, the Agent which will monitor all JVMs on the machine and - view the data through GUI or CLI Client. -

-

- The quickest way is to run the local command. -

-

$ thermostat local

-

- This starts the Agent (monitors jvms), the Web-Storage (stores data) and the GUI (displays data) all on your local machine. -

-

- Each component can be started individually or chained in certain configurations. For example, the local command chains the - Storage, Web Endpoint (collectively referred to as Web-Storage), Agent and GUI in a single - command. -

-

- The Storage, Web Endpoint and Agent can be started via: + This is the latest user guide for Thermostat 1.99.x. For older guides see the Archives

-

$ thermostat web-storage-service

-

- The Storage and Web Endpoint can be started via: -

-

$ thermostat web-storage

-

- The Storage can be started and stopped via: -

-

$ thermostat storage --start

-

$ thermostat storage --stop

-

- The Agent can be started via: -

-

$ thermostat agent

-

- The GUI Client can be started via: -

-

$ thermostat gui

-
-
-
-
-

Distributed Setup Tutorial

+
+
+
+

Component Overview

+
+
+

+ Storage +

+

+ The Storage is where data gets stored. Currently, Thermostat supports Mongodb backends. +

+

+ Web Endpoint +

+

+ The Web Endpoint is an HTTP layer that runs in front of the Storage. By using the web endpoint, the Storage can be hidden + from direct connection while Agents and Clients connect with credentials through HTTP. +

+

+ Agent +

+

+ The Agent monitors JVMs that run on the machine with the same userid as the Agent, storing the data through the Web Endpoint + or directly into the Storage. The Agent also listens on a Command Channel for Client + requests such as heap dumping or full garbage collection on JVMs being monitored. Agents + require a valid Storage connection to start. +

+

+ GUI and CLI Client +

+

+ The Clients allow for displaying of data from the Storage (through the Web Endpoint or directly from Storage) as well as + performing actions on JVMs such as a heap dump or full garbage collection through the + Command Channel with the Agent. Clients require a valid Storage connection for most functions + as well as a valid Agent connection for Command Channel actions. +

+
-
-

- This tutorial will guide you through setting Thermostat up on multiple machines. One machine will hold the Storage, accessed - through HTTP via the Web Endpoint. One or more machines will hold the Agent, monitoring any - JVMs on the machine and sending data to the Storage. One machine will view the data via GUI - or CLI Client. -

-

- Any machine that is part of the distributed setup needs Thermostat installed. All machines should have the same version of - Thermostat. -

-
-

- Storage And Web Endpoint Setup -

- +
+
+
+
+

Local Setup Tutorial

+
+

- To setup the Storage on a machine for remote access through HTTP it must be configured to bind to a proper IP address and - port of the machine and have authentication for users. + This tutorial will guide you through setting Thermostat up on a single machine. The machine will hold the Storage, accessed + through HTTP via the Web Endpoint, the Agent which will monitor all JVMs on the machine + and view the data through GUI or CLI Client.

- First we setup the Mongodb backend and user authentication with: + The quickest way is to run the local command.

-

$ thermostat setup -c

+

$ thermostat local

- This runs the CLI setup, asking you to input the username/passwords for the Mongodb backend, default client user and default - agent user. The Mongodb credentials are used by the Web Endpoint to connect to the local - Mongodb backend. The default client user credentials are used by Clients to connect to - the Web Endpoint. Likewise, the default agent user credentials are used by Agents to - connect to the Web Endpoint. These credentials should be remembered for later use. + This starts the Agent (monitors jvms), the Web-Storage (stores data) and the GUI (displays data) all on your local machine.

- Next, the Web Endpoint needs to be configured to bind to the host machine's IP Address. This is done with the configuration - file THERMOSTAT_HOME/etc/db.properties - or USER_THERMOSTAT_HOME/etc/db.properties. - The settings in USER_THERMOSTAT_HOME override those in - THERMOSTAT_HOME. + Each component can be started individually or chained in certain configurations. For example, the local command chains the + Storage, Web Endpoint (collectively referred to as Web-Storage), Agent and GUI in a single + command.

- The BIND and PORT fields should be set to the machine's IP address and a free port. For a machine with ip 192.168.0.1 and - free port 27518, the db.properties file would look like: + The Storage, Web Endpoint and Agent can be started via:

-
BIND=192.168.0.1
PORT=27518
+

$ thermostat web-storage-service

- Finally, the Storage and Web Endpoint can be started via: + The Storage and Web Endpoint can be started via:

$ thermostat web-storage

- The Web Endpoint can be accessed at http://192.168.0.1:27518/thermostat/storage (replace IP and Port with appropriate values - for your setup). Accessing the URL through a web browser should bring up an authentication - prompt if the Storage and Web Endpoint are setup successfully. + The Storage can be started and stopped via:

+

$ thermostat storage --start

+

$ thermostat storage --stop

+

+ The Agent can be started via: +

+

$ thermostat agent

+

+ The GUI Client can be started via: +

+

$ thermostat gui

- -
-

- Agent Setup -

- +
+
+
+
+
+

Distributed Setup Tutorial

+
+

- To setup the Agent on a machine it must be configured to connect to the Web Endpoint via URL. -

-

- First, prevent setup from occurring by creating the file: USER_THERMOSTAT_HOME/data/setup-complete.stamp + This tutorial will guide you through setting Thermostat up on multiple machines. One machine will hold the Storage, accessed + through HTTP via the Web Endpoint. One or more machines will hold the Agent, monitoring + any JVMs on the machine and sending data to the Storage. One machine will view the data + via GUI or CLI Client.

- Next, configure the agent to bind it's Command Channel to a remotely accessible IP address and to connect to the Web Endpoint - via URL. This is done with the file: USER_THERMOSTAT_HOME/etc/agent.properties The CONFIG_LISTEN_ADDRESS - property should be set to a remotely accessible IP address and free port and the DB_URL - property should be set to the URL that the Web Endpoint is accessible on. For a machine - with ip 192.168.0.2 and free port 12000, connecting to a Web Endpoint at 192.168.0.1:27518, - the agent.properties file would look like: + Any machine that is part of the distributed setup needs Thermostat installed. All machines should have the same version of + Thermostat.

-
CONFIG_LISTEN_ADDRESS=192.168.0.2:12000
DB_URL=http://192.168.0.1:27518/thermostat/storage
-

- After this, set the credentials to be used in the file: USER_THERMOSTAT_HOME/etc/agent.auth - These are used when connecting to the Web Endpoint and should be the same as the default - agent user credentials in the setup for Storage and Web Endpoint. An example agent.auth - file looks like: -

-
username=agentuser
password=agentpassword
-

- Finally, the Agent can be started via: -

-

$ thermostat agent

+
+

+ Storage And Web Endpoint Setup +

+ +

+ To setup the Storage on a machine for remote access through HTTP it must be configured to bind to a proper IP address and + port of the machine and have authentication for users. +

+

+ First we setup the Mongodb backend and user authentication with: +

+

$ thermostat setup -c

+

+ This runs the CLI setup, asking you to input the username/passwords for the Mongodb backend, default client user and default + agent user. The Mongodb credentials are used by the Web Endpoint to connect to the + local Mongodb backend. The default client user credentials are used by Clients to + connect to the Web Endpoint. Likewise, the default agent user credentials are used + by Agents to connect to the Web Endpoint. These credentials should be remembered + for later use. +

+

+ Next, the Web Endpoint needs to be configured to bind to the host machine's IP Address. This is done with the configuration + file THERMOSTAT_HOME/etc/db.properties + or USER_THERMOSTAT_HOME/etc/db.properties. + The settings in USER_THERMOSTAT_HOME override those in + THERMOSTAT_HOME. +

+

+ The BIND and PORT fields should be set to the machine's IP address and a free port. For a machine with ip 192.168.0.1 and + free port 27518, the db.properties file would look like: +

+
BIND=192.168.0.1
PORT=27518
+

+ Finally, the Storage and Web Endpoint can be started via: +

+

$ thermostat web-storage

+

+ The Web Endpoint can be accessed at http://192.168.0.1:27518/thermostat/storage (replace IP and Port with appropriate values + for your setup). Accessing the URL through a web browser should bring up an authentication + prompt if the Storage and Web Endpoint are setup successfully. +

+
+ +
+

+ Agent Setup +

+ +

+ To setup the Agent on a machine it must be configured to connect to the Web Endpoint via URL. +

+

+ First, prevent setup from occurring by creating the file: USER_THERMOSTAT_HOME/data/setup-complete.stamp +

+

+ Next, configure the agent to bind it's Command Channel to a remotely accessible IP address and to connect to the Web Endpoint + via URL. This is done with the file: USER_THERMOSTAT_HOME/etc/agent.properties The + CONFIG_LISTEN_ADDRESS property should be set to a remotely accessible IP address + and free port and the DB_URL property should be set to the URL that the Web Endpoint + is accessible on. For a machine with ip 192.168.0.2 and free port 12000, connecting + to a Web Endpoint at 192.168.0.1:27518, the agent.properties file would look like: +

+
CONFIG_LISTEN_ADDRESS=192.168.0.2:12000
DB_URL=http://192.168.0.1:27518/thermostat/storage
+

+ After this, set the credentials to be used in the file: USER_THERMOSTAT_HOME/etc/agent.auth + These are used when connecting to the Web Endpoint and should be the same as the + default agent user credentials in the setup for Storage and Web Endpoint. An example + agent.auth file looks like: +

+
username=agentuser
password=agentpassword
+

+ Finally, the Agent can be started via: +

+

$ thermostat agent

+
+
+

+ Client Setup +

+ +

+ To setup the Client on the machine it must be configured to connect to the Web Endpoint via URL. +

+

+ First, prevent setup from occurring by creating the file: USER_THERMOSTAT_HOME/data/setup-complete.stamp +

+

+ For the GUI Client, start via: +

+

$ thermostat gui

+

+ A connection failed prompt will appear. Click "Configure..." and a dialog will appear where you can fill in the URL to connect + to and the credentials to use. The URL is the URL of the Web Endpoint, e.g. http://192.168.0.1:27518/thermostat/storage. + The credentials are for the default client user that was setup on the Storage and + Web Endpoint machine. +

+

+ For the CLI Client, start via: +

+

$ thermostat shell

+

+ This enters the CLI terminal where you can connect to the Web Endpoint via: +

+

connect -d http://192.168.0.1:27518/thermostat/storage

+

+ Replace the argument for -d with the correct URL for your Web Endpoint. The terminal will then prompt you for credentials + to use. Once successfully connected, other CLI commands that use the Web Endpoint + will use the one specified in the connect command. +

+
-
-

- Client Setup -

- -

- To setup the Client on the machine it must be configured to connect to the Web Endpoint via URL. -

-

- First, prevent setup from occurring by creating the file: USER_THERMOSTAT_HOME/data/setup-complete.stamp -

+
+
+
+
+
+

CLI Features

+
+

- For the GUI Client, start via: + The easiest way to see what features the CLI has is to run the help command.

-

$ thermostat gui

+

$ thermostat help

- A connection failed prompt will appear. Click "Configure..." and a dialog will appear where you can fill in the URL to connect - to and the credentials to use. The URL is the URL of the Web Endpoint, e.g. http://192.168.0.1:27518/thermostat/storage. - The credentials are for the default client user that was setup on the Storage and Web - Endpoint machine. + Thermostat offers CLI through invocations of thermostat, for example:

+

$ thermostat list-vms

- For the CLI Client, start via: + Thermostat also offers a Shell that can be started via:

$ thermostat shell

- This enters the CLI terminal where you can connect to the Web Endpoint via: + This brings up the Shell, printing the version and the prompt and then waiting for command input. Run 'help' to list all + the commands available in the Shell.

-

connect -d http://192.168.0.1:27518/thermostat/storage

+
Thermostat version 1.99.12
Please see the User Guide at http://icedtea.classpath.org/wiki/Thermostat/UserGuide
Thermostat - > 
+
+
+
+
+
+
+

GUI Features

+
+
+

+ Host Machine Information +

- Replace the argument for -d with the correct URL for your Web Endpoint. The terminal will then prompt you for credentials - to use. Once successfully connected, other CLI commands that use the Web Endpoint will - use the one specified in the connect command. +
    +
  • Hardware/Network Information
  • +
  • CPU/Memory Usage
  • +
  • NUMA Allocation Data
  • +
+

+

+ JVM Information +

+

+
    +
  • JVM Process Information
  • +
  • CPU/Memory Usage
  • +
  • GC, Heap, Threads, Stack Trace, IO, Compiler, Class Information
  • +
  • NUMA Allocation Data for NUMA Aware systems
  • +
+

+

+ JVM Actions +

+

+
    +
  • Kill a JVM
  • +
  • Perform a full GC
  • +
  • Create a Heap Dump and analyze it in GUI
  • +
  • Profile JVM
  • +
  • Inject Byteman rules and view results
  • +
  • Detect deadlocks
  • +

-
-
-
-
-
-

CLI Features

-
-
-

- The easiest way to see what features the CLI has is to run the help command. -

-

$ thermostat help

-

- Thermostat offers CLI through invocations of thermostat, for example: -

-

$ thermostat list-vms

-

- Thermostat also offers a Shell that can be started via: -

-

$ thermostat shell

-

- This brings up the Shell, printing the version and the prompt and then waiting for command input. Run 'help' to list all - the commands available in the Shell. -

-
Thermostat version 1.99.12
Please see the User Guide at http://icedtea.classpath.org/wiki/Thermostat/UserGuide
Thermostat - > 
-
-
-
-
-
-
-

GUI Features

-
-
-

- Host Machine Information -

-

    -
  • Hardware/Network Information
  • -
  • CPU/Memory Usage
  • -
  • NUMA Allocation Data
  • -

-

- JVM Information -

-

    -
  • JVM Process Information
  • -
  • CPU/Memory Usage
  • -
  • GC, Heap, Threads, Stack Trace, IO, Compiler, Class Information
  • -
  • NUMA Allocation Data for NUMA Aware systems
  • -

-

- JVM Actions -

-

    -
  • Kill a JVM
  • -
  • Perform a full GC
  • -
  • Create a Heap Dump and analyze it in GUI
  • -
  • Profile JVM
  • -
  • Inject Byteman rules and view results
  • -
  • Detect deadlocks
  • -

-
-
-
-
-
-
-

Terminology

-
-
-

- This section contains description for terminology used in the User Guide. -

- -
-

- THERMOSTAT_HOME +

+
+
+
+

Terminology

+
+
+

+ This section contains description for terminology used in the User Guide.

-

- THERMOSTAT_HOME refers to the install location of Thermostat. This location is usually owned by root. For an RPM based installation - this is: -

-

/usr/share/thermostat

-

- For compilations from source (tarballs, cloned repository) this is: -

-

{source-location}/distribution/target/image

-
-
-

- USER_THERMOSTAT_HOME -

+
+

+ THERMOSTAT_HOME +

-

- USER_THERMOSTAT_HOME refers to the configuration and data location of Thermostat in the user's home directory. For user "someuser" - this is: -

-

/home/someuser/.thermostat

+

+ THERMOSTAT_HOME refers to the install location of Thermostat. This location is usually owned by root. For an RPM based installation + this is: +

+

/usr/share/thermostat

+

+ For compilations from source (tarballs, cloned repository) this is: +

+

{source-location}/distribution/target/image

+
+
+

+ USER_THERMOSTAT_HOME +

+ +

+ USER_THERMOSTAT_HOME refers to the configuration and data location of Thermostat in the user's home directory. For user "someuser" + this is: +

+

/home/someuser/.thermostat

+
-
- + +
+
+

+ There are also a lot of resources in the Thermostat wiki targeting developers. +

+ Wiki +
-
-

- There are also a lot of resources in the Thermostat wiki targeting developers. -

- Wiki -
+
+
-
- @@ -23,15 +33,9 @@ -
-
- -
-
- + diff -r 3465c28a7b2e -r 4980b1410c79 css/normalize.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/css/normalize.css Fri Feb 03 10:23:09 2017 -0500 @@ -0,0 +1,461 @@ +/*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */ + +/** + * 1. Change the default font family in all browsers (opinionated). + * 2. Correct the line height in all browsers. + * 3. Prevent adjustments of font size after orientation changes in + * IE on Windows Phone and in iOS. + */ + +/* Document + ========================================================================== */ + +html { + font-family: sans-serif; /* 1 */ + line-height: 1.15; /* 2 */ + -ms-text-size-adjust: 100%; /* 3 */ + -webkit-text-size-adjust: 100%; /* 3 */ +} + +/* Sections + ========================================================================== */ + +/** + * Remove the margin in all browsers (opinionated). + */ + +body { + margin: 0; +} + +/** + * Add the correct display in IE 9-. + */ + +article, +aside, +footer, +header, +nav, +section { + display: block; +} + +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/* Grouping content + ========================================================================== */ + +/** + * Add the correct display in IE 9-. + * 1. Add the correct display in IE. + */ + +figcaption, +figure, +main { /* 1 */ + display: block; +} + +/** + * Add the correct margin in IE 8. + */ + +figure { + margin: 1em 40px; +} + +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ + +hr { + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ + overflow: visible; /* 2 */ +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +pre { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/* Text-level semantics + ========================================================================== */ + +/** + * 1. Remove the gray background on active links in IE 10. + * 2. Remove gaps in links underline in iOS 8+ and Safari 8+. + */ + +a { + background-color: transparent; /* 1 */ + -webkit-text-decoration-skip: objects; /* 2 */ +} + +/** + * Remove the outline on focused links when they are also active or hovered + * in all browsers (opinionated). + */ + +a:active, +a:hover { + outline-width: 0; +} + +/** + * 1. Remove the bottom border in Firefox 39-. + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ + +abbr[title] { + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + text-decoration: underline dotted; /* 2 */ +} + +/** + * Prevent the duplicate application of `bolder` by the next rule in Safari 6. + */ + +b, +strong { + font-weight: inherit; +} + +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ + +b, +strong { + font-weight: bolder; +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +code, +kbd, +samp { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/** + * Add the correct font style in Android 4.3-. + */ + +dfn { + font-style: italic; +} + +/** + * Add the correct background and color in IE 9-. + */ + +mark { + background-color: #ff0; + color: #000; +} + +/** + * Add the correct font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Add the correct display in IE 9-. + */ + +audio, +video { + display: inline-block; +} + +/** + * Add the correct display in iOS 4-7. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Remove the border on images inside links in IE 10-. + */ + +img { + border-style: none; +} + +/** + * Hide the overflow in IE. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* Forms + ========================================================================== */ + +/** + * 1. Change the font styles in all browsers (opinionated). + * 2. Remove the margin in Firefox and Safari. + */ + +button, +input, +optgroup, +select, +textarea { + font-family: sans-serif; /* 1 */ + font-size: 100%; /* 1 */ + line-height: 1.15; /* 1 */ + margin: 0; /* 2 */ +} + +/** + * Show the overflow in IE. + * 1. Show the overflow in Edge. + */ + +button, +input { /* 1 */ + overflow: visible; +} + +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ + +button, +select { /* 1 */ + text-transform: none; +} + +/** + * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video` + * controls in Android 4. + * 2. Correct the inability to style clickable types in iOS and Safari. + */ + +button, +html [type="button"], /* 1 */ +[type="reset"], +[type="submit"] { + -webkit-appearance: button; /* 2 */ +} + +/** + * Remove the inner border and padding in Firefox. + */ + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; +} + +/** + * Restore the focus styles unset by the previous rule. + */ + +button:-moz-focusring, +[type="button"]:-moz-focusring, +[type="reset"]:-moz-focusring, +[type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; +} + +/** + * Change the border, margin, and padding in all browsers (opinionated). + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ + +legend { + box-sizing: border-box; /* 1 */ + color: inherit; /* 2 */ + display: table; /* 1 */ + max-width: 100%; /* 1 */ + padding: 0; /* 3 */ + white-space: normal; /* 1 */ +} + +/** + * 1. Add the correct display in IE 9-. + * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ + +progress { + display: inline-block; /* 1 */ + vertical-align: baseline; /* 2 */ +} + +/** + * Remove the default vertical scrollbar in IE. + */ + +textarea { + overflow: auto; +} + +/** + * 1. Add the correct box sizing in IE 10-. + * 2. Remove the padding in IE 10-. + */ + +[type="checkbox"], +[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ + +[type="search"] { + -webkit-appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ +} + +/** + * Remove the inner padding and cancel buttons in Chrome and Safari on macOS. + */ + +[type="search"]::-webkit-search-cancel-button, +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ + +::-webkit-file-upload-button { + -webkit-appearance: button; /* 1 */ + font: inherit; /* 2 */ +} + +/* Interactive + ========================================================================== */ + +/* + * Add the correct display in IE 9-. + * 1. Add the correct display in Edge, IE, and Firefox. + */ + +details, /* 1 */ +menu { + display: block; +} + +/* + * Add the correct display in all browsers. + */ + +summary { + display: list-item; +} + +/* Scripting + ========================================================================== */ + +/** + * Add the correct display in IE 9-. + */ + +canvas { + display: inline-block; +} + +/** + * Add the correct display in IE. + */ + +template { + display: none; +} + +/* Hidden + ========================================================================== */ + +/** + * Add the correct display in IE 10-. + */ + +[hidden] { + display: none; +} diff -r 3465c28a7b2e -r 4980b1410c79 css/style.css --- a/css/style.css Tue Jan 24 10:21:50 2017 -0500 +++ b/css/style.css Fri Feb 03 10:23:09 2017 -0500 @@ -1,187 +1,271 @@ -/* logo */ -/**/ -div#logo-box { - margin: 1em; - margin-top: 4em; +/* colours */ +/* sizes */ +/* content-divs */ +#content-header { + background-color: #27426e; +} +#content-body { + background-color: #ffffff; +} +#content-footer { + background-color: #ffffff; +} +.space10 { + margin-top: 10px; +} +.space40 { + margin-top: 40px; +} +html { + height: 100%; +} +/* front page jumbotron */ +#front-page-jumbotron { + background-image: url(../img/flexibility_curved_building_istock.png); + background-size: cover; + background-repeat: no-repeat; + background-attachment: fixed; + margin-bottom: 0px; +} +/* front page get-started section */ +#front-page-get-started { + background-color: #27426e; +} +#front-page-images { + background-color: #ffffff; } - -div#logo-box img { - max-width: 25%; - height: auto; +/* front page video */ +#front-page-video { + margin: 25px; +} +/* front page image */ +.rel-box { + position: relative; +} +.graph-img { + max-width: 100%; +} +.graph-under { + position: absolute; + top: 35%; + left: 50%; + margin-right: -50%; + transform: translate(-50%, -50%); } - +.logo-img { + margin-top: 100px; + max-width: 20%; +} +@media (min-width: 768px) { + .logo-img { + max-width: 15%; + } +} +@media (min-width: 992px) { + .logo-img { + max-width: 10%; + } +} +/* background box */ +.bg-colour { + background-color: #27426e; +} +.bg-img { + background: url(../img/tms-graph.png); + background-size: cover; + background-repeat: no-repeat; +} /* navbar */ /**/ .navbar-default { - background-color: #ffffff; - border-color: #ffffff; - border-bottom-color: rgb(0, 34, 85); + background: #27426e; font-size: 1.2em; + border: none; + margin-bottom: 0px; } - .navbar-default .navbar-nav > li > a { - color: rgb(0, 34, 85); + color: #ffffff; + background-color: #27426e; } .navbar-default .navbar-nav > li > a:hover, .navbar-default .navbar-nav > li > a:focus { - color: rgb(240,130,0); + color: #dcdcdc; + background-color: #27426e; } .navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > a:hover, .navbar-default .navbar-nav > .active > a:focus { - color: rgb(240,130,0); - background-color: #ffffff; + color: #ffffff; + font-size: 1.1em; + background-color: #27426e; } .navbar-default .navbar-nav > .open > a, .navbar-default .navbar-nav > .open > a:hover, .navbar-default .navbar-nav > .open > a:focus { - color: rgb(240,130,0); - background-color: #ffffff; + color: #ffffff; + background-color: #27426e; } - .navbar-default .navbar-collapse, .navbar-default .navbar-form { - border-color: rgb(240,130,0) + border-color: #27426e; } - +.navbar-default .navbar-nav .open .dropdown-menu > li > a { + background-color: #27426e; + color: #ffffff; +} +.navbar-nav > li > .dropdown-menu { + background-color: #27426e; +} .navbar-c1 { - margin-right: 0.1em; + margin-right: 0.1em; } - +.navbar-title { + font-size: 1.3em; + color: #ffffff !important; +} /* bs-docs-sidebar */ /**/ body { - position: relative; + height: 100%; + position: relative; } - .fixed { - position: fixed; + position: fixed; } - /* sidebar */ .bs-docs-sidebar { - padding-left: 5px; - padding-right: 10px; - margin-top: 20px; - margin-bottom: 20px; + padding-left: 5px; + padding-right: 10px; + margin-top: 20px; + margin-bottom: 20px; } - /* all links */ -.bs-docs-sidebar .nav>li>a { - color: rgb(90,90,90); - border-left: 2px solid transparent; - padding: 4px 10px; - font-size: 1.1em; - font-weight: 400; +.bs-docs-sidebar .nav > li > a { + color: #4c4c4c; + border-left: 2px solid transparent; + padding: 4px 10px; + font-size: 1.1em; + font-weight: 400; } - /* nested links */ -.bs-docs-sidebar .nav .nav>li>a { - padding-top: 1px; - padding-bottom: 1px; - padding-left: 30px; - font-size: 12px; +.bs-docs-sidebar .nav .nav > li > a { + padding-top: 1px; + padding-bottom: 1px; + padding-left: 30px; + font-size: 12px; } - /* active & hover links */ -.bs-docs-sidebar .nav>.active>a, -.bs-docs-sidebar .nav>li>a:hover, -.bs-docs-sidebar .nav>li>a:focus { - color: rgb(0, 34, 85); - text-decoration: none; - background-color: transparent; - border-left-color: rgb(0, 34, 85); +.bs-docs-sidebar .nav > .active > a, +.bs-docs-sidebar .nav > li > a:hover, +.bs-docs-sidebar .nav > li > a:focus { + color: #27426e; + text-decoration: none; + background-color: transparent; + border-left-color: #27426e; } /* all active links */ -.bs-docs-sidebar .nav>.active>a, -.bs-docs-sidebar .nav>.active:hover>a, -.bs-docs-sidebar .nav>.active:focus>a { - font-weight: 700; +.bs-docs-sidebar .nav > .active > a, +.bs-docs-sidebar .nav > .active:hover > a, +.bs-docs-sidebar .nav > .active:focus > a { + font-weight: 700; } /* nested active links */ -.bs-docs-sidebar .nav .nav>.active>a, -.bs-docs-sidebar .nav .nav>.active:hover>a, -.bs-docs-sidebar .nav .nav>.active:focus>a { - font-weight: 500; +.bs-docs-sidebar .nav .nav > .active > a, +.bs-docs-sidebar .nav .nav > .active:hover > a, +.bs-docs-sidebar .nav .nav > .active:focus > a { + font-weight: 500; } - /* hide inactive nested list */ .bs-docs-sidebar .nav ul.nav { - display: none; + display: none; } /* show active nested list */ -.bs-docs-sidebar .nav>.active>ul.nav { - display: block; +.bs-docs-sidebar .nav > .active > ul.nav { + display: block; } - .back-to-top { - color: rgb(90,90,90); - border-left: 2px solid transparent; - margin-top: 10px; - padding: 4px 10px; - font-size: 1em; - font-weight: 400; - display: block; + color: #4c4c4c; + border-left: 2px solid transparent; + margin-top: 10px; + padding: 4px 10px; + font-size: 1em; + font-weight: 400; + display: block; } - /* button */ /**/ .btn-c1 { - color: rgb(0, 34, 85); + color: #27426e; } -.btn-c1:hover, .btn-c1:focus, .btn-c1:active, .btn-c1.active, .open>.dropdown-toggle.btn-c1 { - color: rgb(240,130,0); - background: rgb(255,255,255); +.btn-c1:hover, +.btn-c1:focus, +.btn-c1:active, +.btn-c1.active, +.open > .dropdown-toggle.btn-c1 { + background: rgba(255, 255, 255, 0.75); + color: #27426e; } - +.btn-large { + padding: 0.3em 1em; + font-size: 1.3em; +} .btn-xlarge { - padding: 0.5em 3em; - font-size: 1.4em; + padding: 0.5em 3em; + font-size: 1.4em; } - +.btn-transparent { + background: rgba(255, 255, 255, 0.5); + color: #27426e; + border-color: #000000; +} /* panel */ /**/ .panel-default { - border-color: rgb(255,255,255); + border-color: #ffffff; } - .panel-default .panel-heading { - background: rgb(255,255,255); - border-color: rgb(255,255,255); + background: #ffffff; + border-color: #ffffff; } - h1.panel-title { - color: rgb(0, 34, 85); - font-size: 2.2em; + color: #27426e; + font-size: 2.2em; } h2.panel-title { - color: rgb(0, 34, 85); - font-size: 2em; + color: #27426e; + font-size: 2em; } .h3-steps { - margin-top: 1.5em; + margin-top: 1.5em; } - /* text */ +.wordwrap { + word-wrap: break-word; +} /**/ h1 { - color: rgb(0, 34, 85); + color: #27426e; } - h2 { - color: rgb(0, 34, 85); + color: #27426e; } - h3 { - color: rgb(0, 34, 85); + color: #27426e; +} +.black { + color: #000000; } - +.white { + color: #ffffff; +} +.h3c { + color: #ffffff; +} .h4c { - margin-top: 2em; - font-size: 1.5em; - color: rgb(0, 34, 85); + margin-top: 2em; + font-size: 1.5em; + color: #27426e; } - -.ac { - color: rgb(70,70,80); -} \ No newline at end of file +.terminology-link { + color: #4c4c4c; +} diff -r 3465c28a7b2e -r 4980b1410c79 css/style.less --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/css/style.less Fri Feb 03 10:23:09 2017 -0500 @@ -0,0 +1,333 @@ +/* colours */ +@white: rgb(255,255,255); +@dark-blue: rgb(39,66,110); +@orange: rgb(240,130,0); +@grey: rgb(76,76,76); +@light-grey: rgb(220,220,220); +@black: rgb(0,0,0); + +@dark-blue-alpha: rgba(39,66,110,0.5); +@white-50: rgba(255,255,255,0.5); +@white-75: rgba(255,255,255,0.75); + +/* sizes */ +@screen-sm-min: 768px; +@screen-md-min: 992px; +@screen0-lg-min: 1200px; + +/* content-divs */ +#content-header { + background-color: @dark-blue; +} + +#content-body { + background-color: @white; +} + +#content-footer { + background-color: @white; +} + +.space10 { + margin-top: 10px; +} + +.space40 { + margin-top: 40px; +} + +html { + height: 100%; +} + +/* front page jumbotron */ +#front-page-jumbotron { + background-image: url(../img/flexibility_curved_building_istock.png); + background-size: cover; + background-repeat: no-repeat; + background-attachment: fixed; + margin-bottom: 0px; +} + +/* front page get-started section */ +#front-page-get-started { + background-color: @dark-blue; +} + +#front-page-images { + background-color: @white; +} + +/* front page video */ +#front-page-video { + margin: 25px; +} + +/* front page image */ +.rel-box { + position:relative; +} +.graph-img { + max-width: 100%; +} + +.graph-under { + position: absolute; + top: 35%; + left: 50%; + margin-right: -50%; + transform: translate(-50%, -50%); +} + +.logo-img { + margin-top: 100px; + max-width: 20%; +} + +@media (min-width: @screen-sm-min) { + .logo-img { + max-width: 15%; + } +} + +@media (min-width: @screen-md-min) { + .logo-img { + max-width: 10%; + } +} + +/* background box */ +.bg-colour { + background-color: @dark-blue; +} + +.bg-img { + background: url(../img/tms-graph.png); + background-size: cover; + background-repeat: no-repeat; +} + +/* navbar */ +/**/ + +.navbar-default { + background: @dark-blue; + font-size: 1.2em; + border: none; + margin-bottom: 0px; +} + +.navbar-default .navbar-nav > li > a { + color: @white; + background-color: @dark-blue; +} + +.navbar-default .navbar-nav > li > a:hover, +.navbar-default .navbar-nav > li > a:focus { + color: @light-grey; + background-color: @dark-blue; +} + +.navbar-default .navbar-nav > .active > a, +.navbar-default .navbar-nav > .active > a:hover, +.navbar-default .navbar-nav > .active > a:focus { + color: @white; + font-size: 1.1em; + background-color: @dark-blue; +} + +.navbar-default .navbar-nav > .open > a, +.navbar-default .navbar-nav > .open > a:hover, +.navbar-default .navbar-nav > .open > a:focus { + color: @white; + background-color: @dark-blue; +} + +.navbar-default .navbar-collapse, +.navbar-default .navbar-form { + border-color: @dark-blue +} + +.navbar-default .navbar-nav .open .dropdown-menu > li > a { + background-color: @dark-blue; + color: @white; +} + +.navbar-nav > li > .dropdown-menu { + background-color: @dark-blue; +} + +.navbar-c1 { + margin-right: 0.1em; +} + +.navbar-title { + font-size: 1.3em; + color: @white !important; +} +/* bs-docs-sidebar */ +/**/ +body { + height: 100%; + position: relative; +} + +.fixed { + position: fixed; +} + +/* sidebar */ +.bs-docs-sidebar { + padding-left: 5px; + padding-right: 10px; + margin-top: 20px; + margin-bottom: 20px; +} + +/* all links */ +.bs-docs-sidebar .nav>li>a { + color: @grey; + border-left: 2px solid transparent; + padding: 4px 10px; + font-size: 1.1em; + font-weight: 400; +} + +/* nested links */ +.bs-docs-sidebar .nav .nav>li>a { + padding-top: 1px; + padding-bottom: 1px; + padding-left: 30px; + font-size: 12px; +} + +/* active & hover links */ +.bs-docs-sidebar .nav>.active>a, +.bs-docs-sidebar .nav>li>a:hover, +.bs-docs-sidebar .nav>li>a:focus { + color: @dark-blue; + text-decoration: none; + background-color: transparent; + border-left-color: @dark-blue; +} +/* all active links */ +.bs-docs-sidebar .nav>.active>a, +.bs-docs-sidebar .nav>.active:hover>a, +.bs-docs-sidebar .nav>.active:focus>a { + font-weight: 700; +} +/* nested active links */ +.bs-docs-sidebar .nav .nav>.active>a, +.bs-docs-sidebar .nav .nav>.active:hover>a, +.bs-docs-sidebar .nav .nav>.active:focus>a { + font-weight: 500; +} + +/* hide inactive nested list */ +.bs-docs-sidebar .nav ul.nav { + display: none; +} +/* show active nested list */ +.bs-docs-sidebar .nav>.active>ul.nav { + display: block; +} + +.back-to-top { + color: @grey; + border-left: 2px solid transparent; + margin-top: 10px; + padding: 4px 10px; + font-size: 1em; + font-weight: 400; + display: block; +} + +/* button */ +/**/ +.btn-c1 { + color: @dark-blue; +} +.btn-c1:hover, .btn-c1:focus, .btn-c1:active, .btn-c1.active, .open>.dropdown-toggle.btn-c1 { + background: @white-75; + color: @dark-blue; + // font-size: 1.1em; +} + +.btn-large { + padding: 0.3em 1em; + font-size: 1.3em; +} + +.btn-xlarge { + padding: 0.5em 3em; + font-size: 1.4em; +} + +.btn-transparent { + background: @white-50; + color: @dark-blue; + border-color: @black; +} + +/* panel */ +/**/ +.panel-default { + border-color: @white; +} + +.panel-default .panel-heading { + background: @white; + border-color: @white; +} + +h1.panel-title { + color: @dark-blue; + font-size: 2.2em; +} +h2.panel-title { + color: @dark-blue; + font-size: 2em; +} +.h3-steps { + margin-top: 1.5em; +} + +/* text */ + +.wordwrap { + word-wrap: break-word; +} +/**/ +h1 { + color: @dark-blue; +} + +h2 { + color: @dark-blue; +} + +h3 { + color: @dark-blue; +} + +.black { + color: @black; +} + +.white { + color: @white; +} + +.h3c { + color: @white; +} + +.h4c { + margin-top: 2em; + font-size: 1.5em; + color: @dark-blue; +} + +.terminology-link { + color: @grey; +} \ No newline at end of file diff -r 3465c28a7b2e -r 4980b1410c79 documentation/index.html --- a/documentation/index.html Tue Jan 24 10:21:50 2017 -0500 +++ b/documentation/index.html Fri Feb 03 10:23:09 2017 -0500 @@ -12,10 +12,20 @@ + +
+
+ +
+
+ + + @@ -23,15 +33,9 @@ -
-
- -
-
- + diff -r 3465c28a7b2e -r 4980b1410c79 downloads/index.html --- a/downloads/index.html Tue Jan 24 10:21:50 2017 -0500 +++ b/downloads/index.html Fri Feb 03 10:23:09 2017 -0500 @@ -12,10 +12,20 @@ + +
+
+ +
+
+ + + @@ -23,15 +33,9 @@ -
-
- -
-
- + diff -r 3465c28a7b2e -r 4980b1410c79 getting-started/index.html --- a/getting-started/index.html Tue Jan 24 10:21:50 2017 -0500 +++ b/getting-started/index.html Fri Feb 03 10:23:09 2017 -0500 @@ -12,10 +12,20 @@ + +
+
+ +
+
+ + + @@ -23,15 +33,9 @@ -
-
- -
-
- + diff -r 3465c28a7b2e -r 4980b1410c79 img/flexibility_curved_building_istock.jpg Binary file img/flexibility_curved_building_istock.jpg has changed diff -r 3465c28a7b2e -r 4980b1410c79 img/flexibility_curved_building_istock.png Binary file img/flexibility_curved_building_istock.png has changed diff -r 3465c28a7b2e -r 4980b1410c79 img/thermostat_icon_500px.png Binary file img/thermostat_icon_500px.png has changed diff -r 3465c28a7b2e -r 4980b1410c79 img/tms-graph-50.png Binary file img/tms-graph-50.png has changed diff -r 3465c28a7b2e -r 4980b1410c79 index.html --- a/index.html Tue Jan 24 10:21:50 2017 -0500 +++ b/index.html Fri Feb 03 10:23:09 2017 -0500 @@ -12,10 +12,20 @@ + +
+
+ +
+
+ + + @@ -23,15 +33,9 @@ -
-
- -
-
- + diff -r 3465c28a7b2e -r 4980b1410c79 js/load-page.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/js/load-page.js Fri Feb 03 10:23:09 2017 -0500 @@ -0,0 +1,13 @@ +function loadHome() { + $("#content-header").load("./content/head.html"); + $("#content-body").load("./content/home/content.html"); +} + +function loadContent(name) { + navname = "nav-" + name; + $("#content-header").load("../content/head.1.html", function() { + $("#" + navname).addClass('active'); + }); + + $("#content-body").load("../content/" + name + "/content.html"); +} \ No newline at end of file