├── .github
├── CODEOWNERS
├── .DS_Store
├── workflows
│ ├── dependabot.yml
│ ├── cd.yaml
│ └── jenkins-security-scan.yml
└── dependabot.yml
├── .mvn
├── maven.config
└── extensions.xml
├── docs
└── images
│ ├── colorpicker.png
│ ├── multilevel.png
│ ├── screenshot.jpg
│ ├── nameparameter.png
│ ├── script-security.png
│ ├── demo-json-parameter.png
│ ├── json-parameter-config.png
│ ├── extended-choice-parameter-config.png
│ └── hudson-extended-choice-parameter-plugin.png
├── src
└── main
│ ├── webapp
│ ├── fonts
│ │ ├── foundation-icons.eot
│ │ ├── foundation-icons.ttf
│ │ ├── foundation-icons.woff
│ │ ├── glyphicons-halflings-regular.eot
│ │ ├── glyphicons-halflings-regular.ttf
│ │ └── glyphicons-halflings-regular.woff
│ ├── help-globalConfig.html
│ ├── css
│ │ ├── jquery.jsonview.css
│ │ ├── general_foundicons.css
│ │ ├── selectize.css
│ │ ├── selectize.bootstrap2.css
│ │ ├── foundation-icons.css
│ │ ├── font-awesome4.css
│ │ └── font-awesome3.css
│ └── js
│ │ └── jquery.jsonview.min.js
│ ├── resources
│ ├── com
│ │ └── cwctravel
│ │ │ └── hudson
│ │ │ └── plugins
│ │ │ └── extended_choice_parameter
│ │ │ ├── ExtendedChoiceParameterDefinition
│ │ │ ├── help-defaultPropertyFile.html
│ │ │ ├── help.html
│ │ │ ├── help-name.html
│ │ │ ├── help-projectName.html
│ │ │ ├── help-defaultValue.html
│ │ │ ├── help-multiSelectDelimiter.html
│ │ │ ├── help-propertyKey.html
│ │ │ ├── textboxContent.jelly
│ │ │ ├── help-value.html
│ │ │ ├── help-propertyFile.html
│ │ │ ├── selectContent.jelly
│ │ │ ├── radioContent.jelly
│ │ │ ├── checkboxContent.jelly
│ │ │ ├── help-type.html
│ │ │ ├── index.jelly
│ │ │ ├── jsonContent.jelly
│ │ │ ├── multiLevel.jelly
│ │ │ └── config.jelly
│ │ │ ├── Messages.properties
│ │ │ ├── JSONEditorPageDecorator
│ │ │ └── header.jelly
│ │ │ └── ExtendedChoiceParameterValue
│ │ │ └── value.jelly
│ └── index.jelly
│ └── java
│ └── com
│ └── cwctravel
│ └── hudson
│ └── plugins
│ └── extended_choice_parameter
│ ├── JSONEditorPageDecorator.java
│ ├── ParameterDefinitionInfo.java
│ └── ExtendedChoiceParameterValue.java
├── .gitignore
├── Jenkinsfile
├── LICENSE.md
├── pom.xml
├── README.md
└── CHANGELOG.adoc
/.github/CODEOWNERS:
--------------------------------------------------------------------------------
1 | * @jenkinsci/extended-choice-parameter-plugin-developers
2 |
--------------------------------------------------------------------------------
/.mvn/maven.config:
--------------------------------------------------------------------------------
1 | -Pconsume-incrementals
2 | -Pmight-produce-incrementals
3 | -Dchangelist.format=%d.v%s
4 |
--------------------------------------------------------------------------------
/.github/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jenkinsci/extended-choice-parameter-plugin/HEAD/.github/.DS_Store
--------------------------------------------------------------------------------
/docs/images/colorpicker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jenkinsci/extended-choice-parameter-plugin/HEAD/docs/images/colorpicker.png
--------------------------------------------------------------------------------
/docs/images/multilevel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jenkinsci/extended-choice-parameter-plugin/HEAD/docs/images/multilevel.png
--------------------------------------------------------------------------------
/docs/images/screenshot.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jenkinsci/extended-choice-parameter-plugin/HEAD/docs/images/screenshot.jpg
--------------------------------------------------------------------------------
/docs/images/nameparameter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jenkinsci/extended-choice-parameter-plugin/HEAD/docs/images/nameparameter.png
--------------------------------------------------------------------------------
/docs/images/script-security.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jenkinsci/extended-choice-parameter-plugin/HEAD/docs/images/script-security.png
--------------------------------------------------------------------------------
/docs/images/demo-json-parameter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jenkinsci/extended-choice-parameter-plugin/HEAD/docs/images/demo-json-parameter.png
--------------------------------------------------------------------------------
/docs/images/json-parameter-config.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jenkinsci/extended-choice-parameter-plugin/HEAD/docs/images/json-parameter-config.png
--------------------------------------------------------------------------------
/src/main/webapp/fonts/foundation-icons.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jenkinsci/extended-choice-parameter-plugin/HEAD/src/main/webapp/fonts/foundation-icons.eot
--------------------------------------------------------------------------------
/src/main/webapp/fonts/foundation-icons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jenkinsci/extended-choice-parameter-plugin/HEAD/src/main/webapp/fonts/foundation-icons.ttf
--------------------------------------------------------------------------------
/src/main/webapp/fonts/foundation-icons.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jenkinsci/extended-choice-parameter-plugin/HEAD/src/main/webapp/fonts/foundation-icons.woff
--------------------------------------------------------------------------------
/docs/images/extended-choice-parameter-config.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jenkinsci/extended-choice-parameter-plugin/HEAD/docs/images/extended-choice-parameter-config.png
--------------------------------------------------------------------------------
/docs/images/hudson-extended-choice-parameter-plugin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jenkinsci/extended-choice-parameter-plugin/HEAD/docs/images/hudson-extended-choice-parameter-plugin.png
--------------------------------------------------------------------------------
/src/main/webapp/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jenkinsci/extended-choice-parameter-plugin/HEAD/src/main/webapp/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/src/main/webapp/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jenkinsci/extended-choice-parameter-plugin/HEAD/src/main/webapp/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/src/main/webapp/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jenkinsci/extended-choice-parameter-plugin/HEAD/src/main/webapp/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | target
2 |
3 | # mvn hpi:run
4 | work
5 |
6 | # IntelliJ IDEA project files
7 | *.iml
8 | *.iws
9 | *.ipr
10 | .idea
11 |
12 | # Eclipse project files
13 | .settings
14 | .classpath
15 | .project
16 |
--------------------------------------------------------------------------------
/src/main/resources/com/cwctravel/hudson/plugins/extended_choice_parameter/ExtendedChoiceParameterDefinition/help-defaultPropertyFile.html:
--------------------------------------------------------------------------------
1 |
2 | Absolute path (specified without using environment variables).
3 |
4 |
--------------------------------------------------------------------------------
/src/main/resources/com/cwctravel/hudson/plugins/extended_choice_parameter/ExtendedChoiceParameterDefinition/help.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | This parameter adds various types of choice fields to the Pipeline Input Step.
4 |
5 |
--------------------------------------------------------------------------------
/Jenkinsfile:
--------------------------------------------------------------------------------
1 | /*
2 | See the documentation for more options:
3 | https://github.com/jenkins-infra/pipeline-library/
4 | */
5 | buildPlugin(
6 | useContainerAgent: true,
7 | configurations: [
8 | [platform: 'linux', jdk: 21],
9 | [platform: 'windows', jdk: 17]
10 | ])
11 |
--------------------------------------------------------------------------------
/src/main/resources/com/cwctravel/hudson/plugins/extended_choice_parameter/ExtendedChoiceParameterDefinition/help-name.html:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 | The name of the parameter.
9 |
--------------------------------------------------------------------------------
/src/main/resources/com/cwctravel/hudson/plugins/extended_choice_parameter/ExtendedChoiceParameterDefinition/help-projectName.html:
--------------------------------------------------------------------------------
1 |
2 | If specified, this adds a currentProject entry to the groovy script context. The entry's
3 | value is set to the specified Jenkins project.
4 |
--------------------------------------------------------------------------------
/src/main/resources/com/cwctravel/hudson/plugins/extended_choice_parameter/ExtendedChoiceParameterDefinition/help-defaultValue.html:
--------------------------------------------------------------------------------
1 |
2 | Initial selection of the single-select or mult-select box.
3 | In case of the multi-select box, default value can be a comma separated string.
4 |
5 |
--------------------------------------------------------------------------------
/src/main/webapp/help-globalConfig.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | This HTML fragment will be injected into the configuration screen
4 | when the user clicks the 'help' icon. See global.jelly for how the
5 | form decides which page to load.
6 | You can have any HTML fragment here.
7 |
8 |
9 |
--------------------------------------------------------------------------------
/src/main/java/com/cwctravel/hudson/plugins/extended_choice_parameter/JSONEditorPageDecorator.java:
--------------------------------------------------------------------------------
1 | package com.cwctravel.hudson.plugins.extended_choice_parameter;
2 |
3 | import hudson.Extension;
4 | import hudson.model.PageDecorator;
5 |
6 | @Extension
7 | public class JSONEditorPageDecorator extends PageDecorator {
8 |
9 | }
10 |
--------------------------------------------------------------------------------
/.github/workflows/dependabot.yml:
--------------------------------------------------------------------------------
1 | # https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuring-dependabot-version-updates
2 |
3 | version: 2
4 | updates:
5 | - package-ecosystem: maven
6 | directory: /
7 | schedule:
8 | interval: monthly
9 | - package-ecosystem: github-actions
10 | directory: /
11 | schedule:
12 | interval: monthly
13 |
--------------------------------------------------------------------------------
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | # https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuring-dependabot-version-updates
2 | ---
3 | version: 2
4 | updates:
5 | - package-ecosystem: maven
6 | directory: /
7 | schedule:
8 | interval: weekly
9 | - package-ecosystem: github-actions
10 | directory: /
11 | schedule:
12 | interval: weekly
13 |
--------------------------------------------------------------------------------
/src/main/resources/com/cwctravel/hudson/plugins/extended_choice_parameter/ExtendedChoiceParameterDefinition/help-multiSelectDelimiter.html:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
Inserts this value between selections when the parameter is a multi-select.
9 |
The default when empty is ','
10 |
--------------------------------------------------------------------------------
/src/main/resources/com/cwctravel/hudson/plugins/extended_choice_parameter/ExtendedChoiceParameterDefinition/help-propertyKey.html:
--------------------------------------------------------------------------------
1 |
2 | The property of the property file to use.
3 |
4 | For example, if the property file was the following:
5 |
6 | prop1=a,b,c,d,e
7 | prop2=1,2,3,4
8 |
9 | Then you could specify the property as either prop1 or prop2.
10 |
--------------------------------------------------------------------------------
/src/main/resources/com/cwctravel/hudson/plugins/extended_choice_parameter/ExtendedChoiceParameterDefinition/textboxContent.jelly:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/src/main/resources/index.jelly:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
13 |
14 | Adds extended functionality to Choice parameter
15 |
--------------------------------------------------------------------------------
/.mvn/extensions.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | io.jenkins.tools.incrementals
4 | git-changelist-maven-extension
5 | 1.8
6 |
7 |
8 |
--------------------------------------------------------------------------------
/src/main/resources/com/cwctravel/hudson/plugins/extended_choice_parameter/ExtendedChoiceParameterDefinition/help-value.html:
--------------------------------------------------------------------------------
1 |
2 | Comma separated list of values for the single select or multi-select box.
3 | This field can be left blank if the comma separated values need to be
4 | picked up from a properties file (set via 'Property File' and 'Property Key').
5 |
6 | This value has different meaning for multi-level select -- see the parameter type help for more
7 | info.
8 |
9 |
--------------------------------------------------------------------------------
/src/main/resources/com/cwctravel/hudson/plugins/extended_choice_parameter/Messages.properties:
--------------------------------------------------------------------------------
1 | ExtendedChoiceParameterDefinition.DisplayName=Extended Choice Parameter
2 | ExtendedChoiceParameterDefinition.PropertyFileDoesntExist=%s doesn't seem to exist.
3 | ExtendedChoiceParameterDefinition.PropertyFileExistsButProvidedKeyIsInvalid=%s exists, but the provided key \"%s\" doesn't exist in this property file.
4 | ExtendedChoiceParameterDefinition.PropertyFileExistsButNoProvidedKey=%s exists, but you have to provide a property key as well.
5 |
--------------------------------------------------------------------------------
/.github/workflows/cd.yaml:
--------------------------------------------------------------------------------
1 | # Note: additional setup is required, see https://www.jenkins.io/redirect/continuous-delivery-of-plugins
2 |
3 | name: cd
4 | on:
5 | workflow_dispatch:
6 | check_run:
7 | types:
8 | - completed
9 |
10 | permissions:
11 | checks: read
12 | contents: write
13 |
14 | jobs:
15 | maven-cd:
16 | uses: jenkins-infra/github-reusable-workflows/.github/workflows/maven-cd.yml@v1
17 | secrets:
18 | MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }}
19 | MAVEN_TOKEN: ${{ secrets.MAVEN_TOKEN }}
20 |
--------------------------------------------------------------------------------
/src/main/resources/com/cwctravel/hudson/plugins/extended_choice_parameter/ExtendedChoiceParameterDefinition/help-propertyFile.html:
--------------------------------------------------------------------------------
1 |
2 | The
properties file
3 | is a collection of key,value pairs of the form key=value1,value2,...
4 |
5 | Properties may reference other properties. For example:
6 |
7 | prop1=a,b,c,d,e
8 | prop2=${prop1},f,g,h
9 |
10 | The properties file can be placed anywhere on the file-system that Jenkins can access.
11 |
12 | This property file has different meaning for multi-level select -- see the parameter type help for
13 | more info.
14 |
15 |
--------------------------------------------------------------------------------
/.github/workflows/jenkins-security-scan.yml:
--------------------------------------------------------------------------------
1 | name: Jenkins Security Scan
2 |
3 | on:
4 | push:
5 | branches:
6 | - main
7 | pull_request:
8 | types: [ opened, synchronize, reopened ]
9 | workflow_dispatch:
10 |
11 | permissions:
12 | security-events: write
13 | contents: read
14 | actions: read
15 |
16 | jobs:
17 | security-scan:
18 | uses: jenkins-infra/jenkins-security-scan/.github/workflows/jenkins-security-scan.yaml@v2
19 | with:
20 | java-cache: 'maven' # Optionally enable use of a build dependency cache. Specify 'maven' or 'gradle' as appropriate.
21 | # java-version: 21 # Optionally specify what version of Java to set up for the build, or remove to use a recent default.
22 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | The MIT License
2 |
3 | Copyright 2022
4 |
5 | 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:
6 |
7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8 |
9 | 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.
--------------------------------------------------------------------------------
/src/main/java/com/cwctravel/hudson/plugins/extended_choice_parameter/ParameterDefinitionInfo.java:
--------------------------------------------------------------------------------
1 | package com.cwctravel.hudson.plugins.extended_choice_parameter;
2 |
3 | import java.util.Map;
4 |
5 | public class ParameterDefinitionInfo {
6 | private String effectiveValue;
7 | private Map defaultValueMap;
8 | private Map descriptionPropertyValueMap;
9 |
10 | public String getEffectiveValue() {
11 | return effectiveValue;
12 | }
13 |
14 | public void setEffectiveValue(String effectiveValue) {
15 | this.effectiveValue = effectiveValue;
16 | }
17 |
18 | public Map getDefaultValueMap() {
19 | return defaultValueMap;
20 | }
21 |
22 | public void setDefaultValueMap(Map defaultValueMap) {
23 | this.defaultValueMap = defaultValueMap;
24 | }
25 |
26 | public Map getDescriptionPropertyValueMap() {
27 | return descriptionPropertyValueMap;
28 | }
29 |
30 | public void setDescriptionPropertyValueMap(Map descriptionPropertyValueMap) {
31 | this.descriptionPropertyValueMap = descriptionPropertyValueMap;
32 | }
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/src/main/resources/com/cwctravel/hudson/plugins/extended_choice_parameter/ExtendedChoiceParameterDefinition/selectContent.jelly:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
13 |
14 |
15 |
16 |
18 |
19 |
20 | ${descriptionPropertyValue}
21 |
22 |
23 | ${descriptionPropertyValue}
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/src/main/webapp/css/jquery.jsonview.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";
2 | .jsonview {
3 | font-family: monospace;
4 | font-size: 1.1em;
5 | white-space: pre-wrap; }
6 | .jsonview .prop {
7 | font-weight: bold; }
8 | .jsonview .null {
9 | color: red; }
10 | .jsonview .bool {
11 | color: blue; }
12 | .jsonview .num {
13 | color: blue; }
14 | .jsonview .string {
15 | color: green;
16 | white-space: pre-wrap; }
17 | .jsonview .string.multiline {
18 | display: inline-block;
19 | vertical-align: text-top; }
20 | .jsonview .collapser {
21 | position: absolute;
22 | left: -1em;
23 | cursor: pointer; }
24 | .jsonview .collapsible {
25 | transition: width 1.2s, height 1.2s; }
26 | .jsonview .collapsible.collapsed {
27 | height: .8em;
28 | width: 1em;
29 | display: inline-block;
30 | overflow: hidden;
31 | margin: 0; }
32 | .jsonview .collapsible.collapsed:before {
33 | content: "…";
34 | width: 1em;
35 | margin-left: .2em; }
36 | .jsonview .collapser.collapsed {
37 | transform: rotate(0deg); }
38 | .jsonview .q {
39 | display: inline-block;
40 | width: 0;
41 | color: transparent; }
42 | .jsonview li {
43 | position: relative; }
44 | .jsonview ul {
45 | list-style: none;
46 | margin: 0 0 0 2em;
47 | padding: 0; }
48 | .jsonview h1 {
49 | font-size: 1.2em; }
50 |
--------------------------------------------------------------------------------
/src/main/resources/com/cwctravel/hudson/plugins/extended_choice_parameter/JSONEditorPageDecorator/header.jelly:
--------------------------------------------------------------------------------
1 |
2 |
4 |
16 |
18 |
20 |
22 |
23 |
24 |
26 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/src/main/resources/com/cwctravel/hudson/plugins/extended_choice_parameter/ExtendedChoiceParameterValue/value.jelly:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
10 |
11 |
12 |
13 |
14 |
15 |
17 |
18 |
19 |
20 |
21 |
23 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
35 |
36 |
37 | ${it.value}
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/src/main/resources/com/cwctravel/hudson/plugins/extended_choice_parameter/ExtendedChoiceParameterDefinition/radioContent.jelly:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
12 |
13 |
14 |
33 |
59 |
60 |
--------------------------------------------------------------------------------
/src/main/resources/com/cwctravel/hudson/plugins/extended_choice_parameter/ExtendedChoiceParameterDefinition/checkboxContent.jelly:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
12 |
13 |
14 |
33 |
59 |
--------------------------------------------------------------------------------
/src/main/resources/com/cwctravel/hudson/plugins/extended_choice_parameter/ExtendedChoiceParameterDefinition/help-type.html:
--------------------------------------------------------------------------------
1 |
2 | The type of parameter:
3 |
40 |
41 |
--------------------------------------------------------------------------------
/src/main/resources/com/cwctravel/hudson/plugins/extended_choice_parameter/ExtendedChoiceParameterDefinition/index.jelly:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | You have unapproved groovy scripts that need approval before they can be executed.
12 | Go to
In-Process Script Approval page to approve
13 | your scripts.
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
--------------------------------------------------------------------------------
/src/main/resources/com/cwctravel/hudson/plugins/extended_choice_parameter/ExtendedChoiceParameterDefinition/jsonContent.jelly:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
68 |
69 |
--------------------------------------------------------------------------------
/src/main/java/com/cwctravel/hudson/plugins/extended_choice_parameter/ExtendedChoiceParameterValue.java:
--------------------------------------------------------------------------------
1 | /*
2 | *Copyright (c) 2013 Costco, Vimil Saju
3 | *See the file license.txt for copying permission.
4 | */
5 |
6 | package com.cwctravel.hudson.plugins.extended_choice_parameter;
7 |
8 | import hudson.FilePath;
9 | import hudson.model.AbstractBuild;
10 | import hudson.model.ParameterDefinition;
11 | import hudson.model.ParametersDefinitionProperty;
12 | import hudson.model.StringParameterValue;
13 | import hudson.util.VariableResolver;
14 | import java.io.File;
15 | import java.io.IOException;
16 | import java.util.logging.Level;
17 | import java.util.logging.Logger;
18 | import org.apache.commons.io.FileUtils;
19 | import org.kohsuke.stapler.DataBoundConstructor;
20 |
21 | public class ExtendedChoiceParameterValue extends StringParameterValue {
22 | private static final long serialVersionUID = 7993744779892775177L;
23 |
24 | private static final Logger LOGGER =
25 | Logger.getLogger(ExtendedChoiceParameterValue.class.getName());
26 |
27 | @DataBoundConstructor
28 | public ExtendedChoiceParameterValue(String name, String value) {
29 | super(name, value);
30 | }
31 |
32 | @Override
33 | public VariableResolver createVariableResolver(final AbstractBuild, ?> build) {
34 | return new VariableResolver() {
35 | public String resolve(String name) {
36 | String result = null;
37 | if (ExtendedChoiceParameterValue.this.getName().equals(name)) {
38 | result = value;
39 | if (build != null) {
40 | ParametersDefinitionProperty parametersDefinitionProperty =
41 | build.getProject().getProperty(ParametersDefinitionProperty.class);
42 | if (parametersDefinitionProperty != null) {
43 | ParameterDefinition parameterDefinition =
44 | parametersDefinitionProperty.getParameterDefinition(name);
45 | if (parameterDefinition instanceof ExtendedChoiceParameterDefinition) {
46 | ExtendedChoiceParameterDefinition extendedChoiceParameterDefinition =
47 | (ExtendedChoiceParameterDefinition) parameterDefinition;
48 | if (ExtendedChoiceParameterDefinition.PARAMETER_TYPE_JSON.equals(
49 | extendedChoiceParameterDefinition.getType())
50 | && extendedChoiceParameterDefinition.isSaveJSONParameterToFile()) {
51 | File jsonParametersDir = new File(build.getRootDir(), "parameters");
52 | if (!jsonParametersDir.mkdirs()) {
53 | LOGGER.log(Level.INFO, "mkdirs failed");
54 | }
55 | try {
56 | String jsonFileName = getName() + ".json";
57 | File jsonParameterFile = new File(jsonParametersDir, jsonFileName);
58 | FileUtils.writeStringToFile(jsonParameterFile, value);
59 |
60 | FilePath workspace = build.getWorkspace();
61 | if (workspace != null) {
62 | FilePath parametersWorkspaceDir = workspace.child("parameters");
63 | FilePath parameterWorkspaceFile = parametersWorkspaceDir.child(jsonFileName);
64 | parameterWorkspaceFile.write(value, "UTF-8");
65 |
66 | result = parameterWorkspaceFile.getRemote();
67 | } else {
68 | result = jsonParameterFile.getAbsolutePath();
69 | }
70 | } catch (IOException | InterruptedException e) {
71 | LOGGER.log(Level.SEVERE, e.getMessage(), e);
72 | }
73 | }
74 | }
75 | }
76 | }
77 | }
78 | return result;
79 | }
80 | };
81 | }
82 |
83 | }
84 |
--------------------------------------------------------------------------------
/src/main/webapp/js/jquery.jsonview.min.js:
--------------------------------------------------------------------------------
1 | !function(e){var n,t,l,r;return l=function(){function e(e){null==e&&(e={}),this.options=e}return e.prototype.htmlEncode=function(e){return null!==e?e.toString().replace(/&/g,"&").replace(/"/g,""").replace(//g,">"):""},e.prototype.jsString=function(e){return e=JSON.stringify(e).slice(1,-1),this.htmlEncode(e)},e.prototype.decorateWithSpan=function(e,n){return''+this.htmlEncode(e)+" "},e.prototype.valueToHTML=function(e,n){var t;return null==n&&(n=0),t=Object.prototype.toString.call(e).match(/\s(.+)]/)[1].toLowerCase(),this[""+t+"ToHTML"].call(this,e,n)},e.prototype.nullToHTML=function(){return this.decorateWithSpan("null","null")},e.prototype.numberToHTML=function(e){return this.decorateWithSpan(e,"num")},e.prototype.stringToHTML=function(e){var n,t;return/^(http|https|file):\/\/[^\s]+$/i.test(e)?'" '+this.jsString(e)+'" ':(n="",e=this.jsString(e),this.options.nl2br&&(t=/([^>\\r\\n]?)(\\r\\n|\\n\\r|\\r|\\n)/g,t.test(e)&&(n=" multiline",e=(e+"").replace(t,"$1 "))),'"'+e+'" ')},e.prototype.booleanToHTML=function(e){return this.decorateWithSpan(e,"bool")},e.prototype.arrayToHTML=function(e,n){var t,l,r,o,s,i,a,p;for(null==n&&(n=0),l=!1,s="",o=e.length,r=a=0,p=e.length;p>a;r=++a)i=e[r],l=!0,s+=""+this.valueToHTML(i,n+1),o>1&&(s+=","),s+=" ",o--;return l?(t=0===n?"":" collapsible",'[]"):"[ ]"},e.prototype.objectToHTML=function(e,n){var t,l,r,o,s,i;null==n&&(n=0),l=!1,o="",r=0;for(s in e)r++;for(s in e)i=e[s],l=!0,o+='" '+this.jsString(s)+'" : '+this.valueToHTML(i,n+1),r>1&&(o+=","),o+=" ",r--;return l?(t=0===n?"":" collapsible",'{}"):"{ }"},e.prototype.jsonToHTML=function(e){return''+this.valueToHTML(e)+"
"},e}(),"undefined"!=typeof module&&null!==module&&(module.exports=l),t=function(){function e(){}return e.bindEvent=function(e,n){var t;return t=document.createElement("div"),t.className="collapser",t.innerHTML=n.collapsed?"+":"-",t.addEventListener("click",function(e){return function(t){return e.toggle(t.target,n)}}(this)),e.insertBefore(t,e.firstChild),n.collapsed?this.collapse(t):void 0},e.expand=function(e){var n,t;return t=this.collapseTarget(e),""!==t.style.display?(n=t.parentNode.getElementsByClassName("ellipsis")[0],t.parentNode.removeChild(n),t.style.display="",e.innerHTML="-"):void 0},e.collapse=function(e){var n,t;return t=this.collapseTarget(e),"none"!==t.style.display?(t.style.display="none",n=document.createElement("span"),n.className="ellipsis",n.innerHTML=" … ",t.parentNode.insertBefore(n,t),e.innerHTML="+"):void 0},e.toggle=function(e,n){var t,l,r,o,s,i;if(null==n&&(n={}),r=this.collapseTarget(e),t="none"===r.style.display?"expand":"collapse",n.recursive_collapser){for(l=e.parentNode.getElementsByClassName("collapser"),i=[],o=0,s=l.length;s>o;o++)e=l[o],i.push(this[t](e));return i}return this[t](e)},e.collapseTarget=function(e){var n,t;return t=e.parentNode.getElementsByClassName("collapsible"),t.length?n=t[0]:void 0},e}(),n=e,r={collapse:function(e){return"-"===e.innerHTML?t.collapse(e):void 0},expand:function(e){return"+"===e.innerHTML?t.expand(e):void 0},toggle:function(e){return t.toggle(e)}},n.fn.JSONView=function(){var e,o,s,i,a,p,c;return e=arguments,null!=r[e[0]]?(a=e[0],this.each(function(){var t,l;return t=n(this),null!=e[1]?(l=e[1],t.find(".jsonview .collapsible.level"+l).siblings(".collapser").each(function(){return r[a](this)})):t.find(".jsonview > ul > li .collapsible").siblings(".collapser").each(function(){return r[a](this)})})):(i=e[0],p=e[1]||{},o={collapsed:!1,nl2br:!1,recursive_collapser:!1},p=n.extend(o,p),s=new l({nl2br:p.nl2br}),"[object String]"===Object.prototype.toString.call(i)&&(i=JSON.parse(i)),c=s.jsonToHTML(i),this.each(function(){var e,l,r,o,s,i;for(e=n(this),e.html(c),r=e[0].getElementsByClassName("collapsible"),i=[],o=0,s=r.length;s>o;o++)l=r[o],i.push("LI"===l.parentNode.nodeName?t.bindEvent(l.parentNode,p):void 0);return i}))}}(jQuery);
--------------------------------------------------------------------------------
/src/main/webapp/css/general_foundicons.css:
--------------------------------------------------------------------------------
1 | /* font-face */
2 | @font-face {
3 | font-family: "GeneralFoundicons";
4 | src: url("../fonts/general_foundicons.eot");
5 | src: url("../fonts/general_foundicons.eot?#iefix") format("embedded-opentype"), url("../fonts/general_foundicons.woff") format("woff"), url("../fonts/general_foundicons.ttf") format("truetype"), url("../fonts/general_foundicons.svg#GeneralFoundicons") format("svg");
6 | font-weight: normal;
7 | font-style: normal;
8 | }
9 |
10 | /* global foundicon styles */
11 | [class*="foundicon-"] {
12 | display: inline;
13 | width: auto;
14 | height: auto;
15 | line-height: inherit;
16 | vertical-align: baseline;
17 | background-image: none;
18 | background-position: 0 0;
19 | background-repeat: repeat;
20 | }
21 |
22 | [class*="general foundicon-"]:before {
23 | font-family: "GeneralFoundicons";
24 | font-weight: normal;
25 | font-style: normal;
26 | text-decoration: inherit;
27 | }
28 |
29 | /* icons */
30 | .foundicon-settings:before {
31 | content: "\f000";
32 | }
33 |
34 | .foundicon-heart:before {
35 | content: "\f001";
36 | }
37 |
38 | .foundicon-star:before {
39 | content: "\f002";
40 | }
41 |
42 | .foundicon-plus:before {
43 | content: "\f003";
44 | }
45 |
46 | .foundicon-minus:before {
47 | content: "\f004";
48 | }
49 |
50 | .foundicon-checkmark:before {
51 | content: "\f005";
52 | }
53 |
54 | .foundicon-remove:before {
55 | content: "\f006";
56 | }
57 |
58 | .foundicon-mail:before {
59 | content: "\f007";
60 | }
61 |
62 | .foundicon-calendar:before {
63 | content: "\f008";
64 | }
65 |
66 | .foundicon-page:before {
67 | content: "\f009";
68 | }
69 |
70 | .foundicon-tools:before {
71 | content: "\f00a";
72 | }
73 |
74 | .foundicon-globe:before {
75 | content: "\f00b";
76 | }
77 |
78 | .foundicon-home:before {
79 | content: "\f00c";
80 | }
81 |
82 | .foundicon-quote:before {
83 | content: "\f00d";
84 | }
85 |
86 | .foundicon-people:before {
87 | content: "\f00e";
88 | }
89 |
90 | .foundicon-monitor:before {
91 | content: "\f00f";
92 | }
93 |
94 | .foundicon-laptop:before {
95 | content: "\f010";
96 | }
97 |
98 | .foundicon-phone:before {
99 | content: "\f011";
100 | }
101 |
102 | .foundicon-cloud:before {
103 | content: "\f012";
104 | }
105 |
106 | .foundicon-error:before {
107 | content: "\f013";
108 | }
109 |
110 | .foundicon-right-arrow:before {
111 | content: "\f014";
112 | }
113 |
114 | .foundicon-left-arrow:before {
115 | content: "\f015";
116 | }
117 |
118 | .foundicon-up-arrow:before {
119 | content: "\f016";
120 | }
121 |
122 | .foundicon-down-arrow:before {
123 | content: "\f017";
124 | }
125 |
126 | .foundicon-trash:before {
127 | content: "\f018";
128 | }
129 |
130 | .foundicon-add-doc:before {
131 | content: "\f019";
132 | }
133 |
134 | .foundicon-edit:before {
135 | content: "\f01a";
136 | }
137 |
138 | .foundicon-lock:before {
139 | content: "\f01b";
140 | }
141 |
142 | .foundicon-unlock:before {
143 | content: "\f01c";
144 | }
145 |
146 | .foundicon-refresh:before {
147 | content: "\f01d";
148 | }
149 |
150 | .foundicon-paper-clip:before {
151 | content: "\f01e";
152 | }
153 |
154 | .foundicon-video:before {
155 | content: "\f01f";
156 | }
157 |
158 | .foundicon-photo:before {
159 | content: "\f020";
160 | }
161 |
162 | .foundicon-graph:before {
163 | content: "\f021";
164 | }
165 |
166 | .foundicon-idea:before {
167 | content: "\f022";
168 | }
169 |
170 | .foundicon-mic:before {
171 | content: "\f023";
172 | }
173 |
174 | .foundicon-cart:before {
175 | content: "\f024";
176 | }
177 |
178 | .foundicon-address-book:before {
179 | content: "\f025";
180 | }
181 |
182 | .foundicon-compass:before {
183 | content: "\f026";
184 | }
185 |
186 | .foundicon-flag:before {
187 | content: "\f027";
188 | }
189 |
190 | .foundicon-location:before {
191 | content: "\f028";
192 | }
193 |
194 | .foundicon-clock:before {
195 | content: "\f029";
196 | }
197 |
198 | .foundicon-folder:before {
199 | content: "\f02a";
200 | }
201 |
202 | .foundicon-inbox:before {
203 | content: "\f02b";
204 | }
205 |
206 | .foundicon-website:before {
207 | content: "\f02c";
208 | }
209 |
210 | .foundicon-smiley:before {
211 | content: "\f02d";
212 | }
213 |
214 | .foundicon-search:before {
215 | content: "\f02e";
216 | }
217 |
--------------------------------------------------------------------------------
/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 | 4.0.0
6 |
7 | org.jenkins-ci.plugins
8 | plugin
9 | 5.9
10 |
11 |
12 |
13 | extended-choice-parameter
14 | ${changelist}
15 | hpi
16 |
17 | Extended Choice Parameter Plugin
18 | https://github.com/${gitHubRepo}
19 |
20 |
21 |
22 | MIT License
23 | https://opensource.org/licenses/MIT
24 |
25 |
26 |
27 |
28 |
29 | vimil
30 | Vimil Saju
31 |
32 |
33 | chonton
34 | chas honton
35 |
36 |
37 |
38 |
39 | scm:git:https://github.com/${gitHubRepo}
40 | scm:git:https://github.com/${gitHubRepo}
41 | ${scmTag}
42 | https://github.com/${gitHubRepo}
43 |
44 |
45 |
46 | 999999-SNAPSHOT
47 |
48 |
49 | 2.479
50 | ${jenkins.baseline}.1
51 | jenkinsci/${project.artifactId}-plugin
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 | io.jenkins.tools.bom
60 | bom-${jenkins.baseline}.x
61 | 3850.vb_c5319efa_e29
62 | pom
63 | import
64 |
65 |
66 |
67 |
68 |
69 |
70 | com.opencsv
71 | opencsv
72 | 5.7.1
73 |
74 |
75 |
76 | org.apache.commons
77 | commons-lang3
78 |
79 |
80 |
81 | org.apache.commons
82 | commons-text
83 |
84 |
85 |
86 |
87 | io.jenkins.plugins
88 | commons-lang3-api
89 |
90 |
91 | io.jenkins.plugins
92 | commons-text-api
93 |
94 |
95 |
96 | org.jenkins-ci.plugins
97 | script-security
98 |
99 |
100 |
101 | org.jenkins-ci.plugins
102 | pipeline-input-step
103 | test
104 |
105 |
106 | org.jenkins-ci.plugins.workflow
107 | workflow-cps
108 | test
109 |
110 |
111 | org.jenkins-ci.plugins.workflow
112 | workflow-job
113 | test
114 |
115 |
116 |
117 |
118 |
119 |
120 | repo.jenkins-ci.org
121 | https://repo.jenkins-ci.org/public/
122 |
123 |
124 |
125 |
126 |
127 | repo.jenkins-ci.org
128 | https://repo.jenkins-ci.org/public/
129 |
130 |
131 |
132 |
--------------------------------------------------------------------------------
/src/main/resources/com/cwctravel/hudson/plugins/extended_choice_parameter/ExtendedChoiceParameterDefinition/multiLevel.jelly:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
158 |
159 |
161 |
162 | ${choice}
163 |
164 |
165 |
166 |
167 |
169 |
170 |
171 |
173 |
174 |
175 |
176 |
177 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Extended Choice Parameter Plugin
2 |
3 | [](https://ci.jenkins.io/job/Plugins/job/extended-choice-parameter-plugin/job/main)
4 | [](https://github.com/jenkinsci/extended-choice-parameter-plugin/graphs/contributors)
5 | [](https://plugins.jenkins.io/extended-choice-parameter)
6 | [](https://plugins.jenkins.io/extended-choice-parameter)
7 |
8 | # END OF LIFE
9 | Given the age of this plugin and the number of security issues with the code base, no further development is expected. There are
10 | many excellent alternatives that may suit your purpose.
11 |
12 | # ALTERNATIVES
13 | There are other parameter plugins to use for user inputs.
14 | - [Json Editor Parameter](https://plugins.jenkins.io/json-editor-parameter/)
15 | - [Active Choices](https://plugins.jenkins.io/uno-choice/)
16 | - [Extensible Choice](https://plugins.jenkins.io/extensible-choice-parameter/)
17 | - [Editable Choice](https://plugins.jenkins.io/editable-choice/)
18 |
19 | ## File Inputs and Outputs
20 | Any file I/O will be removed in a future version. Use another step to read or write files:
21 | - [Pipeline Utility Steps](https://github.com/jenkinsci/pipeline-utility-steps-plugin/blob/master/docs/STEPS.md)
22 |
23 | ## Groovy Scripting
24 | Any Groovy Scripting will be removed in a future version. Use
25 | [pipeline](https://plugins.jenkins.io/ui/search?sort=relevance&categories=&labels=&view=Tiles&page=1&query=pipeline)
26 | or another plugin to execute groovy:
27 | - [Groovy](https://plugins.jenkins.io/groovy/)
28 |
29 | ## Introduction
30 |
31 | The `extended-choice-parameter-plugin` creates various types of choice fields for use with the
32 | [Input Step](https://www.jenkins.io/doc/pipeline/steps/pipeline-input-step) plugin.
33 |
34 | This is accomplished using
35 | [json-editor](https://github.com/jdorn/json-editorhttps://github.com/jdorn/json-editor), which
36 | generates an HTML form from a JSON Schema. The json editor requires two inputs: the html
37 | `id` of the section holding the form and `options` which drive the form creation.
38 |
39 | ## Help Wanted
40 |
41 | Additional documentation is desired. Please create pull requests with better documentation of the
42 | params. *Thanks!*
43 |
44 | ## Params
45 |
46 | ### name
47 |
48 | The name of the parameter.
49 |
50 | ### type
51 |
52 | The type of parameter
53 |
54 | - Single Select: user chooses a single selection from a drop-down menu, populated by either explicit
55 | values (see Value field below) or a property file (see Property File and Property Key fields
56 | below)
57 | - Multi Select: a user can choose multiple selections from a multi-line box, populated by either
58 | explicit values (see Value field below) or a property file (see Property File and Property Key
59 | fields below)
60 | - Check Boxes: user can check off zero or more check boxes, labeled by either explicit values (see
61 | Value field below) or a property file (see Property File and Property Key fields below)
62 | - Multi-Level Single Select: user chooses a selection from a drop-down, and then a another drop down
63 | appears with selections that depend on the first value, and upon second selection a third drop
64 | down may appear depending on the first two selections, and so on.
65 | - Multi-Level Multi Select: same as single select, but after all levels are chosen, a button appears
66 | to "Select another..." and an additional multi-level selection is presented.
67 |
68 | ### value
69 |
70 | Comma separated list of values for the single select or multi-select box.
71 | This field can be left blank if the comma separated values need to be picked up from a properties
72 | file (set via 'Property File' and 'Property Key').
73 |
74 | ### propertyFile
75 |
76 | The properties file is a collection of key,value pairs of the form key=value1,value2,...
77 |
78 | ### propertyKey
79 |
80 | The property of the property file to use.
81 |
82 | For example, if the property file was the following:
83 |
84 | prop1=a,b,c,d,e
85 | prop2=1,2,3,4
86 |
87 | Then you could specify the property as either `prop1` or `prop2`.
88 |
89 | ### defaultValue
90 |
91 | Initial selection of the single-select or mult-select box.
92 |
93 | In case of the multi-select box, default value can be a comma separated string.
94 |
95 | ### defaultPropertyFile
96 |
97 | Absolute path (specified without using environment variables).
98 |
99 | ### multiSelectDelimiter
100 |
101 | Inserts this value between selections when the parameter is a multi-select.
102 |
103 | The default when empty is ','
104 |
105 | ### projectName
106 |
107 | If specified, this adds a currentProject entry to the groovy script context. The entry's value is
108 | set to the specified Jenkins project.
109 |
110 | ### quoteValue
111 |
112 | If true, the value or selected values will be formatted with quotes.
113 |
114 | ### visibleItemCount
115 |
116 | If specified, this will limit the amount of options displayed by creating a scrolldown list
117 | with the only the specified amount visible at once.
118 |
119 | ### groovyScript
120 |
121 | A groovy script used to generate the list of values.
122 |
123 | ### groovyScriptFile
124 |
125 | A file containing a groovy script used to generate the list of values.
126 |
127 | ### defaultGroovyScript
128 |
129 | A groovy script used to generate the list of values used in the
130 | initial selection of the single-select or mult-select box.
131 |
132 | ### defaultGroovyScriptFile
133 |
134 | A file containing a groovy script used to generate the list of values used in the
135 | initial selection of the single-select or mult-select box.
136 |
137 | ### bindings
138 |
139 | ### groovyClasspath
140 |
141 | ### defaultBindings
142 |
143 | ### defaultGroovyClasspath
144 |
145 | ### defaultPropertyKey
146 |
147 | ### descriptionPropertyValue
148 |
149 | ### descriptionPropertyFile
150 |
151 | ### descriptionGroovyScript
152 |
153 | ### descriptionGroovyScriptFile
154 |
155 | ### descriptionBindings
156 |
157 | ### descriptionGroovyClasspath
158 |
159 | ### descriptionPropertyKey
160 |
161 | ### javascriptFile
162 |
163 | ### javascript
164 |
165 | ### saveJSONParameterToFile
166 |
167 | ## More
168 |
169 | For info on how to use groovy script feature see
170 | this [link](http://stackoverflow.com/questions/24730186/jenkins-extended-parameter-plugin-groovy-script)
171 |
172 | ## Contributing
173 |
174 | Refer to [contribution guidelines](https://github.com/jenkinsci/.github/blob/master/CONTRIBUTING.md)
175 |
176 | ## LICENSE
177 |
178 | Licensed under MIT, see [LICENSE](LICENSE.md)
179 |
--------------------------------------------------------------------------------
/src/main/webapp/css/selectize.css:
--------------------------------------------------------------------------------
1 | /**
2 | * selectize.css (v0.11.0)
3 | * Copyright (c) 2013 Brian Reavis & contributors
4 | *
5 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
6 | * file except in compliance with the License. You may obtain a copy of the License at:
7 | * http://www.apache.org/licenses/LICENSE-2.0
8 | *
9 | * Unless required by applicable law or agreed to in writing, software distributed under
10 | * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11 | * ANY KIND, either express or implied. See the License for the specific language
12 | * governing permissions and limitations under the License.
13 | *
14 | * @author Brian Reavis
15 | */
16 |
17 | .selectize-control.plugin-drag_drop.multi > .selectize-input > div.ui-sortable-placeholder {
18 | visibility: visible !important;
19 | background: #f2f2f2 !important;
20 | background: rgba(0, 0, 0, 0.06) !important;
21 | border: 0 none !important;
22 | -webkit-box-shadow: inset 0 0 12px 4px #ffffff;
23 | box-shadow: inset 0 0 12px 4px #ffffff;
24 | }
25 | .selectize-control.plugin-drag_drop .ui-sortable-placeholder::after {
26 | content: '!';
27 | visibility: hidden;
28 | }
29 | .selectize-control.plugin-drag_drop .ui-sortable-helper {
30 | -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
31 | box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
32 | }
33 | .selectize-dropdown-header {
34 | position: relative;
35 | padding: 5px 8px;
36 | border-bottom: 1px solid #d0d0d0;
37 | background: #f8f8f8;
38 | -webkit-border-radius: 3px 3px 0 0;
39 | -moz-border-radius: 3px 3px 0 0;
40 | border-radius: 3px 3px 0 0;
41 | }
42 | .selectize-dropdown-header-close {
43 | position: absolute;
44 | right: 8px;
45 | top: 50%;
46 | color: #303030;
47 | opacity: 0.4;
48 | margin-top: -12px;
49 | line-height: 20px;
50 | font-size: 20px !important;
51 | }
52 | .selectize-dropdown-header-close:hover {
53 | color: #000000;
54 | }
55 | .selectize-dropdown.plugin-optgroup_columns .optgroup {
56 | border-right: 1px solid #f2f2f2;
57 | border-top: 0 none;
58 | float: left;
59 | -webkit-box-sizing: border-box;
60 | -moz-box-sizing: border-box;
61 | box-sizing: border-box;
62 | }
63 | .selectize-dropdown.plugin-optgroup_columns .optgroup:last-child {
64 | border-right: 0 none;
65 | }
66 | .selectize-dropdown.plugin-optgroup_columns .optgroup:before {
67 | display: none;
68 | }
69 | .selectize-dropdown.plugin-optgroup_columns .optgroup-header {
70 | border-top: 0 none;
71 | }
72 | .selectize-control.plugin-remove_button [data-value] {
73 | position: relative;
74 | padding-right: 24px !important;
75 | }
76 | .selectize-control.plugin-remove_button [data-value] .remove {
77 | z-index: 1;
78 | /* fixes ie bug (see #392) */
79 | position: absolute;
80 | top: 0;
81 | right: 0;
82 | bottom: 0;
83 | width: 17px;
84 | text-align: center;
85 | font-weight: bold;
86 | font-size: 12px;
87 | color: inherit;
88 | text-decoration: none;
89 | vertical-align: middle;
90 | display: inline-block;
91 | padding: 2px 0 0 0;
92 | border-left: 1px solid #d0d0d0;
93 | -webkit-border-radius: 0 2px 2px 0;
94 | -moz-border-radius: 0 2px 2px 0;
95 | border-radius: 0 2px 2px 0;
96 | -webkit-box-sizing: border-box;
97 | -moz-box-sizing: border-box;
98 | box-sizing: border-box;
99 | }
100 | .selectize-control.plugin-remove_button [data-value] .remove:hover {
101 | background: rgba(0, 0, 0, 0.05);
102 | }
103 | .selectize-control.plugin-remove_button [data-value].active .remove {
104 | border-left-color: #cacaca;
105 | }
106 | .selectize-control.plugin-remove_button .disabled [data-value] .remove:hover {
107 | background: none;
108 | }
109 | .selectize-control.plugin-remove_button .disabled [data-value] .remove {
110 | border-left-color: #ffffff;
111 | }
112 | .selectize-control {
113 | position: relative;
114 | }
115 | .selectize-dropdown,
116 | .selectize-input,
117 | .selectize-input input {
118 | color: #303030;
119 | font-family: inherit;
120 | font-size: 13px;
121 | line-height: 18px;
122 | -webkit-font-smoothing: inherit;
123 | }
124 | .selectize-input,
125 | .selectize-control.single .selectize-input.input-active {
126 | background: #ffffff;
127 | cursor: text;
128 | display: inline-block;
129 | }
130 | .selectize-input {
131 | border: 1px solid #d0d0d0;
132 | padding: 8px 8px;
133 | display: inline-block;
134 | width: 100%;
135 | overflow: hidden;
136 | position: relative;
137 | z-index: 1;
138 | -webkit-box-sizing: border-box;
139 | -moz-box-sizing: border-box;
140 | box-sizing: border-box;
141 | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.1);
142 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.1);
143 | -webkit-border-radius: 3px;
144 | -moz-border-radius: 3px;
145 | border-radius: 3px;
146 | }
147 | .selectize-control.multi .selectize-input.has-items {
148 | padding: 6px 8px 3px;
149 | }
150 | .selectize-input.full {
151 | background-color: #ffffff;
152 | }
153 | .selectize-input.disabled,
154 | .selectize-input.disabled * {
155 | cursor: default !important;
156 | }
157 | .selectize-input.focus {
158 | -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.15);
159 | box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.15);
160 | }
161 | .selectize-input.dropdown-active {
162 | -webkit-border-radius: 3px 3px 0 0;
163 | -moz-border-radius: 3px 3px 0 0;
164 | border-radius: 3px 3px 0 0;
165 | }
166 | .selectize-input > * {
167 | vertical-align: baseline;
168 | display: -moz-inline-stack;
169 | display: inline-block;
170 | zoom: 1;
171 | *display: inline;
172 | }
173 | .selectize-control.multi .selectize-input > div {
174 | cursor: pointer;
175 | margin: 0 3px 3px 0;
176 | padding: 2px 6px;
177 | background: #f2f2f2;
178 | color: #303030;
179 | border: 0 solid #d0d0d0;
180 | }
181 | .selectize-control.multi .selectize-input > div.active {
182 | background: #e8e8e8;
183 | color: #303030;
184 | border: 0 solid #cacaca;
185 | }
186 | .selectize-control.multi .selectize-input.disabled > div,
187 | .selectize-control.multi .selectize-input.disabled > div.active {
188 | color: #7d7d7d;
189 | background: #ffffff;
190 | border: 0 solid #ffffff;
191 | }
192 | .selectize-input > input {
193 | padding: 0 !important;
194 | min-height: 0 !important;
195 | max-height: none !important;
196 | max-width: 100% !important;
197 | margin: 0 2px 0 0 !important;
198 | text-indent: 0 !important;
199 | border: 0 none !important;
200 | background: none !important;
201 | line-height: inherit !important;
202 | -webkit-user-select: auto !important;
203 | -webkit-box-shadow: none !important;
204 | box-shadow: none !important;
205 | }
206 | .selectize-input > input::-ms-clear {
207 | display: none;
208 | }
209 | .selectize-input > input:focus {
210 | outline: none !important;
211 | }
212 | .selectize-input::after {
213 | content: ' ';
214 | display: block;
215 | clear: left;
216 | }
217 | .selectize-input.dropdown-active::before {
218 | content: ' ';
219 | display: block;
220 | position: absolute;
221 | background: #f0f0f0;
222 | height: 1px;
223 | bottom: 0;
224 | left: 0;
225 | right: 0;
226 | }
227 | .selectize-dropdown {
228 | position: absolute;
229 | z-index: 10;
230 | border: 1px solid #d0d0d0;
231 | background: #ffffff;
232 | margin: -1px 0 0 0;
233 | border-top: 0 none;
234 | -webkit-box-sizing: border-box;
235 | -moz-box-sizing: border-box;
236 | box-sizing: border-box;
237 | -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
238 | box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
239 | -webkit-border-radius: 0 0 3px 3px;
240 | -moz-border-radius: 0 0 3px 3px;
241 | border-radius: 0 0 3px 3px;
242 | }
243 | .selectize-dropdown [data-selectable] {
244 | cursor: pointer;
245 | overflow: hidden;
246 | }
247 | .selectize-dropdown [data-selectable] .highlight {
248 | background: rgba(125, 168, 208, 0.2);
249 | -webkit-border-radius: 1px;
250 | -moz-border-radius: 1px;
251 | border-radius: 1px;
252 | }
253 | .selectize-dropdown [data-selectable],
254 | .selectize-dropdown .optgroup-header {
255 | padding: 5px 8px;
256 | }
257 | .selectize-dropdown .optgroup:first-child .optgroup-header {
258 | border-top: 0 none;
259 | }
260 | .selectize-dropdown .optgroup-header {
261 | color: #303030;
262 | background: #ffffff;
263 | cursor: default;
264 | }
265 | .selectize-dropdown .active {
266 | background-color: #f5fafd;
267 | color: #495c68;
268 | }
269 | .selectize-dropdown .active.create {
270 | color: #495c68;
271 | }
272 | .selectize-dropdown .create {
273 | color: rgba(48, 48, 48, 0.5);
274 | }
275 | .selectize-dropdown-content {
276 | overflow-y: auto;
277 | overflow-x: hidden;
278 | max-height: 200px;
279 | }
280 | .selectize-control.single .selectize-input,
281 | .selectize-control.single .selectize-input input {
282 | cursor: pointer;
283 | }
284 | .selectize-control.single .selectize-input.input-active,
285 | .selectize-control.single .selectize-input.input-active input {
286 | cursor: text;
287 | }
288 | .selectize-control.single .selectize-input:after {
289 | content: ' ';
290 | display: block;
291 | position: absolute;
292 | top: 50%;
293 | right: 15px;
294 | margin-top: -3px;
295 | width: 0;
296 | height: 0;
297 | border-style: solid;
298 | border-width: 5px 5px 0 5px;
299 | border-color: #808080 transparent transparent transparent;
300 | }
301 | .selectize-control.single .selectize-input.dropdown-active:after {
302 | margin-top: -4px;
303 | border-width: 0 5px 5px 5px;
304 | border-color: transparent transparent #808080 transparent;
305 | }
306 | .selectize-control.rtl.single .selectize-input:after {
307 | left: 15px;
308 | right: auto;
309 | }
310 | .selectize-control.rtl .selectize-input > input {
311 | margin: 0 4px 0 -2px !important;
312 | }
313 | .selectize-control .selectize-input.disabled {
314 | opacity: 0.5;
315 | background-color: #fafafa;
316 | }
317 |
--------------------------------------------------------------------------------
/src/main/resources/com/cwctravel/hudson/plugins/extended_choice_parameter/ExtendedChoiceParameterDefinition/config.jelly:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
17 |
18 |
19 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
30 |
31 |
32 |
33 |
34 | Single Select
35 |
36 |
37 | Single Select
38 |
39 |
40 |
41 |
42 | Multi Select
43 |
44 |
45 | Multi Select
46 |
47 |
48 |
49 |
50 | Radio Buttons
51 |
52 |
53 | Radio Buttons
54 |
55 |
56 |
57 |
58 | Check Boxes
59 |
60 |
61 | Check Boxes
62 |
63 |
64 |
65 |
66 | Text Box
67 |
68 |
69 | Text Box
70 |
71 |
72 |
73 |
74 | Hidden
75 |
76 |
77 | Hidden
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
98 |
99 |
100 |
101 |
102 |
103 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
147 |
148 |
149 |
150 |
151 |
152 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
196 |
197 |
198 |
199 |
200 |
201 |
203 |
204 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
213 |
214 |
215 |
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
229 |
230 |
231 |
232 |
233 |
234 |
235 |
236 |
237 |
238 |
239 |
240 |
241 |
242 |
243 |
245 |
246 |
247 | Multi-Level
249 | Single Select
250 |
251 | Multi-Level
253 | Multi Select
254 |
255 |
256 |
257 |
258 |
259 |
260 |
261 |
262 |
263 |
264 |
265 |
266 |
268 |
270 |
271 |
272 |
273 |
274 |
275 |
276 |
277 |
278 |
279 |
280 |
281 |
282 |
284 |
285 |
286 |
287 |
288 |
289 |
290 |
291 |
292 |
293 |
294 |
295 |
296 |
299 |
300 |
301 |
302 |
303 |
306 |
307 |
308 |
309 |
310 |
311 |
312 |
313 |
314 |
315 |
--------------------------------------------------------------------------------
/CHANGELOG.adoc:
--------------------------------------------------------------------------------
1 | = Change Log
2 | :toc:
3 |
4 | == Version 0.64 (April 17, 2016)
5 |
6 | Show user friendly error message for script approval issues.
7 |
8 | Script security has been incorporated into this plugin for security
9 | reasons. You may see warning messages related to security with
10 | groovy-script execution from this version on-wards.
11 |
12 | A warning message is displayed on the screen if the user tries to
13 | execute groovy scripts that have not been approved. The message has a
14 | link that takes the user to the screen where the scripts can be
15 | approved. The user should have admin access to approve scripts.
16 |
17 | image::docs/images/script-security.png[]
18 |
19 | == Version 0.61 (Mar 30, 2016)
20 |
21 | * Use Script Security plugin for authorizing Groovy scripts.
22 | * Allow `+${JOB_NAME}+` variable in properties and groovy file path expose project and jenkins
23 | bindings in groovy script.
24 |
25 | == Version 0.53 (Jun 2, 2015)
26 |
27 | Use faster Boon JSON parser instead of built-in net.sef.JSON parser.
28 |
29 | == Version 0.44 (Jun 2, 2015)
30 |
31 | Added JSON Parameter feature based on json html editor by https://github.com/jdorn/json-editor[Jeremy
32 | Dorn]
33 | image:docs/images/json-parameter-config.png[]
34 | The groovy script should return a JSON object that corresponds to the
35 | "options" object referred to in
36 | https://github.com/jdorn/json-editor[json-editor]
37 |
38 | Watched Fields Ex:
39 |
40 | [source,groovy]
41 | ----
42 | import org.boon.Boon;
43 |
44 | def jsonEditorOptions = Boon.fromJson(/{
45 | disable_edit_json: true,
46 | disable_properties: true,
47 | no_additional_properties: true,
48 | disable_collapse: true,
49 | disable_array_add: true,
50 | disable_array_delete: true,
51 | disable_array_reorder: true,
52 | theme: "bootstrap2",
53 | iconlib:"fontawesome4",
54 | schema: {
55 | "type": "object",
56 | "title": "Name",
57 | "properties": {
58 | "first_name": {
59 | "type": "string",
60 | "propertyOrder" : 1
61 | },
62 | "last_name": {
63 | "type": "string",
64 | "propertyOrder" : 2
65 | },
66 | "full_name": {
67 | "type": "string",
68 | "propertyOrder" : 3,
69 | "template": "{{fname}} {{lname}}",
70 | "watch": {
71 | "fname": "first_name",
72 | "lname": "last_name"
73 | }
74 | }
75 | }
76 | },
77 | startval: {
78 | "first_name" : "John",
79 | "last_name" : "Doe",
80 | "full_name" : "John Doe"
81 | }
82 | }/);
83 |
84 | ----
85 |
86 | image:docs/images/nameparameter.png[]
87 | Color Picker Ex:
88 |
89 | [source,groovy]
90 | ----
91 | import org.boon.Boon;
92 |
93 | def jsonEditorOptions = Boon.fromJson(/{
94 | disable_edit_json: true,
95 | disable_properties: true,
96 | no_additional_properties: true,
97 | disable_collapse: true,
98 | disable_array_add: true,
99 | disable_array_delete: true,
100 | disable_array_reorder: true,
101 | theme: "bootstrap2",
102 | iconlib:"fontawesome4",
103 | schema: {
104 | "title": "Color Picker",
105 | "type": "object",
106 | "properties": {
107 | "color": {
108 | "type": "string",
109 | "format": "color"
110 | }
111 | }
112 | },
113 | startval: {
114 | color :"red"
115 | }
116 | }/);
117 | ----
118 |
119 | image:docs/images/colorpicker.png[]
120 | Advanced Ex:
121 |
122 | [source,groovy]
123 | ----
124 | import org.boon.Boon;
125 |
126 | def jsonEditorOptions = Boon.fromJson(/{
127 | disable_edit_json: true,
128 | disable_properties: true,
129 | no_additional_properties: true,
130 | disable_collapse: true,
131 | disable_array_add: true,
132 | disable_array_delete: true,
133 | disable_array_reorder: true,
134 | theme: "bootstrap2",
135 | iconlib:"fontawesome4",
136 | "schema":{
137 | "title": "Applications",
138 | "type": "array",
139 | "format":"tabs",
140 | "items": {
141 | "title": "Application",
142 | "headerTemplate": "{{self.name}}",
143 | "type": "object",
144 | "properties": {
145 | "name" : {
146 | "title": "application",
147 | "type": "string",
148 | "readOnly": "true"
149 |
150 | },
151 | "environments": {
152 | "title": "Environments",
153 | "type": "array",
154 | "format":"tabs",
155 | "items": {
156 | "title": "Environment",
157 | "headerTemplate": "{{self.name}}",
158 | "type": "object",
159 | "properties": {
160 | "name" : {
161 | "title": "environment",
162 | "type": "string",
163 | "readOnly": "true"
164 |
165 | },
166 | "properties": {
167 | "type": "array",
168 | "format": "table",
169 | "items": {
170 | "type": "object",
171 | "properties": {
172 | "name" : {
173 | "type": "string",
174 | "readOnly": "true"
175 | },
176 | "value" : {
177 | "type": "string"
178 | }
179 | }
180 | }
181 | },
182 | "servers": {
183 | "title": "Servers",
184 | "type": "array",
185 | "format":"tabs",
186 | "items": {
187 | "title": "Server",
188 | "headerTemplate": "{{self.name}}",
189 | "type": "object",
190 |
191 | "properties": {
192 | "name" : {
193 | "title": "server",
194 | "type": "string",
195 | "readOnly": "true"
196 |
197 | },
198 | "properties": {
199 | "type": "array",
200 | "format": "table",
201 | "items": {
202 | "type": "object",
203 | "properties": {
204 | "name" : {
205 | "type": "string",
206 | "readOnly": "true"
207 | },
208 | "value" : {
209 | "type": "string"
210 | },
211 | "override": {
212 | "type": "boolean"
213 | }
214 | }
215 | }
216 | }
217 | }
218 | }
219 | }
220 | }
221 | }
222 | }
223 | }
224 | }
225 | },
226 | startval: [
227 | {
228 | "name": "agent",
229 | "environments": [
230 | {
231 | "name": "dev1",
232 | "properties": [
233 | {
234 | "name": "database_url",
235 | "value": "dev1_url"
236 | },
237 | {
238 | "name": "database_password",
239 | "value": "dev1_password"
240 | }
241 | ],
242 | "servers": [
243 | {
244 | "name": "agt11",
245 | "properties": [
246 | {
247 | "name": "database_url",
248 | "value": "agt11_url",
249 | "override": "true"
250 | },
251 | {
252 | "name": "database_password",
253 | "value": "agt11_password",
254 | "override": "true"
255 | }
256 | ]
257 | },
258 | {
259 | "name": "agt12",
260 | "properties": [
261 | {
262 | "name": "database_url",
263 | "value": "agt12_url",
264 | "override": "true"
265 | },
266 | {
267 | "name": "database_password",
268 | "value": "agt12_password",
269 | "override": "true"
270 | }
271 | ]
272 | }
273 | ]
274 | },
275 | {
276 | "name": "devprod",
277 | "properties": [
278 | {
279 | "name": "database_url",
280 | "value": "devprod_url"
281 | },
282 | {
283 | "name": "database_password",
284 | "value": "devprod_password"
285 | }
286 | ],
287 | "servers": [
288 | {
289 | "name": "agt11",
290 | "properties": [
291 | {
292 | "name": "database_url",
293 | "value": "agt11_prod_url",
294 | "override": "true"
295 | },
296 | {
297 | "name": "database_password",
298 | "value": "agt11_prod_password",
299 | "override": "true"
300 | }
301 | ]
302 | },
303 | {
304 | "name": "agt12",
305 | "properties": [
306 | {
307 | "name": "database_url",
308 | "value": "agt12_prod_url",
309 | "override": "true"
310 | },
311 | {
312 | "name": "database_password",
313 | "value": "agt12_prod_password",
314 | "override": "true"
315 | }
316 | ]
317 | }
318 | ]
319 | }
320 | ]
321 | },
322 | {
323 | "name": "consumer",
324 | "environments": [
325 | {
326 | "name": "dev1",
327 | "properties": [
328 | {
329 | "name": "database_url",
330 | "value": "dev1_url"
331 | },
332 | {
333 | "name": "database_password",
334 | "value": "dev1_password"
335 | }
336 | ],
337 | "servers": [
338 | {
339 | "name": "app11",
340 | "properties": [
341 | {
342 | "name": "database_url",
343 | "value": "app11_url",
344 | "override": "true"
345 | },
346 | {
347 | "name": "database_password",
348 | "value": "app11_password",
349 | "override": "true"
350 | }
351 | ]
352 | },
353 | {
354 | "name": "app12",
355 | "properties": [
356 | {
357 | "name": "database_url",
358 | "value": "app12_url",
359 | "override": "true"
360 | },
361 | {
362 | "name": "database_password",
363 | "value": "app12_password",
364 | "override": "true"
365 | }
366 | ]
367 | }
368 | ]
369 | },
370 | {
371 | "name": "devprod",
372 | "properties": [
373 | {
374 | "name": "database_url",
375 | "value": "devprod_url"
376 | },
377 | {
378 | "name": "database_password",
379 | "value": "devprod_password"
380 | }
381 | ],
382 | "servers": [
383 | {
384 | "name": "app11",
385 | "properties": [
386 | {
387 | "name": "database_url",
388 | "value": "agt11_prod_url",
389 | "override": "true"
390 | },
391 | {
392 | "name": "database_password",
393 | "value": "app11_prod_password",
394 | "override": "true"
395 | }
396 | ]
397 | },
398 | {
399 | "name": "agt12",
400 | "properties": [
401 | {
402 | "name": "database_url",
403 | "value": "app12_prod_url",
404 | "override": "true"
405 | },
406 | {
407 | "name": "database_password",
408 | "value": "app12_prod_password",
409 | "override": "true"
410 | }
411 | ]
412 | }
413 | ]
414 | }
415 | ]
416 | }
417 | ]
418 | }
419 |
420 | }/);
421 |
422 | return jsonEditorOptions;
423 | ----
424 |
425 | image::docs/images/demo-json-parameter.png[]
426 |
427 | == Version 0.33 (Jun 9, 2014)
428 |
429 | Separated out multilevel single select and multilevel multi-select
430 | parameters into separate sections.
431 | image:docs/images/multilevel.png[]
432 |
433 | == Version 0.32 (Jan 7, 2012)
434 |
435 | Added ability to use groovy script to fetch options for parameter.
436 | image:docs/images/extended-choice-parameter-config.png[]
437 |
438 | == Version 0.20 (Jan 7, 2012)
439 |
440 | * New field to configure number of items visible in selectbox without
441 | scrolling
442 | * New 'checkbox' and 'radio button' parameter types added
443 | * changed all validation error checks to warnings
444 | * added ability to specify an url instead of absolute directory path
445 | for property files
446 | * ability to specify property references for values, for example
447 | ** prop1=a,b,c,d,e
448 | ** prop2=$\{prop1},f,g,h --(prop2 will now evaluate to
449 | a,b,c,d,e,f,g,h)
450 |
451 | image::docs/images/screenshot.jpg[]
452 |
453 | == Version 0.5 (Jan 10, 2012)
454 |
455 | * Use a dropdown when using single select mode
456 | * Trim properties
457 | * When using a properties file, do not load the file content when
458 | editing the job
459 | * Load the 'latest' property at each build
460 | * Added some validation for properties file names
461 |
462 | == Version 0.1 (Jul 14, 2010)
463 |
464 | * Initial release
465 |
466 | This plugin allows single select and multi select build parameters to be
467 | configured.
468 |
469 | Here is a screenshot of the configuration page.
470 | image:docs/images/hudson-extended-choice-parameter-plugin.png[]
471 |
472 | The 'value' field is a comma separated list of values for the single
473 | select or multi-select box.
474 | This field can be left blank if the comma separated values need to be
475 | picked up from a properties file.
476 | In that case the fields 'Property File' and 'Property Key' need to be
477 | filled in.
478 |
479 | The 'default value' field is used to set the initial selection of the
480 | single-select or mult-select box.
481 | in case of the multi-select box default value can be a comma separated
482 | string.
483 | This field can be left blank if the default value needs to be picked up
484 | from a properties file.
485 | In that case the fields 'Default Property File' and 'Default Property
486 | Key' need to be filled in.
487 |
488 | NOTE: Neither "Property File" or "Default Property File" support
489 | referencing environment variables in their values. Thus, their values
490 | should be absolute paths specified without using environment variables.
491 |
--------------------------------------------------------------------------------
/src/main/webapp/css/selectize.bootstrap2.css:
--------------------------------------------------------------------------------
1 | /**
2 | * selectize.bootstrap2.css (v0.11.0) - Bootstrap 2 Theme
3 | * Copyright (c) 2013 Brian Reavis & contributors
4 | *
5 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
6 | * file except in compliance with the License. You may obtain a copy of the License at:
7 | * http://www.apache.org/licenses/LICENSE-2.0
8 | *
9 | * Unless required by applicable law or agreed to in writing, software distributed under
10 | * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11 | * ANY KIND, either express or implied. See the License for the specific language
12 | * governing permissions and limitations under the License.
13 | *
14 | * @author Brian Reavis
15 | */
16 | .selectize-control.plugin-drag_drop.multi > .selectize-input > div.ui-sortable-placeholder {
17 | visibility: visible !important;
18 | background: #f2f2f2 !important;
19 | background: rgba(0, 0, 0, 0.06) !important;
20 | border: 0 none !important;
21 | -webkit-box-shadow: inset 0 0 12px 4px #ffffff;
22 | box-shadow: inset 0 0 12px 4px #ffffff;
23 | }
24 | .selectize-control.plugin-drag_drop .ui-sortable-placeholder::after {
25 | content: '!';
26 | visibility: hidden;
27 | }
28 | .selectize-control.plugin-drag_drop .ui-sortable-helper {
29 | -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
30 | box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
31 | }
32 | .selectize-dropdown-header {
33 | position: relative;
34 | padding: 3px 10px;
35 | border-bottom: 1px solid #d0d0d0;
36 | background: #f8f8f8;
37 | -webkit-border-radius: 4px 4px 0 0;
38 | -moz-border-radius: 4px 4px 0 0;
39 | border-radius: 4px 4px 0 0;
40 | }
41 | .selectize-dropdown-header-close {
42 | position: absolute;
43 | right: 10px;
44 | top: 50%;
45 | color: #333333;
46 | opacity: 0.4;
47 | margin-top: -12px;
48 | line-height: 20px;
49 | font-size: 20px !important;
50 | }
51 | .selectize-dropdown-header-close:hover {
52 | color: #000000;
53 | }
54 | .selectize-dropdown.plugin-optgroup_columns .optgroup {
55 | border-right: 1px solid #f2f2f2;
56 | border-top: 0 none;
57 | float: left;
58 | -webkit-box-sizing: border-box;
59 | -moz-box-sizing: border-box;
60 | box-sizing: border-box;
61 | }
62 | .selectize-dropdown.plugin-optgroup_columns .optgroup:last-child {
63 | border-right: 0 none;
64 | }
65 | .selectize-dropdown.plugin-optgroup_columns .optgroup:before {
66 | display: none;
67 | }
68 | .selectize-dropdown.plugin-optgroup_columns .optgroup-header {
69 | border-top: 0 none;
70 | }
71 | .selectize-control.plugin-remove_button [data-value] {
72 | position: relative;
73 | padding-right: 24px !important;
74 | }
75 | .selectize-control.plugin-remove_button [data-value] .remove {
76 | z-index: 1;
77 | /* fixes ie bug (see #392) */
78 | position: absolute;
79 | top: 0;
80 | right: 0;
81 | bottom: 0;
82 | width: 17px;
83 | text-align: center;
84 | font-weight: bold;
85 | font-size: 12px;
86 | color: inherit;
87 | text-decoration: none;
88 | vertical-align: middle;
89 | display: inline-block;
90 | padding: 1px 0 0 0;
91 | border-left: 1px solid #cccccc;
92 | -webkit-border-radius: 0 2px 2px 0;
93 | -moz-border-radius: 0 2px 2px 0;
94 | border-radius: 0 2px 2px 0;
95 | -webkit-box-sizing: border-box;
96 | -moz-box-sizing: border-box;
97 | box-sizing: border-box;
98 | }
99 | .selectize-control.plugin-remove_button [data-value] .remove:hover {
100 | background: rgba(0, 0, 0, 0.05);
101 | }
102 | .selectize-control.plugin-remove_button [data-value].active .remove {
103 | border-left-color: #0077b3;
104 | }
105 | .selectize-control.plugin-remove_button .disabled [data-value] .remove:hover {
106 | background: none;
107 | }
108 | .selectize-control.plugin-remove_button .disabled [data-value] .remove {
109 | border-left-color: #e0e0e0;
110 | }
111 | .selectize-control {
112 | position: relative;
113 | }
114 | .selectize-dropdown,
115 | .selectize-input,
116 | .selectize-input input {
117 | color: #333333;
118 | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
119 | font-size: 14px;
120 | line-height: 20px;
121 | -webkit-font-smoothing: inherit;
122 | }
123 | .selectize-input,
124 | .selectize-control.single .selectize-input.input-active {
125 | background: #ffffff;
126 | cursor: text;
127 | display: inline-block;
128 | }
129 | .selectize-input {
130 | border: 1px solid #d0d0d0;
131 | padding: 7px 10px;
132 | display: inline-block;
133 | width: 100%;
134 | overflow: hidden;
135 | position: relative;
136 | z-index: 1;
137 | -webkit-box-sizing: border-box;
138 | -moz-box-sizing: border-box;
139 | box-sizing: border-box;
140 | -webkit-box-shadow: none;
141 | box-shadow: none;
142 | -webkit-border-radius: 4px;
143 | -moz-border-radius: 4px;
144 | border-radius: 4px;
145 | }
146 | .selectize-control.multi .selectize-input.has-items {
147 | padding: 5px 10px 2px;
148 | }
149 | .selectize-input.full {
150 | background-color: #ffffff;
151 | }
152 | .selectize-input.disabled,
153 | .selectize-input.disabled * {
154 | cursor: default !important;
155 | }
156 | .selectize-input.focus {
157 | -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.15);
158 | box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.15);
159 | }
160 | .selectize-input.dropdown-active {
161 | -webkit-border-radius: 4px 4px 0 0;
162 | -moz-border-radius: 4px 4px 0 0;
163 | border-radius: 4px 4px 0 0;
164 | }
165 | .selectize-input > * {
166 | vertical-align: baseline;
167 | display: -moz-inline-stack;
168 | display: inline-block;
169 | zoom: 1;
170 | *display: inline;
171 | }
172 | .selectize-control.multi .selectize-input > div {
173 | cursor: pointer;
174 | margin: 0 3px 3px 0;
175 | padding: 1px 3px;
176 | background: #e6e6e6;
177 | color: #333333;
178 | border: 1px solid #cccccc;
179 | }
180 | .selectize-control.multi .selectize-input > div.active {
181 | background: #0088cc;
182 | color: #ffffff;
183 | border: 1px solid #0077b3;
184 | }
185 | .selectize-control.multi .selectize-input.disabled > div,
186 | .selectize-control.multi .selectize-input.disabled > div.active {
187 | color: #474747;
188 | background: #fafafa;
189 | border: 1px solid #e0e0e0;
190 | }
191 | .selectize-input > input {
192 | padding: 0 !important;
193 | min-height: 0 !important;
194 | max-height: none !important;
195 | max-width: 100% !important;
196 | margin: 0 !important;
197 | text-indent: 0 !important;
198 | border: 0 none !important;
199 | background: none !important;
200 | line-height: inherit !important;
201 | -webkit-user-select: auto !important;
202 | -webkit-box-shadow: none !important;
203 | box-shadow: none !important;
204 | }
205 | .selectize-input > input::-ms-clear {
206 | display: none;
207 | }
208 | .selectize-input > input:focus {
209 | outline: none !important;
210 | }
211 | .selectize-input::after {
212 | content: ' ';
213 | display: block;
214 | clear: left;
215 | }
216 | .selectize-input.dropdown-active::before {
217 | content: ' ';
218 | display: block;
219 | position: absolute;
220 | background: #e5e5e5;
221 | height: 1px;
222 | bottom: 0;
223 | left: 0;
224 | right: 0;
225 | }
226 | .selectize-dropdown {
227 | position: absolute;
228 | z-index: 10;
229 | border: 1px solid #d0d0d0;
230 | background: #ffffff;
231 | margin: -1px 0 0 0;
232 | border-top: 0 none;
233 | -webkit-box-sizing: border-box;
234 | -moz-box-sizing: border-box;
235 | box-sizing: border-box;
236 | -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
237 | box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
238 | -webkit-border-radius: 0 0 4px 4px;
239 | -moz-border-radius: 0 0 4px 4px;
240 | border-radius: 0 0 4px 4px;
241 | }
242 | .selectize-dropdown [data-selectable] {
243 | cursor: pointer;
244 | overflow: hidden;
245 | }
246 | .selectize-dropdown [data-selectable] .highlight {
247 | background: rgba(255, 237, 40, 0.4);
248 | -webkit-border-radius: 1px;
249 | -moz-border-radius: 1px;
250 | border-radius: 1px;
251 | }
252 | .selectize-dropdown [data-selectable],
253 | .selectize-dropdown .optgroup-header {
254 | padding: 3px 10px;
255 | }
256 | .selectize-dropdown .optgroup:first-child .optgroup-header {
257 | border-top: 0 none;
258 | }
259 | .selectize-dropdown .optgroup-header {
260 | color: #999999;
261 | background: #ffffff;
262 | cursor: default;
263 | }
264 | .selectize-dropdown .active {
265 | background-color: #0088cc;
266 | color: #ffffff;
267 | }
268 | .selectize-dropdown .active.create {
269 | color: #ffffff;
270 | }
271 | .selectize-dropdown .create {
272 | color: rgba(51, 51, 51, 0.5);
273 | }
274 | .selectize-dropdown-content {
275 | overflow-y: auto;
276 | overflow-x: hidden;
277 | max-height: 200px;
278 | }
279 | .selectize-control.single .selectize-input,
280 | .selectize-control.single .selectize-input input {
281 | cursor: pointer;
282 | }
283 | .selectize-control.single .selectize-input.input-active,
284 | .selectize-control.single .selectize-input.input-active input {
285 | cursor: text;
286 | }
287 | .selectize-control.single .selectize-input:after {
288 | content: ' ';
289 | display: block;
290 | position: absolute;
291 | top: 50%;
292 | right: 15px;
293 | margin-top: -3px;
294 | width: 0;
295 | height: 0;
296 | border-style: solid;
297 | border-width: 5px 5px 0 5px;
298 | border-color: #000000 transparent transparent transparent;
299 | }
300 | .selectize-control.single .selectize-input.dropdown-active:after {
301 | margin-top: -4px;
302 | border-width: 0 5px 5px 5px;
303 | border-color: transparent transparent #000000 transparent;
304 | }
305 | .selectize-control.rtl.single .selectize-input:after {
306 | left: 15px;
307 | right: auto;
308 | }
309 | .selectize-control.rtl .selectize-input > input {
310 | margin: 0 4px 0 -2px !important;
311 | }
312 | .selectize-control .selectize-input.disabled {
313 | opacity: 0.5;
314 | background-color: #ffffff;
315 | }
316 | .selectize-dropdown {
317 | margin: 2px 0 0 0;
318 | z-index: 1000;
319 | border: 1px solid rgba(0, 0, 0, 0.2);
320 | border-radius: 4px;
321 | -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
322 | -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
323 | box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
324 | }
325 | .selectize-dropdown .optgroup-header {
326 | font-size: 11px;
327 | font-weight: bold;
328 | text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
329 | text-transform: uppercase;
330 | }
331 | .selectize-dropdown .optgroup:first-child:before {
332 | display: none;
333 | }
334 | .selectize-dropdown .optgroup:before {
335 | content: ' ';
336 | display: block;
337 | *width: 100%;
338 | height: 1px;
339 | margin: 9px 1px;
340 | *margin: -5px 0 5px;
341 | overflow: hidden;
342 | background-color: #e5e5e5;
343 | border-bottom: 1px solid #ffffff;
344 | margin-left: -10px;
345 | margin-right: -10px;
346 | }
347 | .selectize-dropdown [data-selectable].active {
348 | background-color: #0081c2;
349 | background-image: -moz-linear-gradient(top, #0088cc, #0077b3);
350 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));
351 | background-image: -webkit-linear-gradient(top, #0088cc, #0077b3);
352 | background-image: -o-linear-gradient(top, #0088cc, #0077b3);
353 | background-image: linear-gradient(to bottom, #0088cc, #0077b3);
354 | background-repeat: repeat-x;
355 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);
356 | }
357 | .selectize-dropdown-content {
358 | padding: 5px 0;
359 | }
360 | .selectize-dropdown-header {
361 | padding: 6px 10px;
362 | }
363 | .selectize-input {
364 | -webkit-transition: border linear .2s, box-shadow linear .2s;
365 | -moz-transition: border linear .2s, box-shadow linear .2s;
366 | -o-transition: border linear .2s, box-shadow linear .2s;
367 | transition: border linear .2s, box-shadow linear .2s;
368 | }
369 | .selectize-input.dropdown-active {
370 | -webkit-border-radius: 4px;
371 | -moz-border-radius: 4px;
372 | border-radius: 4px;
373 | }
374 | .selectize-input.dropdown-active::before {
375 | display: none;
376 | }
377 | .selectize-input.input-active,
378 | .selectize-input.input-active:hover,
379 | .selectize-control.multi .selectize-input.focus {
380 | background: #ffffff !important;
381 | border-color: rgba(82, 168, 236, 0.8) !important;
382 | outline: 0 !important;
383 | outline: thin dotted \9 !important;
384 | -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6) !important;
385 | -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6) !important;
386 | box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6) !important;
387 | }
388 | .selectize-control.single .selectize-input {
389 | color: #333333;
390 | text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
391 | background-color: #f5f5f5;
392 | background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
393 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
394 | background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
395 | background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
396 | background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);
397 | background-repeat: repeat-x;
398 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);
399 | border-color: #e6e6e6 #e6e6e6 #bfbfbf;
400 | border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
401 | *background-color: #e6e6e6;
402 | /* Darken IE7 buttons by default so they stand out more given they won't have borders */
403 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
404 | -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
405 | -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
406 | box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
407 | }
408 | .selectize-control.single .selectize-input:hover,
409 | .selectize-control.single .selectize-input:focus,
410 | .selectize-control.single .selectize-input:active,
411 | .selectize-control.single .selectize-input.active,
412 | .selectize-control.single .selectize-input.disabled,
413 | .selectize-control.single .selectize-input[disabled] {
414 | color: #333333;
415 | background-color: #e6e6e6;
416 | *background-color: #d9d9d9;
417 | }
418 | .selectize-control.single .selectize-input:active,
419 | .selectize-control.single .selectize-input.active {
420 | background-color: #cccccc \9;
421 | }
422 | .selectize-control.single .selectize-input:hover {
423 | color: #333333;
424 | text-decoration: none;
425 | background-position: 0 -15px;
426 | -webkit-transition: background-position 0.1s linear;
427 | -moz-transition: background-position 0.1s linear;
428 | -o-transition: background-position 0.1s linear;
429 | transition: background-position 0.1s linear;
430 | }
431 | .selectize-control.single .selectize-input.disabled {
432 | background: #e6e6e6 !important;
433 | -webkit-box-shadow: none;
434 | -moz-box-shadow: none;
435 | box-shadow: none;
436 | }
437 | .selectize-control.multi .selectize-input {
438 | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
439 | -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
440 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
441 | }
442 | .selectize-control.multi .selectize-input.has-items {
443 | padding-left: 7px;
444 | padding-right: 7px;
445 | }
446 | .selectize-control.multi .selectize-input > div {
447 | color: #333333;
448 | text-shadow: none;
449 | background-color: #f5f5f5;
450 | background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
451 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
452 | background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
453 | background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
454 | background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);
455 | background-repeat: repeat-x;
456 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);
457 | border-color: #e6e6e6 #e6e6e6 #bfbfbf;
458 | border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
459 | *background-color: #e6e6e6;
460 | border: 1px solid #cccccc;
461 | -webkit-border-radius: 4px;
462 | -moz-border-radius: 4px;
463 | border-radius: 4px;
464 | -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
465 | -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
466 | box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
467 | }
468 | .selectize-control.multi .selectize-input > div.active {
469 | -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.05);
470 | -moz-box-shadow: 0 1px 2px rgba(0,0,0,.05);
471 | box-shadow: 0 1px 2px rgba(0,0,0,.05);
472 | color: #ffffff;
473 | text-shadow: none;
474 | background-color: #0081c2;
475 | background-image: -moz-linear-gradient(top, #0088cc, #0077b3);
476 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));
477 | background-image: -webkit-linear-gradient(top, #0088cc, #0077b3);
478 | background-image: -o-linear-gradient(top, #0088cc, #0077b3);
479 | background-image: linear-gradient(to bottom, #0088cc, #0077b3);
480 | background-repeat: repeat-x;
481 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);
482 | border-color: #0077b3 #0077b3 #004466;
483 | border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
484 | *background-color: #0088cc;
485 | border: 1px solid #0088cc;
486 | }
487 |
--------------------------------------------------------------------------------
/src/main/webapp/css/foundation-icons.css:
--------------------------------------------------------------------------------
1 | /*
2 | * Foundation Icons v 3.0
3 | * Made by ZURB 2013 http://zurb.com/playground/foundation-icon-fonts-3
4 | * MIT License
5 | */
6 |
7 | @font-face {
8 | font-family: "foundation-icons";
9 | src: url("../fonts/foundation-icons.eot");
10 | src: url("../fonts/foundation-icons.eot?#iefix") format("embedded-opentype"),
11 | url("../fonts/foundation-icons.woff") format("woff"),
12 | url("../fonts/foundation-icons.ttf") format("truetype"),
13 | url("../fonts/foundation-icons.svg#fontcustom") format("svg");
14 | font-weight: normal;
15 | font-style: normal;
16 | }
17 |
18 | .fi-address-book:before,
19 | .fi-alert:before,
20 | .fi-align-center:before,
21 | .fi-align-justify:before,
22 | .fi-align-left:before,
23 | .fi-align-right:before,
24 | .fi-anchor:before,
25 | .fi-annotate:before,
26 | .fi-archive:before,
27 | .fi-arrow-down:before,
28 | .fi-arrow-left:before,
29 | .fi-arrow-right:before,
30 | .fi-arrow-up:before,
31 | .fi-arrows-compress:before,
32 | .fi-arrows-expand:before,
33 | .fi-arrows-in:before,
34 | .fi-arrows-out:before,
35 | .fi-asl:before,
36 | .fi-asterisk:before,
37 | .fi-at-sign:before,
38 | .fi-background-color:before,
39 | .fi-battery-empty:before,
40 | .fi-battery-full:before,
41 | .fi-battery-half:before,
42 | .fi-bitcoin-circle:before,
43 | .fi-bitcoin:before,
44 | .fi-blind:before,
45 | .fi-bluetooth:before,
46 | .fi-bold:before,
47 | .fi-book-bookmark:before,
48 | .fi-book:before,
49 | .fi-bookmark:before,
50 | .fi-braille:before,
51 | .fi-burst-new:before,
52 | .fi-burst-sale:before,
53 | .fi-burst:before,
54 | .fi-calendar:before,
55 | .fi-camera:before,
56 | .fi-check:before,
57 | .fi-checkbox:before,
58 | .fi-clipboard-notes:before,
59 | .fi-clipboard-pencil:before,
60 | .fi-clipboard:before,
61 | .fi-clock:before,
62 | .fi-closed-caption:before,
63 | .fi-cloud:before,
64 | .fi-comment-minus:before,
65 | .fi-comment-quotes:before,
66 | .fi-comment-video:before,
67 | .fi-comment:before,
68 | .fi-comments:before,
69 | .fi-compass:before,
70 | .fi-contrast:before,
71 | .fi-credit-card:before,
72 | .fi-crop:before,
73 | .fi-crown:before,
74 | .fi-css3:before,
75 | .fi-database:before,
76 | .fi-die-five:before,
77 | .fi-die-four:before,
78 | .fi-die-one:before,
79 | .fi-die-six:before,
80 | .fi-die-three:before,
81 | .fi-die-two:before,
82 | .fi-dislike:before,
83 | .fi-dollar-bill:before,
84 | .fi-dollar:before,
85 | .fi-download:before,
86 | .fi-eject:before,
87 | .fi-elevator:before,
88 | .fi-euro:before,
89 | .fi-eye:before,
90 | .fi-fast-forward:before,
91 | .fi-female-symbol:before,
92 | .fi-female:before,
93 | .fi-filter:before,
94 | .fi-first-aid:before,
95 | .fi-flag:before,
96 | .fi-folder-add:before,
97 | .fi-folder-lock:before,
98 | .fi-folder:before,
99 | .fi-foot:before,
100 | .fi-foundation:before,
101 | .fi-graph-bar:before,
102 | .fi-graph-horizontal:before,
103 | .fi-graph-pie:before,
104 | .fi-graph-trend:before,
105 | .fi-guide-dog:before,
106 | .fi-hearing-aid:before,
107 | .fi-heart:before,
108 | .fi-home:before,
109 | .fi-html5:before,
110 | .fi-indent-less:before,
111 | .fi-indent-more:before,
112 | .fi-info:before,
113 | .fi-italic:before,
114 | .fi-key:before,
115 | .fi-laptop:before,
116 | .fi-layout:before,
117 | .fi-lightbulb:before,
118 | .fi-like:before,
119 | .fi-link:before,
120 | .fi-list-bullet:before,
121 | .fi-list-number:before,
122 | .fi-list-thumbnails:before,
123 | .fi-list:before,
124 | .fi-lock:before,
125 | .fi-loop:before,
126 | .fi-magnifying-glass:before,
127 | .fi-mail:before,
128 | .fi-male-female:before,
129 | .fi-male-symbol:before,
130 | .fi-male:before,
131 | .fi-map:before,
132 | .fi-marker:before,
133 | .fi-megaphone:before,
134 | .fi-microphone:before,
135 | .fi-minus-circle:before,
136 | .fi-minus:before,
137 | .fi-mobile-signal:before,
138 | .fi-mobile:before,
139 | .fi-monitor:before,
140 | .fi-mountains:before,
141 | .fi-music:before,
142 | .fi-next:before,
143 | .fi-no-dogs:before,
144 | .fi-no-smoking:before,
145 | .fi-page-add:before,
146 | .fi-page-copy:before,
147 | .fi-page-csv:before,
148 | .fi-page-delete:before,
149 | .fi-page-doc:before,
150 | .fi-page-edit:before,
151 | .fi-page-export-csv:before,
152 | .fi-page-export-doc:before,
153 | .fi-page-export-pdf:before,
154 | .fi-page-export:before,
155 | .fi-page-filled:before,
156 | .fi-page-multiple:before,
157 | .fi-page-pdf:before,
158 | .fi-page-remove:before,
159 | .fi-page-search:before,
160 | .fi-page:before,
161 | .fi-paint-bucket:before,
162 | .fi-paperclip:before,
163 | .fi-pause:before,
164 | .fi-paw:before,
165 | .fi-paypal:before,
166 | .fi-pencil:before,
167 | .fi-photo:before,
168 | .fi-play-circle:before,
169 | .fi-play-video:before,
170 | .fi-play:before,
171 | .fi-plus:before,
172 | .fi-pound:before,
173 | .fi-power:before,
174 | .fi-previous:before,
175 | .fi-price-tag:before,
176 | .fi-pricetag-multiple:before,
177 | .fi-print:before,
178 | .fi-prohibited:before,
179 | .fi-projection-screen:before,
180 | .fi-puzzle:before,
181 | .fi-quote:before,
182 | .fi-record:before,
183 | .fi-refresh:before,
184 | .fi-results-demographics:before,
185 | .fi-results:before,
186 | .fi-rewind-ten:before,
187 | .fi-rewind:before,
188 | .fi-rss:before,
189 | .fi-safety-cone:before,
190 | .fi-save:before,
191 | .fi-share:before,
192 | .fi-sheriff-badge:before,
193 | .fi-shield:before,
194 | .fi-shopping-bag:before,
195 | .fi-shopping-cart:before,
196 | .fi-shuffle:before,
197 | .fi-skull:before,
198 | .fi-social-500px:before,
199 | .fi-social-adobe:before,
200 | .fi-social-amazon:before,
201 | .fi-social-android:before,
202 | .fi-social-apple:before,
203 | .fi-social-behance:before,
204 | .fi-social-bing:before,
205 | .fi-social-blogger:before,
206 | .fi-social-delicious:before,
207 | .fi-social-designer-news:before,
208 | .fi-social-deviant-art:before,
209 | .fi-social-digg:before,
210 | .fi-social-dribbble:before,
211 | .fi-social-drive:before,
212 | .fi-social-dropbox:before,
213 | .fi-social-evernote:before,
214 | .fi-social-facebook:before,
215 | .fi-social-flickr:before,
216 | .fi-social-forrst:before,
217 | .fi-social-foursquare:before,
218 | .fi-social-game-center:before,
219 | .fi-social-github:before,
220 | .fi-social-google-plus:before,
221 | .fi-social-hacker-news:before,
222 | .fi-social-hi5:before,
223 | .fi-social-instagram:before,
224 | .fi-social-joomla:before,
225 | .fi-social-lastfm:before,
226 | .fi-social-linkedin:before,
227 | .fi-social-medium:before,
228 | .fi-social-myspace:before,
229 | .fi-social-orkut:before,
230 | .fi-social-path:before,
231 | .fi-social-picasa:before,
232 | .fi-social-pinterest:before,
233 | .fi-social-rdio:before,
234 | .fi-social-reddit:before,
235 | .fi-social-skillshare:before,
236 | .fi-social-skype:before,
237 | .fi-social-smashing-mag:before,
238 | .fi-social-snapchat:before,
239 | .fi-social-spotify:before,
240 | .fi-social-squidoo:before,
241 | .fi-social-stack-overflow:before,
242 | .fi-social-steam:before,
243 | .fi-social-stumbleupon:before,
244 | .fi-social-treehouse:before,
245 | .fi-social-tumblr:before,
246 | .fi-social-twitter:before,
247 | .fi-social-vimeo:before,
248 | .fi-social-windows:before,
249 | .fi-social-xbox:before,
250 | .fi-social-yahoo:before,
251 | .fi-social-yelp:before,
252 | .fi-social-youtube:before,
253 | .fi-social-zerply:before,
254 | .fi-social-zurb:before,
255 | .fi-sound:before,
256 | .fi-star:before,
257 | .fi-stop:before,
258 | .fi-strikethrough:before,
259 | .fi-subscript:before,
260 | .fi-superscript:before,
261 | .fi-tablet-landscape:before,
262 | .fi-tablet-portrait:before,
263 | .fi-target-two:before,
264 | .fi-target:before,
265 | .fi-telephone-accessible:before,
266 | .fi-telephone:before,
267 | .fi-text-color:before,
268 | .fi-thumbnails:before,
269 | .fi-ticket:before,
270 | .fi-torso-business:before,
271 | .fi-torso-female:before,
272 | .fi-torso:before,
273 | .fi-torsos-all-female:before,
274 | .fi-torsos-all:before,
275 | .fi-torsos-female-male:before,
276 | .fi-torsos-male-female:before,
277 | .fi-torsos:before,
278 | .fi-trash:before,
279 | .fi-trees:before,
280 | .fi-trophy:before,
281 | .fi-underline:before,
282 | .fi-universal-access:before,
283 | .fi-unlink:before,
284 | .fi-unlock:before,
285 | .fi-upload-cloud:before,
286 | .fi-upload:before,
287 | .fi-usb:before,
288 | .fi-video:before,
289 | .fi-volume-none:before,
290 | .fi-volume-strike:before,
291 | .fi-volume:before,
292 | .fi-web:before,
293 | .fi-wheelchair:before,
294 | .fi-widget:before,
295 | .fi-wrench:before,
296 | .fi-x-circle:before,
297 | .fi-x:before,
298 | .fi-yen:before,
299 | .fi-zoom-in:before,
300 | .fi-zoom-out:before {
301 | font-family: "foundation-icons";
302 | font-style: normal;
303 | font-weight: normal;
304 | font-variant: normal;
305 | text-transform: none;
306 | line-height: 1;
307 | -webkit-font-smoothing: antialiased;
308 | display: inline-block;
309 | text-decoration: inherit;
310 | }
311 |
312 | .fi-address-book:before { content: "\f100"; }
313 | .fi-alert:before { content: "\f101"; }
314 | .fi-align-center:before { content: "\f102"; }
315 | .fi-align-justify:before { content: "\f103"; }
316 | .fi-align-left:before { content: "\f104"; }
317 | .fi-align-right:before { content: "\f105"; }
318 | .fi-anchor:before { content: "\f106"; }
319 | .fi-annotate:before { content: "\f107"; }
320 | .fi-archive:before { content: "\f108"; }
321 | .fi-arrow-down:before { content: "\f109"; }
322 | .fi-arrow-left:before { content: "\f10a"; }
323 | .fi-arrow-right:before { content: "\f10b"; }
324 | .fi-arrow-up:before { content: "\f10c"; }
325 | .fi-arrows-compress:before { content: "\f10d"; }
326 | .fi-arrows-expand:before { content: "\f10e"; }
327 | .fi-arrows-in:before { content: "\f10f"; }
328 | .fi-arrows-out:before { content: "\f110"; }
329 | .fi-asl:before { content: "\f111"; }
330 | .fi-asterisk:before { content: "\f112"; }
331 | .fi-at-sign:before { content: "\f113"; }
332 | .fi-background-color:before { content: "\f114"; }
333 | .fi-battery-empty:before { content: "\f115"; }
334 | .fi-battery-full:before { content: "\f116"; }
335 | .fi-battery-half:before { content: "\f117"; }
336 | .fi-bitcoin-circle:before { content: "\f118"; }
337 | .fi-bitcoin:before { content: "\f119"; }
338 | .fi-blind:before { content: "\f11a"; }
339 | .fi-bluetooth:before { content: "\f11b"; }
340 | .fi-bold:before { content: "\f11c"; }
341 | .fi-book-bookmark:before { content: "\f11d"; }
342 | .fi-book:before { content: "\f11e"; }
343 | .fi-bookmark:before { content: "\f11f"; }
344 | .fi-braille:before { content: "\f120"; }
345 | .fi-burst-new:before { content: "\f121"; }
346 | .fi-burst-sale:before { content: "\f122"; }
347 | .fi-burst:before { content: "\f123"; }
348 | .fi-calendar:before { content: "\f124"; }
349 | .fi-camera:before { content: "\f125"; }
350 | .fi-check:before { content: "\f126"; }
351 | .fi-checkbox:before { content: "\f127"; }
352 | .fi-clipboard-notes:before { content: "\f128"; }
353 | .fi-clipboard-pencil:before { content: "\f129"; }
354 | .fi-clipboard:before { content: "\f12a"; }
355 | .fi-clock:before { content: "\f12b"; }
356 | .fi-closed-caption:before { content: "\f12c"; }
357 | .fi-cloud:before { content: "\f12d"; }
358 | .fi-comment-minus:before { content: "\f12e"; }
359 | .fi-comment-quotes:before { content: "\f12f"; }
360 | .fi-comment-video:before { content: "\f130"; }
361 | .fi-comment:before { content: "\f131"; }
362 | .fi-comments:before { content: "\f132"; }
363 | .fi-compass:before { content: "\f133"; }
364 | .fi-contrast:before { content: "\f134"; }
365 | .fi-credit-card:before { content: "\f135"; }
366 | .fi-crop:before { content: "\f136"; }
367 | .fi-crown:before { content: "\f137"; }
368 | .fi-css3:before { content: "\f138"; }
369 | .fi-database:before { content: "\f139"; }
370 | .fi-die-five:before { content: "\f13a"; }
371 | .fi-die-four:before { content: "\f13b"; }
372 | .fi-die-one:before { content: "\f13c"; }
373 | .fi-die-six:before { content: "\f13d"; }
374 | .fi-die-three:before { content: "\f13e"; }
375 | .fi-die-two:before { content: "\f13f"; }
376 | .fi-dislike:before { content: "\f140"; }
377 | .fi-dollar-bill:before { content: "\f141"; }
378 | .fi-dollar:before { content: "\f142"; }
379 | .fi-download:before { content: "\f143"; }
380 | .fi-eject:before { content: "\f144"; }
381 | .fi-elevator:before { content: "\f145"; }
382 | .fi-euro:before { content: "\f146"; }
383 | .fi-eye:before { content: "\f147"; }
384 | .fi-fast-forward:before { content: "\f148"; }
385 | .fi-female-symbol:before { content: "\f149"; }
386 | .fi-female:before { content: "\f14a"; }
387 | .fi-filter:before { content: "\f14b"; }
388 | .fi-first-aid:before { content: "\f14c"; }
389 | .fi-flag:before { content: "\f14d"; }
390 | .fi-folder-add:before { content: "\f14e"; }
391 | .fi-folder-lock:before { content: "\f14f"; }
392 | .fi-folder:before { content: "\f150"; }
393 | .fi-foot:before { content: "\f151"; }
394 | .fi-foundation:before { content: "\f152"; }
395 | .fi-graph-bar:before { content: "\f153"; }
396 | .fi-graph-horizontal:before { content: "\f154"; }
397 | .fi-graph-pie:before { content: "\f155"; }
398 | .fi-graph-trend:before { content: "\f156"; }
399 | .fi-guide-dog:before { content: "\f157"; }
400 | .fi-hearing-aid:before { content: "\f158"; }
401 | .fi-heart:before { content: "\f159"; }
402 | .fi-home:before { content: "\f15a"; }
403 | .fi-html5:before { content: "\f15b"; }
404 | .fi-indent-less:before { content: "\f15c"; }
405 | .fi-indent-more:before { content: "\f15d"; }
406 | .fi-info:before { content: "\f15e"; }
407 | .fi-italic:before { content: "\f15f"; }
408 | .fi-key:before { content: "\f160"; }
409 | .fi-laptop:before { content: "\f161"; }
410 | .fi-layout:before { content: "\f162"; }
411 | .fi-lightbulb:before { content: "\f163"; }
412 | .fi-like:before { content: "\f164"; }
413 | .fi-link:before { content: "\f165"; }
414 | .fi-list-bullet:before { content: "\f166"; }
415 | .fi-list-number:before { content: "\f167"; }
416 | .fi-list-thumbnails:before { content: "\f168"; }
417 | .fi-list:before { content: "\f169"; }
418 | .fi-lock:before { content: "\f16a"; }
419 | .fi-loop:before { content: "\f16b"; }
420 | .fi-magnifying-glass:before { content: "\f16c"; }
421 | .fi-mail:before { content: "\f16d"; }
422 | .fi-male-female:before { content: "\f16e"; }
423 | .fi-male-symbol:before { content: "\f16f"; }
424 | .fi-male:before { content: "\f170"; }
425 | .fi-map:before { content: "\f171"; }
426 | .fi-marker:before { content: "\f172"; }
427 | .fi-megaphone:before { content: "\f173"; }
428 | .fi-microphone:before { content: "\f174"; }
429 | .fi-minus-circle:before { content: "\f175"; }
430 | .fi-minus:before { content: "\f176"; }
431 | .fi-mobile-signal:before { content: "\f177"; }
432 | .fi-mobile:before { content: "\f178"; }
433 | .fi-monitor:before { content: "\f179"; }
434 | .fi-mountains:before { content: "\f17a"; }
435 | .fi-music:before { content: "\f17b"; }
436 | .fi-next:before { content: "\f17c"; }
437 | .fi-no-dogs:before { content: "\f17d"; }
438 | .fi-no-smoking:before { content: "\f17e"; }
439 | .fi-page-add:before { content: "\f17f"; }
440 | .fi-page-copy:before { content: "\f180"; }
441 | .fi-page-csv:before { content: "\f181"; }
442 | .fi-page-delete:before { content: "\f182"; }
443 | .fi-page-doc:before { content: "\f183"; }
444 | .fi-page-edit:before { content: "\f184"; }
445 | .fi-page-export-csv:before { content: "\f185"; }
446 | .fi-page-export-doc:before { content: "\f186"; }
447 | .fi-page-export-pdf:before { content: "\f187"; }
448 | .fi-page-export:before { content: "\f188"; }
449 | .fi-page-filled:before { content: "\f189"; }
450 | .fi-page-multiple:before { content: "\f18a"; }
451 | .fi-page-pdf:before { content: "\f18b"; }
452 | .fi-page-remove:before { content: "\f18c"; }
453 | .fi-page-search:before { content: "\f18d"; }
454 | .fi-page:before { content: "\f18e"; }
455 | .fi-paint-bucket:before { content: "\f18f"; }
456 | .fi-paperclip:before { content: "\f190"; }
457 | .fi-pause:before { content: "\f191"; }
458 | .fi-paw:before { content: "\f192"; }
459 | .fi-paypal:before { content: "\f193"; }
460 | .fi-pencil:before { content: "\f194"; }
461 | .fi-photo:before { content: "\f195"; }
462 | .fi-play-circle:before { content: "\f196"; }
463 | .fi-play-video:before { content: "\f197"; }
464 | .fi-play:before { content: "\f198"; }
465 | .fi-plus:before { content: "\f199"; }
466 | .fi-pound:before { content: "\f19a"; }
467 | .fi-power:before { content: "\f19b"; }
468 | .fi-previous:before { content: "\f19c"; }
469 | .fi-price-tag:before { content: "\f19d"; }
470 | .fi-pricetag-multiple:before { content: "\f19e"; }
471 | .fi-print:before { content: "\f19f"; }
472 | .fi-prohibited:before { content: "\f1a0"; }
473 | .fi-projection-screen:before { content: "\f1a1"; }
474 | .fi-puzzle:before { content: "\f1a2"; }
475 | .fi-quote:before { content: "\f1a3"; }
476 | .fi-record:before { content: "\f1a4"; }
477 | .fi-refresh:before { content: "\f1a5"; }
478 | .fi-results-demographics:before { content: "\f1a6"; }
479 | .fi-results:before { content: "\f1a7"; }
480 | .fi-rewind-ten:before { content: "\f1a8"; }
481 | .fi-rewind:before { content: "\f1a9"; }
482 | .fi-rss:before { content: "\f1aa"; }
483 | .fi-safety-cone:before { content: "\f1ab"; }
484 | .fi-save:before { content: "\f1ac"; }
485 | .fi-share:before { content: "\f1ad"; }
486 | .fi-sheriff-badge:before { content: "\f1ae"; }
487 | .fi-shield:before { content: "\f1af"; }
488 | .fi-shopping-bag:before { content: "\f1b0"; }
489 | .fi-shopping-cart:before { content: "\f1b1"; }
490 | .fi-shuffle:before { content: "\f1b2"; }
491 | .fi-skull:before { content: "\f1b3"; }
492 | .fi-social-500px:before { content: "\f1b4"; }
493 | .fi-social-adobe:before { content: "\f1b5"; }
494 | .fi-social-amazon:before { content: "\f1b6"; }
495 | .fi-social-android:before { content: "\f1b7"; }
496 | .fi-social-apple:before { content: "\f1b8"; }
497 | .fi-social-behance:before { content: "\f1b9"; }
498 | .fi-social-bing:before { content: "\f1ba"; }
499 | .fi-social-blogger:before { content: "\f1bb"; }
500 | .fi-social-delicious:before { content: "\f1bc"; }
501 | .fi-social-designer-news:before { content: "\f1bd"; }
502 | .fi-social-deviant-art:before { content: "\f1be"; }
503 | .fi-social-digg:before { content: "\f1bf"; }
504 | .fi-social-dribbble:before { content: "\f1c0"; }
505 | .fi-social-drive:before { content: "\f1c1"; }
506 | .fi-social-dropbox:before { content: "\f1c2"; }
507 | .fi-social-evernote:before { content: "\f1c3"; }
508 | .fi-social-facebook:before { content: "\f1c4"; }
509 | .fi-social-flickr:before { content: "\f1c5"; }
510 | .fi-social-forrst:before { content: "\f1c6"; }
511 | .fi-social-foursquare:before { content: "\f1c7"; }
512 | .fi-social-game-center:before { content: "\f1c8"; }
513 | .fi-social-github:before { content: "\f1c9"; }
514 | .fi-social-google-plus:before { content: "\f1ca"; }
515 | .fi-social-hacker-news:before { content: "\f1cb"; }
516 | .fi-social-hi5:before { content: "\f1cc"; }
517 | .fi-social-instagram:before { content: "\f1cd"; }
518 | .fi-social-joomla:before { content: "\f1ce"; }
519 | .fi-social-lastfm:before { content: "\f1cf"; }
520 | .fi-social-linkedin:before { content: "\f1d0"; }
521 | .fi-social-medium:before { content: "\f1d1"; }
522 | .fi-social-myspace:before { content: "\f1d2"; }
523 | .fi-social-orkut:before { content: "\f1d3"; }
524 | .fi-social-path:before { content: "\f1d4"; }
525 | .fi-social-picasa:before { content: "\f1d5"; }
526 | .fi-social-pinterest:before { content: "\f1d6"; }
527 | .fi-social-rdio:before { content: "\f1d7"; }
528 | .fi-social-reddit:before { content: "\f1d8"; }
529 | .fi-social-skillshare:before { content: "\f1d9"; }
530 | .fi-social-skype:before { content: "\f1da"; }
531 | .fi-social-smashing-mag:before { content: "\f1db"; }
532 | .fi-social-snapchat:before { content: "\f1dc"; }
533 | .fi-social-spotify:before { content: "\f1dd"; }
534 | .fi-social-squidoo:before { content: "\f1de"; }
535 | .fi-social-stack-overflow:before { content: "\f1df"; }
536 | .fi-social-steam:before { content: "\f1e0"; }
537 | .fi-social-stumbleupon:before { content: "\f1e1"; }
538 | .fi-social-treehouse:before { content: "\f1e2"; }
539 | .fi-social-tumblr:before { content: "\f1e3"; }
540 | .fi-social-twitter:before { content: "\f1e4"; }
541 | .fi-social-vimeo:before { content: "\f1e5"; }
542 | .fi-social-windows:before { content: "\f1e6"; }
543 | .fi-social-xbox:before { content: "\f1e7"; }
544 | .fi-social-yahoo:before { content: "\f1e8"; }
545 | .fi-social-yelp:before { content: "\f1e9"; }
546 | .fi-social-youtube:before { content: "\f1ea"; }
547 | .fi-social-zerply:before { content: "\f1eb"; }
548 | .fi-social-zurb:before { content: "\f1ec"; }
549 | .fi-sound:before { content: "\f1ed"; }
550 | .fi-star:before { content: "\f1ee"; }
551 | .fi-stop:before { content: "\f1ef"; }
552 | .fi-strikethrough:before { content: "\f1f0"; }
553 | .fi-subscript:before { content: "\f1f1"; }
554 | .fi-superscript:before { content: "\f1f2"; }
555 | .fi-tablet-landscape:before { content: "\f1f3"; }
556 | .fi-tablet-portrait:before { content: "\f1f4"; }
557 | .fi-target-two:before { content: "\f1f5"; }
558 | .fi-target:before { content: "\f1f6"; }
559 | .fi-telephone-accessible:before { content: "\f1f7"; }
560 | .fi-telephone:before { content: "\f1f8"; }
561 | .fi-text-color:before { content: "\f1f9"; }
562 | .fi-thumbnails:before { content: "\f1fa"; }
563 | .fi-ticket:before { content: "\f1fb"; }
564 | .fi-torso-business:before { content: "\f1fc"; }
565 | .fi-torso-female:before { content: "\f1fd"; }
566 | .fi-torso:before { content: "\f1fe"; }
567 | .fi-torsos-all-female:before { content: "\f1ff"; }
568 | .fi-torsos-all:before { content: "\f200"; }
569 | .fi-torsos-female-male:before { content: "\f201"; }
570 | .fi-torsos-male-female:before { content: "\f202"; }
571 | .fi-torsos:before { content: "\f203"; }
572 | .fi-trash:before { content: "\f204"; }
573 | .fi-trees:before { content: "\f205"; }
574 | .fi-trophy:before { content: "\f206"; }
575 | .fi-underline:before { content: "\f207"; }
576 | .fi-universal-access:before { content: "\f208"; }
577 | .fi-unlink:before { content: "\f209"; }
578 | .fi-unlock:before { content: "\f20a"; }
579 | .fi-upload-cloud:before { content: "\f20b"; }
580 | .fi-upload:before { content: "\f20c"; }
581 | .fi-usb:before { content: "\f20d"; }
582 | .fi-video:before { content: "\f20e"; }
583 | .fi-volume-none:before { content: "\f20f"; }
584 | .fi-volume-strike:before { content: "\f210"; }
585 | .fi-volume:before { content: "\f211"; }
586 | .fi-web:before { content: "\f212"; }
587 | .fi-wheelchair:before { content: "\f213"; }
588 | .fi-widget:before { content: "\f214"; }
589 | .fi-wrench:before { content: "\f215"; }
590 | .fi-x-circle:before { content: "\f216"; }
591 | .fi-x:before { content: "\f217"; }
592 | .fi-yen:before { content: "\f218"; }
593 | .fi-zoom-in:before { content: "\f219"; }
594 | .fi-zoom-out:before { content: "\f21a"; }
595 |
--------------------------------------------------------------------------------
/src/main/webapp/css/font-awesome4.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Font Awesome 4.0.3 by @davegandy - http://fontawesome.io - @fontawesome
3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4 | */
5 | /* FONT PATH
6 | * -------------------------- */
7 | @font-face {
8 | font-family: 'FontAwesome';
9 | src: url('../fonts/fontawesome-webfont.eot?v=4.0.3');
10 | src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.0.3') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff?v=4.0.3') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.0.3') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.0.3#fontawesomeregular') format('svg');
11 | font-weight: normal;
12 | font-style: normal;
13 | }
14 | .fa {
15 | display: inline-block;
16 | font-family: FontAwesome;
17 | font-style: normal;
18 | font-weight: normal;
19 | line-height: 1;
20 | -webkit-font-smoothing: antialiased;
21 | -moz-osx-font-smoothing: grayscale;
22 | }
23 | /* makes the font 33% larger relative to the icon container */
24 | .fa-lg {
25 | font-size: 1.3333333333333333em;
26 | line-height: 0.75em;
27 | vertical-align: -15%;
28 | }
29 | .fa-2x {
30 | font-size: 2em;
31 | }
32 | .fa-3x {
33 | font-size: 3em;
34 | }
35 | .fa-4x {
36 | font-size: 4em;
37 | }
38 | .fa-5x {
39 | font-size: 5em;
40 | }
41 | .fa-fw {
42 | width: 1.2857142857142858em;
43 | text-align: center;
44 | }
45 | .fa-ul {
46 | padding-left: 0;
47 | margin-left: 2.142857142857143em;
48 | list-style-type: none;
49 | }
50 | .fa-ul > li {
51 | position: relative;
52 | }
53 | .fa-li {
54 | position: absolute;
55 | left: -2.142857142857143em;
56 | width: 2.142857142857143em;
57 | top: 0.14285714285714285em;
58 | text-align: center;
59 | }
60 | .fa-li.fa-lg {
61 | left: -1.8571428571428572em;
62 | }
63 | .fa-border {
64 | padding: .2em .25em .15em;
65 | border: solid 0.08em #eeeeee;
66 | border-radius: .1em;
67 | }
68 | .pull-right {
69 | float: right;
70 | }
71 | .pull-left {
72 | float: left;
73 | }
74 | .fa.pull-left {
75 | margin-right: .3em;
76 | }
77 | .fa.pull-right {
78 | margin-left: .3em;
79 | }
80 | .fa-spin {
81 | -webkit-animation: spin 2s infinite linear;
82 | -moz-animation: spin 2s infinite linear;
83 | -o-animation: spin 2s infinite linear;
84 | animation: spin 2s infinite linear;
85 | }
86 | @-moz-keyframes spin {
87 | 0% {
88 | -moz-transform: rotate(0deg);
89 | }
90 | 100% {
91 | -moz-transform: rotate(359deg);
92 | }
93 | }
94 | @-webkit-keyframes spin {
95 | 0% {
96 | -webkit-transform: rotate(0deg);
97 | }
98 | 100% {
99 | -webkit-transform: rotate(359deg);
100 | }
101 | }
102 | @-o-keyframes spin {
103 | 0% {
104 | -o-transform: rotate(0deg);
105 | }
106 | 100% {
107 | -o-transform: rotate(359deg);
108 | }
109 | }
110 | @-ms-keyframes spin {
111 | 0% {
112 | -ms-transform: rotate(0deg);
113 | }
114 | 100% {
115 | -ms-transform: rotate(359deg);
116 | }
117 | }
118 | @keyframes spin {
119 | 0% {
120 | transform: rotate(0deg);
121 | }
122 | 100% {
123 | transform: rotate(359deg);
124 | }
125 | }
126 | .fa-rotate-90 {
127 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
128 | -webkit-transform: rotate(90deg);
129 | -moz-transform: rotate(90deg);
130 | -ms-transform: rotate(90deg);
131 | -o-transform: rotate(90deg);
132 | transform: rotate(90deg);
133 | }
134 | .fa-rotate-180 {
135 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
136 | -webkit-transform: rotate(180deg);
137 | -moz-transform: rotate(180deg);
138 | -ms-transform: rotate(180deg);
139 | -o-transform: rotate(180deg);
140 | transform: rotate(180deg);
141 | }
142 | .fa-rotate-270 {
143 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
144 | -webkit-transform: rotate(270deg);
145 | -moz-transform: rotate(270deg);
146 | -ms-transform: rotate(270deg);
147 | -o-transform: rotate(270deg);
148 | transform: rotate(270deg);
149 | }
150 | .fa-flip-horizontal {
151 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
152 | -webkit-transform: scale(-1, 1);
153 | -moz-transform: scale(-1, 1);
154 | -ms-transform: scale(-1, 1);
155 | -o-transform: scale(-1, 1);
156 | transform: scale(-1, 1);
157 | }
158 | .fa-flip-vertical {
159 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
160 | -webkit-transform: scale(1, -1);
161 | -moz-transform: scale(1, -1);
162 | -ms-transform: scale(1, -1);
163 | -o-transform: scale(1, -1);
164 | transform: scale(1, -1);
165 | }
166 | .fa-stack {
167 | position: relative;
168 | display: inline-block;
169 | width: 2em;
170 | height: 2em;
171 | line-height: 2em;
172 | vertical-align: middle;
173 | }
174 | .fa-stack-1x,
175 | .fa-stack-2x {
176 | position: absolute;
177 | left: 0;
178 | width: 100%;
179 | text-align: center;
180 | }
181 | .fa-stack-1x {
182 | line-height: inherit;
183 | }
184 | .fa-stack-2x {
185 | font-size: 2em;
186 | }
187 | .fa-inverse {
188 | color: #ffffff;
189 | }
190 | /* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
191 | readers do not read off random characters that represent icons */
192 | .fa-glass:before {
193 | content: "\f000";
194 | }
195 | .fa-music:before {
196 | content: "\f001";
197 | }
198 | .fa-search:before {
199 | content: "\f002";
200 | }
201 | .fa-envelope-o:before {
202 | content: "\f003";
203 | }
204 | .fa-heart:before {
205 | content: "\f004";
206 | }
207 | .fa-star:before {
208 | content: "\f005";
209 | }
210 | .fa-star-o:before {
211 | content: "\f006";
212 | }
213 | .fa-user:before {
214 | content: "\f007";
215 | }
216 | .fa-film:before {
217 | content: "\f008";
218 | }
219 | .fa-th-large:before {
220 | content: "\f009";
221 | }
222 | .fa-th:before {
223 | content: "\f00a";
224 | }
225 | .fa-th-list:before {
226 | content: "\f00b";
227 | }
228 | .fa-check:before {
229 | content: "\f00c";
230 | }
231 | .fa-times:before {
232 | content: "\f00d";
233 | }
234 | .fa-search-plus:before {
235 | content: "\f00e";
236 | }
237 | .fa-search-minus:before {
238 | content: "\f010";
239 | }
240 | .fa-power-off:before {
241 | content: "\f011";
242 | }
243 | .fa-signal:before {
244 | content: "\f012";
245 | }
246 | .fa-gear:before,
247 | .fa-cog:before {
248 | content: "\f013";
249 | }
250 | .fa-trash-o:before {
251 | content: "\f014";
252 | }
253 | .fa-home:before {
254 | content: "\f015";
255 | }
256 | .fa-file-o:before {
257 | content: "\f016";
258 | }
259 | .fa-clock-o:before {
260 | content: "\f017";
261 | }
262 | .fa-road:before {
263 | content: "\f018";
264 | }
265 | .fa-download:before {
266 | content: "\f019";
267 | }
268 | .fa-arrow-circle-o-down:before {
269 | content: "\f01a";
270 | }
271 | .fa-arrow-circle-o-up:before {
272 | content: "\f01b";
273 | }
274 | .fa-inbox:before {
275 | content: "\f01c";
276 | }
277 | .fa-play-circle-o:before {
278 | content: "\f01d";
279 | }
280 | .fa-rotate-right:before,
281 | .fa-repeat:before {
282 | content: "\f01e";
283 | }
284 | .fa-refresh:before {
285 | content: "\f021";
286 | }
287 | .fa-list-alt:before {
288 | content: "\f022";
289 | }
290 | .fa-lock:before {
291 | content: "\f023";
292 | }
293 | .fa-flag:before {
294 | content: "\f024";
295 | }
296 | .fa-headphones:before {
297 | content: "\f025";
298 | }
299 | .fa-volume-off:before {
300 | content: "\f026";
301 | }
302 | .fa-volume-down:before {
303 | content: "\f027";
304 | }
305 | .fa-volume-up:before {
306 | content: "\f028";
307 | }
308 | .fa-qrcode:before {
309 | content: "\f029";
310 | }
311 | .fa-barcode:before {
312 | content: "\f02a";
313 | }
314 | .fa-tag:before {
315 | content: "\f02b";
316 | }
317 | .fa-tags:before {
318 | content: "\f02c";
319 | }
320 | .fa-book:before {
321 | content: "\f02d";
322 | }
323 | .fa-bookmark:before {
324 | content: "\f02e";
325 | }
326 | .fa-print:before {
327 | content: "\f02f";
328 | }
329 | .fa-camera:before {
330 | content: "\f030";
331 | }
332 | .fa-font:before {
333 | content: "\f031";
334 | }
335 | .fa-bold:before {
336 | content: "\f032";
337 | }
338 | .fa-italic:before {
339 | content: "\f033";
340 | }
341 | .fa-text-height:before {
342 | content: "\f034";
343 | }
344 | .fa-text-width:before {
345 | content: "\f035";
346 | }
347 | .fa-align-left:before {
348 | content: "\f036";
349 | }
350 | .fa-align-center:before {
351 | content: "\f037";
352 | }
353 | .fa-align-right:before {
354 | content: "\f038";
355 | }
356 | .fa-align-justify:before {
357 | content: "\f039";
358 | }
359 | .fa-list:before {
360 | content: "\f03a";
361 | }
362 | .fa-dedent:before,
363 | .fa-outdent:before {
364 | content: "\f03b";
365 | }
366 | .fa-indent:before {
367 | content: "\f03c";
368 | }
369 | .fa-video-camera:before {
370 | content: "\f03d";
371 | }
372 | .fa-picture-o:before {
373 | content: "\f03e";
374 | }
375 | .fa-pencil:before {
376 | content: "\f040";
377 | }
378 | .fa-map-marker:before {
379 | content: "\f041";
380 | }
381 | .fa-adjust:before {
382 | content: "\f042";
383 | }
384 | .fa-tint:before {
385 | content: "\f043";
386 | }
387 | .fa-edit:before,
388 | .fa-pencil-square-o:before {
389 | content: "\f044";
390 | }
391 | .fa-share-square-o:before {
392 | content: "\f045";
393 | }
394 | .fa-check-square-o:before {
395 | content: "\f046";
396 | }
397 | .fa-arrows:before {
398 | content: "\f047";
399 | }
400 | .fa-step-backward:before {
401 | content: "\f048";
402 | }
403 | .fa-fast-backward:before {
404 | content: "\f049";
405 | }
406 | .fa-backward:before {
407 | content: "\f04a";
408 | }
409 | .fa-play:before {
410 | content: "\f04b";
411 | }
412 | .fa-pause:before {
413 | content: "\f04c";
414 | }
415 | .fa-stop:before {
416 | content: "\f04d";
417 | }
418 | .fa-forward:before {
419 | content: "\f04e";
420 | }
421 | .fa-fast-forward:before {
422 | content: "\f050";
423 | }
424 | .fa-step-forward:before {
425 | content: "\f051";
426 | }
427 | .fa-eject:before {
428 | content: "\f052";
429 | }
430 | .fa-chevron-left:before {
431 | content: "\f053";
432 | }
433 | .fa-chevron-right:before {
434 | content: "\f054";
435 | }
436 | .fa-plus-circle:before {
437 | content: "\f055";
438 | }
439 | .fa-minus-circle:before {
440 | content: "\f056";
441 | }
442 | .fa-times-circle:before {
443 | content: "\f057";
444 | }
445 | .fa-check-circle:before {
446 | content: "\f058";
447 | }
448 | .fa-question-circle:before {
449 | content: "\f059";
450 | }
451 | .fa-info-circle:before {
452 | content: "\f05a";
453 | }
454 | .fa-crosshairs:before {
455 | content: "\f05b";
456 | }
457 | .fa-times-circle-o:before {
458 | content: "\f05c";
459 | }
460 | .fa-check-circle-o:before {
461 | content: "\f05d";
462 | }
463 | .fa-ban:before {
464 | content: "\f05e";
465 | }
466 | .fa-arrow-left:before {
467 | content: "\f060";
468 | }
469 | .fa-arrow-right:before {
470 | content: "\f061";
471 | }
472 | .fa-arrow-up:before {
473 | content: "\f062";
474 | }
475 | .fa-arrow-down:before {
476 | content: "\f063";
477 | }
478 | .fa-mail-forward:before,
479 | .fa-share:before {
480 | content: "\f064";
481 | }
482 | .fa-expand:before {
483 | content: "\f065";
484 | }
485 | .fa-compress:before {
486 | content: "\f066";
487 | }
488 | .fa-plus:before {
489 | content: "\f067";
490 | }
491 | .fa-minus:before {
492 | content: "\f068";
493 | }
494 | .fa-asterisk:before {
495 | content: "\f069";
496 | }
497 | .fa-exclamation-circle:before {
498 | content: "\f06a";
499 | }
500 | .fa-gift:before {
501 | content: "\f06b";
502 | }
503 | .fa-leaf:before {
504 | content: "\f06c";
505 | }
506 | .fa-fire:before {
507 | content: "\f06d";
508 | }
509 | .fa-eye:before {
510 | content: "\f06e";
511 | }
512 | .fa-eye-slash:before {
513 | content: "\f070";
514 | }
515 | .fa-warning:before,
516 | .fa-exclamation-triangle:before {
517 | content: "\f071";
518 | }
519 | .fa-plane:before {
520 | content: "\f072";
521 | }
522 | .fa-calendar:before {
523 | content: "\f073";
524 | }
525 | .fa-random:before {
526 | content: "\f074";
527 | }
528 | .fa-comment:before {
529 | content: "\f075";
530 | }
531 | .fa-magnet:before {
532 | content: "\f076";
533 | }
534 | .fa-chevron-up:before {
535 | content: "\f077";
536 | }
537 | .fa-chevron-down:before {
538 | content: "\f078";
539 | }
540 | .fa-retweet:before {
541 | content: "\f079";
542 | }
543 | .fa-shopping-cart:before {
544 | content: "\f07a";
545 | }
546 | .fa-folder:before {
547 | content: "\f07b";
548 | }
549 | .fa-folder-open:before {
550 | content: "\f07c";
551 | }
552 | .fa-arrows-v:before {
553 | content: "\f07d";
554 | }
555 | .fa-arrows-h:before {
556 | content: "\f07e";
557 | }
558 | .fa-bar-chart-o:before {
559 | content: "\f080";
560 | }
561 | .fa-twitter-square:before {
562 | content: "\f081";
563 | }
564 | .fa-facebook-square:before {
565 | content: "\f082";
566 | }
567 | .fa-camera-retro:before {
568 | content: "\f083";
569 | }
570 | .fa-key:before {
571 | content: "\f084";
572 | }
573 | .fa-gears:before,
574 | .fa-cogs:before {
575 | content: "\f085";
576 | }
577 | .fa-comments:before {
578 | content: "\f086";
579 | }
580 | .fa-thumbs-o-up:before {
581 | content: "\f087";
582 | }
583 | .fa-thumbs-o-down:before {
584 | content: "\f088";
585 | }
586 | .fa-star-half:before {
587 | content: "\f089";
588 | }
589 | .fa-heart-o:before {
590 | content: "\f08a";
591 | }
592 | .fa-sign-out:before {
593 | content: "\f08b";
594 | }
595 | .fa-linkedin-square:before {
596 | content: "\f08c";
597 | }
598 | .fa-thumb-tack:before {
599 | content: "\f08d";
600 | }
601 | .fa-external-link:before {
602 | content: "\f08e";
603 | }
604 | .fa-sign-in:before {
605 | content: "\f090";
606 | }
607 | .fa-trophy:before {
608 | content: "\f091";
609 | }
610 | .fa-github-square:before {
611 | content: "\f092";
612 | }
613 | .fa-upload:before {
614 | content: "\f093";
615 | }
616 | .fa-lemon-o:before {
617 | content: "\f094";
618 | }
619 | .fa-phone:before {
620 | content: "\f095";
621 | }
622 | .fa-square-o:before {
623 | content: "\f096";
624 | }
625 | .fa-bookmark-o:before {
626 | content: "\f097";
627 | }
628 | .fa-phone-square:before {
629 | content: "\f098";
630 | }
631 | .fa-twitter:before {
632 | content: "\f099";
633 | }
634 | .fa-facebook:before {
635 | content: "\f09a";
636 | }
637 | .fa-github:before {
638 | content: "\f09b";
639 | }
640 | .fa-unlock:before {
641 | content: "\f09c";
642 | }
643 | .fa-credit-card:before {
644 | content: "\f09d";
645 | }
646 | .fa-rss:before {
647 | content: "\f09e";
648 | }
649 | .fa-hdd-o:before {
650 | content: "\f0a0";
651 | }
652 | .fa-bullhorn:before {
653 | content: "\f0a1";
654 | }
655 | .fa-bell:before {
656 | content: "\f0f3";
657 | }
658 | .fa-certificate:before {
659 | content: "\f0a3";
660 | }
661 | .fa-hand-o-right:before {
662 | content: "\f0a4";
663 | }
664 | .fa-hand-o-left:before {
665 | content: "\f0a5";
666 | }
667 | .fa-hand-o-up:before {
668 | content: "\f0a6";
669 | }
670 | .fa-hand-o-down:before {
671 | content: "\f0a7";
672 | }
673 | .fa-arrow-circle-left:before {
674 | content: "\f0a8";
675 | }
676 | .fa-arrow-circle-right:before {
677 | content: "\f0a9";
678 | }
679 | .fa-arrow-circle-up:before {
680 | content: "\f0aa";
681 | }
682 | .fa-arrow-circle-down:before {
683 | content: "\f0ab";
684 | }
685 | .fa-globe:before {
686 | content: "\f0ac";
687 | }
688 | .fa-wrench:before {
689 | content: "\f0ad";
690 | }
691 | .fa-tasks:before {
692 | content: "\f0ae";
693 | }
694 | .fa-filter:before {
695 | content: "\f0b0";
696 | }
697 | .fa-briefcase:before {
698 | content: "\f0b1";
699 | }
700 | .fa-arrows-alt:before {
701 | content: "\f0b2";
702 | }
703 | .fa-group:before,
704 | .fa-users:before {
705 | content: "\f0c0";
706 | }
707 | .fa-chain:before,
708 | .fa-link:before {
709 | content: "\f0c1";
710 | }
711 | .fa-cloud:before {
712 | content: "\f0c2";
713 | }
714 | .fa-flask:before {
715 | content: "\f0c3";
716 | }
717 | .fa-cut:before,
718 | .fa-scissors:before {
719 | content: "\f0c4";
720 | }
721 | .fa-copy:before,
722 | .fa-files-o:before {
723 | content: "\f0c5";
724 | }
725 | .fa-paperclip:before {
726 | content: "\f0c6";
727 | }
728 | .fa-save:before,
729 | .fa-floppy-o:before {
730 | content: "\f0c7";
731 | }
732 | .fa-square:before {
733 | content: "\f0c8";
734 | }
735 | .fa-bars:before {
736 | content: "\f0c9";
737 | }
738 | .fa-list-ul:before {
739 | content: "\f0ca";
740 | }
741 | .fa-list-ol:before {
742 | content: "\f0cb";
743 | }
744 | .fa-strikethrough:before {
745 | content: "\f0cc";
746 | }
747 | .fa-underline:before {
748 | content: "\f0cd";
749 | }
750 | .fa-table:before {
751 | content: "\f0ce";
752 | }
753 | .fa-magic:before {
754 | content: "\f0d0";
755 | }
756 | .fa-truck:before {
757 | content: "\f0d1";
758 | }
759 | .fa-pinterest:before {
760 | content: "\f0d2";
761 | }
762 | .fa-pinterest-square:before {
763 | content: "\f0d3";
764 | }
765 | .fa-google-plus-square:before {
766 | content: "\f0d4";
767 | }
768 | .fa-google-plus:before {
769 | content: "\f0d5";
770 | }
771 | .fa-money:before {
772 | content: "\f0d6";
773 | }
774 | .fa-caret-down:before {
775 | content: "\f0d7";
776 | }
777 | .fa-caret-up:before {
778 | content: "\f0d8";
779 | }
780 | .fa-caret-left:before {
781 | content: "\f0d9";
782 | }
783 | .fa-caret-right:before {
784 | content: "\f0da";
785 | }
786 | .fa-columns:before {
787 | content: "\f0db";
788 | }
789 | .fa-unsorted:before,
790 | .fa-sort:before {
791 | content: "\f0dc";
792 | }
793 | .fa-sort-down:before,
794 | .fa-sort-asc:before {
795 | content: "\f0dd";
796 | }
797 | .fa-sort-up:before,
798 | .fa-sort-desc:before {
799 | content: "\f0de";
800 | }
801 | .fa-envelope:before {
802 | content: "\f0e0";
803 | }
804 | .fa-linkedin:before {
805 | content: "\f0e1";
806 | }
807 | .fa-rotate-left:before,
808 | .fa-undo:before {
809 | content: "\f0e2";
810 | }
811 | .fa-legal:before,
812 | .fa-gavel:before {
813 | content: "\f0e3";
814 | }
815 | .fa-dashboard:before,
816 | .fa-tachometer:before {
817 | content: "\f0e4";
818 | }
819 | .fa-comment-o:before {
820 | content: "\f0e5";
821 | }
822 | .fa-comments-o:before {
823 | content: "\f0e6";
824 | }
825 | .fa-flash:before,
826 | .fa-bolt:before {
827 | content: "\f0e7";
828 | }
829 | .fa-sitemap:before {
830 | content: "\f0e8";
831 | }
832 | .fa-umbrella:before {
833 | content: "\f0e9";
834 | }
835 | .fa-paste:before,
836 | .fa-clipboard:before {
837 | content: "\f0ea";
838 | }
839 | .fa-lightbulb-o:before {
840 | content: "\f0eb";
841 | }
842 | .fa-exchange:before {
843 | content: "\f0ec";
844 | }
845 | .fa-cloud-download:before {
846 | content: "\f0ed";
847 | }
848 | .fa-cloud-upload:before {
849 | content: "\f0ee";
850 | }
851 | .fa-user-md:before {
852 | content: "\f0f0";
853 | }
854 | .fa-stethoscope:before {
855 | content: "\f0f1";
856 | }
857 | .fa-suitcase:before {
858 | content: "\f0f2";
859 | }
860 | .fa-bell-o:before {
861 | content: "\f0a2";
862 | }
863 | .fa-coffee:before {
864 | content: "\f0f4";
865 | }
866 | .fa-cutlery:before {
867 | content: "\f0f5";
868 | }
869 | .fa-file-text-o:before {
870 | content: "\f0f6";
871 | }
872 | .fa-building-o:before {
873 | content: "\f0f7";
874 | }
875 | .fa-hospital-o:before {
876 | content: "\f0f8";
877 | }
878 | .fa-ambulance:before {
879 | content: "\f0f9";
880 | }
881 | .fa-medkit:before {
882 | content: "\f0fa";
883 | }
884 | .fa-fighter-jet:before {
885 | content: "\f0fb";
886 | }
887 | .fa-beer:before {
888 | content: "\f0fc";
889 | }
890 | .fa-h-square:before {
891 | content: "\f0fd";
892 | }
893 | .fa-plus-square:before {
894 | content: "\f0fe";
895 | }
896 | .fa-angle-double-left:before {
897 | content: "\f100";
898 | }
899 | .fa-angle-double-right:before {
900 | content: "\f101";
901 | }
902 | .fa-angle-double-up:before {
903 | content: "\f102";
904 | }
905 | .fa-angle-double-down:before {
906 | content: "\f103";
907 | }
908 | .fa-angle-left:before {
909 | content: "\f104";
910 | }
911 | .fa-angle-right:before {
912 | content: "\f105";
913 | }
914 | .fa-angle-up:before {
915 | content: "\f106";
916 | }
917 | .fa-angle-down:before {
918 | content: "\f107";
919 | }
920 | .fa-desktop:before {
921 | content: "\f108";
922 | }
923 | .fa-laptop:before {
924 | content: "\f109";
925 | }
926 | .fa-tablet:before {
927 | content: "\f10a";
928 | }
929 | .fa-mobile-phone:before,
930 | .fa-mobile:before {
931 | content: "\f10b";
932 | }
933 | .fa-circle-o:before {
934 | content: "\f10c";
935 | }
936 | .fa-quote-left:before {
937 | content: "\f10d";
938 | }
939 | .fa-quote-right:before {
940 | content: "\f10e";
941 | }
942 | .fa-spinner:before {
943 | content: "\f110";
944 | }
945 | .fa-circle:before {
946 | content: "\f111";
947 | }
948 | .fa-mail-reply:before,
949 | .fa-reply:before {
950 | content: "\f112";
951 | }
952 | .fa-github-alt:before {
953 | content: "\f113";
954 | }
955 | .fa-folder-o:before {
956 | content: "\f114";
957 | }
958 | .fa-folder-open-o:before {
959 | content: "\f115";
960 | }
961 | .fa-smile-o:before {
962 | content: "\f118";
963 | }
964 | .fa-frown-o:before {
965 | content: "\f119";
966 | }
967 | .fa-meh-o:before {
968 | content: "\f11a";
969 | }
970 | .fa-gamepad:before {
971 | content: "\f11b";
972 | }
973 | .fa-keyboard-o:before {
974 | content: "\f11c";
975 | }
976 | .fa-flag-o:before {
977 | content: "\f11d";
978 | }
979 | .fa-flag-checkered:before {
980 | content: "\f11e";
981 | }
982 | .fa-terminal:before {
983 | content: "\f120";
984 | }
985 | .fa-code:before {
986 | content: "\f121";
987 | }
988 | .fa-reply-all:before {
989 | content: "\f122";
990 | }
991 | .fa-mail-reply-all:before {
992 | content: "\f122";
993 | }
994 | .fa-star-half-empty:before,
995 | .fa-star-half-full:before,
996 | .fa-star-half-o:before {
997 | content: "\f123";
998 | }
999 | .fa-location-arrow:before {
1000 | content: "\f124";
1001 | }
1002 | .fa-crop:before {
1003 | content: "\f125";
1004 | }
1005 | .fa-code-fork:before {
1006 | content: "\f126";
1007 | }
1008 | .fa-unlink:before,
1009 | .fa-chain-broken:before {
1010 | content: "\f127";
1011 | }
1012 | .fa-question:before {
1013 | content: "\f128";
1014 | }
1015 | .fa-info:before {
1016 | content: "\f129";
1017 | }
1018 | .fa-exclamation:before {
1019 | content: "\f12a";
1020 | }
1021 | .fa-superscript:before {
1022 | content: "\f12b";
1023 | }
1024 | .fa-subscript:before {
1025 | content: "\f12c";
1026 | }
1027 | .fa-eraser:before {
1028 | content: "\f12d";
1029 | }
1030 | .fa-puzzle-piece:before {
1031 | content: "\f12e";
1032 | }
1033 | .fa-microphone:before {
1034 | content: "\f130";
1035 | }
1036 | .fa-microphone-slash:before {
1037 | content: "\f131";
1038 | }
1039 | .fa-shield:before {
1040 | content: "\f132";
1041 | }
1042 | .fa-calendar-o:before {
1043 | content: "\f133";
1044 | }
1045 | .fa-fire-extinguisher:before {
1046 | content: "\f134";
1047 | }
1048 | .fa-rocket:before {
1049 | content: "\f135";
1050 | }
1051 | .fa-maxcdn:before {
1052 | content: "\f136";
1053 | }
1054 | .fa-chevron-circle-left:before {
1055 | content: "\f137";
1056 | }
1057 | .fa-chevron-circle-right:before {
1058 | content: "\f138";
1059 | }
1060 | .fa-chevron-circle-up:before {
1061 | content: "\f139";
1062 | }
1063 | .fa-chevron-circle-down:before {
1064 | content: "\f13a";
1065 | }
1066 | .fa-html5:before {
1067 | content: "\f13b";
1068 | }
1069 | .fa-css3:before {
1070 | content: "\f13c";
1071 | }
1072 | .fa-anchor:before {
1073 | content: "\f13d";
1074 | }
1075 | .fa-unlock-alt:before {
1076 | content: "\f13e";
1077 | }
1078 | .fa-bullseye:before {
1079 | content: "\f140";
1080 | }
1081 | .fa-ellipsis-h:before {
1082 | content: "\f141";
1083 | }
1084 | .fa-ellipsis-v:before {
1085 | content: "\f142";
1086 | }
1087 | .fa-rss-square:before {
1088 | content: "\f143";
1089 | }
1090 | .fa-play-circle:before {
1091 | content: "\f144";
1092 | }
1093 | .fa-ticket:before {
1094 | content: "\f145";
1095 | }
1096 | .fa-minus-square:before {
1097 | content: "\f146";
1098 | }
1099 | .fa-minus-square-o:before {
1100 | content: "\f147";
1101 | }
1102 | .fa-level-up:before {
1103 | content: "\f148";
1104 | }
1105 | .fa-level-down:before {
1106 | content: "\f149";
1107 | }
1108 | .fa-check-square:before {
1109 | content: "\f14a";
1110 | }
1111 | .fa-pencil-square:before {
1112 | content: "\f14b";
1113 | }
1114 | .fa-external-link-square:before {
1115 | content: "\f14c";
1116 | }
1117 | .fa-share-square:before {
1118 | content: "\f14d";
1119 | }
1120 | .fa-compass:before {
1121 | content: "\f14e";
1122 | }
1123 | .fa-toggle-down:before,
1124 | .fa-caret-square-o-down:before {
1125 | content: "\f150";
1126 | }
1127 | .fa-toggle-up:before,
1128 | .fa-caret-square-o-up:before {
1129 | content: "\f151";
1130 | }
1131 | .fa-toggle-right:before,
1132 | .fa-caret-square-o-right:before {
1133 | content: "\f152";
1134 | }
1135 | .fa-euro:before,
1136 | .fa-eur:before {
1137 | content: "\f153";
1138 | }
1139 | .fa-gbp:before {
1140 | content: "\f154";
1141 | }
1142 | .fa-dollar:before,
1143 | .fa-usd:before {
1144 | content: "\f155";
1145 | }
1146 | .fa-rupee:before,
1147 | .fa-inr:before {
1148 | content: "\f156";
1149 | }
1150 | .fa-cny:before,
1151 | .fa-rmb:before,
1152 | .fa-yen:before,
1153 | .fa-jpy:before {
1154 | content: "\f157";
1155 | }
1156 | .fa-ruble:before,
1157 | .fa-rouble:before,
1158 | .fa-rub:before {
1159 | content: "\f158";
1160 | }
1161 | .fa-won:before,
1162 | .fa-krw:before {
1163 | content: "\f159";
1164 | }
1165 | .fa-bitcoin:before,
1166 | .fa-btc:before {
1167 | content: "\f15a";
1168 | }
1169 | .fa-file:before {
1170 | content: "\f15b";
1171 | }
1172 | .fa-file-text:before {
1173 | content: "\f15c";
1174 | }
1175 | .fa-sort-alpha-asc:before {
1176 | content: "\f15d";
1177 | }
1178 | .fa-sort-alpha-desc:before {
1179 | content: "\f15e";
1180 | }
1181 | .fa-sort-amount-asc:before {
1182 | content: "\f160";
1183 | }
1184 | .fa-sort-amount-desc:before {
1185 | content: "\f161";
1186 | }
1187 | .fa-sort-numeric-asc:before {
1188 | content: "\f162";
1189 | }
1190 | .fa-sort-numeric-desc:before {
1191 | content: "\f163";
1192 | }
1193 | .fa-thumbs-up:before {
1194 | content: "\f164";
1195 | }
1196 | .fa-thumbs-down:before {
1197 | content: "\f165";
1198 | }
1199 | .fa-youtube-square:before {
1200 | content: "\f166";
1201 | }
1202 | .fa-youtube:before {
1203 | content: "\f167";
1204 | }
1205 | .fa-xing:before {
1206 | content: "\f168";
1207 | }
1208 | .fa-xing-square:before {
1209 | content: "\f169";
1210 | }
1211 | .fa-youtube-play:before {
1212 | content: "\f16a";
1213 | }
1214 | .fa-dropbox:before {
1215 | content: "\f16b";
1216 | }
1217 | .fa-stack-overflow:before {
1218 | content: "\f16c";
1219 | }
1220 | .fa-instagram:before {
1221 | content: "\f16d";
1222 | }
1223 | .fa-flickr:before {
1224 | content: "\f16e";
1225 | }
1226 | .fa-adn:before {
1227 | content: "\f170";
1228 | }
1229 | .fa-bitbucket:before {
1230 | content: "\f171";
1231 | }
1232 | .fa-bitbucket-square:before {
1233 | content: "\f172";
1234 | }
1235 | .fa-tumblr:before {
1236 | content: "\f173";
1237 | }
1238 | .fa-tumblr-square:before {
1239 | content: "\f174";
1240 | }
1241 | .fa-long-arrow-down:before {
1242 | content: "\f175";
1243 | }
1244 | .fa-long-arrow-up:before {
1245 | content: "\f176";
1246 | }
1247 | .fa-long-arrow-left:before {
1248 | content: "\f177";
1249 | }
1250 | .fa-long-arrow-right:before {
1251 | content: "\f178";
1252 | }
1253 | .fa-apple:before {
1254 | content: "\f179";
1255 | }
1256 | .fa-windows:before {
1257 | content: "\f17a";
1258 | }
1259 | .fa-android:before {
1260 | content: "\f17b";
1261 | }
1262 | .fa-linux:before {
1263 | content: "\f17c";
1264 | }
1265 | .fa-dribbble:before {
1266 | content: "\f17d";
1267 | }
1268 | .fa-skype:before {
1269 | content: "\f17e";
1270 | }
1271 | .fa-foursquare:before {
1272 | content: "\f180";
1273 | }
1274 | .fa-trello:before {
1275 | content: "\f181";
1276 | }
1277 | .fa-female:before {
1278 | content: "\f182";
1279 | }
1280 | .fa-male:before {
1281 | content: "\f183";
1282 | }
1283 | .fa-gittip:before {
1284 | content: "\f184";
1285 | }
1286 | .fa-sun-o:before {
1287 | content: "\f185";
1288 | }
1289 | .fa-moon-o:before {
1290 | content: "\f186";
1291 | }
1292 | .fa-archive:before {
1293 | content: "\f187";
1294 | }
1295 | .fa-bug:before {
1296 | content: "\f188";
1297 | }
1298 | .fa-vk:before {
1299 | content: "\f189";
1300 | }
1301 | .fa-weibo:before {
1302 | content: "\f18a";
1303 | }
1304 | .fa-renren:before {
1305 | content: "\f18b";
1306 | }
1307 | .fa-pagelines:before {
1308 | content: "\f18c";
1309 | }
1310 | .fa-stack-exchange:before {
1311 | content: "\f18d";
1312 | }
1313 | .fa-arrow-circle-o-right:before {
1314 | content: "\f18e";
1315 | }
1316 | .fa-arrow-circle-o-left:before {
1317 | content: "\f190";
1318 | }
1319 | .fa-toggle-left:before,
1320 | .fa-caret-square-o-left:before {
1321 | content: "\f191";
1322 | }
1323 | .fa-dot-circle-o:before {
1324 | content: "\f192";
1325 | }
1326 | .fa-wheelchair:before {
1327 | content: "\f193";
1328 | }
1329 | .fa-vimeo-square:before {
1330 | content: "\f194";
1331 | }
1332 | .fa-turkish-lira:before,
1333 | .fa-try:before {
1334 | content: "\f195";
1335 | }
1336 | .fa-plus-square-o:before {
1337 | content: "\f196";
1338 | }
1339 |
--------------------------------------------------------------------------------
/src/main/webapp/css/font-awesome3.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Font Awesome 3.2.1
3 | * the iconic font designed for Bootstrap
4 | * ------------------------------------------------------------------------------
5 | * The full suite of pictographic icons, examples, and documentation can be
6 | * found at http://fontawesome.io. Stay up to date on Twitter at
7 | * http://twitter.com/fontawesome.
8 | *
9 | * License
10 | * ------------------------------------------------------------------------------
11 | * - The Font Awesome font is licensed under SIL OFL 1.1 -
12 | * http://scripts.sil.org/OFL
13 | * - Font Awesome CSS, LESS, and SASS files are licensed under MIT License -
14 | * http://opensource.org/licenses/mit-license.html
15 | * - Font Awesome documentation licensed under CC BY 3.0 -
16 | * http://creativecommons.org/licenses/by/3.0/
17 | * - Attribution is no longer required in Font Awesome 3.0, but much appreciated:
18 | * "Font Awesome by Dave Gandy - http://fontawesome.io"
19 | *
20 | * Author - Dave Gandy
21 | * ------------------------------------------------------------------------------
22 | * Email: dave@fontawesome.io
23 | * Twitter: http://twitter.com/davegandy
24 | * Work: Lead Product Designer @ Kyruus - http://kyruus.com
25 | */
26 | /* FONT PATH
27 | * -------------------------- */
28 | @font-face {
29 | font-family: 'FontAwesome';
30 | src: url('../fonts/fontawesome-webfont.eot?v=3.2.1');
31 | src: url('../fonts/fontawesome-webfont.eot?#iefix&v=3.2.1') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff?v=3.2.1') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=3.2.1') format('truetype'), url('../fonts/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1') format('svg');
32 | font-weight: normal;
33 | font-style: normal;
34 | }
35 | /* FONT AWESOME CORE
36 | * -------------------------- */
37 | [class^="icon-"],
38 | [class*=" icon-"] {
39 | font-family: FontAwesome;
40 | font-weight: normal;
41 | font-style: normal;
42 | text-decoration: inherit;
43 | -webkit-font-smoothing: antialiased;
44 | *margin-right: .3em;
45 | }
46 | [class^="icon-"]:before,
47 | [class*=" icon-"]:before {
48 | text-decoration: inherit;
49 | display: inline-block;
50 | speak: none;
51 | }
52 | /* makes the font 33% larger relative to the icon container */
53 | .icon-large:before {
54 | vertical-align: -10%;
55 | font-size: 1.3333333333333333em;
56 | }
57 | /* makes sure icons active on rollover in links */
58 | a [class^="icon-"],
59 | a [class*=" icon-"] {
60 | display: inline;
61 | }
62 | /* increased font size for icon-large */
63 | [class^="icon-"].icon-fixed-width,
64 | [class*=" icon-"].icon-fixed-width {
65 | display: inline-block;
66 | width: 1.1428571428571428em;
67 | text-align: right;
68 | padding-right: 0.2857142857142857em;
69 | }
70 | [class^="icon-"].icon-fixed-width.icon-large,
71 | [class*=" icon-"].icon-fixed-width.icon-large {
72 | width: 1.4285714285714286em;
73 | }
74 | .icons-ul {
75 | margin-left: 2.142857142857143em;
76 | list-style-type: none;
77 | }
78 | .icons-ul > li {
79 | position: relative;
80 | }
81 | .icons-ul .icon-li {
82 | position: absolute;
83 | left: -2.142857142857143em;
84 | width: 2.142857142857143em;
85 | text-align: center;
86 | line-height: inherit;
87 | }
88 | [class^="icon-"].hide,
89 | [class*=" icon-"].hide {
90 | display: none;
91 | }
92 | .icon-muted {
93 | color: #eeeeee;
94 | }
95 | .icon-light {
96 | color: #ffffff;
97 | }
98 | .icon-dark {
99 | color: #333333;
100 | }
101 | .icon-border {
102 | border: solid 1px #eeeeee;
103 | padding: .2em .25em .15em;
104 | -webkit-border-radius: 3px;
105 | -moz-border-radius: 3px;
106 | border-radius: 3px;
107 | }
108 | .icon-2x {
109 | font-size: 2em;
110 | }
111 | .icon-2x.icon-border {
112 | border-width: 2px;
113 | -webkit-border-radius: 4px;
114 | -moz-border-radius: 4px;
115 | border-radius: 4px;
116 | }
117 | .icon-3x {
118 | font-size: 3em;
119 | }
120 | .icon-3x.icon-border {
121 | border-width: 3px;
122 | -webkit-border-radius: 5px;
123 | -moz-border-radius: 5px;
124 | border-radius: 5px;
125 | }
126 | .icon-4x {
127 | font-size: 4em;
128 | }
129 | .icon-4x.icon-border {
130 | border-width: 4px;
131 | -webkit-border-radius: 6px;
132 | -moz-border-radius: 6px;
133 | border-radius: 6px;
134 | }
135 | .icon-5x {
136 | font-size: 5em;
137 | }
138 | .icon-5x.icon-border {
139 | border-width: 5px;
140 | -webkit-border-radius: 7px;
141 | -moz-border-radius: 7px;
142 | border-radius: 7px;
143 | }
144 | .pull-right {
145 | float: right;
146 | }
147 | .pull-left {
148 | float: left;
149 | }
150 | [class^="icon-"].pull-left,
151 | [class*=" icon-"].pull-left {
152 | margin-right: .3em;
153 | }
154 | [class^="icon-"].pull-right,
155 | [class*=" icon-"].pull-right {
156 | margin-left: .3em;
157 | }
158 | /* BOOTSTRAP SPECIFIC CLASSES
159 | * -------------------------- */
160 | /* Bootstrap 2.0 sprites.less reset */
161 | [class^="icon-"],
162 | [class*=" icon-"] {
163 | display: inline;
164 | width: auto;
165 | height: auto;
166 | line-height: normal;
167 | vertical-align: baseline;
168 | background-image: none;
169 | background-position: 0% 0%;
170 | background-repeat: repeat;
171 | margin-top: 0;
172 | }
173 | /* more sprites.less reset */
174 | .icon-white,
175 | .nav-pills > .active > a > [class^="icon-"],
176 | .nav-pills > .active > a > [class*=" icon-"],
177 | .nav-list > .active > a > [class^="icon-"],
178 | .nav-list > .active > a > [class*=" icon-"],
179 | .navbar-inverse .nav > .active > a > [class^="icon-"],
180 | .navbar-inverse .nav > .active > a > [class*=" icon-"],
181 | .dropdown-menu > li > a:hover > [class^="icon-"],
182 | .dropdown-menu > li > a:hover > [class*=" icon-"],
183 | .dropdown-menu > .active > a > [class^="icon-"],
184 | .dropdown-menu > .active > a > [class*=" icon-"],
185 | .dropdown-submenu:hover > a > [class^="icon-"],
186 | .dropdown-submenu:hover > a > [class*=" icon-"] {
187 | background-image: none;
188 | }
189 | /* keeps Bootstrap styles with and without icons the same */
190 | .btn [class^="icon-"].icon-large,
191 | .nav [class^="icon-"].icon-large,
192 | .btn [class*=" icon-"].icon-large,
193 | .nav [class*=" icon-"].icon-large {
194 | line-height: .9em;
195 | }
196 | .btn [class^="icon-"].icon-spin,
197 | .nav [class^="icon-"].icon-spin,
198 | .btn [class*=" icon-"].icon-spin,
199 | .nav [class*=" icon-"].icon-spin {
200 | display: inline-block;
201 | }
202 | .nav-tabs [class^="icon-"],
203 | .nav-pills [class^="icon-"],
204 | .nav-tabs [class*=" icon-"],
205 | .nav-pills [class*=" icon-"],
206 | .nav-tabs [class^="icon-"].icon-large,
207 | .nav-pills [class^="icon-"].icon-large,
208 | .nav-tabs [class*=" icon-"].icon-large,
209 | .nav-pills [class*=" icon-"].icon-large {
210 | line-height: .9em;
211 | }
212 | .btn [class^="icon-"].pull-left.icon-2x,
213 | .btn [class*=" icon-"].pull-left.icon-2x,
214 | .btn [class^="icon-"].pull-right.icon-2x,
215 | .btn [class*=" icon-"].pull-right.icon-2x {
216 | margin-top: .18em;
217 | }
218 | .btn [class^="icon-"].icon-spin.icon-large,
219 | .btn [class*=" icon-"].icon-spin.icon-large {
220 | line-height: .8em;
221 | }
222 | .btn.btn-small [class^="icon-"].pull-left.icon-2x,
223 | .btn.btn-small [class*=" icon-"].pull-left.icon-2x,
224 | .btn.btn-small [class^="icon-"].pull-right.icon-2x,
225 | .btn.btn-small [class*=" icon-"].pull-right.icon-2x {
226 | margin-top: .25em;
227 | }
228 | .btn.btn-large [class^="icon-"],
229 | .btn.btn-large [class*=" icon-"] {
230 | margin-top: 0;
231 | }
232 | .btn.btn-large [class^="icon-"].pull-left.icon-2x,
233 | .btn.btn-large [class*=" icon-"].pull-left.icon-2x,
234 | .btn.btn-large [class^="icon-"].pull-right.icon-2x,
235 | .btn.btn-large [class*=" icon-"].pull-right.icon-2x {
236 | margin-top: .05em;
237 | }
238 | .btn.btn-large [class^="icon-"].pull-left.icon-2x,
239 | .btn.btn-large [class*=" icon-"].pull-left.icon-2x {
240 | margin-right: .2em;
241 | }
242 | .btn.btn-large [class^="icon-"].pull-right.icon-2x,
243 | .btn.btn-large [class*=" icon-"].pull-right.icon-2x {
244 | margin-left: .2em;
245 | }
246 | /* Fixes alignment in nav lists */
247 | .nav-list [class^="icon-"],
248 | .nav-list [class*=" icon-"] {
249 | line-height: inherit;
250 | }
251 | /* EXTRAS
252 | * -------------------------- */
253 | /* Stacked and layered icon */
254 | .icon-stack {
255 | position: relative;
256 | display: inline-block;
257 | width: 2em;
258 | height: 2em;
259 | line-height: 2em;
260 | vertical-align: -35%;
261 | }
262 | .icon-stack [class^="icon-"],
263 | .icon-stack [class*=" icon-"] {
264 | display: block;
265 | text-align: center;
266 | position: absolute;
267 | width: 100%;
268 | height: 100%;
269 | font-size: 1em;
270 | line-height: inherit;
271 | *line-height: 2em;
272 | }
273 | .icon-stack .icon-stack-base {
274 | font-size: 2em;
275 | *line-height: 1em;
276 | }
277 | /* Animated rotating icon */
278 | .icon-spin {
279 | display: inline-block;
280 | -moz-animation: spin 2s infinite linear;
281 | -o-animation: spin 2s infinite linear;
282 | -webkit-animation: spin 2s infinite linear;
283 | animation: spin 2s infinite linear;
284 | }
285 | /* Prevent stack and spinners from being taken inline when inside a link */
286 | a .icon-stack,
287 | a .icon-spin {
288 | display: inline-block;
289 | text-decoration: none;
290 | }
291 | @-moz-keyframes spin {
292 | 0% {
293 | -moz-transform: rotate(0deg);
294 | }
295 | 100% {
296 | -moz-transform: rotate(359deg);
297 | }
298 | }
299 | @-webkit-keyframes spin {
300 | 0% {
301 | -webkit-transform: rotate(0deg);
302 | }
303 | 100% {
304 | -webkit-transform: rotate(359deg);
305 | }
306 | }
307 | @-o-keyframes spin {
308 | 0% {
309 | -o-transform: rotate(0deg);
310 | }
311 | 100% {
312 | -o-transform: rotate(359deg);
313 | }
314 | }
315 | @-ms-keyframes spin {
316 | 0% {
317 | -ms-transform: rotate(0deg);
318 | }
319 | 100% {
320 | -ms-transform: rotate(359deg);
321 | }
322 | }
323 | @keyframes spin {
324 | 0% {
325 | transform: rotate(0deg);
326 | }
327 | 100% {
328 | transform: rotate(359deg);
329 | }
330 | }
331 | /* Icon rotations and mirroring */
332 | .icon-rotate-90:before {
333 | -webkit-transform: rotate(90deg);
334 | -moz-transform: rotate(90deg);
335 | -ms-transform: rotate(90deg);
336 | -o-transform: rotate(90deg);
337 | transform: rotate(90deg);
338 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
339 | }
340 | .icon-rotate-180:before {
341 | -webkit-transform: rotate(180deg);
342 | -moz-transform: rotate(180deg);
343 | -ms-transform: rotate(180deg);
344 | -o-transform: rotate(180deg);
345 | transform: rotate(180deg);
346 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
347 | }
348 | .icon-rotate-270:before {
349 | -webkit-transform: rotate(270deg);
350 | -moz-transform: rotate(270deg);
351 | -ms-transform: rotate(270deg);
352 | -o-transform: rotate(270deg);
353 | transform: rotate(270deg);
354 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
355 | }
356 | .icon-flip-horizontal:before {
357 | -webkit-transform: scale(-1, 1);
358 | -moz-transform: scale(-1, 1);
359 | -ms-transform: scale(-1, 1);
360 | -o-transform: scale(-1, 1);
361 | transform: scale(-1, 1);
362 | }
363 | .icon-flip-vertical:before {
364 | -webkit-transform: scale(1, -1);
365 | -moz-transform: scale(1, -1);
366 | -ms-transform: scale(1, -1);
367 | -o-transform: scale(1, -1);
368 | transform: scale(1, -1);
369 | }
370 | /* ensure rotation occurs inside anchor tags */
371 | a .icon-rotate-90:before,
372 | a .icon-rotate-180:before,
373 | a .icon-rotate-270:before,
374 | a .icon-flip-horizontal:before,
375 | a .icon-flip-vertical:before {
376 | display: inline-block;
377 | }
378 | /* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
379 | readers do not read off random characters that represent icons */
380 | .icon-glass:before {
381 | content: "\f000";
382 | }
383 | .icon-music:before {
384 | content: "\f001";
385 | }
386 | .icon-search:before {
387 | content: "\f002";
388 | }
389 | .icon-envelope-alt:before {
390 | content: "\f003";
391 | }
392 | .icon-heart:before {
393 | content: "\f004";
394 | }
395 | .icon-star:before {
396 | content: "\f005";
397 | }
398 | .icon-star-empty:before {
399 | content: "\f006";
400 | }
401 | .icon-user:before {
402 | content: "\f007";
403 | }
404 | .icon-film:before {
405 | content: "\f008";
406 | }
407 | .icon-th-large:before {
408 | content: "\f009";
409 | }
410 | .icon-th:before {
411 | content: "\f00a";
412 | }
413 | .icon-th-list:before {
414 | content: "\f00b";
415 | }
416 | .icon-ok:before {
417 | content: "\f00c";
418 | }
419 | .icon-remove:before {
420 | content: "\f00d";
421 | }
422 | .icon-zoom-in:before {
423 | content: "\f00e";
424 | }
425 | .icon-zoom-out:before {
426 | content: "\f010";
427 | }
428 | .icon-power-off:before,
429 | .icon-off:before {
430 | content: "\f011";
431 | }
432 | .icon-signal:before {
433 | content: "\f012";
434 | }
435 | .icon-gear:before,
436 | .icon-cog:before {
437 | content: "\f013";
438 | }
439 | .icon-trash:before {
440 | content: "\f014";
441 | }
442 | .icon-home:before {
443 | content: "\f015";
444 | }
445 | .icon-file-alt:before {
446 | content: "\f016";
447 | }
448 | .icon-time:before {
449 | content: "\f017";
450 | }
451 | .icon-road:before {
452 | content: "\f018";
453 | }
454 | .icon-download-alt:before {
455 | content: "\f019";
456 | }
457 | .icon-download:before {
458 | content: "\f01a";
459 | }
460 | .icon-upload:before {
461 | content: "\f01b";
462 | }
463 | .icon-inbox:before {
464 | content: "\f01c";
465 | }
466 | .icon-play-circle:before {
467 | content: "\f01d";
468 | }
469 | .icon-rotate-right:before,
470 | .icon-repeat:before {
471 | content: "\f01e";
472 | }
473 | .icon-refresh:before {
474 | content: "\f021";
475 | }
476 | .icon-list-alt:before {
477 | content: "\f022";
478 | }
479 | .icon-lock:before {
480 | content: "\f023";
481 | }
482 | .icon-flag:before {
483 | content: "\f024";
484 | }
485 | .icon-headphones:before {
486 | content: "\f025";
487 | }
488 | .icon-volume-off:before {
489 | content: "\f026";
490 | }
491 | .icon-volume-down:before {
492 | content: "\f027";
493 | }
494 | .icon-volume-up:before {
495 | content: "\f028";
496 | }
497 | .icon-qrcode:before {
498 | content: "\f029";
499 | }
500 | .icon-barcode:before {
501 | content: "\f02a";
502 | }
503 | .icon-tag:before {
504 | content: "\f02b";
505 | }
506 | .icon-tags:before {
507 | content: "\f02c";
508 | }
509 | .icon-book:before {
510 | content: "\f02d";
511 | }
512 | .icon-bookmark:before {
513 | content: "\f02e";
514 | }
515 | .icon-print:before {
516 | content: "\f02f";
517 | }
518 | .icon-camera:before {
519 | content: "\f030";
520 | }
521 | .icon-font:before {
522 | content: "\f031";
523 | }
524 | .icon-bold:before {
525 | content: "\f032";
526 | }
527 | .icon-italic:before {
528 | content: "\f033";
529 | }
530 | .icon-text-height:before {
531 | content: "\f034";
532 | }
533 | .icon-text-width:before {
534 | content: "\f035";
535 | }
536 | .icon-align-left:before {
537 | content: "\f036";
538 | }
539 | .icon-align-center:before {
540 | content: "\f037";
541 | }
542 | .icon-align-right:before {
543 | content: "\f038";
544 | }
545 | .icon-align-justify:before {
546 | content: "\f039";
547 | }
548 | .icon-list:before {
549 | content: "\f03a";
550 | }
551 | .icon-indent-left:before {
552 | content: "\f03b";
553 | }
554 | .icon-indent-right:before {
555 | content: "\f03c";
556 | }
557 | .icon-facetime-video:before {
558 | content: "\f03d";
559 | }
560 | .icon-picture:before {
561 | content: "\f03e";
562 | }
563 | .icon-pencil:before {
564 | content: "\f040";
565 | }
566 | .icon-map-marker:before {
567 | content: "\f041";
568 | }
569 | .icon-adjust:before {
570 | content: "\f042";
571 | }
572 | .icon-tint:before {
573 | content: "\f043";
574 | }
575 | .icon-edit:before {
576 | content: "\f044";
577 | }
578 | .icon-share:before {
579 | content: "\f045";
580 | }
581 | .icon-check:before {
582 | content: "\f046";
583 | }
584 | .icon-move:before {
585 | content: "\f047";
586 | }
587 | .icon-step-backward:before {
588 | content: "\f048";
589 | }
590 | .icon-fast-backward:before {
591 | content: "\f049";
592 | }
593 | .icon-backward:before {
594 | content: "\f04a";
595 | }
596 | .icon-play:before {
597 | content: "\f04b";
598 | }
599 | .icon-pause:before {
600 | content: "\f04c";
601 | }
602 | .icon-stop:before {
603 | content: "\f04d";
604 | }
605 | .icon-forward:before {
606 | content: "\f04e";
607 | }
608 | .icon-fast-forward:before {
609 | content: "\f050";
610 | }
611 | .icon-step-forward:before {
612 | content: "\f051";
613 | }
614 | .icon-eject:before {
615 | content: "\f052";
616 | }
617 | .icon-chevron-left:before {
618 | content: "\f053";
619 | }
620 | .icon-chevron-right:before {
621 | content: "\f054";
622 | }
623 | .icon-plus-sign:before {
624 | content: "\f055";
625 | }
626 | .icon-minus-sign:before {
627 | content: "\f056";
628 | }
629 | .icon-remove-sign:before {
630 | content: "\f057";
631 | }
632 | .icon-ok-sign:before {
633 | content: "\f058";
634 | }
635 | .icon-question-sign:before {
636 | content: "\f059";
637 | }
638 | .icon-info-sign:before {
639 | content: "\f05a";
640 | }
641 | .icon-screenshot:before {
642 | content: "\f05b";
643 | }
644 | .icon-remove-circle:before {
645 | content: "\f05c";
646 | }
647 | .icon-ok-circle:before {
648 | content: "\f05d";
649 | }
650 | .icon-ban-circle:before {
651 | content: "\f05e";
652 | }
653 | .icon-arrow-left:before {
654 | content: "\f060";
655 | }
656 | .icon-arrow-right:before {
657 | content: "\f061";
658 | }
659 | .icon-arrow-up:before {
660 | content: "\f062";
661 | }
662 | .icon-arrow-down:before {
663 | content: "\f063";
664 | }
665 | .icon-mail-forward:before,
666 | .icon-share-alt:before {
667 | content: "\f064";
668 | }
669 | .icon-resize-full:before {
670 | content: "\f065";
671 | }
672 | .icon-resize-small:before {
673 | content: "\f066";
674 | }
675 | .icon-plus:before {
676 | content: "\f067";
677 | }
678 | .icon-minus:before {
679 | content: "\f068";
680 | }
681 | .icon-asterisk:before {
682 | content: "\f069";
683 | }
684 | .icon-exclamation-sign:before {
685 | content: "\f06a";
686 | }
687 | .icon-gift:before {
688 | content: "\f06b";
689 | }
690 | .icon-leaf:before {
691 | content: "\f06c";
692 | }
693 | .icon-fire:before {
694 | content: "\f06d";
695 | }
696 | .icon-eye-open:before {
697 | content: "\f06e";
698 | }
699 | .icon-eye-close:before {
700 | content: "\f070";
701 | }
702 | .icon-warning-sign:before {
703 | content: "\f071";
704 | }
705 | .icon-plane:before {
706 | content: "\f072";
707 | }
708 | .icon-calendar:before {
709 | content: "\f073";
710 | }
711 | .icon-random:before {
712 | content: "\f074";
713 | }
714 | .icon-comment:before {
715 | content: "\f075";
716 | }
717 | .icon-magnet:before {
718 | content: "\f076";
719 | }
720 | .icon-chevron-up:before {
721 | content: "\f077";
722 | }
723 | .icon-chevron-down:before {
724 | content: "\f078";
725 | }
726 | .icon-retweet:before {
727 | content: "\f079";
728 | }
729 | .icon-shopping-cart:before {
730 | content: "\f07a";
731 | }
732 | .icon-folder-close:before {
733 | content: "\f07b";
734 | }
735 | .icon-folder-open:before {
736 | content: "\f07c";
737 | }
738 | .icon-resize-vertical:before {
739 | content: "\f07d";
740 | }
741 | .icon-resize-horizontal:before {
742 | content: "\f07e";
743 | }
744 | .icon-bar-chart:before {
745 | content: "\f080";
746 | }
747 | .icon-twitter-sign:before {
748 | content: "\f081";
749 | }
750 | .icon-facebook-sign:before {
751 | content: "\f082";
752 | }
753 | .icon-camera-retro:before {
754 | content: "\f083";
755 | }
756 | .icon-key:before {
757 | content: "\f084";
758 | }
759 | .icon-gears:before,
760 | .icon-cogs:before {
761 | content: "\f085";
762 | }
763 | .icon-comments:before {
764 | content: "\f086";
765 | }
766 | .icon-thumbs-up-alt:before {
767 | content: "\f087";
768 | }
769 | .icon-thumbs-down-alt:before {
770 | content: "\f088";
771 | }
772 | .icon-star-half:before {
773 | content: "\f089";
774 | }
775 | .icon-heart-empty:before {
776 | content: "\f08a";
777 | }
778 | .icon-signout:before {
779 | content: "\f08b";
780 | }
781 | .icon-linkedin-sign:before {
782 | content: "\f08c";
783 | }
784 | .icon-pushpin:before {
785 | content: "\f08d";
786 | }
787 | .icon-external-link:before {
788 | content: "\f08e";
789 | }
790 | .icon-signin:before {
791 | content: "\f090";
792 | }
793 | .icon-trophy:before {
794 | content: "\f091";
795 | }
796 | .icon-github-sign:before {
797 | content: "\f092";
798 | }
799 | .icon-upload-alt:before {
800 | content: "\f093";
801 | }
802 | .icon-lemon:before {
803 | content: "\f094";
804 | }
805 | .icon-phone:before {
806 | content: "\f095";
807 | }
808 | .icon-unchecked:before,
809 | .icon-check-empty:before {
810 | content: "\f096";
811 | }
812 | .icon-bookmark-empty:before {
813 | content: "\f097";
814 | }
815 | .icon-phone-sign:before {
816 | content: "\f098";
817 | }
818 | .icon-twitter:before {
819 | content: "\f099";
820 | }
821 | .icon-facebook:before {
822 | content: "\f09a";
823 | }
824 | .icon-github:before {
825 | content: "\f09b";
826 | }
827 | .icon-unlock:before {
828 | content: "\f09c";
829 | }
830 | .icon-credit-card:before {
831 | content: "\f09d";
832 | }
833 | .icon-rss:before {
834 | content: "\f09e";
835 | }
836 | .icon-hdd:before {
837 | content: "\f0a0";
838 | }
839 | .icon-bullhorn:before {
840 | content: "\f0a1";
841 | }
842 | .icon-bell:before {
843 | content: "\f0a2";
844 | }
845 | .icon-certificate:before {
846 | content: "\f0a3";
847 | }
848 | .icon-hand-right:before {
849 | content: "\f0a4";
850 | }
851 | .icon-hand-left:before {
852 | content: "\f0a5";
853 | }
854 | .icon-hand-up:before {
855 | content: "\f0a6";
856 | }
857 | .icon-hand-down:before {
858 | content: "\f0a7";
859 | }
860 | .icon-circle-arrow-left:before {
861 | content: "\f0a8";
862 | }
863 | .icon-circle-arrow-right:before {
864 | content: "\f0a9";
865 | }
866 | .icon-circle-arrow-up:before {
867 | content: "\f0aa";
868 | }
869 | .icon-circle-arrow-down:before {
870 | content: "\f0ab";
871 | }
872 | .icon-globe:before {
873 | content: "\f0ac";
874 | }
875 | .icon-wrench:before {
876 | content: "\f0ad";
877 | }
878 | .icon-tasks:before {
879 | content: "\f0ae";
880 | }
881 | .icon-filter:before {
882 | content: "\f0b0";
883 | }
884 | .icon-briefcase:before {
885 | content: "\f0b1";
886 | }
887 | .icon-fullscreen:before {
888 | content: "\f0b2";
889 | }
890 | .icon-group:before {
891 | content: "\f0c0";
892 | }
893 | .icon-link:before {
894 | content: "\f0c1";
895 | }
896 | .icon-cloud:before {
897 | content: "\f0c2";
898 | }
899 | .icon-beaker:before {
900 | content: "\f0c3";
901 | }
902 | .icon-cut:before {
903 | content: "\f0c4";
904 | }
905 | .icon-copy:before {
906 | content: "\f0c5";
907 | }
908 | .icon-paperclip:before,
909 | .icon-paper-clip:before {
910 | content: "\f0c6";
911 | }
912 | .icon-save:before {
913 | content: "\f0c7";
914 | }
915 | .icon-sign-blank:before {
916 | content: "\f0c8";
917 | }
918 | .icon-reorder:before {
919 | content: "\f0c9";
920 | }
921 | .icon-list-ul:before {
922 | content: "\f0ca";
923 | }
924 | .icon-list-ol:before {
925 | content: "\f0cb";
926 | }
927 | .icon-strikethrough:before {
928 | content: "\f0cc";
929 | }
930 | .icon-underline:before {
931 | content: "\f0cd";
932 | }
933 | .icon-table:before {
934 | content: "\f0ce";
935 | }
936 | .icon-magic:before {
937 | content: "\f0d0";
938 | }
939 | .icon-truck:before {
940 | content: "\f0d1";
941 | }
942 | .icon-pinterest:before {
943 | content: "\f0d2";
944 | }
945 | .icon-pinterest-sign:before {
946 | content: "\f0d3";
947 | }
948 | .icon-google-plus-sign:before {
949 | content: "\f0d4";
950 | }
951 | .icon-google-plus:before {
952 | content: "\f0d5";
953 | }
954 | .icon-money:before {
955 | content: "\f0d6";
956 | }
957 | .icon-caret-down:before {
958 | content: "\f0d7";
959 | }
960 | .icon-caret-up:before {
961 | content: "\f0d8";
962 | }
963 | .icon-caret-left:before {
964 | content: "\f0d9";
965 | }
966 | .icon-caret-right:before {
967 | content: "\f0da";
968 | }
969 | .icon-columns:before {
970 | content: "\f0db";
971 | }
972 | .icon-sort:before {
973 | content: "\f0dc";
974 | }
975 | .icon-sort-down:before {
976 | content: "\f0dd";
977 | }
978 | .icon-sort-up:before {
979 | content: "\f0de";
980 | }
981 | .icon-envelope:before {
982 | content: "\f0e0";
983 | }
984 | .icon-linkedin:before {
985 | content: "\f0e1";
986 | }
987 | .icon-rotate-left:before,
988 | .icon-undo:before {
989 | content: "\f0e2";
990 | }
991 | .icon-legal:before {
992 | content: "\f0e3";
993 | }
994 | .icon-dashboard:before {
995 | content: "\f0e4";
996 | }
997 | .icon-comment-alt:before {
998 | content: "\f0e5";
999 | }
1000 | .icon-comments-alt:before {
1001 | content: "\f0e6";
1002 | }
1003 | .icon-bolt:before {
1004 | content: "\f0e7";
1005 | }
1006 | .icon-sitemap:before {
1007 | content: "\f0e8";
1008 | }
1009 | .icon-umbrella:before {
1010 | content: "\f0e9";
1011 | }
1012 | .icon-paste:before {
1013 | content: "\f0ea";
1014 | }
1015 | .icon-lightbulb:before {
1016 | content: "\f0eb";
1017 | }
1018 | .icon-exchange:before {
1019 | content: "\f0ec";
1020 | }
1021 | .icon-cloud-download:before {
1022 | content: "\f0ed";
1023 | }
1024 | .icon-cloud-upload:before {
1025 | content: "\f0ee";
1026 | }
1027 | .icon-user-md:before {
1028 | content: "\f0f0";
1029 | }
1030 | .icon-stethoscope:before {
1031 | content: "\f0f1";
1032 | }
1033 | .icon-suitcase:before {
1034 | content: "\f0f2";
1035 | }
1036 | .icon-bell-alt:before {
1037 | content: "\f0f3";
1038 | }
1039 | .icon-coffee:before {
1040 | content: "\f0f4";
1041 | }
1042 | .icon-food:before {
1043 | content: "\f0f5";
1044 | }
1045 | .icon-file-text-alt:before {
1046 | content: "\f0f6";
1047 | }
1048 | .icon-building:before {
1049 | content: "\f0f7";
1050 | }
1051 | .icon-hospital:before {
1052 | content: "\f0f8";
1053 | }
1054 | .icon-ambulance:before {
1055 | content: "\f0f9";
1056 | }
1057 | .icon-medkit:before {
1058 | content: "\f0fa";
1059 | }
1060 | .icon-fighter-jet:before {
1061 | content: "\f0fb";
1062 | }
1063 | .icon-beer:before {
1064 | content: "\f0fc";
1065 | }
1066 | .icon-h-sign:before {
1067 | content: "\f0fd";
1068 | }
1069 | .icon-plus-sign-alt:before {
1070 | content: "\f0fe";
1071 | }
1072 | .icon-double-angle-left:before {
1073 | content: "\f100";
1074 | }
1075 | .icon-double-angle-right:before {
1076 | content: "\f101";
1077 | }
1078 | .icon-double-angle-up:before {
1079 | content: "\f102";
1080 | }
1081 | .icon-double-angle-down:before {
1082 | content: "\f103";
1083 | }
1084 | .icon-angle-left:before {
1085 | content: "\f104";
1086 | }
1087 | .icon-angle-right:before {
1088 | content: "\f105";
1089 | }
1090 | .icon-angle-up:before {
1091 | content: "\f106";
1092 | }
1093 | .icon-angle-down:before {
1094 | content: "\f107";
1095 | }
1096 | .icon-desktop:before {
1097 | content: "\f108";
1098 | }
1099 | .icon-laptop:before {
1100 | content: "\f109";
1101 | }
1102 | .icon-tablet:before {
1103 | content: "\f10a";
1104 | }
1105 | .icon-mobile-phone:before {
1106 | content: "\f10b";
1107 | }
1108 | .icon-circle-blank:before {
1109 | content: "\f10c";
1110 | }
1111 | .icon-quote-left:before {
1112 | content: "\f10d";
1113 | }
1114 | .icon-quote-right:before {
1115 | content: "\f10e";
1116 | }
1117 | .icon-spinner:before {
1118 | content: "\f110";
1119 | }
1120 | .icon-circle:before {
1121 | content: "\f111";
1122 | }
1123 | .icon-mail-reply:before,
1124 | .icon-reply:before {
1125 | content: "\f112";
1126 | }
1127 | .icon-github-alt:before {
1128 | content: "\f113";
1129 | }
1130 | .icon-folder-close-alt:before {
1131 | content: "\f114";
1132 | }
1133 | .icon-folder-open-alt:before {
1134 | content: "\f115";
1135 | }
1136 | .icon-expand-alt:before {
1137 | content: "\f116";
1138 | }
1139 | .icon-collapse-alt:before {
1140 | content: "\f117";
1141 | }
1142 | .icon-smile:before {
1143 | content: "\f118";
1144 | }
1145 | .icon-frown:before {
1146 | content: "\f119";
1147 | }
1148 | .icon-meh:before {
1149 | content: "\f11a";
1150 | }
1151 | .icon-gamepad:before {
1152 | content: "\f11b";
1153 | }
1154 | .icon-keyboard:before {
1155 | content: "\f11c";
1156 | }
1157 | .icon-flag-alt:before {
1158 | content: "\f11d";
1159 | }
1160 | .icon-flag-checkered:before {
1161 | content: "\f11e";
1162 | }
1163 | .icon-terminal:before {
1164 | content: "\f120";
1165 | }
1166 | .icon-code:before {
1167 | content: "\f121";
1168 | }
1169 | .icon-reply-all:before {
1170 | content: "\f122";
1171 | }
1172 | .icon-mail-reply-all:before {
1173 | content: "\f122";
1174 | }
1175 | .icon-star-half-full:before,
1176 | .icon-star-half-empty:before {
1177 | content: "\f123";
1178 | }
1179 | .icon-location-arrow:before {
1180 | content: "\f124";
1181 | }
1182 | .icon-crop:before {
1183 | content: "\f125";
1184 | }
1185 | .icon-code-fork:before {
1186 | content: "\f126";
1187 | }
1188 | .icon-unlink:before {
1189 | content: "\f127";
1190 | }
1191 | .icon-question:before {
1192 | content: "\f128";
1193 | }
1194 | .icon-info:before {
1195 | content: "\f129";
1196 | }
1197 | .icon-exclamation:before {
1198 | content: "\f12a";
1199 | }
1200 | .icon-superscript:before {
1201 | content: "\f12b";
1202 | }
1203 | .icon-subscript:before {
1204 | content: "\f12c";
1205 | }
1206 | .icon-eraser:before {
1207 | content: "\f12d";
1208 | }
1209 | .icon-puzzle-piece:before {
1210 | content: "\f12e";
1211 | }
1212 | .icon-microphone:before {
1213 | content: "\f130";
1214 | }
1215 | .icon-microphone-off:before {
1216 | content: "\f131";
1217 | }
1218 | .icon-shield:before {
1219 | content: "\f132";
1220 | }
1221 | .icon-calendar-empty:before {
1222 | content: "\f133";
1223 | }
1224 | .icon-fire-extinguisher:before {
1225 | content: "\f134";
1226 | }
1227 | .icon-rocket:before {
1228 | content: "\f135";
1229 | }
1230 | .icon-maxcdn:before {
1231 | content: "\f136";
1232 | }
1233 | .icon-chevron-sign-left:before {
1234 | content: "\f137";
1235 | }
1236 | .icon-chevron-sign-right:before {
1237 | content: "\f138";
1238 | }
1239 | .icon-chevron-sign-up:before {
1240 | content: "\f139";
1241 | }
1242 | .icon-chevron-sign-down:before {
1243 | content: "\f13a";
1244 | }
1245 | .icon-html5:before {
1246 | content: "\f13b";
1247 | }
1248 | .icon-css3:before {
1249 | content: "\f13c";
1250 | }
1251 | .icon-anchor:before {
1252 | content: "\f13d";
1253 | }
1254 | .icon-unlock-alt:before {
1255 | content: "\f13e";
1256 | }
1257 | .icon-bullseye:before {
1258 | content: "\f140";
1259 | }
1260 | .icon-ellipsis-horizontal:before {
1261 | content: "\f141";
1262 | }
1263 | .icon-ellipsis-vertical:before {
1264 | content: "\f142";
1265 | }
1266 | .icon-rss-sign:before {
1267 | content: "\f143";
1268 | }
1269 | .icon-play-sign:before {
1270 | content: "\f144";
1271 | }
1272 | .icon-ticket:before {
1273 | content: "\f145";
1274 | }
1275 | .icon-minus-sign-alt:before {
1276 | content: "\f146";
1277 | }
1278 | .icon-check-minus:before {
1279 | content: "\f147";
1280 | }
1281 | .icon-level-up:before {
1282 | content: "\f148";
1283 | }
1284 | .icon-level-down:before {
1285 | content: "\f149";
1286 | }
1287 | .icon-check-sign:before {
1288 | content: "\f14a";
1289 | }
1290 | .icon-edit-sign:before {
1291 | content: "\f14b";
1292 | }
1293 | .icon-external-link-sign:before {
1294 | content: "\f14c";
1295 | }
1296 | .icon-share-sign:before {
1297 | content: "\f14d";
1298 | }
1299 | .icon-compass:before {
1300 | content: "\f14e";
1301 | }
1302 | .icon-collapse:before {
1303 | content: "\f150";
1304 | }
1305 | .icon-collapse-top:before {
1306 | content: "\f151";
1307 | }
1308 | .icon-expand:before {
1309 | content: "\f152";
1310 | }
1311 | .icon-euro:before,
1312 | .icon-eur:before {
1313 | content: "\f153";
1314 | }
1315 | .icon-gbp:before {
1316 | content: "\f154";
1317 | }
1318 | .icon-dollar:before,
1319 | .icon-usd:before {
1320 | content: "\f155";
1321 | }
1322 | .icon-rupee:before,
1323 | .icon-inr:before {
1324 | content: "\f156";
1325 | }
1326 | .icon-yen:before,
1327 | .icon-jpy:before {
1328 | content: "\f157";
1329 | }
1330 | .icon-renminbi:before,
1331 | .icon-cny:before {
1332 | content: "\f158";
1333 | }
1334 | .icon-won:before,
1335 | .icon-krw:before {
1336 | content: "\f159";
1337 | }
1338 | .icon-bitcoin:before,
1339 | .icon-btc:before {
1340 | content: "\f15a";
1341 | }
1342 | .icon-file:before {
1343 | content: "\f15b";
1344 | }
1345 | .icon-file-text:before {
1346 | content: "\f15c";
1347 | }
1348 | .icon-sort-by-alphabet:before {
1349 | content: "\f15d";
1350 | }
1351 | .icon-sort-by-alphabet-alt:before {
1352 | content: "\f15e";
1353 | }
1354 | .icon-sort-by-attributes:before {
1355 | content: "\f160";
1356 | }
1357 | .icon-sort-by-attributes-alt:before {
1358 | content: "\f161";
1359 | }
1360 | .icon-sort-by-order:before {
1361 | content: "\f162";
1362 | }
1363 | .icon-sort-by-order-alt:before {
1364 | content: "\f163";
1365 | }
1366 | .icon-thumbs-up:before {
1367 | content: "\f164";
1368 | }
1369 | .icon-thumbs-down:before {
1370 | content: "\f165";
1371 | }
1372 | .icon-youtube-sign:before {
1373 | content: "\f166";
1374 | }
1375 | .icon-youtube:before {
1376 | content: "\f167";
1377 | }
1378 | .icon-xing:before {
1379 | content: "\f168";
1380 | }
1381 | .icon-xing-sign:before {
1382 | content: "\f169";
1383 | }
1384 | .icon-youtube-play:before {
1385 | content: "\f16a";
1386 | }
1387 | .icon-dropbox:before {
1388 | content: "\f16b";
1389 | }
1390 | .icon-stackexchange:before {
1391 | content: "\f16c";
1392 | }
1393 | .icon-instagram:before {
1394 | content: "\f16d";
1395 | }
1396 | .icon-flickr:before {
1397 | content: "\f16e";
1398 | }
1399 | .icon-adn:before {
1400 | content: "\f170";
1401 | }
1402 | .icon-bitbucket:before {
1403 | content: "\f171";
1404 | }
1405 | .icon-bitbucket-sign:before {
1406 | content: "\f172";
1407 | }
1408 | .icon-tumblr:before {
1409 | content: "\f173";
1410 | }
1411 | .icon-tumblr-sign:before {
1412 | content: "\f174";
1413 | }
1414 | .icon-long-arrow-down:before {
1415 | content: "\f175";
1416 | }
1417 | .icon-long-arrow-up:before {
1418 | content: "\f176";
1419 | }
1420 | .icon-long-arrow-left:before {
1421 | content: "\f177";
1422 | }
1423 | .icon-long-arrow-right:before {
1424 | content: "\f178";
1425 | }
1426 | .icon-apple:before {
1427 | content: "\f179";
1428 | }
1429 | .icon-windows:before {
1430 | content: "\f17a";
1431 | }
1432 | .icon-android:before {
1433 | content: "\f17b";
1434 | }
1435 | .icon-linux:before {
1436 | content: "\f17c";
1437 | }
1438 | .icon-dribbble:before {
1439 | content: "\f17d";
1440 | }
1441 | .icon-skype:before {
1442 | content: "\f17e";
1443 | }
1444 | .icon-foursquare:before {
1445 | content: "\f180";
1446 | }
1447 | .icon-trello:before {
1448 | content: "\f181";
1449 | }
1450 | .icon-female:before {
1451 | content: "\f182";
1452 | }
1453 | .icon-male:before {
1454 | content: "\f183";
1455 | }
1456 | .icon-gittip:before {
1457 | content: "\f184";
1458 | }
1459 | .icon-sun:before {
1460 | content: "\f185";
1461 | }
1462 | .icon-moon:before {
1463 | content: "\f186";
1464 | }
1465 | .icon-archive:before {
1466 | content: "\f187";
1467 | }
1468 | .icon-bug:before {
1469 | content: "\f188";
1470 | }
1471 | .icon-vk:before {
1472 | content: "\f189";
1473 | }
1474 | .icon-weibo:before {
1475 | content: "\f18a";
1476 | }
1477 | .icon-renren:before {
1478 | content: "\f18b";
1479 | }
1480 |
--------------------------------------------------------------------------------