initial commit with lfeventsci repo files

This commit is contained in:
cjyabraham 2019-11-16 15:49:56 +07:00
commit 946a0d095c
1421 changed files with 428495 additions and 0 deletions

15
.circleci/behat-test-cleanup.sh Executable file
View File

@ -0,0 +1,15 @@
#!/bin/bash
if [[ (${CIRCLE_BRANCH} != "master" && -z ${CIRCLE_PULL_REQUEST+x}) || (${CIRCLE_BRANCH} == "master" && -n ${CIRCLE_PULL_REQUEST+x}) ]];
then
echo -e "CircleCI will only run Behat tests on Pantheon if on the master branch or creating a pull requests.\n"
exit 0;
fi
echo "::::::::::::::::::::::::::::::::::::::::::::::::"
echo "Behat clean up on site: $TERMINUS_SITE.$TERMINUS_ENV"
echo "::::::::::::::::::::::::::::::::::::::::::::::::"
echo
# Restore the backup made before testing
terminus -n backup:restore $TERMINUS_SITE.$TERMINUS_ENV --element=database --yes

80
.circleci/behat-test.sh Executable file
View File

@ -0,0 +1,80 @@
#!/bin/bash
if [[ (${CIRCLE_BRANCH} != "master" && -z ${CIRCLE_PULL_REQUEST+x}) || (${CIRCLE_BRANCH} == "master" && -n ${CIRCLE_PULL_REQUEST+x}) ]];
then
echo -e "CircleCI will only run Behat tests on Pantheon if on the master branch or creating a pull requests.\n"
exit 0;
fi
# Bail if required environment varaibles are missing
if [ -z "$TERMINUS_SITE" ] || [ -z "$TERMINUS_ENV" ]
then
echo 'No test site specified. Set TERMINUS_SITE and TERMINUS_ENV.'
exit 1
fi
if [ -z "$ADMIN_USERNAME" ] || [ -z "$ADMIN_PASSWORD" ]
then
echo "No WordPress credentials specified. Set ADMIN_USERNAME and ADMIN_PASSWORD."
exit 1
fi
echo "::::::::::::::::::::::::::::::::::::::::::::::::"
echo "Behat test site: $TERMINUS_SITE.$TERMINUS_ENV"
echo "::::::::::::::::::::::::::::::::::::::::::::::::"
echo
# Clear site cache
terminus -n env:clear-cache $TERMINUS_SITE.$TERMINUS_ENV
# Stash current WordPress username
export WORDPRESS_USER_NAME=$ADMIN_USERNAME
# Use a generic Pantheon user for testing
export ADMIN_USERNAME='pantheon-ci-testing'
# Check if an admin user with our desired username exists
ADMIN_USER_EXISTS=$(terminus -n wp ${TERMINUS_SITE}.${TERMINUS_ENV} -- user list --login=${ADMIN_USERNAME} --format=count)
# If so, delete the existing admin user
if [[ "$ADMIN_USER_EXISTS" == "1" ]]
then
terminus -n wp $TERMINUS_SITE.$TERMINUS_ENV -- user delete $ADMIN_USERNAME --yes
fi
# Update WordPress database
terminus -n wp $TERMINUS_SITE.$TERMINUS_ENV -- core update-db
# Create a backup before running Behat tests
terminus -n backup:create $TERMINUS_SITE.$TERMINUS_ENV
# Create the desired admin user
terminus -n wp $TERMINUS_SITE.$TERMINUS_ENV -- user create $ADMIN_USERNAME no-reply@getpantheon.com --user_pass=$ADMIN_PASSWORD --role=administrator --porcelain
# Confirm the admin user exists
terminus -n wp $TERMINUS_SITE.$TERMINUS_ENV -- user list --login=$ADMIN_USERNAME
# Dynamically set Behat configuration parameters
export BEHAT_PARAMS='{"extensions":{"Behat\\MinkExtension":{"base_url":"https://'$TERMINUS_ENV'-'$TERMINUS_SITE'.pantheonsite.io"},"PaulGibbs\\WordpressBehatExtension":{"site_url":"https://'$TERMINUS_ENV'-'$TERMINUS_SITE'.pantheonsite.io/wp","users":{"admin":{"username":"'$ADMIN_USERNAME'","password":"'$ADMIN_PASSWORD'"}},"wpcli":{"binary":"terminus -n wp '$TERMINUS_SITE'.'$TERMINUS_ENV' --"}}}}'
# Set Behat variables from environment variables
export RELOCATED_WP_ADMIN=TRUE
# Wake the multidev environment before running tests
terminus -n env:wake $TERMINUS_SITE.$TERMINUS_ENV
# Ping wp-cli to start ssh with the app server
terminus -n wp $TERMINUS_SITE.$TERMINUS_ENV -- cli version
# Verbose mode and exit on errors
set -ex
# Start headless Chrome
echo "\n Starting Chrome in headless mode ..."
google-chrome-unstable --disable-gpu --headless --remote-debugging-address=0.0.0.0 --remote-debugging-port=9222 --no-sandbox </dev/null &>/dev/null &
# Run the Behat tests
./vendor/bin/behat --config=tests/behat/behat-pantheon.yml --strict "$@"
# Reset WordPress user name
export ADMIN_USERNAME=$WORDPRESS_USER_NAME

267
.circleci/config.yml Normal file
View File

@ -0,0 +1,267 @@
# https://circleci.com/docs/2.0/workflows/#using-workspaces-to-share-data-among-jobs
defaults: &defaults
docker:
- image: quay.io/pantheon-public/build-tools-ci:3.x
working_directory: ~/example_wordpress_composer
environment:
#=========================================================================
# In addition to the environment variables defined in this file, also
# add the following variables in the Circle CI UI.
#
# See: https://circleci.com/docs/2.0/environment-variables/
#
# TERMINUS_SITE: Name of the Pantheon site to run tests on, e.g. my_site.
# TERMINUS_TOKEN: The Pantheon machine token.
# GITHUB_TOKEN: The GitHub personal access token.
# GIT_EMAIL: The email address to use when making commits.
#
# TEST_SITE_NAME: The name of the test site to provide when installing.
# ADMIN_PASSWORD: The admin password to use when installing.
# ADMIN_EMAIL: The email address to give the admin when installing.
#=========================================================================
TZ: "/usr/share/zoneinfo/America/Los_Angeles"
# The variables below usually do not need to be modified.
#======================================================================================================================================
# Circle CI 2.0 does not yet expand environment variables so they have to be manually EXPORTed
# Once environment variables can be expanded the variables below can be uncommented and the EXPORTs in set-up-globals.sh can be removed
# See: https://discuss.circleci.com/t/unclear-how-to-work-with-user-variables-circleci-provided-env-variables/12810/11
# See: https://discuss.circleci.com/t/environment-variable-expansion-in-working-directory/11322
# See: https://discuss.circleci.com/t/circle-2-0-global-environment-variables/8681
#======================================================================================================================================
# See set-up-globals.sh for more environment variables
NOTIFY: 'scripts/github/add-commit-comment {project} {sha} "Created multidev environment [{site}#{env}]({dashboard-url})." {site-url}'
ADMIN_USERNAME: admin
# BUILD_TOOLS_VERSION: 2.0.0-beta6
TERM: dumb
version: 2
jobs:
# @todo: common initialization, maybe
build:
<<: *defaults
# override the default image with drupaldocker/php as this job
# doesn't need Pantheon specific items such as Terminus that are
# in the quay.io/pantheon-public/build-tools-ci image
docker:
- image: drupaldocker/php:7.2-cli
steps:
- checkout
- restore_cache:
keys:
- composer-cache
- run:
name: install dev dependencies
command: composer install --no-ansi --no-interaction --optimize-autoloader --no-progress
- save_cache:
key: composer-cache
paths:
- $HOME/.composer/cache
- persist_to_workspace:
# Must be relative path from working_directory
root: .
# Must be relative path from root
paths:
- vendor
code_sniff_unit_test:
<<: *defaults
# override the default image with drupaldocker/php as this job
# doesn't need Pantheon specific items such as Terminus that are
# in the quay.io/pantheon-public/build-tools-ci image
docker:
- image: drupaldocker/php:7.2-cli
steps:
- checkout
- attach_workspace:
# Must be absolute path or relative path from working_directory
at: /tmp
- run:
name: copy vendor/web
command: cp -r /tmp/vendor .
- run:
name: check for WordPress coding standards
command: composer -n code-sniff
- run:
name: run unit tests
command: composer -n unit-test
build_css_js:
<<: *defaults
docker:
- image: circleci/node:9.9-stretch
steps:
- checkout
- run:
name: Check current version of node
command: npm -v
- run:
name: compile css/js
command: 'cd $HOME/example_wordpress_composer/web/wp-content/themes/lfevents/; npm install; npm run build'
- persist_to_workspace:
root: web/wp-content/themes/lfevents
paths:
- dist
build_and_deploy_lfeventsci:
<<: *defaults
steps:
- checkout
- restore_cache:
keys:
- composer-cache
- terminus-install
- attach_workspace:
at: /tmp
- run:
name: copy dist
command: cp -r /tmp/dist $HOME/example_wordpress_composer/web/wp-content/themes/lfevents/
- run:
name: dependencies
command: ./.circleci/set-up-globals.sh
- run:
name: build assets
command: composer -n build-assets
- run:
name: deploy to Pantheon
command: ./.circleci/deploy-to-pantheon.sh $TERMINUS_SITE
build_and_deploy_lfasiallcci:
<<: *defaults
steps:
- checkout
- restore_cache:
keys:
- composer-cache
- terminus-install
- attach_workspace:
at: /tmp
- run:
name: copy dist
command: cp -r /tmp/dist $HOME/example_wordpress_composer/web/wp-content/themes/lfevents/
- run:
name: dependencies
command: ./.circleci/set-up-globals.sh
- run:
name: build assets
command: composer -n build-assets
- run:
name: deploy to Pantheon
command: ./.circleci/deploy-to-pantheon.sh $TERMINUS_SITE2
behat_test_lfeventsci:
<<: *defaults
steps:
- checkout
- attach_workspace:
# Must be absolute path or relative path from working_directory
at: /tmp
- restore_cache:
keys:
- terminus-install
- run:
name: copy vendor
command: cp -r /tmp/vendor .
- run:
name: dependencies
command: ./.circleci/set-up-globals.sh
- run:
name: run Behat tests
command: ./.circleci/behat-test.sh
- run:
name: run Behat cleanup
command: ./.circleci/behat-test-cleanup.sh
when: always
wraith_test_lfeventsci:
docker:
- image: liquidweb/wraith
steps:
- checkout
- run:
name: run Wraith tests
command: ./.circleci/wraith-test.sh $TERMINUS_SITE
- store_artifacts:
path: ./wraith/shots
wraith_test_lfasiallcci:
docker:
- image: liquidweb/wraith
steps:
- checkout
- run:
name: run Wraith tests
command: ./.circleci/wraith-test.sh $TERMINUS_SITE2
- store_artifacts:
path: ./wraith/shots
workflows:
version: 2
build_and_test:
jobs:
# Install dev dependencies
- build
- build_css_js
# Build and deploy
- build_and_deploy_lfeventsci:
requires:
- build_css_js
- build_and_deploy_lfasiallcci:
requires:
- build_css_js
# Code sniff and unit text first
- code_sniff_unit_test:
requires:
- build
# Run Behat tests after deploy so they can be done on Pantheon
# commenting out behat tests until we need them.
# - behat_test_lfeventsci:
# requires:
# - build
# - build_and_deploy_lfeventsci
- wraith_test_lfeventsci:
requires:
- build_and_deploy_lfeventsci
# - behat_test_lfeventsci
- wraith_test_lfasiallcci:
requires:
- build_and_deploy_lfasiallcci
# - build_and_deploy_lfasiallcci

49
.circleci/deploy-to-pantheon.sh Executable file
View File

@ -0,0 +1,49 @@
#!/bin/bash
TERMINUS_S=$1
set -ex
TERMINUS_DOES_MULTIDEV_EXIST()
{
# Return 0 (true in shell scripts) if on master since dev always exists
if [[ ${CIRCLE_BRANCH} == "master" ]]
then
return 0;
fi
# Stash list of Pantheon multidev environments
PANTHEON_MULTIDEV_LIST="$(terminus multidev:list -n ${TERMINUS_S} --format=list --field=Name)"
while read -r multiDev; do
if [[ "${multiDev}" == "$1" ]]
then
return 0;
fi
done <<< "$PANTHEON_MULTIDEV_LIST"
return 1;
}
# I don't know if on non-pull requests CIRCLE_PULL_REQUEST is empty or complete
# absent -z will return true in either cases.
if [[ ${CIRCLE_BRANCH} != "master" && -z ${CIRCLE_PULL_REQUEST} ]];
then
echo -e "CircleCI will only deploy to Pantheon if on the master branch or creating a pull requests.\n"
exit 0;
fi
if ! TERMINUS_DOES_MULTIDEV_EXIST ${TERMINUS_ENV}
then
terminus env:wake -n "$TERMINUS_S.dev"
terminus build:env:create -n "$TERMINUS_S.dev" "$TERMINUS_ENV" --clone-content --yes --notify="$NOTIFY"
else
terminus build:env:push -n "$TERMINUS_S.$TERMINUS_ENV" --yes
fi
set +ex
echo 'terminus secrets:set'
terminus secrets:set -n "$TERMINUS_S.$TERMINUS_ENV" token "$GITHUB_TOKEN" --file='github-secrets.json' --clear --skip-if-empty
set -ex
# Cleanup old multidevs
terminus build:env:delete:pr -n "$TERMINUS_S" --yes

62
.circleci/set-up-globals.sh Executable file
View File

@ -0,0 +1,62 @@
#!/bin/bash
set -ex
#=====================================================================================================================
# Start EXPORTing needed environment variables
# Circle CI 2.0 does not yet expand environment variables so they have to be manually EXPORTed
# Once environment variables can be expanded this section can be removed
# See: https://discuss.circleci.com/t/unclear-how-to-work-with-user-variables-circleci-provided-env-variables/12810/11
# See: https://discuss.circleci.com/t/environment-variable-expansion-in-working-directory/11322
# See: https://discuss.circleci.com/t/circle-2-0-global-environment-variables/8681
#=====================================================================================================================
echo 'export PATH=$PATH:$HOME/bin:$HOME/terminus/bin' >> $BASH_ENV
echo 'export BRANCH=$(echo $CIRCLE_BRANCH | grep -v '"'"'^\(master\|[0-9]\+.x\)$'"'"')' >> $BASH_ENV
echo 'export PR_ENV=${BRANCH:+pr-$BRANCH}' >> $BASH_ENV
echo 'export CIRCLE_ENV=ci-$CIRCLE_BUILD_NUM' >> $BASH_ENV
# If we are on a pull request
if [[ $CIRCLE_BRANCH != "master" && -n ${CIRCLE_PULL_REQUEST+x} ]]
then
# Then use a pr- branch/multidev
PR_NUMBER=${CIRCLE_PULL_REQUEST##*/}
PR_BRANCH="pr-${PR_NUMBER}"
echo "export DEFAULT_ENV=pr-${PR_NUMBER}" >> $BASH_ENV
else
# otherwise make the branch name multidev friendly
if [[ $CIRCLE_BRANCH == "master" ]]
then
echo "export DEFAULT_ENV=dev" >> $BASH_ENV
else
echo 'export DEFAULT_ENV=$(echo ${PR_ENV:-$CIRCLE_ENV} | tr '"'"'[:upper:]'"'"' '"'"'[:lower:]'"'"' | sed '"'"'s/[^0-9a-z-]//g'"'"' | cut -c -11 | sed '"'"'s/-$//'"'"')' >> $BASH_ENV
fi
fi
echo 'export TERMINUS_ENV=${TERMINUS_ENV:-$DEFAULT_ENV}' >> $BASH_ENV
source $BASH_ENV
#===========================================
# End EXPORTing needed environment variables
#===========================================
# Add a Git token for Composer
if [ -n "$GITHUB_TOKEN" ] ; then
composer config --global github-oauth.github.com $GITHUB_TOKEN
fi
# Bail on errors
set +ex
# Make sure Terminus is installed
terminus --version
# Authenticate with Terminus
terminus auth:login -n --machine-token="$TERMINUS_TOKEN"
# Disable host checking
touch $HOME/.ssh/config
echo "StrictHostKeyChecking no" >> "$HOME/.ssh/config"
# Configure Git credentials
git config --global user.email "$GIT_EMAIL"
git config --global user.name "Circle CI"
# Ignore file permissions.
git config --global core.fileMode false

60
.circleci/wraith-test.sh Executable file
View File

@ -0,0 +1,60 @@
#!/bin/bash
TERMINUS_S=$1
echo 'export PATH=$PATH:$HOME/bin:$HOME/terminus/bin' >> $BASH_ENV
echo 'export BRANCH=$(echo $CIRCLE_BRANCH | grep -v '"'"'^\(master\|[0-9]\+.x\)$'"'"')' >> $BASH_ENV
echo 'export PR_ENV=${BRANCH:+pr-$BRANCH}' >> $BASH_ENV
echo 'export CIRCLE_ENV=ci-$CIRCLE_BUILD_NUM' >> $BASH_ENV
# If we are on a pull request
if [[ $CIRCLE_BRANCH != "master" && -n ${CIRCLE_PULL_REQUEST+x} ]]
then
# Then use a pr- branch/multidev
PR_NUMBER=${CIRCLE_PULL_REQUEST##*/}
PR_BRANCH="pr-${PR_NUMBER}"
echo "export DEFAULT_ENV=pr-${PR_NUMBER}" >> $BASH_ENV
else
# otherwise make the branch name multidev friendly
if [[ $CIRCLE_BRANCH == "master" ]]
then
echo "export DEFAULT_ENV=dev" >> $BASH_ENV
else
echo 'export DEFAULT_ENV=$(echo ${PR_ENV:-$CIRCLE_ENV} | tr '"'"'[:upper:]'"'"' '"'"'[:lower:]'"'"' | sed '"'"'s/[^0-9a-z-]//g'"'"' | cut -c -11 | sed '"'"'s/-$//'"'"')' >> $BASH_ENV
fi
fi
echo 'export TERMINUS_ENV=${TERMINUS_ENV:-$DEFAULT_ENV}' >> $BASH_ENV
source $BASH_ENV
if [[ (${CIRCLE_BRANCH} != "master" && -z ${CIRCLE_PULL_REQUEST+x}) || (${CIRCLE_BRANCH} == "master" && -n ${CIRCLE_PULL_REQUEST+x}) ]];
then
echo -e "CircleCI will only run Wraith tests on Pantheon if on the master branch or creating a pull requests.\n"
exit 0;
fi
# Bail if required environment varaibles are missing
if [ -z "$TERMINUS_S" ] || [ -z "$TERMINUS_ENV" ]
then
echo 'No test site specified. Set TERMINUS_SITE and TERMINUS_ENV.'
exit 1
fi
echo "::::::::::::::::::::::::::::::::::::::::::::::::"
echo "Wraith test site: $TERMINUS_S.$TERMINUS_ENV"
echo "::::::::::::::::::::::::::::::::::::::::::::::::"
echo
# Exit immediately on errors
set -ex
# Run the Wraith tests
cd wraith
cp configs/capture.yaml.template configs/capture.yaml
cat >>configs/capture.yaml <<EOL
# (required) The domains to take screenshots of.
domains:
current: "http://live-$TERMINUS_S.pantheonsite.io"
new: "https://$TERMINUS_ENV-$TERMINUS_S.pantheonsite.io"
EOL
wraith capture capture
# Change back into previous directory
cd -

137
.gitignore vendored Normal file
View File

@ -0,0 +1,137 @@
###
### GitHub repository .gitignore section
###
# Ignore directories generated by Composer
/vendor/
# Webroot #
###########
!web/
web/*
!web/index.php
!web/wp-cli.yml
!web/wp-config.php
!web/wp-content/
web/wp-content/*
!web/wp-content/mu-plugins/
web/wp-content/mu-plugins/*
!web/wp-content/mu-plugins/custom
!web/wp-content/mu-plugins/lfevents.php
!web/wp-content/mu-plugins/.gitkeep
!web/wp-content/plugins/
web/wp-content/plugins/*
!web/wp-content/plugins/custom/
!web/wp-content/plugins/.gitkeep
!web/wp-content/themes
!web/wp-content/config/
web/wp
!web/private/
web/private/*
!web/private/scripts/
web/private/scripts/quicksilver
!web/private/config/
!.circleci
# Add directories containing build assets below.
# Keep all additions above the "cut" line.
.lando.yml
behat-local.yml
wraith/configs/capture.yaml
wraith/shots
web/wp-content/themes/twentynineteen/node_modules
# :::::::::::::::::::::: cut ::::::::::::::::::::::
###
### Pantheon site .gitignore section
###
### Items below the "cut" line are still ignored on
### the Pantheon site. Items above the "cut" line
### are ignored in the GitHub repository, but committed
### to the Pantheon repository.
###
# WordPress #
############
web/wp-config-local.php
web/wp-cli.local.yml
web/wp-content/uploads
web/wp-content/blogs.dir/
web/wp-content/upgrade/
web/wp-content/backup-db/
web/wp-content/updraft/
web/wp-content/backupwordpress-*/
web/wp-content/managewp/backups/
web/wp-content/advanced-cache.php
web/wp-content/wp-cache-config.php
web/sitemap.xml
web/sitemap.xml.gz
*.log
# @TODO writable paths
web/wp-content/cache/
web/wp-content/backups/
# Avoid accidental modification of pantheon.upstream.yml in sites
# created from this upstream
pantheon.upstream.yml
# Packages #
############
*.7z
*.dmg
*.gz
*.bz2
*.iso
*.jar
*.rar
*.tar
*.zip
*.tgz
# Logs and databases #
######################
*.log
*.sql
# OS generated files #
######################
.DS_Store*
ehthumbs.db
Icon?
Thumbs.db
._*
# Vim generated files #
######################
*.un~
# SASS #
##########
.sass-cache
# Allowing Gravity Forms plugins #
!web/wp-content/plugins/gravityforms
!web/wp-content/plugins/gravityformssalesforce
!web/wp-content/plugins/gravityplus-dynamic-population-salesforce
!web/wp-content/plugins/gravityplus-dynamic-population
# Allowing other premium plugins #
!web/wp-content/plugins/search-filter-pro
!web/wp-content/plugins/wp-rss-feed-to-post
!web/wp-content/plugins/wp-media-library-categories
!web/wp-content/plugins/stackable-ultimate-gutenberg-blocks-premium
# Allowing custom plugins
!web/wp-content/plugins/speakers-block
web/wp-content/plugins/speakers-block/node_modules
!web/wp-content/plugins/sponsors-block
web/wp-content/plugins/sponsors-block/node_modules
!web/wp-content/plugins/text-on-image-block
web/wp-content/plugins/text-on-image-block/node_modules
!web/wp-content/plugins/pricing-block
web/wp-content/plugins/pricing-block/node_modules
!web/wp-content/plugins/tab-container-block
web/wp-content/plugins/tab-container-block/node_modules

21
LICENSE Normal file
View File

@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2014 Reload!
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

209
README.md Normal file
View File

@ -0,0 +1,209 @@
[![CircleCI](https://circleci.com/gh/LF-Engineering/lfevents.svg?style=shield&circle-token=97ff5f114ec48d9c1595975ac16ee11d7f87014a)](https://circleci.com/gh/LF-Engineering/lfevents)
[![Dashboard lfevents](https://img.shields.io/badge/dashboard-lfeventsci-yellow.svg)](https://dashboard.pantheon.io/sites/f74d847c-e689-4631-a91b-24b7f897139b#dev/code)
[![Dev Site lfevents](https://img.shields.io/badge/demo%20site-lfeventsci-lightgrey.svg)](https://dev-lfeventsci.pantheonsite.io/kubecon-cloudnativecon-europe/)
[![Admin Instructions](https://img.shields.io/badge/-admin%20instructions-blue.svg)](https://docs.google.com/document/d/1mvIuw-R9k_gbnZn_iV04qNTjG33u_lXwFlN7s-lgJ1Y/edit?usp=sharing)
# LFEvents Developer Instructions
LFEvents uses a Continuous Integration (CI) infrastructure via github, CircleCI and Pantheon. These instructions help you get a local instance up and running and explain how to run the various tests.
All these tests are run by CircleCI on each commit to the master branch, whenever a PR is created on a branch, and on each commit to a branch that has a PR open. Such branches will have a multidev env automatically created for them by CircleCI to facilitate showing to stakeholders. Once the PR is merged, the env will be automatically deleted.
For instructions on how to configure [the resulting site](https://events.linuxfoundation.org) to host events, please see the [Admin Instructions](https://docs.google.com/document/d/1mvIuw-R9k_gbnZn_iV04qNTjG33u_lXwFlN7s-lgJ1Y/edit?usp=sharing).
-----
## Install Local Instance
### Requirements
* Install [Lando](https://docs.devwithlando.io/) (a Docker Compose utility / abstraction layer). On a Mac using brew, the command is `brew cask install lando`.
* Install [Terminus](https://pantheon.io/docs/terminus/install/) (CLI for interaction with Pantheon). Follow all the instructions on that page to setup a [machine token](https://pantheon.io/docs/terminus/install/#machine-token) and [SSH Authentication](https://pantheon.io/docs/terminus/install/#ssh-authentication). Save the machine token for use in step 2 below.
* You need a GitHub [personal access token](https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line) to use in place of a password for performing Git operations over HTTPS.
* [Node](https://nodejs.org/)/[NPM](https://www.npmjs.com/) (for theme development)
### Lando Setup
(these steps were derived from [instructions provided by Pantheon](https://github.com/pantheon-systems/example-wordpress-composer#working-locally-with-lando))
1. Clone this repository with HTTPS (not SSH): `git clone https://github.com/LF-Engineering/lfevents.git`
* Note that the repo does not contain all of WordPress, 3rd-party themes and plugins. They will be pulled in via [composer](https://getcomposer.org/) in step 4.
2. Run `lando init` and use the following values when prompted:
* `From where should we get your app's codebase?` > `current working directory`
* `What recipe do you want to use?` > `pantheon`
* `Enter a Pantheon machine token` > `[enter the Pantheon token you got above]`
* `Which site?` > `lfeventsci`
3. Run `lando start` and note the local site URL provided at the end of the process
4. Run `lando composer install --no-ansi --no-interaction --optimize-autoloader --no-progress` to download dependencies
5. Run `lando pull --code=none` and follow the prompts to download the media files and database from Pantheon:
* `Pull database from?` > `dev`
* `Pull files from?` > `dev`
6. You will need to compile the theme css/js before the site will render correctly:
1. Go to the theme directory: `cd web/wp-content/themes/lfevents`
2. Install the Node.js dependencies: `npm install`
3. Compile the files: `npm run build`
7. Visit the local site URL saved from above. To find it again run `lando info`.
8. In the admin you will need to edit the [Search & Filter](https://lfeventsci.lndo.site/wp/wp-admin/edit.php?post_type=search-filter-widget) settings. The full url to the result pages are hardcoded in the "Display Results" of each filter. These will need to be set to the correpsonding local instance url.
9. Get your browser to trust the Lando SSL certificate by following [these instructions](https://docs.lando.dev/config/security.html#trusting-the-ca). This step isn't essential but will stop you having to keep bypassing the privacy warning in your browser. On MacOS Catalina, I also had to manually go into Keychain Access and set the *.lndo.site certificate to “Always Trust”. See [screenshot](ca-screenshot.png).
### Notes
* You can stop Lando with `lando stop` and start it again with `lando start`
* Composer, Terminus and wp-cli commands should be run in Lando rather than on the host machine. This is done by prefixing the desired command with `lando`. For example, after a change to composer.json, run `lando composer update` rather than `composer update`.
* Run `lando pull --code=none` at any time to pull down a fresh copy of the database and files from Pantheon
-----
## Theme Development
LFEvents uses a fork of the [FoundationPress](https://github.com/olefredrik/foundationpress) theme. To optionally use Browsersync, copy `config-default.yml` to `config.yml` (git ignores this file) and change the Browsersync URL (line 4) to `https://lfeventsci.lndo.site/`. Run `npm start` to compile CSS and JS to `dist/` (git ignores this directory) as changes are made to the source files. When deployed, `dist/` files are compiled and minified with `npm run build` through CircleCI.
-----
## Wordhat Tests
The CircleCI job runs [Wordhat](https://wordhat.info/) tests after each commit. They interact with the site through a chrome headless browser. The tests are stored in tests/behat/. Here's a [quick intro](https://wordhat.info/getting-started/behat-intro.html) on how to write tests.
Create a behat-local.yml like this:
```
cp tests/behat/behat-pantheon.yml behat-local.yml
```
Edit behat-local.yml to have the bottom half of the file like this. You'll need to fill in your own admin password and update the `base_url` and `site_url` params:
```
extensions:
Behat\MinkExtension:
base_url: https://lfeventsci.lndo.site
browser_name: chrome
sessions:
default:
chrome:
api_url: "http://localhost:9222"
validate_certificate: false
PaulGibbs\WordpressBehatExtension:
users:
-
roles:
- administrator
username: admin
password: xxx
default_driver: wpcli
site_url: https://lfeventsci.lndo.site/wp
path: web/wp
DMore\ChromeExtension\Behat\ServiceContainer\ChromeExtension: ~
```
You need to have chrome running in headless mode in order for the tests to run. I accomplished that on macos like this:
```
alias chrome="/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome"
chrome --headless --remote-debugging-port=9222 https://www.chromestatus.com&
```
Then to run the tests:
```
vendor/bin/behat --config=behat-local.yml
```
-----
## Wraith Tests
[Wraith](https://github.com/BBC-News/wraith) performs visual regression tests by comparing two versions of the site. It is a great way to spot unintended render issues across the site.
Install wraith system-wide using [the instructions here](http://bbc-news.github.io/wraith/index.html).
Then setup your own config file:
```
cd wraith
cp configs/capture-local.yaml.template configs/capture.yaml
```
Edit configs/capture.yaml to update the new domain to point to your local instance.
Run wraith: `wraith capture configs/capture.yaml`
View the diff gallery: `open shots/gallery.html`
-----
## Code Sniffs
The CircleCI process has a job to sniff the code to make sure it complies with WordPress coding standards. All Linux Foundation code should comply with [these guidelines](https://docs.google.com/document/d/1TYqCwG874i6PdJDf5UX9gnCZaarvf121G1GdNH7Vl5k/edit#heading=h.dz20heii56uf).
phpcs and the [WordPress Coding Standards for PHP_CodeSniffer](https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards) come as part of the repo and are installed in the vendor directory by composer. phpcs can be run on the command line like this:
```
./vendor/bin/phpcs --standard=WordPress ./web/wp-content
```
For convenience on local instances, use this command to ignore particular files and ignore warnings:
```
./vendor/bin/phpcs -n -s --ignore=*/dist/*,*/node_modules/*,*gulpfile*,*/uploads/*,*/plugins/*,*instantpage*,*pantheon* -d memory_limit=1024M --standard=WordPress ./web/wp-content
```
It's even more convenient to [install into your text editor](https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards#using-phpcs-and-wpcs-from-within-your-ide).
Since the lfeventsci repo includes phpcs via composer, it will use that version of the binary even though you may have phpcs installed system-wide. So in the root of the repo you'll need to run the following so that it can find the WordPress standards from within your code editor:
```
./vendor/bin/phpcs --config-set installed_paths ~/Sites/lfeventsci/vendor/wp-coding-standards/wpcs
```
-----
## Upgrading WordPress core, themes and plugins
Dependencies of this project are managed by [Composer](https://getcomposer.org/). All dependencies of the project are set in [composer.json](https://github.com/LF-Engineering/lfevents/blob/master/composer.json) and are pulled in at deploy time according to what is set in [composer.lock](https://github.com/LF-Engineering/lfevents/blob/master/composer.lock).
composer.lock is generated from composer.json only when explicitly calling the `composer update` function. Any additional themes or plugins can be added first to composer.json and then `composer update package` is run to update composer.lock and pull in the new files. Dependencies are pegged to a version according to the composer [versioning rules](https://getcomposer.org/doc/articles/versions.md).
It's good practice to keep WordPress and all plugins set at their latest releases to inherit any security patches and upgraded functionality. Upgrading to a new version, however, sometimes has unintended consequences so it's critical to run all tests before deploying live.
To upgrade the version of a dependency, follow these steps:
1. Edit [composer.json](https://github.com/LF-Engineering/lfevents/blob/master/composer.json) to set the new version rule
2. Run `lando composer update [package]` to update [composer.lock](https://github.com/LF-Engineering/lfevents/blob/master/composer.lock) for just that package or run `lando composer update` to upgrade all packages to the latest versions which satisfy the constraints set in composer.json
3. Test the site locally
4. Check in to github and allow the tests to run
5. Test the dev instance to make sure all looks good
6. Deploy live
-----
## Sponsors
<a href="http://browserstack.com"><img width="300px" src="browserstack.svg"></a>

90
browserstack.svg Normal file
View File

@ -0,0 +1,90 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 490.1 105.6" style="enable-background:new 0 0 490.1 105.6;" xml:space="preserve">
<style type="text/css">
.st0{fill:#F4B960;}
.st1{fill:#E66F32;}
.st2{fill:#E43C41;}
.st3{fill:#BDD041;}
.st4{fill:#6DB54C;}
.st5{fill:#AEDAE6;}
.st6{fill:#56B8DE;}
.st7{fill:#00B1D5;}
.st8{fill:url(#SVGID_1_);}
.st9{fill:#221F1F;}
.st10{fill:#FFFFFF;}
.st11{fill:#000111;}
</style>
<title>Browserstack-logo-white</title>
<circle class="st0" cx="52.8" cy="52.8" r="52.8"/>
<circle class="st1" cx="47.5" cy="47.5" r="47.5"/>
<circle class="st2" cx="53.8" cy="41.1" r="41.1"/>
<circle class="st3" cx="57.1" cy="44.4" r="37.8"/>
<circle class="st4" cx="54.3" cy="47.2" r="35.1"/>
<circle class="st5" cx="48.8" cy="41.7" r="29.5"/>
<circle class="st6" cx="53.6" cy="36.8" r="24.7"/>
<circle class="st7" cx="56.6" cy="39.9" r="21.7"/>
<radialGradient id="SVGID_1_" cx="53.45" cy="63.02" r="18.57" gradientTransform="matrix(1 0 0 -1 0 106)" gradientUnits="userSpaceOnUse">
<stop offset="0" style="stop-color:#797979"/>
<stop offset="1" style="stop-color:#4C4C4C"/>
</radialGradient>
<circle class="st8" cx="53.5" cy="43" r="18.6"/>
<circle class="st9" cx="53.5" cy="43" r="18.6"/>
<ellipse transform="matrix(0.4094 -0.9123 0.9123 0.4094 2.8913 76.9251)" class="st10" cx="60.9" cy="36.2" rx="5.7" ry="3.7"/>
<path class="st11" d="M122.5,32.6c0-0.3,0.3-0.6,0.6-0.6c0,0,0,0,0.1,0h16.6c9.5,0,13.9,4.4,13.9,11c0.2,3.7-1.8,7.2-5.2,8.8v0.1
c3.7,1.5,6.1,5.2,6,9.3c0,8.2-5.6,12.2-15.4,12.2h-16c-0.3,0-0.6-0.2-0.7-0.5c0,0,0,0,0-0.1L122.5,32.6L122.5,32.6z M139.6,49.1
c3.9,0,6.4-2.2,6.4-5.4s-2.4-5.5-6.4-5.5h-8.9c-0.2,0-0.4,0.1-0.4,0.3c0,0,0,0,0,0.1v10.2c0,0.2,0.1,0.3,0.3,0.4c0,0,0,0,0.1,0
H139.6L139.6,49.1z M130.6,66.9h9.3c4.3,0,6.8-2.3,6.8-5.8s-2.4-5.7-6.7-5.7h-9.3c-0.2,0-0.4,0.1-0.4,0.3c0,0,0,0,0,0.1v10.7
C130.3,66.8,130.4,66.9,130.6,66.9C130.6,66.9,130.6,66.9,130.6,66.9L130.6,66.9z"/>
<path class="st11" d="M159.9,73.3c-0.3,0-0.6-0.2-0.7-0.5c0,0,0,0,0-0.1V44.6c0-0.3,0.3-0.6,0.6-0.6c0,0,0,0,0.1,0h6
c0.3,0,0.6,0.2,0.7,0.5c0,0,0,0,0,0.1v2.5h0.1c1.5-2.2,4.2-3.8,8.2-3.8c2.4,0,4.8,0.8,6.6,2.4c0.3,0.3,0.4,0.5,0.1,0.8l-3.5,4.1
c-0.2,0.3-0.6,0.4-0.9,0.2c0,0,0,0-0.1,0c-1.4-0.9-3-1.4-4.7-1.4c-4.1,0-6,2.7-6,7.4v15.9c0,0.3-0.3,0.6-0.6,0.6c0,0,0,0-0.1,0
H159.9L159.9,73.3z"/>
<path class="st11" d="M182.9,65.8c-0.8-2.3-1.1-4.8-1.1-7.2c-0.1-2.5,0.3-4.9,1.1-7.2c1.8-5.1,6.6-8.1,13.1-8.1s11.2,3,13,8.1
c0.8,2.3,1.1,4.8,1.1,7.2c0.1,2.5-0.3,4.9-1.1,7.2c-1.8,5.1-6.6,8.1-13,8.1S184.7,71,182.9,65.8z M201.9,64c0.5-1.7,0.8-3.6,0.7-5.4
c0.1-1.8-0.1-3.7-0.7-5.4c-0.9-2.5-3.3-4-5.9-3.8c-2.6-0.2-5.1,1.4-6,3.8c-0.5,1.8-0.8,3.6-0.7,5.4c-0.1,1.8,0.1,3.7,0.7,5.4
c0.9,2.5,3.4,4,6,3.8C198.6,68,201,66.5,201.9,64L201.9,64z"/>
<path class="st11" d="M241.9,73.3c-0.4,0-0.7-0.3-0.8-0.6L235,53.9h-0.1l-6.2,18.7c-0.1,0.4-0.4,0.6-0.8,0.6h-5.4
c-0.4,0-0.7-0.3-0.8-0.6l-10-28.1c-0.1-0.2,0-0.5,0.2-0.6c0.1,0,0.2-0.1,0.3,0h6.3c0.4,0,0.8,0.2,0.9,0.6l6.1,19.3h0.1l6-19.3
c0.1-0.4,0.5-0.6,0.9-0.6h4.7c0.4,0,0.7,0.2,0.9,0.6l6.4,19.3h0.1l5.8-19.3c0.1-0.4,0.5-0.7,0.9-0.6h6.3c0.2-0.1,0.5,0.1,0.5,0.3
c0,0.1,0,0.2,0,0.3l-10,28.1c-0.1,0.4-0.4,0.6-0.8,0.6L241.9,73.3L241.9,73.3z"/>
<path class="st11" d="M259.3,69.3c-0.2-0.2-0.3-0.6-0.1-0.8c0,0,0,0,0.1-0.1l3.7-3.6c0.3-0.2,0.7-0.2,0.9,0c2.6,2.1,5.9,3.3,9.3,3.3
c3.9,0,5.9-1.5,5.9-3.5c0-1.8-1.1-2.9-5.2-3.2l-3.4-0.3c-6.4-0.6-9.7-3.6-9.7-8.6c0-5.7,4.4-9.2,12.3-9.2c4.2-0.1,8.4,1.2,11.9,3.6
c0.3,0.2,0.3,0.5,0.2,0.8c0,0,0,0,0,0.1l-3.2,3.6c-0.2,0.3-0.6,0.3-0.9,0.1c-2.5-1.5-5.4-2.4-8.3-2.4c-3.1,0-4.8,1.3-4.8,3
s1.1,2.7,5.2,3.1l3.4,0.3c6.6,0.6,9.8,3.8,9.8,8.6c0,5.8-4.6,9.9-13.3,9.9C268,74,263.2,72.4,259.3,69.3z"/>
<path class="st11" d="M291.2,65.8c-0.8-2.3-1.2-4.7-1.1-7.2c-0.1-2.5,0.3-4.9,1-7.2c1.8-5.1,6.6-8.1,12.9-8.1c6.5,0,11.2,3.1,13,8.1
c0.7,2.1,1,4.1,1,8.8c0,0.3-0.3,0.6-0.6,0.6c0,0-0.1,0-0.1,0h-19.5c-0.2,0-0.4,0.1-0.4,0.3c0,0,0,0,0,0.1c0,0.8,0.2,1.5,0.5,2.2
c1,2.9,3.5,4.4,7.1,4.4c2.7,0.1,5.4-0.9,7.4-2.8c0.2-0.3,0.7-0.4,1-0.1c0,0,0,0,0,0l3.9,3.2c0.2,0.1,0.3,0.5,0.2,0.7
c0,0.1-0.1,0.1-0.1,0.1c-2.7,2.9-7.2,5-13,5C297.8,73.9,293,70.9,291.2,65.8z M310.4,52.8c-0.9-2.4-3.2-3.8-6.2-3.8
s-5.4,1.4-6.2,3.8c-0.3,0.8-0.4,1.6-0.4,2.5c0,0.2,0.1,0.3,0.3,0.4c0,0,0,0,0.1,0h12.4c0.2,0,0.4-0.1,0.4-0.3c0,0,0,0,0-0.1
C310.8,54.5,310.6,53.6,310.4,52.8L310.4,52.8z"/>
<path class="st11" d="M323.6,73.3c-0.3,0-0.6-0.2-0.7-0.5c0,0,0,0,0-0.1V44.6c0-0.3,0.3-0.6,0.6-0.6c0,0,0,0,0.1,0h6
c0.3,0,0.6,0.2,0.7,0.5c0,0,0,0,0,0.1v2.5h0.1c1.5-2.2,4.2-3.8,8.2-3.8c2.4,0,4.8,0.8,6.6,2.4c0.3,0.3,0.4,0.5,0.1,0.8l-3.5,4.1
c-0.2,0.3-0.6,0.4-0.9,0.2c0,0,0,0-0.1,0c-1.4-0.9-3-1.4-4.7-1.4c-4.1,0-6,2.7-6,7.4v15.9c0,0.3-0.3,0.6-0.6,0.6c0,0,0,0-0.1,0
H323.6L323.6,73.3z"/>
<path class="st11" d="M346.5,68.5c-0.3-0.2-0.4-0.6-0.2-0.9c0,0,0,0,0,0l4.1-4.4c0.2-0.3,0.6-0.3,0.9-0.1c0,0,0,0,0,0
c3.5,2.7,7.7,4.2,12.1,4.4c5.3,0,8.4-2.5,8.4-6c0-3-2-4.9-8.1-5.7l-2.4-0.3c-8.6-1.1-13.5-4.9-13.5-11.8c0-7.5,5.9-12.4,15.1-12.4
c5.1-0.1,10.1,1.4,14.5,4.2c0.3,0.1,0.4,0.4,0.2,0.7c0,0.1-0.1,0.1-0.1,0.2l-3.1,4.5c-0.2,0.3-0.6,0.4-0.9,0.2
c-3.2-2.1-6.9-3.2-10.7-3.2c-4.5,0-7,2.3-7,5.5c0,2.9,2.2,4.8,8.2,5.6l2.4,0.3c8.6,1.1,13.3,4.9,13.3,12c0,7.3-5.7,12.8-16.8,12.8
C356.3,73.9,350,71.5,346.5,68.5z"/>
<path class="st11" d="M393.3,73.8c-6.4,0-8.8-2.9-8.8-8.6V49.8c0-0.2-0.1-0.3-0.3-0.4c0,0,0,0-0.1,0H382c-0.3,0-0.6-0.2-0.7-0.5
c0,0,0,0,0-0.1v-4.1c0-0.3,0.3-0.6,0.6-0.6c0,0,0,0,0.1,0h2.1c0.2,0,0.4-0.1,0.4-0.3c0,0,0,0,0-0.1v-8c0-0.3,0.3-0.6,0.6-0.6
c0,0,0,0,0.1,0h6c0.3,0,0.6,0.2,0.7,0.5c0,0,0,0,0,0.1v8c0,0.2,0.1,0.3,0.3,0.4c0,0,0,0,0.1,0h4.2c0.3,0,0.6,0.2,0.7,0.5
c0,0,0,0,0,0.1v4.1c0,0.3-0.3,0.6-0.6,0.6c0,0,0,0-0.1,0h-4.2c-0.2,0-0.4,0.1-0.4,0.3c0,0,0,0,0,0.1V65c0,2.1,0.9,2.7,3,2.7h1.6
c0.3,0,0.6,0.2,0.7,0.5c0,0,0,0,0,0.1v4.9c0,0.3-0.3,0.6-0.6,0.6c0,0,0,0-0.1,0L393.3,73.8L393.3,73.8z"/>
<path class="st11" d="M421.2,73.3c-0.3,0-0.6-0.2-0.7-0.5c0,0,0,0,0-0.1v-2.1h0c-1.5,2-4.5,3.4-8.9,3.4c-5.8,0-10.6-2.8-10.6-8.9
c0-6.4,4.9-9.3,12.7-9.3h6.4c0.2,0,0.4-0.1,0.4-0.3c0,0,0,0,0-0.1v-1.4c0-3.3-1.7-4.9-7-4.9c-2.6-0.1-5.1,0.6-7.2,2
c-0.3,0.2-0.7,0.2-0.9-0.1c0,0,0,0,0-0.1l-2.4-4c-0.2-0.2-0.1-0.6,0.1-0.8c0,0,0,0,0,0c2.6-1.7,6-2.9,11.2-2.9
c9.6,0,13.2,3,13.2,10.2v19.1c0,0.3-0.3,0.6-0.6,0.6c0,0,0,0-0.1,0H421.2L421.2,73.3z M420.4,63.4v-2.2c0-0.2-0.1-0.3-0.3-0.4
c0,0,0,0-0.1,0h-5.2c-4.7,0-6.8,1.2-6.8,3.9c0,2.4,1.9,3.6,5.5,3.6C417.9,68.4,420.4,66.8,420.4,63.4L420.4,63.4z"/>
<path class="st11" d="M433.1,65.8c-0.7-2.3-1.1-4.8-1-7.2c-0.1-2.4,0.3-4.9,1-7.2c1.8-5.2,6.7-8.1,13.1-8.1c4.2-0.2,8.2,1.5,11,4.6
c0.2,0.2,0.2,0.6,0,0.8c0,0,0,0-0.1,0.1l-4.1,3.3c-0.3,0.2-0.7,0.2-0.9-0.1c0,0,0,0,0-0.1c-1.5-1.7-3.6-2.6-5.9-2.5
c-2.8,0-5,1.3-5.9,3.8c-0.5,1.8-0.8,3.6-0.7,5.4c-0.1,1.8,0.1,3.7,0.7,5.5c0.9,2.5,3.1,3.8,5.9,3.8c2.2,0.1,4.4-0.9,5.9-2.6
c0.2-0.3,0.6-0.3,0.9-0.1c0,0,0,0,0,0l4.1,3.3c0.3,0.2,0.3,0.5,0.1,0.8c0,0,0,0-0.1,0.1c-2.9,3-6.9,4.6-11,4.5
C439.8,73.9,435,71.1,433.1,65.8z"/>
<path class="st11" d="M482.8,73.3c-0.4,0-0.8-0.2-1-0.6l-8-12.3l-4.3,4.6v7.7c0,0.3-0.3,0.6-0.6,0.6c0,0,0,0-0.1,0h-6
c-0.3,0-0.6-0.2-0.7-0.5c0,0,0,0,0-0.1V32.6c0-0.3,0.3-0.6,0.6-0.6c0,0,0,0,0.1,0h6c0.3,0,0.6,0.2,0.7,0.5c0,0,0,0,0,0.1v23.8
l10.8-11.8c0.3-0.4,0.8-0.6,1.2-0.6h6.7c0.2,0,0.4,0.1,0.4,0.3c0,0.1,0,0.3-0.1,0.3l-10.1,10.7L490,72.7c0.1,0.2,0.1,0.4,0,0.5
c-0.1,0.1-0.2,0.1-0.3,0.1H482.8L482.8,73.3z"/>
</svg>

After

Width:  |  Height:  |  Size: 7.4 KiB

BIN
ca-screenshot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 597 KiB

110
composer.json Normal file
View File

@ -0,0 +1,110 @@
{
"name": "pantheon-systems/example-wordpress-composer",
"description": "",
"type": "project",
"keywords": [],
"repositories": [
{
"type": "composer",
"url": "https://wpackagist.org"
},
{
"type": "vcs",
"url": "https://github.com/pantheon-systems/wordpress-composer"
}
],
"require": {
"php": ">=7.2",
"composer/installers": "^1.3.0",
"pantheon-systems/quicksilver-pushback": "^1.0.1",
"pantheon-systems/wordpress-composer": "*",
"roots/wp-password-bcrypt": "^1.0.0",
"rvtraveller/qs-composer-installer": "^1.1",
"vlucas/phpdotenv": "^3.1.0",
"wpackagist-plugin/pantheon-advanced-page-cache": "^0.3.0",
"wpackagist-plugin/wp-native-php-sessions": "^0.8.1",
"wpackagist-plugin/wp-mail-smtp":"^1.4.1",
"wpackagist-plugin/lh-hsts":"^1.24",
"wpackagist-plugin/safe-svg":"^1.9.3",
"wpackagist-plugin/autodescription":"^4.0.1",
"wpackagist-plugin/post-type-switcher":"^3.1.0",
"wpackagist-plugin/photonic":"^2.23",
"wpackagist-plugin/post-meta-controls":"1.2.0",
"wpackagist-plugin/china-video-block":"^0.1.0",
"wpackagist-plugin/ultimate-blocks":"^2.1.2",
"wpackagist-plugin/gutenberg":"^6.3.0",
"wpackagist-plugin/wp-nested-pages":"^3.0.11",
"wpackagist-plugin/clone-page-tree":"^0.1.0",
"wpackagist-plugin/wp-rss-aggregator":"^4.15",
"wpackagist-plugin/gravity-forms-custom-post-types":"^3.1.15",
"wpackagist-plugin/flying-pages":"^2.0.8",
"wpackagist-plugin/redirection":"4.4.2"
},
"require-dev": {
"behat/mink-goutte-driver": "^1.2.1",
"dmore/behat-chrome-extension": "^1.2",
"brain/monkey": "^2.2.0",
"paulgibbs/behat-wordpress-extension": "^3.1.0",
"phpunit/phpunit": "^7.5.1",
"roave/security-advisories": "dev-master",
"squizlabs/php_codesniffer": "^3.4.0",
"wp-coding-standards/wpcs": "^1.2.1"
},
"config": {
"vendor-dir": "vendor",
"preferred-install": "dist",
"optimize-autoloader": true,
"sort-packages": true,
"platform": {
"php": "7.2"
}
},
"extra": {
"wordpress-install-dir": "web/wp",
"build-env": {
"install-cms": [
"wp core install --title={site-name} --url={site-url} --admin_user={account-name} --admin_email={account-mail} --admin_password={account-pass}",
"wp option update permalink_structure '/%postname%/'"
]
},
"installer-paths": {
"web/wp-content/plugins/{$name}/": ["type:wordpress-plugin"],
"web/wp-content/themes/{$name}/": ["type:wordpress-theme"],
"web/private/scripts/quicksilver/{$name}/": ["type:quicksilver-script"]
}
},
"autoload": {
"classmap": [
"scripts/composer/ScriptHandler.php"
]
},
"scripts": {
"build-assets": [
"@prepare-for-pantheon",
"composer install --no-dev --no-ansi --no-interaction --optimize-autoloader --no-progress"
],
"prepare-for-pantheon": "WordPressProject\\composer\\ScriptHandler::prepareForPantheon",
"cleanup": [
"./scripts/composer/cleanup-composer"
],
"post-install-cmd": [
"@cleanup",
"WordPressProject\\composer\\ScriptHandler::createRequiredFiles"
],
"post-update-cmd": [
"@cleanup",
"WordPressProject\\composer\\ScriptHandler::createRequiredFiles"
],
"post-create-project-cmd": [
"@cleanup",
"WordPressProject\\composer\\ScriptHandler::createRequiredFiles"
],
"code-sniff": [
"./vendor/bin/phpcs --config-set installed_paths ~/example_wordpress_composer/vendor/wp-coding-standards/wpcs",
"./vendor/bin/phpcs -n --ignore=*gulpfile*,*plugins*,*instantpage* --standard=WordPress ./web/wp-content"
],
"unit-test": [
"./vendor/bin/phpunit tests/unit/*"
]
}
}

5087
composer.lock generated Normal file

File diff suppressed because it is too large Load Diff

9
pantheon.yml Normal file
View File

@ -0,0 +1,9 @@
api_version: 1
web_docroot: true
php_version: 7.3
workflows:
sync_code:
after:
- type: webphp
description: 'Push changes back to GitHub if needed'
script: private/scripts/quicksilver/quicksilver-pushback/push-back-to-github.php

View File

@ -0,0 +1,84 @@
<?php
/**
* @file
* Contains \WordPressProject\composer\ScriptHandler.
*/
namespace WordPressProject\composer;
use Composer\Script\Event;
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\Finder\Finder;
class ScriptHandler
{
protected static function getWordPressRoot($project_root)
{
return $project_root . '/web';
}
public static function createRequiredFiles(Event $event)
{
$fs = new Filesystem();
$root = static::getWordPressRoot(getcwd());
$dirs = [
'wp-content/plugins',
'wp-content/themes',
'wp',
'private/scripts/quicksilver',
];
// Required for unit testing
foreach ($dirs as $dir) {
if (!$fs->exists($root . '/'. $dir)) {
$fs->mkdir($root . '/'. $dir);
$fs->touch($root . '/'. $dir . '/.gitkeep');
}
}
// Create the files directory with chmod 0777
if (!$fs->exists($root . '/wp-content/uploads')) {
$oldmask = umask(0);
$fs->mkdir($root . '/wp-content/uploads', 0777);
umask($oldmask);
$event->getIO()->write("Create a wp-content/uploads directory with chmod 0777");
}
}
// This is called by the QuickSilver deploy hook to convert from
// a 'lean' repository to a 'fat' repository. This should only be
// called when using this repository as a custom upstream, and
// updating it with `terminus composer <site>.<env> update`. This
// is not used in the GitHub PR workflow.
public static function prepareForPantheon()
{
// Get rid of any .git directories that Composer may have added.
// n.b. Ideally, there are none of these, as removing them may
// impair Composer's ability to update them later. However, leaving
// them in place prevents us from pushing to Pantheon.
$dirsToDelete = [];
$finder = new Finder();
foreach (
$finder
->directories()
->in(getcwd())
->ignoreDotFiles(false)
->ignoreVCS(false)
->depth('> 0')
->name('.git')
as $dir) {
$dirsToDelete[] = $dir;
}
$fs = new Filesystem();
$fs->remove($dirsToDelete);
// Fix up .gitignore: remove everything above the "::: cut :::" line
$gitignoreFile = getcwd() . '/.gitignore';
$gitignoreContents = file_get_contents($gitignoreFile);
$gitignoreContents = preg_replace('/.*::: cut :::*/s', '', $gitignoreContents);
file_put_contents($gitignoreFile, $gitignoreContents);
}
}

View File

@ -0,0 +1,16 @@
#!/bin/bash
# Exit immediately on errors, and echo commands as they are executed.
set -ex
if [ -d "web/wp/wp-content/mu-plugins/" ]; then
rsync -a web/wp/wp-content/mu-plugins/* web/wp-content/mu-plugins/
fi
if [ -f "web/wp/wp-config.php" ]; then
rm web/wp/wp-config.php
fi
if [ -d "web/wp/wp-content" ]; then
rm -rf web/wp/wp-content
fi

View File

@ -0,0 +1,23 @@
#!/bin/bash
project="$1"
sha="$2"
comment="$3"
site_url="$4"
token="$(composer config --global github-oauth.github.com)"
# Exit immediately on errors
set -e
if [ -n "$site_url" ] ; then
visit_site="[![Visit Site](https://raw.githubusercontent.com/pantheon-systems/ci-drops-8/0.1.0/data/img/visit-site-36.png)]($site_url)"
fi
if [ -n "$token" ] ; then
curl -d '{ "body": "'"$comment\\n\\n$visit_site"'" }' -X POST https://api.github.com/repos/$project/commits/$sha/comments?access_token=$token
echo $comment
echo
echo $visit_site
fi

View File

@ -0,0 +1,31 @@
default:
suites:
default:
paths:
- ./tests/behat
contexts:
- Behat\MinkExtension\Context\MinkContext
- PaulGibbs\WordpressBehatExtension\Context\ContentContext
- PaulGibbs\WordpressBehatExtension\Context\DashboardContext
- PaulGibbs\WordpressBehatExtension\Context\SiteContext
- PaulGibbs\WordpressBehatExtension\Context\UserContext
- PaulGibbs\WordpressBehatExtension\Context\WordpressContext
- PaulGibbs\WordpressBehatExtension\Context\EditPostContext
- PaulGibbs\WordpressBehatExtension\Context\WidgetContext
extensions:
Behat\MinkExtension:
# base_url set by ENV
browser_name: chrome
sessions:
default:
chrome:
api_url: "http://localhost:9222"
validate_certificate: false
PaulGibbs\WordpressBehatExtension:
# WordPress username/password and site_url set by ENV
default_driver: wpcli
path: web/wp
DMore\ChromeExtension\Behat\ServiceContainer\ChromeExtension: ~

View File

@ -0,0 +1,5 @@
# Sample feature files
The .feature files in this are meant to be a starting point for writing your own site-specific .feature files.
Feel free to delete the .feature files that come with this repo. They are present only as a reference and so that the first continuous integration builds have an automated test to run.

View File

@ -0,0 +1,12 @@
Feature: Login as an administrator
As a maintainer of the site
I want basic login behavior to work
So that I can administer the site
Background:
Given I am logged in as an administrator
Given I am on the dashboard
Scenario: Confirm access to create users
Given I go to the "Users > Add New" menu
Then I should see "Add New User"

View File

@ -0,0 +1,41 @@
Feature: Change blogname and blogdescription
As a maintainer of the site
I want to be able to change basic settings
So that I have control over my site
Scenario: Saving blogname and blogdescription
Given I am logged in as an administrator
Given I am on the dashboard
When I go to the "Settings > General" menu
And I fill in "blogname" with "Awesome WordHat Test Site!"
And I fill in "blogdescription" with "Composer + CI + Pantheon is a win!"
And I press "submit"
Then I should see "Settings saved."
And I go to "/wp/wp-admin/options-general.php?page=pantheon-cache"
And I press "Clear Cache"
And I should see "Site cache flushed." in the ".updated" element
Scenario: Clear the site cache
Given I am logged in as an administrator
Given I am on the dashboard
When I go to "/wp/wp-admin/options-general.php?page=pantheon-cache"
Then I should see "Clear Site Cache"
And I should not see "Site cache flushed."
When I press "Clear Cache"
Then print current URL
And I should be on "/wp/wp-admin/options-general.php?page=pantheon-cache&cache-cleared=true"
And I should see "Site cache flushed." in the ".updated" element
Scenario: Verify the Pantheon MU plugin is present
Given I am logged in as an administrator
Given I am on the dashboard
When I go to "/wp/wp-admin/plugins.php?plugin_status=mustuse"
Then I should see "/wp-content/mu-plugins directory are executed automatically." in the ".tablenav" element
And I should see "Pantheon" in the "#the-list" element
Scenario: Verifying blogname and blogdescription
Given I am on the homepage
Then I should be on the homepage
And I should see "Awesome WordHat Test Site!" in the ".site-title > a" element
And I should see "Composer + CI + Pantheon is a win!" in the ".site-description" element

View File

@ -0,0 +1,35 @@
Feature: Perform Pantheon-specific actions
Background:
Given I am logged in as an administrator
Scenario: Change the cache TTL
When I go to "/wp/wp-admin/options-general.php?page=pantheon-cache"
Then I should see "Pantheon Page Cache"
And the "pantheon-cache[default_ttl]" field should contain "600"
When I fill in "pantheon-cache[default_ttl]" with "300"
And I press "Update TTL"
Then I should see "Settings saved."
And the "pantheon-cache[default_ttl]" field should contain "300"
When I fill in "pantheon-cache[default_ttl]" with "600"
And I press "Update TTL"
Then I should see "Settings saved."
And the "pantheon-cache[default_ttl]" field should contain "600"
Scenario: Clear the site cache
When I go to "/wp/wp-admin/options-general.php?page=pantheon-cache"
Then I should see "Clear Site Cache"
And I should not see "Site cache flushed."
When I press "Clear Cache"
Then print current URL
And I should be on "/wp/wp-admin/options-general.php?page=pantheon-cache&cache-cleared=true"
And I should see "Site cache flushed." in the ".updated" element
Scenario: Verify the Pantheon MU plugin is present
When I go to "/wp/wp-admin/plugins.php?plugin_status=mustuse"
Then I should see "/wp-content/mu-plugins directory are executed automatically." in the ".tablenav" element
And I should see "Pantheon" in the "#the-list" element
And I should see "Building on Pantheon's and WordPress's strengths, together." in the "#the-list" element

22
tests/unit/TestAssert.php Normal file
View File

@ -0,0 +1,22 @@
<?php
namespace AdvancedPantheon\Tests\Unit;
use PHPUnit\Framework\TestCase;
use Brain\Monkey;
class Test_Assert extends TestCase {
protected function setUp() {
parent::setUp();
Monkey\setUp();
}
protected function tearDown() {
Monkey\tearDown();
parent::tearDown();
}
public function test_sample() {
$this->assertTrue( true );
}
}

3
tests/unit/bootstrap.php Normal file
View File

@ -0,0 +1,3 @@
<?php
require dirname(__DIR__, 2) . '/vendor/autoload.php';

6
web/index.php Normal file
View File

@ -0,0 +1,6 @@
<?php
// Tells WordPress to load the WordPress theme and output it.
define('WP_USE_THEMES', true);
// Loads the WordPress Environment and Template
require( dirname( __FILE__ ) . '/wp/wp-blog-header.php' );

1
web/wp-cli.yml Normal file
View File

@ -0,0 +1 @@
path: wp

249
web/wp-config.php Normal file
View File

@ -0,0 +1,249 @@
<?php
/*
* Don't show deprecations
*/
error_reporting( E_ALL ^ E_DEPRECATED );
/**
* Set root path
*/
$rootPath = realpath( __DIR__ . '/..' );
/**
* Include the Composer autoload
*/
require_once( $rootPath . '/vendor/autoload.php' );
/*
* Fetch .env
*/
if ( ! isset( $_ENV['PANTHEON_ENVIRONMENT'] ) && file_exists( $rootPath . '/.env' ) ) {
$dotenv = Dotenv\Dotenv::create($rootPath);
$dotenv->load();
$dotenv->required( array(
'DB_NAME',
'DB_USER',
'DB_HOST',
) )->notEmpty();
}
/**
* Disallow on server file edits
*/
define( 'DISALLOW_FILE_EDIT', true );
define( 'DISALLOW_FILE_MODS', true );
/**
* Force SSL
*/
define( 'FORCE_SSL_ADMIN', true );
/**
* Limit post revisions
*/
define( 'WP_POST_REVISIONS', 10 );
/*
* If NOT on Pantheon
*/
if ( ! isset( $_ENV['PANTHEON_ENVIRONMENT'] ) ):
/**
* Define site and home URLs
*/
// HTTP is still the default scheme for now.
$scheme = 'http';
// If we have detected that the end use is HTTPS, make sure we pass that
// through here, so <img> tags and the like don't generate mixed-mode
// content warnings.
if ( isset( $_SERVER['HTTP_USER_AGENT_HTTPS'] ) && $_SERVER['HTTP_USER_AGENT_HTTPS'] == 'ON' ) {
$scheme = 'https';
}
$site_url = getenv( 'WP_HOME' ) !== false ? getenv( 'WP_HOME' ) : $scheme . '://' . $_SERVER['HTTP_HOST'] . '/';
define( 'WP_HOME', $site_url );
define( 'WP_SITEURL', $site_url . 'wp/' );
/**
* Set Database Details
*/
define( 'DB_NAME', getenv( 'DB_NAME' ) );
define( 'DB_USER', getenv( 'DB_USER' ) );
define( 'DB_PASSWORD', getenv( 'DB_PASSWORD' ) !== false ? getenv( 'DB_PASSWORD' ) : '' );
define( 'DB_HOST', getenv( 'DB_HOST' ) );
/**
* Set debug modes
*/
define( 'WP_DEBUG', getenv( 'WP_DEBUG' ) === 'true' ? true : false );
define( 'IS_LOCAL', getenv( 'IS_LOCAL' ) !== false ? true : false );
/**#@+
* Authentication Unique Keys and Salts.
*
* Change these to different unique phrases!
* You can generate these using the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}
* You can change these at any point in time to invalidate all existing cookies. This will force all users to have to log in again.
*
* @since 2.6.0
*/
define( 'AUTH_KEY', '^J/U[^{cOJxhcmmCq2MX%nUs}i_^7nm[w+VsetLZ[JXW9Un/IiyWVEXk;s}X=?u$' );
define( 'SECURE_AUTH_KEY', 'dT,wlW20L5V3ChmTEHFGVtUE-r&A)y+G%Pnql&eKdVAWvdIr9FO4lh_Gc9ZVn!1|' );
define( 'LOGGED_IN_KEY', '{0E{}k_e7!XRt*}h}nuMP[sKn$gb(O@|[>?bUs}B{>:|+|lL%czE/!Tlc Uk53#:' );
define( 'NONCE_KEY', '|M9$H1t9D@AR6>JM[]?9RoA^dmOCHt6ldAE%x|0 Iqpi+m32>1>?0*_?*#|6f7|W' );
define( 'AUTH_SALT', 'CA-BmAsS|o_P|!I8Wfu%a=qXC;!3p[8]W_:N2{oI]HhpLP(%2]zWLH+aHTHDw9>%' );
define( 'SECURE_AUTH_SALT', 'pi-EA,AOXk*U[VZ|t]R;@K<WMcbD)>k* ;8+hKX:A|$.Z@HL@0`SE?W0:-?-IRd!' );
define( 'LOGGED_IN_SALT', 'e+6%u)u@RZn-$}_Q[N;Na<|A-[Am_$#nhD~}ci:%R&B*oiq<sPF$v)d1r<-V-5W|' );
define( 'NONCE_SALT', 'r%oyx_`[A-~<LB)]I.,^//}/&]a)H|fzk3IUWrZn[L4qf#Pp#lsB-B}+/ai&u,/|' );
endif;
/*
* If on Pantheon
*/
if ( isset( $_ENV['PANTHEON_ENVIRONMENT'] ) ):
// ** MySQL settings - included in the Pantheon Environment ** //
/** The name of the database for WordPress */
define( 'DB_NAME', $_ENV['DB_NAME'] );
/** MySQL database username */
define( 'DB_USER', $_ENV['DB_USER'] );
/** MySQL database password */
define( 'DB_PASSWORD', $_ENV['DB_PASSWORD'] );
/** MySQL hostname; on Pantheon this includes a specific port number. */
define( 'DB_HOST', $_ENV['DB_HOST'] . ':' . $_ENV['DB_PORT'] );
/** Database Charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8' );
/** The Database Collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );
/**#@+
* Authentication Unique Keys and Salts.
*
* Change these to different unique phrases!
* You can generate these using the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}
* You can change these at any point in time to invalidate all existing cookies. This will force all users to have to log in again.
*
* Pantheon sets these values for you also. If you want to shuffle them you
* can do so via your dashboard.
*
* @since 2.6.0
*/
define( 'AUTH_KEY', $_ENV['AUTH_KEY'] );
define( 'SECURE_AUTH_KEY', $_ENV['SECURE_AUTH_KEY'] );
define( 'LOGGED_IN_KEY', $_ENV['LOGGED_IN_KEY'] );
define( 'NONCE_KEY', $_ENV['NONCE_KEY'] );
define( 'AUTH_SALT', $_ENV['AUTH_SALT'] );
define( 'SECURE_AUTH_SALT', $_ENV['SECURE_AUTH_SALT'] );
define( 'LOGGED_IN_SALT', $_ENV['LOGGED_IN_SALT'] );
define( 'NONCE_SALT', $_ENV['NONCE_SALT'] );
/**#@-*/
/** A couple extra tweaks to help things run well on Pantheon. **/
if ( isset( $_SERVER['HTTP_HOST'] ) ) {
// HTTP is still the default scheme for now.
$scheme = 'http';
// If we have detected that the end use is HTTPS, make sure we pass that
// through here, so <img> tags and the like don't generate mixed-mode
// content warnings.
if ( isset( $_SERVER['HTTP_USER_AGENT_HTTPS'] ) && $_SERVER['HTTP_USER_AGENT_HTTPS'] == 'ON' ) {
$scheme = 'https';
}
define( 'WP_HOME', $scheme . '://' . $_SERVER['HTTP_HOST'] );
define( 'WP_SITEURL', $scheme . '://' . $_SERVER['HTTP_HOST'] . '/wp' );
}
// Don't show deprecations; useful under PHP 5.5
error_reporting( E_ALL ^ E_DEPRECATED );
// Force the use of a safe temp directory when in a container
if ( defined( 'PANTHEON_BINDING' ) ):
define( 'WP_TEMP_DIR', sprintf( '/srv/bindings/%s/tmp', PANTHEON_BINDING ) );
endif;
// FS writes aren't permitted in test or live, so we should let WordPress know to disable relevant UI
if ( in_array( $_ENV['PANTHEON_ENVIRONMENT'], array( 'test', 'live' ) ) && ! defined( 'DISALLOW_FILE_MODS' ) ) :
define( 'DISALLOW_FILE_MODS', true );
endif;
endif;
/*
* Define wp-content directory outside of WordPress core directory
*/
define( 'WP_CONTENT_DIR', dirname( __FILE__ ) . '/wp-content' );
define( 'WP_CONTENT_URL', WP_HOME . '/wp-content' );
/**
* WordPress Database Table prefix.
*
* You can have multiple installations in one database if you give each
* a unique prefix. Only numbers, letters, and underscores please!
*/
$table_prefix = getenv( 'DB_PREFIX' ) !== false ? getenv( 'DB_PREFIX' ) : 'wp_';
/* That's all, stop editing! Happy blogging. */
/** Absolute path to the WordPress directory. */
if ( ! defined( 'ABSPATH' ) ) {
define( 'ABSPATH', dirname( __FILE__ ) . '/' );
}
/** Sets up WordPress vars and included files. */
require_once( ABSPATH . 'wp-settings.php' );
if ( isset( $_ENV['PANTHEON_ENVIRONMENT'] ) && php_sapi_name() != 'cli' ) {
// Redirect to https://$primary_domain in the Live environment.
if ( 'live' === $_ENV['PANTHEON_ENVIRONMENT'] && 'lfeventsci' === $_ENV['PANTHEON_SITE_NAME'] ) {
$primary_domain = 'events.linuxfoundation.org';
} elseif ( 'live' === $_ENV['PANTHEON_ENVIRONMENT'] && 'lfasiallcci' === $_ENV['PANTHEON_SITE_NAME'] && $_SERVER['HTTP_HOST'] != 'events.linuxfoundation.cn' ) {
$primary_domain = 'www.lfasiallc.com';
} else {
// Redirect to HTTPS on every Pantheon environment.
$primary_domain = $_SERVER['HTTP_HOST']; //phpcs:ignore
}
$requires_redirect = false;
// Ensure the site is being served from the primary domain.
if ( $_SERVER['HTTP_HOST'] != $primary_domain ) {
$requires_redirect = true;
}
// If you're not using HSTS in the pantheon.yml file, uncomment this next block.
if (!isset($_SERVER['HTTP_USER_AGENT_HTTPS']) || $_SERVER['HTTP_USER_AGENT_HTTPS'] != 'ON') {
$requires_redirect = true;
}
if ( true === $requires_redirect ) {
// Name transaction "redirect" in New Relic for improved reporting (optional).
if ( extension_loaded( 'newrelic' ) ) {
newrelic_name_transaction( 'redirect' );
}
header( 'HTTP/1.0 301 Moved Permanently' );
header( 'Location: https://' . $primary_domain . $_SERVER['REQUEST_URI'] );
exit();
}
}
// Special LFEvents Redirects for the /events/ subdirectory.
if ( 0 === strpos( $_SERVER['REQUEST_URI'], '/events/' ) ) {
if ( ( php_sapi_name() != "cli" ) ) {
header( 'HTTP/1.0 301 Moved Permanently' );
if ( 'lfeventsci' === $_ENV['PANTHEON_SITE_NAME'] ) {
header( 'Location: https://events19.linuxfoundation.org' . $_SERVER['REQUEST_URI'] );
} else {
header( 'Location: https://events19.lfasiallc.com' . $_SERVER['REQUEST_URI'] );
}
if ( extension_loaded( 'newrelic' ) ) {
newrelic_name_transaction( 'redirect' );
}
exit();
}
}

View File

View File

@ -0,0 +1,339 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

View File

@ -0,0 +1,114 @@
=== Plugin Name ===
Contributors: (this should be a list of wordpress.org userid's)
Donate link: http://example.com/
Tags: comments, spam
Requires at least: 3.0.1
Tested up to: 3.4
Stable tag: 4.3
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Here is a short description of the plugin. This should be no more than 150 characters. No markup here.
== Description ==
This is the long description. No limit, and you can use Markdown (as well as in the following sections).
For backwards compatibility, if this section is missing, the full length of the short description will be used, and
Markdown parsed.
A few notes about the sections above:
* "Contributors" is a comma separated list of wp.org/wp-plugins.org usernames
* "Tags" is a comma separated list of tags that apply to the plugin
* "Requires at least" is the lowest version that the plugin will work on
* "Tested up to" is the highest version that you've *successfully used to test the plugin*. Note that it might work on
higher versions... this is just the highest one you've verified.
* Stable tag should indicate the Subversion "tag" of the latest stable version, or "trunk," if you use `/trunk/` for
stable.
Note that the `readme.txt` of the stable tag is the one that is considered the defining one for the plugin, so
if the `/trunk/readme.txt` file says that the stable tag is `4.3`, then it is `/tags/4.3/readme.txt` that'll be used
for displaying information about the plugin. In this situation, the only thing considered from the trunk `readme.txt`
is the stable tag pointer. Thus, if you develop in trunk, you can update the trunk `readme.txt` to reflect changes in
your in-development version, without having that information incorrectly disclosed about the current stable version
that lacks those changes -- as long as the trunk's `readme.txt` points to the correct stable tag.
If no stable tag is provided, it is assumed that trunk is stable, but you should specify "trunk" if that's where
you put the stable version, in order to eliminate any doubt.
== Installation ==
This section describes how to install the plugin and get it working.
e.g.
1. Upload `lfevents.php` to the `/wp-content/plugins/` directory
1. Activate the plugin through the 'Plugins' menu in WordPress
1. Place `<?php do_action('lfevents_hook'); ?>` in your templates
== Frequently Asked Questions ==
= A question that someone might have =
An answer to that question.
= What about foo bar? =
Answer to foo bar dilemma.
== Screenshots ==
1. This screen shot description corresponds to screenshot-1.(png|jpg|jpeg|gif). Note that the screenshot is taken from
the /assets directory or the directory that contains the stable readme.txt (tags or trunk). Screenshots in the /assets
directory take precedence. For example, `/assets/screenshot-1.png` would win over `/tags/4.3/screenshot-1.png`
(or jpg, jpeg, gif).
2. This is the second screen shot
== Changelog ==
= 1.0 =
* A change since the previous version.
* Another change.
= 0.5 =
* List versions from most recent at top to oldest at bottom.
== Upgrade Notice ==
= 1.0 =
Upgrade notices describe the reason a user should upgrade. No more than 300 characters.
= 0.5 =
This version fixes a security related bug. Upgrade immediately.
== Arbitrary section ==
You may provide arbitrary sections, in the same format as the ones above. This may be of use for extremely complicated
plugins where more information needs to be conveyed that doesn't fit into the categories of "description" or
"installation." Arbitrary sections will be shown below the built-in sections outlined above.
== A brief Markdown Example ==
Ordered list:
1. Some feature
1. Another feature
1. Something else about the plugin
Unordered list:
* something
* something else
* third thing
Here's a link to [WordPress](http://wordpress.org/ "Your favorite software") and one to [Markdown's Syntax Documentation][markdown syntax].
Titles are optional, naturally.
[markdown syntax]: http://daringfireball.net/projects/markdown/syntax
"Markdown is what the parser uses to process much of the readme file"
Markdown uses email style notation for blockquotes and I've been told:
> Asterisks for *emphasis*. Double it up for **strong**.
`<?php code(); // goes in backticks ?>`

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,50 @@
/**
* All of the CSS for your admin-specific functionality should be
* included in this file.
*/
/*
* Some styles to make the "Clone Page Tree" link look good on Nested Pages
*/
.nestedpages ol ul.np-assigned-pt-actions li:first-child {
margin: 0 0 0 -5px;
padding: 0 .5em;
height: 30px;
line-height: 30px;
color: #555;
background-color: #f7f7f7;
border: 1px solid #e1e1e1;
-webkit-transition: all 200ms ease;
-o-transition: all 200ms ease;
transition: all 200ms ease;
vertical-align: top;
}
.nestedpages ol ul.np-assigned-pt-actions li:first-child:hover {
background-color: #0074a2;
-webkit-transition: all 200ms ease;
-o-transition: all 200ms ease;
transition: all 200ms ease;
border-color: #0074a2;
}
.nestedpages ol ul.np-assigned-pt-actions {
margin-left: 200px;
margin-top: 3px;
}
.nestedpages ol ul.np-assigned-pt-actions li:first-child a {
padding: 0 1px;
}
.nestedpages ol ul.np-assigned-pt-actions li:first-child a:hover {
color: #fff;
}
#pmc-lfes_white_logo img.pmc-image {
background-color: #999;
}
div.pmc-sidebar input::placeholder {
color: #999;
}

View File

@ -0,0 +1,44 @@
/**
* Summary. (use period)
*
* Description. (use period)
*
* @link URL
* @file This files defines the MyClass class.
* @author AuthorName.
* @since x.x.x
* @package xxx
*/
(function( $ ) {
'use strict';
/**
* All of the code for your admin-facing JavaScript source
* should reside in this file.
*
* Note: It has been assumed you will write jQuery code here, so the
* $ function reference has been prepared for usage within the scope
* of this function.
*
* This enables you to define handlers, for when the DOM is ready:
*
* $(function() {
*
* });
*
* When the window is loaded:
*
* $( window ).load(function() {
*
* });
*
* ...and/or other possibilities.
*
* Ideally, it is not considered best practise to attach more than a
* single DOM-ready or window-load handler for a particular page.
* Although scripts in the WordPress core, Plugins and Themes may be
* practising this, we should strive to set a better example in our own work.
*/
})( jQuery );

View File

@ -0,0 +1,16 @@
<?php
/**
* Provide a admin area view for the plugin
*
* This file is used to markup the admin-facing aspects of the plugin.
*
* @link http://example.com
* @since 1.0.0
*
* @package LFEvents
* @subpackage LFEvents/admin/partials
*/
?>
<!-- This file should primarily consist of HTML with a little bit of PHP. -->

View File

@ -0,0 +1,35 @@
<?php
/**
* Fired during plugin activation
*
* @link http://example.com
* @since 1.0.0
*
* @package LFEvents
* @subpackage LFEvents/includes
*/
/**
* Fired during plugin activation.
*
* This class defines all code necessary to run during the plugin's activation.
*
* @since 1.0.0
* @package LFEvents
* @subpackage LFEvents/includes
* @author Your Name <email@example.com>
*/
class LFEvents_Activator {
/**
* Short Description. (use period)
*
* Long Description.
*
* @since 1.0.0
*/
public static function activate() {
}
}

View File

@ -0,0 +1,35 @@
<?php
/**
* Fired during plugin deactivation
*
* @link http://example.com
* @since 1.0.0
*
* @package LFEvents
* @subpackage LFEvents/includes
*/
/**
* Fired during plugin deactivation.
*
* This class defines all code necessary to run during the plugin's deactivation.
*
* @since 1.0.0
* @package LFEvents
* @subpackage LFEvents/includes
* @author Your Name <email@example.com>
*/
class LFEvents_Deactivator {
/**
* Short Description. (use period)
*
* Long Description.
*
* @since 1.0.0
*/
public static function deactivate() {
}
}

View File

@ -0,0 +1,46 @@
<?php
/**
* Define the internationalization functionality
*
* Loads and defines the internationalization files for this plugin
* so that it is ready for translation.
*
* @link http://example.com
* @since 1.0.0
*
* @package LFEvents
* @subpackage LFEvents/includes
*/
/**
* Define the internationalization functionality.
*
* Loads and defines the internationalization files for this plugin
* so that it is ready for translation.
*
* @since 1.0.0
* @package LFEvents
* @subpackage LFEvents/includes
* @author Your Name <email@example.com>
*/
class LFEvents_I18n {
/**
* Load the plugin text domain for translation.
*
* @since 1.0.0
*/
public function load_plugin_textdomain() {
load_plugin_textdomain(
'lfevents',
false,
dirname( dirname( plugin_basename( __FILE__ ) ) ) . '/languages/'
);
}
}

View File

@ -0,0 +1,128 @@
<?php
/**
* Register all actions and filters for the plugin
*
* @link http://example.com
* @since 1.0.0
*
* @package LFEvents
* @subpackage LFEvents/includes
*/
/**
* Register all actions and filters for the plugin.
*
* Maintain a list of all hooks that are registered throughout
* the plugin, and register them with the WordPress API. Call the
* run function to execute the list of actions and filters.
*
* @package LFEvents
* @subpackage LFEvents/includes
* @author Your Name <email@example.com>
*/
class LFEvents_Loader {
/**
* The array of actions registered with WordPress.
*
* @since 1.0.0
* @access protected
* @var array $actions The actions registered with WordPress to fire when the plugin loads.
*/
protected $actions;
/**
* The array of filters registered with WordPress.
*
* @since 1.0.0
* @access protected
* @var array $filters The filters registered with WordPress to fire when the plugin loads.
*/
protected $filters;
/**
* Initialize the collections used to maintain the actions and filters.
*
* @since 1.0.0
*/
public function __construct() {
$this->actions = array();
$this->filters = array();
}
/**
* Add a new action to the collection to be registered with WordPress.
*
* @since 1.0.0
* @param string $hook The name of the WordPress action that is being registered.
* @param object $component A reference to the instance of the object on which the action is defined.
* @param string $callback The name of the function definition on the $component.
* @param int $priority Optional. The priority at which the function should be fired. Default is 10.
* @param int $accepted_args Optional. The number of arguments that should be passed to the $callback. Default is 1.
*/
public function add_action( $hook, $component, $callback, $priority = 10, $accepted_args = 1 ) {
$this->actions = $this->add( $this->actions, $hook, $component, $callback, $priority, $accepted_args );
}
/**
* Add a new filter to the collection to be registered with WordPress.
*
* @since 1.0.0
* @param string $hook The name of the WordPress filter that is being registered.
* @param object $component A reference to the instance of the object on which the filter is defined.
* @param string $callback The name of the function definition on the $component.
* @param int $priority Optional. The priority at which the function should be fired. Default is 10.
* @param int $accepted_args Optional. The number of arguments that should be passed to the $callback. Default is 1.
*/
public function add_filter( $hook, $component, $callback, $priority = 10, $accepted_args = 1 ) {
$this->filters = $this->add( $this->filters, $hook, $component, $callback, $priority, $accepted_args );
}
/**
* A utility function that is used to register the actions and hooks into a single
* collection.
*
* @since 1.0.0
* @access private
* @param array $hooks The collection of hooks that is being registered (that is, actions or filters).
* @param string $hook The name of the WordPress filter that is being registered.
* @param object $component A reference to the instance of the object on which the filter is defined.
* @param string $callback The name of the function definition on the $component.
* @param int $priority The priority at which the function should be fired.
* @param int $accepted_args The number of arguments that should be passed to the $callback.
* @return array The collection of actions and filters registered with WordPress.
*/
private function add( $hooks, $hook, $component, $callback, $priority, $accepted_args ) {
$hooks[] = array(
'hook' => $hook,
'component' => $component,
'callback' => $callback,
'priority' => $priority,
'accepted_args' => $accepted_args,
);
return $hooks;
}
/**
* Register the filters and actions with WordPress.
*
* @since 1.0.0
*/
public function run() {
foreach ( $this->filters as $hook ) {
add_filter( $hook['hook'], array( $hook['component'], $hook['callback'] ), $hook['priority'], $hook['accepted_args'] );
}
foreach ( $this->actions as $hook ) {
add_action( $hook['hook'], array( $hook['component'], $hook['callback'] ), $hook['priority'], $hook['accepted_args'] );
}
}
}

View File

@ -0,0 +1,224 @@
<?php
/**
* The file that defines the core plugin class
*
* A class definition that includes attributes and functions used across both the
* public-facing side of the site and the admin area.
*
* @link http://example.com
* @since 1.0.0
*
* @package LFEvents
* @subpackage LFEvents/includes
*/
/**
* The core plugin class.
*
* This is used to define internationalization, admin-specific hooks, and
* public-facing site hooks.
*
* Also maintains the unique identifier of this plugin as well as the current
* version of the plugin.
*
* @since 1.0.0
* @package LFEvents
* @subpackage LFEvents/includes
* @author Your Name <email@example.com>
*/
class LFEvents {
/**
* The loader that's responsible for maintaining and registering all hooks that power
* the plugin.
*
* @since 1.0.0
* @access protected
* @var LFEvents_Loader $loader Maintains and registers all hooks for the plugin.
*/
protected $loader;
/**
* The unique identifier of this plugin.
*
* @since 1.0.0
* @access protected
* @var string $lfevents The string used to uniquely identify this plugin.
*/
protected $lfevents;
/**
* The current version of the plugin.
*
* @since 1.0.0
* @access protected
* @var string $version The current version of the plugin.
*/
protected $version;
/**
* Define the core functionality of the plugin.
*
* Set the plugin name and the plugin version that can be used throughout the plugin.
* Load the dependencies, define the locale, and set the hooks for the admin area and
* the public-facing side of the site.
*
* @since 1.0.0
*/
public function __construct() {
if ( defined( 'LFEVENTS_VERSION' ) ) {
$this->version = LFEVENTS_VERSION;
} else {
$this->version = '1.0.0';
}
$this->lfevents = 'lfevents';
$this->load_dependencies();
$this->set_locale();
$this->define_admin_hooks();
$this->define_public_hooks();
}
/**
* Load the required dependencies for this plugin.
*
* Include the following files that make up the plugin:
*
* - LFEvents_Loader. Orchestrates the hooks of the plugin.
* - LFEvents_i18n. Defines internationalization functionality.
* - LFEvents_Admin. Defines all hooks for the admin area.
* - LFEvents_Public. Defines all hooks for the public side of the site.
*
* Create an instance of the loader which will be used to register the hooks
* with WordPress.
*
* @since 1.0.0
* @access private
*/
private function load_dependencies() {
/**
* The class responsible for orchestrating the actions and filters of the
* core plugin.
*/
require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-lfevents-loader.php';
/**
* The class responsible for defining internationalization functionality
* of the plugin.
*/
require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-lfevents-i18n.php';
/**
* The class responsible for defining all actions that occur in the admin area.
*/
require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-lfevents-admin.php';
/**
* The class responsible for defining all actions that occur in the public-facing
* side of the site.
*/
require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-lfevents-public.php';
$this->loader = new LFEvents_Loader();
}
/**
* Define the locale for this plugin for internationalization.
*
* Uses the LFEvents_i18n class in order to set the domain and to register the hook
* with WordPress.
*
* @since 1.0.0
* @access private
*/
private function set_locale() {
$plugin_i18n = new LFEvents_i18n();
$this->loader->add_action( 'plugins_loaded', $plugin_i18n, 'load_plugin_textdomain' );
}
/**
* Register all of the hooks related to the admin area functionality
* of the plugin.
*
* @since 1.0.0
* @access private
*/
private function define_admin_hooks() {
$plugin_admin = new LFEvents_Admin( $this->get_lfevents(), $this->get_version() );
$this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_styles' );
// $this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_scripts' );
$this->loader->add_action( 'init', $plugin_admin, 'new_cpts' );
$this->loader->add_action( 'init', $plugin_admin, 'register_event_categories' );
$this->loader->add_filter( 'pmc_create_sidebar', $plugin_admin, 'create_sidebar' );
$this->loader->add_action( 'init', $plugin_admin, 'change_page_label' );
$this->loader->add_action( 'restrict_manage_posts', $plugin_admin, 'event_filters' );
$this->loader->add_action( 'pre_get_posts', $plugin_admin, 'event_list_filter' );
$this->loader->add_action( 'save_post', $plugin_admin, 'synchronize_noindex_meta' );
}
/**
* Register all of the hooks related to the public-facing functionality
* of the plugin.
*
* @since 1.0.0
* @access private
*/
private function define_public_hooks() {
$plugin_public = new LFEvents_Public( $this->get_lfevents(), $this->get_version() );
// $this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_styles' );
// $this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_scripts' );
$this->loader->add_action( 'template_redirect', $plugin_public, 'redirects' );
$this->loader->add_action( 'wp_footer', $plugin_public, 'my_deregister_scripts' );
}
/**
* Run the loader to execute all of the hooks with WordPress.
*
* @since 1.0.0
*/
public function run() {
$this->loader->run();
}
/**
* The name of the plugin used to uniquely identify it within the context of
* WordPress and to define internationalization functionality.
*
* @since 1.0.0
* @return string The name of the plugin.
*/
public function get_lfevents() {
return $this->lfevents;
}
/**
* The reference to the class that orchestrates the hooks with the plugin.
*
* @since 1.0.0
* @return LFEvents_Loader Orchestrates the hooks of the plugin.
*/
public function get_loader() {
return $this->loader;
}
/**
* Retrieve the version number of the plugin.
*
* @since 1.0.0
* @return string The version number of the plugin.
*/
public function get_version() {
return $this->version;
}
}

View File

@ -0,0 +1,94 @@
<?php
/**
* Core functionality for running the LFEvents site.
*
* This plugin contains the core functionality that runs the LFEvents site. It is a must-have plugin so will always be loaded despite which theme is selected.
*
* @link https://events.linuxfoundation.org/
* @since 1.0.0
* @package LFEvents
*
* @wordpress-plugin
* Plugin Name: LFEvents
* Plugin URI: https://github.com/LF-Engineering/lfevents
* Description: Core functionality for running the LFEvents site.
* Version: 1.0.0
* Author: Chris Abraham
* Author URI: https://www.linuxfoundation.org
* License: GPL-2.0+
* License URI: http://www.gnu.org/licenses/gpl-2.0.txt
* Text Domain: lfevents
* Domain Path: /languages
*/
// If this file is called directly, abort.
if ( ! defined( 'WPINC' ) ) {
die;
}
/**
* Current plugin version.
* Start at version 1.0.0 and use SemVer - https://semver.org
* Rename this for your plugin and update it as you release new versions.
*/
define( 'LFEVENTS_VERSION', '1.0.0' );
/**
* The code that runs during plugin activation.
* This action is documented in includes/class-lfevents-activator.php
*/
function activate_lfevents() {
require_once plugin_dir_path( __FILE__ ) . 'includes/class-lfevents-activator.php';
LFEvents_Activator::activate();
}
/**
* The code that runs during plugin deactivation.
* This action is documented in includes/class-lfevents-deactivator.php
*/
function deactivate_lfevents() {
require_once plugin_dir_path( __FILE__ ) . 'includes/class-lfevents-deactivator.php';
LFEvents_Deactivator::deactivate();
}
register_activation_hook( __FILE__, 'activate_lfevents' );
register_deactivation_hook( __FILE__, 'deactivate_lfevents' );
/**
* The core plugin class that is used to define internationalization,
* admin-specific hooks, and public-facing site hooks.
*/
require plugin_dir_path( __FILE__ ) . 'includes/class-lfevents.php';
/**
* Begins execution of the plugin.
*
* Since everything within the plugin is registered via hooks,
* then kicking off the plugin from this point in the file does
* not affect the page life cycle.
*
* @since 1.0.0
*/
function run_lfevents() {
$plugin = new LFEvents();
$plugin->run();
}
run_lfevents();
/**
* Gets all post types currently used for LFEvents.
*
* @return array
*/
function lfe_get_post_types() {
$post_types = [ 'page' ];
$current_year = date( 'Y' );
for ( $x = 2017; $x <= $current_year; $x++ ) {
$post_types[] = 'lfevent' . $x;
}
return $post_types;
}

View File

@ -0,0 +1,135 @@
<?php
/**
* The public-facing functionality of the plugin.
*
* @link http://example.com
* @since 1.0.0
*
* @package LFEvents
* @subpackage LFEvents/public
*/
/**
* The public-facing functionality of the plugin.
*
* Defines the plugin name, version, and two examples hooks for how to
* enqueue the public-facing stylesheet and JavaScript.
*
* @package LFEvents
* @subpackage LFEvents/public
* @author Your Name <email@example.com>
*/
class LFEvents_Public {
/**
* The ID of this plugin.
*
* @since 1.0.0
* @access private
* @var string $lfevents The ID of this plugin.
*/
private $lfevents;
/**
* The version of this plugin.
*
* @since 1.0.0
* @access private
* @var string $version The current version of this plugin.
*/
private $version;
/**
* Initialize the class and set its properties.
*
* @since 1.0.0
* @param string $lfevents The name of the plugin.
* @param string $version The version of this plugin.
*/
public function __construct( $lfevents, $version ) {
$this->lfevents = $lfevents;
$this->version = $version;
}
/**
* Register the stylesheets for the public-facing side of the site.
*
* @since 1.0.0
*/
public function enqueue_styles() {
/**
* This function is provided for demonstration purposes only.
*
* An instance of this class should be passed to the run() function
* defined in LFEvents_Loader as all of the hooks are defined
* in that particular class.
*
* The LFEvents_Loader will then create the relationship
* between the defined hooks and the functions defined in this
* class.
*/
wp_enqueue_style( $this->lfevents, plugin_dir_url( __FILE__ ) . 'css/lfevents-public.css', array(), $this->version, 'all' );
}
/**
* Register the JavaScript for the public-facing side of the site.
*
* @since 1.0.0
*/
public function enqueue_scripts() {
/**
* This function is provided for demonstration purposes only.
*
* An instance of this class should be passed to the run() function
* defined in LFEvents_Loader as all of the hooks are defined
* in that particular class.
*
* The LFEvents_Loader will then create the relationship
* between the defined hooks and the functions defined in this
* class.
*/
wp_enqueue_script( $this->lfevents, plugin_dir_url( __FILE__ ) . 'js/lfevents-public.js', array( 'jquery' ), $this->version, false );
}
/**
* Sets up redirects.
*/
public function redirects() {
global $post;
if ( in_array( $post->post_type, lfe_get_post_types() ) && $post->post_parent ) {
$args = array(
'post_parent' => $post->ID,
'post_type' => $post->post_type,
'numberposts' => 1,
'post_status' => 'publish',
'orderby' => 'menu_order',
'order' => 'ASC',
);
$children = get_posts( $args );
if ( $children ) {
foreach ( $children as $c ) {
$url = get_permalink( $c->ID );
wp_redirect( $url );
exit;
}
}
}
}
/**
* Remove wp-embed script to speed things up https://kinsta.com/knowledgebase/disable-embeds-wordpress/.
*/
public function my_deregister_scripts() {
wp_dequeue_script( 'wp-embed' );
}
}

View File

@ -0,0 +1,4 @@
/**
* All of the CSS for your public-facing functionality should be
* included in this file.
*/

View File

@ -0,0 +1,44 @@
/**
* Summary. (use period)
*
* Description. (use period)
*
* @link URL
* @file This files defines the MyClass class.
* @author AuthorName.
* @since x.x.x
* @package xxx
*/
(function( $ ) {
'use strict';
/**
* All of the code for your public-facing JavaScript source
* should reside in this file.
*
* Note: It has been assumed you will write jQuery code here, so the
* $ function reference has been prepared for usage within the scope
* of this function.
*
* This enables you to define handlers, for when the DOM is ready:
*
* $(function() {
*
* });
*
* When the window is loaded:
*
* $( window ).load(function() {
*
* });
*
* ...and/or other possibilities.
*
* Ideally, it is not considered best practise to attach more than a
* single DOM-ready or window-load handler for a particular page.
* Although scripts in the WordPress core, Plugins and Themes may be
* practising this, we should strive to set a better example in our own work.
*/
})( jQuery );

View File

@ -0,0 +1,16 @@
<?php
/**
* Provide a public-facing view for the plugin
*
* This file is used to markup the public-facing aspects of the plugin.
*
* @link http://example.com
* @since 1.0.0
*
* @package LFEvents
* @subpackage LFEvents/public/partials
*/
?>
<!-- This file should primarily consist of HTML with a little bit of PHP. -->

View File

@ -0,0 +1,30 @@
<?php
/**
* Fired when the plugin is uninstalled.
*
* When populating this file, consider the following flow
* of control:
*
* - This method should be static
* - Check if the $_REQUEST content actually is the plugin name
* - Run an admin referrer check to make sure it goes through authentication
* - Verify the output of $_GET makes sense
* - Repeat with other user roles. Best directly by using the links/query string parameters.
* - Repeat things for multisite. Once for a single site in the network, once sitewide.
*
* This file may be updated more in future version of the Boilerplate; however, this is the
* general skeleton and outline for how the file should work.
*
* For more information, see the following discussion:
* https://github.com/tommcfarlin/WordPress-Plugin-Boilerplate/pull/123#issuecomment-28541913
*
* @link http://example.com
* @since 1.0.0
*
* @package LFEvents
*/
// If uninstall not called from WordPress, then exit.
if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
exit;
}

View File

@ -0,0 +1,27 @@
<?php
/**
* Core functionality for running the LFEvents site.
*
* This plugin contains the core functionality that runs the LFEvents site. It is a must-have plugin so will always be loaded despite which theme is selected.
*
* @link https://events.linuxfoundation.org/
* @since 1.0.0
* @package LFEvents
*
* @wordpress-plugin
* Plugin Name: LFEvents
* Plugin URI: https://github.com/LF-Engineering/lfevents
* Description: Core functionality for running the LFEvents site.
* Version: 1.0.0
* Author: Chris Abraham
* Author URI: https://www.linuxfoundation.org
* License: GPL-2.0+
* License URI: http://www.gnu.org/licenses/gpl-2.0.txt
* Text Domain: lfevents
* Domain Path: /languages
*/
/**
* Include the lfevents plugin
*/
require WPMU_PLUGIN_DIR . '/custom/lfevents/lfevents.php';

View File

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
.gform-block__placeholder{padding:2em}.gform-block__placeholder select{min-width:300px}.gform-block__placeholder-brand{text-align:center}.gform-block__placeholder-brand p{font-family:inherit;margin:.5em 0}.gform-block__panel{border-top:1px solid #e2e4e7!important}.gform_wrapper .gform_fields,.gform_wrapper .gform_footer{pointer-events:none;user-select:none}.gform-block__placeholder .gform-icon svg{width:110px;fill:#82878c}.gform-block__alert{margin-bottom:2px}.gform-block__alert p{font-size:.8125em;font-weight:600;margin:0!important}.gform-block__alert.gform-block__alert-error{background:#fff0f0;color:#fc1d1d;padding:.75em 1em}.gform-block__tabindex{width:100%}.gform-block__tabindex .components-base-control__field{display:flex;justify-content:space-between;align-items:center}.gform-block__tabindex input{width:66px}

View File

@ -0,0 +1 @@
{"version":3,"sources":["webpack:///./js/src/blocks/form/block.scss"],"names":[],"mappings":"AAAA,0BAA0B,YAAY,iCAAiC,gBAAgB,gCAAgC,kBAAkB,kCAAkC,oBAAoB,cAAc,oBAAoB,uCAAuC,0DAA0D,oBAAoB,iBAAiB,0CAA0C,YAAY,aAAa,oBAAoB,kBAAkB,sBAAsB,kBAAkB,gBAAgB,mBAAmB,6CAA6C,mBAAmB,cAAc,kBAAkB,uBAAuB,WAAW,uDAAuD,aAAa,8BAA8B,mBAAmB,6BAA6B,W","file":"css/blocks.min.css","sourcesContent":[".gform-block__placeholder{padding:2em}.gform-block__placeholder select{min-width:300px}.gform-block__placeholder-brand{text-align:center}.gform-block__placeholder-brand p{font-family:inherit;margin:.5em 0}.gform-block__panel{border-top:1px solid #e2e4e7!important}.gform_wrapper .gform_fields,.gform_wrapper .gform_footer{pointer-events:none;user-select:none}.gform-block__placeholder .gform-icon svg{width:110px;fill:#82878c}.gform-block__alert{margin-bottom:2px}.gform-block__alert p{font-size:.8125em;font-weight:600;margin:0!important}.gform-block__alert.gform-block__alert-error{background:#fff0f0;color:#fc1d1d;padding:.75em 1em}.gform-block__tabindex{width:100%}.gform-block__tabindex .components-base-control__field{display:flex;justify-content:space-between;align-items:center}.gform-block__tabindex input{width:66px}"],"sourceRoot":""}

View File

@ -0,0 +1,293 @@
/*
----------------------------------------------------------------
browsers.css
Gravity Forms Browser-Specific CSS
http://www.gravityforms.com
updated: May 22, 2018 03:13 PM US Eastern Time
Gravity Forms is a Rocketgenius project
copyright 2008-2017 Rocketgenius Inc.
http: //www.rocketgenius.com
this may not be redistributed without the
express written permission of the author.
NOTE: DO NOT EDIT THIS FILE! MAKE ANY MODIFICATIONS IN YOUR
THEME STYLESHEET. THIS FILE IS REPLACED DURING AUTO-UPDATES
AND ANY CHANGES MADE HERE WILL BE OVERWRITTEN.
If you need to make extensive customizations,
copy the contents of this file to your theme
style sheet for editing. Then, go to the form
settings page & set the 'output CSS' option
to no.
----------------------------------------------------------------
*/
/* Safari specific styles */
.entry .gform_wrapper.gf_browser_safari ul li:before,
.entry .gform_wrapper.gf_browser_safari ul li:after {
content: "";
}
.gform_wrapper.gf_browser_safari .gform_body ul.gform_fields li.gfield .ginput_container #recaptcha_widget_div #recaptcha_area {
width: 99% !important;
}
.gform_wrapper.gf_browser_safari .left_label #recaptcha_area #recaptcha_table,
.gform_wrapper.gf_browser_safari .right_label #recaptcha_area #recaptcha_table {
margin-left: 32%;
}
.gform_wrapper.gf_browser_safari .gfield_checkbox li input[type=checkbox],
.gform_wrapper.gf_browser_safari .gfield_radio li input[type=radio],
.gform_wrapper.gf_browser_safari .gfield_checkbox li input {
margin-top: 4px;
}
.gform_wrapper.gf_browser_safari select[multiple=multiple] {
height: auto !important;
}
.gform_wrapper.gf_browser_safari input.button.gform_button_select_files {
padding: 6px 12px !important;
}
.gform_wrapper.gf_browser_safari .gfield_time_ampm select {
max-width: 5rem !important;
width: calc(2rem + 20px);
}
/* Google Chrome (and now Opera) styles */
.gform_wrapper.gf_browser_chrome select {
padding: 2px 0 2px 3px;
}
.gform_wrapper.gf_browser_chrome .gfield_time_ampm select {
max-width: 5rem !important;
width: calc(3rem + 20px);
}
.gform_wrapper.gf_browser_chrome ul li:before,
.gform_wrapper.gf_browser_chrome ul li:after,
.entry .gform_wrapper.gf_browser_chrome ul li:before,
.entry .gform_wrapper.gf_browser_chrome ul li:after {
content: none;
}
.gform_wrapper.gf_browser_chrome .gform_body ul.gform_fields li.gfield .ginput_container #recaptcha_widget_div #recaptcha_area {
width: 99% !important;
}
.gform_wrapper.gf_browser_chrome .left_label #recaptcha_area #recaptcha_table,
.gform_wrapper.gf_browser_chrome .right_label #recaptcha_area #recaptcha_table {
margin-left: 32%;
}
.gform_wrapper.gf_browser_chrome .ginput_complex select,
.gform_wrapper.gf_browser_chrome .ginput_complex .ginput_right select {
text-indent: 2px;
line-height: 1.5em;
margin-bottom: 5px;
margin-top: 2px;
}
.gform_wrapper.gf_browser_chrome .gfield_checkbox li input[type=checkbox],
.gform_wrapper.gf_browser_chrome .gfield_radio li input[type=radio],
.gform_wrapper.gf_browser_chrome .gfield_checkbox li input {
margin-top: 6px;
}
.gform_wrapper.gf_browser_chrome ul.gform_fields li.gfield div.ginput_complex span.ginput_left select,
.gform_wrapper.gf_browser_chrome ul.gform_fields li.gfield div.ginput_complex span.ginput_right select,
.gform_wrapper.gf_browser_chrome ul.gform_fields li.gfield select {
margin-left: 1px;
}
.gform_wrapper.gf_browser_chrome ul.gform_fields li.gfield input[type=radio] {
margin-left: 1px;
}
.gform_wrapper.gf_browser_chrome ul.gform_fields li.gfield span.name_first,
.gform_wrapper.gf_browser_chrome ul.gform_fields li.gfield span.name_middle,
.gform_wrapper.gf_browser_chrome ul.gform_fields li.gfield span.name_last {
padding-top: 2px;
}
.gform_wrapper.gf_browser_chrome select[multiple=multiple] {
height: auto !important;
}
.gform_wrapper.gf_browser_chrome .gfield_error .ginput_complex.ginput_container.has_first_name.has_middle_name.has_last_name span.name_middle,
.gform_wrapper.gf_browser_chrome .gfield_error .ginput_complex.ginput_container.has_first_name.has_middle_name.has_last_name span.name_last {
margin-left: 1.1%;
}
.gform_wrapper.gf_browser_chrome .gfield_error input[type=text],
.gform_wrapper.gf_browser_chrome .gfield_error input[type=email],
.gform_wrapper.gf_browser_chrome .gfield_error input[type=tel],
.gform_wrapper.gf_browser_chrome .gfield_error input[type=url],
.gform_wrapper.gf_browser_chrome .gfield_error input[type=number],
.gform_wrapper.gf_browser_chrome .gfield_error input[type=password],
.gform_wrapper.gf_browser_chrome .gfield_error select,
.gform_wrapper.gf_browser_chrome .gfield_error textarea,
.gform_wrapper.gf_browser_chrome li.gfield_error.field_sublabel_above .ginput_complex input[type=text] {
margin-bottom: 2px;
}
.gform_wrapper.gf_browser_chrome input.button.gform_button_select_files {
padding: 6px 12px !important;
}
.gform_wrapper.gf_browser_chrome span.address_country {
margin-top:-2px;
}
/* Firefox specific styles */
.gform_wrapper.gf_browser_gecko select {
padding: 2px 12px 2px 2px;
}
.gform_wrapper.gf_browser_gecko .gfield_time_ampm select {
max-width: 5rem !important;
width: calc(4rem + 25px);
}
.gform_wrapper.gf_browser_gecko ul li:before,
.gform_wrapper.gf_browser_gecko ul li:after,
.entry .gform_wrapper.gf_browser_gecko ul li:before,
.entry .gform_wrapper.gf_browser_gecko ul li:after {
content: none;
}
.gform_wrapper.gf_browser_gecko .ginput_complex .ginput_cardinfo_left select.ginput_card_expiration.ginput_card_expiration_month {
margin-right: 1px;
}
.gform_wrappergf_browser_gecko .chosen-container-single .chosen-single {
height: 32px;
line-height: 2.4;
}
.gform_wrappergf_browser_gecko .chosen-container-single .chosen-single div b {
position: relative;
top: 5px;
}
/* Internet Explorer specific styles */
.gform_wrapper.gf_browser_ie ul li:before,
.gform_wrapper.gf_browser_ie ul li:after,
.entry .gform_wrapper.gf_browser_ie ul li:before,
.entry .gform_wrapper.gf_browser_ie ul li:after {
content: none;
}
.gform_wrapper.gf_browser_ie .gfield_time_hour {
width: 80px;
}
.gform_wrapper.gf_browser_ie .gfield_time_minute {
width: 70px;
}
.gform_wrapper.gf_browser_ie .gfield_time_ampm {
padding-top: 2px;
}
.gform_wrapper.gf_browser_ie .gfield_time_hour input,
.gform_wrapper.gf_browser_ie .gfield_time_minute input {
margin-left: 0;
}
.gform_wrapper.gf_browser_ie .ginput_complex .ginput_left label,
.gform_wrapper.gf_browser_ie .ginput_complex .ginput_right label {
margin: 3px 0 5px 0;
}
.gform_wrapper.gf_browser_ie .gform_footer input.button {
padding: 3px;
}
.gform_wrapper.gf_browser_ie ul.top_label .clear-multi {
overflow: hidden;
clear: both;
}
.gform_wrapper.gf_browser_ie .gfield_radio li {
line-height: 20px !important;
}
.gform_wrapper.gf_browser_ie .gfield_checkbox li input[type=checkbox],
.gform_wrapper.gf_browser_ie .gfield_radio li input[type=radio],
.gform_wrapper.gf_browser_ie .gfield_checkbox li input {
margin-top: 0;
}
.gform_wrapper.gf_browser_ie .ginput_complex .ginput_left select,
.gform_wrapper.gf_browser_ie .ginput_complex .ginput_right select {
padding: 2px 0 2px 0;
}
.gform_wrapper.gf_browser_ie .gform_body ul.gform_fields li.gfield .ginput_container #recaptcha_widget_div #recaptcha_area {
width: 99% !important;
}
.gform_wrapper.gf_browser_ie .gform_body ul.gform_fields li.gfield .ginput_container #recaptcha_widget_div #recaptcha_area {
width: 99% !important;
}
.gform_wrapper.gf_browser_ie .left_label #recaptcha_area #recaptcha_table, .gform_wrapper.gf_browser_ie .right_label #recaptcha_area #recaptcha_table { margin-left: 32%;
}
.gform_wrapper.gf_browser_ie .ginput_complex .ginput_cardinfo_right span.ginput_card_security_code_icon {
position: relative;
top: -1px;
left: 4px;
}
.gform_wrapper.gf_browser_ie img.add_list_item,
.gform_wrapper.gf_browser_ie img.delete_list_item {
width: 16px !important;
height: 16px !important;
background-size: 16px 16px !important;
}
.gform_wrapper.gf_browser_iphone ul li:before,
.gform_wrapper.gf_browser_iphone ul li:after,
.entry .gform_wrapper.gf_browser_iphone ul li:before,
.entry .gform_wrapper.gf_browser_iphone ul li:after {
content: none;
}
.gform_wrapper.gf_browser_unknown ul li:before,
.gform_wrapper.gf_browser_unknown ul li:after,
.entry .gform_wrapper.gf_browser_unknown ul li:before,
.entry .gform_wrapper.gf_browser_unknown ul li:after {
content: none;
}
@media only screen and (max-width: 641px) {
/* make the nifty styled selects a little larger for mobile devices */
.gform_wrapper.gf_browser_gecko .chosen-container-single .chosen-single,
.gform_wrapper.gf_browser_safari .chosen-container-single .chosen-single,
.gform_wrapper.gf_browser_chrome .chosen-container-single .chosen-single {
height: 44px;
line-height: 3.2;
}
.gform_wrapper.gf_browser_gecko .chosen-container-single .chosen-single div b,
.gform_wrapper.gf_browser_safari .chosen-container-single .chosen-single div b,
.gform_wrapper.gf_browser_chrome .chosen-container-single .chosen-single div b {
position: relative;
top: 50%;
transform: translateY(-25%);
}
}

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 538 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 738 B

View File

@ -0,0 +1,496 @@
/*!
Chosen, a Select Box Enhancer for jQuery and Prototype
by Patrick Filler for Harvest, http://getharvest.com
Version 1.8.7
Full source at https://github.com/harvesthq/chosen
Copyright (c) 2011-2018 Harvest http://getharvest.com
MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
This file is generated by `grunt build`, do not edit it by hand.
*/
/* @group Base */
.chosen-container {
position: relative;
display: inline-block;
vertical-align: middle;
font-size: 13px;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.chosen-container * {
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.chosen-container .chosen-drop {
position: absolute;
top: 100%;
z-index: 1010;
width: 100%;
border: 1px solid #aaa;
border-top: 0;
background: #fff;
-webkit-box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15);
box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15);
clip: rect(0, 0, 0, 0);
-webkit-clip-path: inset(100% 100%);
clip-path: inset(100% 100%);
}
.chosen-container.chosen-with-drop .chosen-drop {
clip: auto;
-webkit-clip-path: none;
clip-path: none;
}
.chosen-container a {
cursor: pointer;
}
.chosen-container .search-choice .group-name, .chosen-container .chosen-single .group-name {
margin-right: 4px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
font-weight: normal;
color: #999999;
}
.chosen-container .search-choice .group-name:after, .chosen-container .chosen-single .group-name:after {
content: ":";
padding-left: 2px;
vertical-align: top;
}
/* @end */
/* @group Single Chosen */
.chosen-container-single .chosen-single {
position: relative;
display: block;
overflow: hidden;
padding: 0 0 0 8px;
height: 25px;
border: 1px solid #aaa;
border-radius: 5px;
background-color: #fff;
background: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #fff), color-stop(50%, #f6f6f6), color-stop(52%, #eee), to(#f4f4f4));
background: linear-gradient(#fff 20%, #f6f6f6 50%, #eee 52%, #f4f4f4 100%);
background-clip: padding-box;
-webkit-box-shadow: 0 0 3px #fff inset, 0 1px 1px rgba(0, 0, 0, 0.1);
box-shadow: 0 0 3px #fff inset, 0 1px 1px rgba(0, 0, 0, 0.1);
color: #444;
text-decoration: none;
white-space: nowrap;
line-height: 24px;
}
.chosen-container-single .chosen-default {
color: #999;
}
.chosen-container-single .chosen-single span {
display: block;
overflow: hidden;
margin-right: 26px;
text-overflow: ellipsis;
white-space: nowrap;
}
.chosen-container-single .chosen-single-with-deselect span {
margin-right: 38px;
}
.chosen-container-single .chosen-single abbr {
position: absolute;
top: 6px;
right: 26px;
display: block;
width: 12px;
height: 12px;
background: url("chosen-sprite.png") -42px 1px no-repeat;
font-size: 1px;
}
.chosen-container-single .chosen-single abbr:hover {
background-position: -42px -10px;
}
.chosen-container-single.chosen-disabled .chosen-single abbr:hover {
background-position: -42px -10px;
}
.chosen-container-single .chosen-single div {
position: absolute;
top: 0;
right: 0;
display: block;
width: 18px;
height: 100%;
}
.chosen-container-single .chosen-single div b {
display: block;
width: 100%;
height: 100%;
background: url("chosen-sprite.png") no-repeat 0px 2px;
}
.chosen-container-single .chosen-search {
position: relative;
z-index: 1010;
margin: 0;
padding: 3px 4px;
white-space: nowrap;
}
.chosen-container-single .chosen-search input[type="text"] {
margin: 1px 0;
padding: 4px 20px 4px 5px;
width: 100%;
height: auto;
outline: 0;
border: 1px solid #aaa;
background: url("chosen-sprite.png") no-repeat 100% -20px;
font-size: 1em;
font-family: sans-serif;
line-height: normal;
border-radius: 0;
}
.chosen-container-single .chosen-drop {
margin-top: -1px;
border-radius: 0 0 4px 4px;
background-clip: padding-box;
}
.chosen-container-single.chosen-container-single-nosearch .chosen-search {
position: absolute;
clip: rect(0, 0, 0, 0);
-webkit-clip-path: inset(100% 100%);
clip-path: inset(100% 100%);
}
/* @end */
/* @group Results */
.chosen-container .chosen-results {
color: #444;
position: relative;
overflow-x: hidden;
overflow-y: auto;
margin: 0 4px 4px 0;
padding: 0 0 0 4px;
max-height: 240px;
-webkit-overflow-scrolling: touch;
}
.chosen-container .chosen-results li {
display: none;
margin: 0;
padding: 5px 6px;
list-style: none;
line-height: 15px;
word-wrap: break-word;
-webkit-touch-callout: none;
}
.chosen-container .chosen-results li.active-result {
display: list-item;
cursor: pointer;
}
.chosen-container .chosen-results li.disabled-result {
display: list-item;
color: #ccc;
cursor: default;
}
.chosen-container .chosen-results li.highlighted {
background-color: #3875d7;
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #3875d7), color-stop(90%, #2a62bc));
background-image: linear-gradient(#3875d7 20%, #2a62bc 90%);
color: #fff;
}
.chosen-container .chosen-results li.no-results {
color: #777;
display: list-item;
background: #f4f4f4;
}
.chosen-container .chosen-results li.group-result {
display: list-item;
font-weight: bold;
cursor: default;
}
.chosen-container .chosen-results li.group-option {
padding-left: 15px;
}
.chosen-container .chosen-results li em {
font-style: normal;
text-decoration: underline;
}
/* @end */
/* @group Multi Chosen */
.chosen-container-multi .chosen-choices {
position: relative;
overflow: hidden;
margin: 0;
padding: 0 5px;
width: 100%;
height: auto;
border: 1px solid #aaa;
background-color: #fff;
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(1%, #eee), color-stop(15%, #fff));
background-image: linear-gradient(#eee 1%, #fff 15%);
cursor: text;
}
.chosen-container-multi .chosen-choices li {
float: left;
list-style: none;
}
.chosen-container-multi .chosen-choices li.search-field {
margin: 0;
padding: 0;
white-space: nowrap;
}
.chosen-container-multi .chosen-choices li.search-field input[type="text"] {
margin: 1px 0;
padding: 0;
height: 25px;
outline: 0;
border: 0 !important;
background: transparent !important;
-webkit-box-shadow: none;
box-shadow: none;
color: #999;
font-size: 100%;
font-family: sans-serif;
line-height: normal;
border-radius: 0;
width: 25px;
}
.chosen-container-multi .chosen-choices li.search-choice {
position: relative;
margin: 3px 5px 3px 0;
padding: 3px 20px 3px 5px;
border: 1px solid #aaa;
max-width: 100%;
border-radius: 3px;
background-color: #eeeeee;
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), to(#eee));
background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);
background-size: 100% 19px;
background-repeat: repeat-x;
background-clip: padding-box;
-webkit-box-shadow: 0 0 2px #fff inset, 0 1px 0 rgba(0, 0, 0, 0.05);
box-shadow: 0 0 2px #fff inset, 0 1px 0 rgba(0, 0, 0, 0.05);
color: #333;
line-height: 13px;
cursor: default;
}
.chosen-container-multi .chosen-choices li.search-choice span {
word-wrap: break-word;
}
.chosen-container-multi .chosen-choices li.search-choice .search-choice-close {
position: absolute;
top: 4px;
right: 3px;
display: block;
width: 12px;
height: 12px;
background: url("chosen-sprite.png") -42px 1px no-repeat;
font-size: 1px;
}
.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover {
background-position: -42px -10px;
}
.chosen-container-multi .chosen-choices li.search-choice-disabled {
padding-right: 5px;
border: 1px solid #ccc;
background-color: #e4e4e4;
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), to(#eee));
background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);
color: #666;
}
.chosen-container-multi .chosen-choices li.search-choice-focus {
background: #d4d4d4;
}
.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close {
background-position: -42px -10px;
}
.chosen-container-multi .chosen-results {
margin: 0;
padding: 0;
}
.chosen-container-multi .chosen-drop .result-selected {
display: list-item;
color: #ccc;
cursor: default;
}
/* @end */
/* @group Active */
.chosen-container-active .chosen-single {
border: 1px solid #5897fb;
-webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
}
.chosen-container-active.chosen-with-drop .chosen-single {
border: 1px solid #aaa;
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #eee), color-stop(80%, #fff));
background-image: linear-gradient(#eee 20%, #fff 80%);
-webkit-box-shadow: 0 1px 0 #fff inset;
box-shadow: 0 1px 0 #fff inset;
}
.chosen-container-active.chosen-with-drop .chosen-single div {
border-left: none;
background: transparent;
}
.chosen-container-active.chosen-with-drop .chosen-single div b {
background-position: -18px 2px;
}
.chosen-container-active .chosen-choices {
border: 1px solid #5897fb;
-webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
}
.chosen-container-active .chosen-choices li.search-field input[type="text"] {
color: #222 !important;
}
/* @end */
/* @group Disabled Support */
.chosen-disabled {
opacity: 0.5 !important;
cursor: default;
}
.chosen-disabled .chosen-single {
cursor: default;
}
.chosen-disabled .chosen-choices .search-choice .search-choice-close {
cursor: default;
}
/* @end */
/* @group Right to Left */
.chosen-rtl {
text-align: right;
}
.chosen-rtl .chosen-single {
overflow: visible;
padding: 0 8px 0 0;
}
.chosen-rtl .chosen-single span {
margin-right: 0;
margin-left: 26px;
direction: rtl;
}
.chosen-rtl .chosen-single-with-deselect span {
margin-left: 38px;
}
.chosen-rtl .chosen-single div {
right: auto;
left: 3px;
}
.chosen-rtl .chosen-single abbr {
right: auto;
left: 26px;
}
.chosen-rtl .chosen-choices li {
float: right;
}
.chosen-rtl .chosen-choices li.search-field input[type="text"] {
direction: rtl;
}
.chosen-rtl .chosen-choices li.search-choice {
margin: 3px 5px 3px 0;
padding: 3px 5px 3px 19px;
}
.chosen-rtl .chosen-choices li.search-choice .search-choice-close {
right: auto;
left: 4px;
}
.chosen-rtl.chosen-container-single .chosen-results {
margin: 0 0 4px 4px;
padding: 0 4px 0 0;
}
.chosen-rtl .chosen-results li.group-option {
padding-right: 15px;
padding-left: 0;
}
.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div {
border-right: none;
}
.chosen-rtl .chosen-search input[type="text"] {
padding: 4px 5px 4px 20px;
background: url("chosen-sprite.png") no-repeat -30px -20px;
direction: rtl;
}
.chosen-rtl.chosen-container-single .chosen-single div b {
background-position: 6px 2px;
}
.chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b {
background-position: -12px 2px;
}
/* @end */
/* @group Retina compatibility */
@media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-resolution: 144dpi), only screen and (min-resolution: 1.5dppx) {
.chosen-rtl .chosen-search input[type="text"],
.chosen-container-single .chosen-single abbr,
.chosen-container-single .chosen-single div b,
.chosen-container-single .chosen-search input[type="text"],
.chosen-container-multi .chosen-choices .search-choice .search-choice-close,
.chosen-container .chosen-results-scroll-down span,
.chosen-container .chosen-results-scroll-up span {
background-image: url("chosen-sprite@2x.png") !important;
background-size: 52px 37px !important;
background-repeat: no-repeat !important;
}
}
/* @end */

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,20 @@
@font-face {
font-family: 'gravityforms';
src: url( '../fonts/dashicons.eot' );
src: url( '../fonts/dashicons.eot?#iefix' ) format( 'embedded-opentype' ),
url( '../fonts/dashicons.woff' ) format( 'woff' ),
url( '../fonts/dashicons.ttf' ) format( 'truetype' ),
url( '../fonts/dashicons.svg#gravityforms' ) format( 'svg' );
font-weight: normal;
font-style: normal;
}
.dashicons-gravityforms:before {
display: inline-block;
font-family: 'gravityforms';
line-height: 1;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
content: 'a';
}

View File

@ -0,0 +1 @@
@font-face{font-family:gravityforms;src:url(../fonts/dashicons.eot);src:url(../fonts/dashicons.eot?#iefix) format('embedded-opentype'),url(../fonts/dashicons.woff) format('woff'),url(../fonts/dashicons.ttf) format('truetype'),url(../fonts/dashicons.svg#gravityforms) format('svg');font-weight:400;font-style:normal}.dashicons-gravityforms:before{display:inline-block;font-family:gravityforms;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:'a'}

View File

@ -0,0 +1,213 @@
/*
----------------------------------------------------------------
Gravity Forms Date Picker Styles
http: //www.gravityforms.com
updated: January 31, 2014 3:32 PM
Customized styles for the jQuery UI Datepicker 1.9.2
copyright 2012 jQuery Foundation and other contributors
Released under the MIT license.
http://jquery.org/license
some styles courtesty of http://www.hongkiat.com/
Gravity Forms is a Rocketgenius project
copyright 2008 - 2014 Rocketgenius Inc.
http: //www.rocketgenius.com
NOTE: DO NOT EDIT THIS FILE! MAKE ANY MODIFICATIONS IN YOUR
THEME STYLESHEET. THIS FILE IS REPLACED DURING AUTO-UPDATES
AND ANY CHANGES MADE HERE WILL BE OVERWRITTEN.
If you need to make extensive customizations,
copy the contents of this file to your theme
style sheet for editing. Then, go to the form
settings page & set the 'output CSS' option
to no.
----------------------------------------------------------------
*/
.ui-datepicker {
width: 216px;
height: auto;
margin: 5px auto 0;
font: 9pt Arial, sans-serif;
-webkit-box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, .5);
-moz-box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, .5);
box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, .5);
}
.ui-datepicker a {
text-decoration: none;
}
.ui-datepicker table {
width: 100%;
border-collapse: collapse;
}
.ui-datepicker-header {
background-color: #666; /* set the header background color */
color: #e0e0e0;
font-weight: bold;
-webkit-box-shadow: inset 0px 1px 1px 0px rgba(250, 250, 250, .2);
-moz-box-shadow: inset 0px 1px 1px 0px rgba(250, 250, 250, .2);
box-shadow: inset 0px 1px 1px 0px rgba(250, 250, 250, .2);
text-shadow: 1px -1px 0px #000;
filter: dropshadow(color=#000, offx=1, offy=-1);
line-height: 30px;
min-height: 30px !important;
border-width: 1px 0 0 0;
border-style: solid;
border-color: #666;
}
.ui-datepicker-title {
text-align: center;
}
.ui-datepicker-title select {
margin-top: 2.5%;
}
.ui-datepicker-prev,
.ui-datepicker-next {
display: inline-block;
width: 30px;
height: 30px;
text-align: center;
cursor: pointer;
background-image: url('../images/datepicker/arrow.png');
background-repeat: no-repeat;
line-height: 600%;
overflow: hidden;
}
.ui-datepicker-prev {
float: left;
background-position: center -30px;
}
.ui-datepicker-next {
float: right;
background-position: center 0px;
}
.ui-datepicker thead {
background: #f7f7f7;
background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2Y3ZjdmNyIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmMWYxZjEiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
background: -moz-linear-gradient(top, #f7f7f7 0%, #f1f1f1 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f7f7f7), color-stop(100%,#f1f1f1));
background: -webkit-linear-gradient(top, #f7f7f7 0%,#f1f1f1 100%);
background: -o-linear-gradient(top, #f7f7f7 0%,#f1f1f1 100%);
background: -ms-linear-gradient(top, #f7f7f7 0%,#f1f1f1 100%);
background: linear-gradient(to bottom, #f7f7f7 0%,#f1f1f1 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f7f7f7', endColorstr='#f1f1f1',GradientType=0 );
border-bottom: 1px solid #bbb;
}
.ui-datepicker th {
text-transform: uppercase;
text-align: center;
font-size: 6pt;
padding: 5px 0;
color: #666666;
text-shadow: 1px 0px 0px #fff;
filter: dropshadow(color=#fff, offx=1, offy=0);
}
.ui-datepicker tbody td {
padding: 0;
border-top: 1px solid #bbb;
border-right: 1px solid #bbb;
}
.ui-datepicker tbody td:last-child {
border-right: 0px;
}
.ui-datepicker tbody tr {
border-bottom: 1px solid #bbb;
}
.ui-datepicker tbody tr:last-child {
border-bottom: 0px;
}
.ui-datepicker td span,
.ui-datepicker td a {
display: inline-block;
font-weight: bold;
text-align: center;
width: 30px;
height: 30px;
line-height: 30px;
color: #666666;
text-shadow: 1px 1px 0px #fff;
filter: dropshadow(color=#fff, offx=1, offy=1);
}
.ui-datepicker-calendar .ui-state-default {
background: #ededed;
background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2VkZWRlZCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNkZWRlZGUiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
background: -moz-linear-gradient(top, #ededed 0%, #dedede 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ededed), color-stop(100%,#dedede));
background: -webkit-linear-gradient(top, #ededed 0%,#dedede 100%);
background: -o-linear-gradient(top, #ededed 0%,#dedede 100%);
background: -ms-linear-gradient(top, #ededed 0%,#dedede 100%);
background: linear-gradient(to bottom, #ededed 0%,#dedede 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ededed', endColorstr='#dedede',GradientType=0 );
-webkit-box-shadow: inset 1px 1px 0px 0px rgba(250, 250, 250, .5);
-moz-box-shadow: inset 1px 1px 0px 0px rgba(250, 250, 250, .5);
box-shadow: inset 1px 1px 0px 0px rgba(250, 250, 250, .5);
}
.ui-datepicker-calendar .ui-state-hover {
background: #f7f7f7;
}
.ui-datepicker-calendar .ui-state-active {
background: #FFF2AA; /* set the active date background color */
border: 1px solid #c19163; /* set the active date border color */
color: #666; /* set the active date font color */
-webkit-box-shadow: inset 0px 0px 10px 0px rgba(0, 0, 0, .1);
-moz-box-shadow: inset 0px 0px 10px 0px rgba(0, 0, 0, .1);
box-shadow: inset 0px 0px 10px 0px rgba(0, 0, 0, .1);
text-shadow: 0px 1px 0px #FFF;
filter: dropshadow(color=#FFF, offx=0, offy=1);
position: relative;
margin: -1px;
}
.ui-datepicker-unselectable .ui-state-default {
background: #f4f4f4;
color: #b4b3b3;
}
.ui-datepicker-calendar td:first-child .ui-state-active {
width: 29px;
margin-left: 0;
}
.ui-datepicker-calendar td:last-child .ui-state-active {
width: 29px;
margin-right: 0;
}
.ui-datepicker-calendar tr:last-child .ui-state-active {
height: 29px;
margin-bottom: 0;
}
td.ui-datepicker-unselectable.ui-state-disabled {
background-color: #d7d7d7;
}
table.ui-datepicker-calendar {
margin: 0 0 0 0 !important;
}
body div#ui-datepicker-div[style] {
z-index: 9999 !important;
}

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,47 @@
/*
----------------------------------------------------------------
formreset.css
Gravity Forms CSS Reset
http://www.gravityforms.com
updated: March 15, 2015 1:41 PM
Gravity Forms is a Rocketgenius project
copyright 2008-2015 Rocketgenius Inc.
http: //www.rocketgenius.com
this may not be redistributed without the
express written permission of the author.
NOTE: DO NOT EDIT THIS FILE! MAKE ANY MODIFICATIONS IN YOUR
THEME STYLESHEET. THIS FILE IS REPLACED DURING AUTO-UPDATES
AND ANY CHANGES MADE HERE WILL BE OVERWRITTEN.
If you need to make extensive customizations,
copy the contents of this file to your theme
style sheet for editing. Then, go to the form
settings page & set the 'output CSS' option
to no.
----------------------------------------------------------------
*/
body .gform_wrapper.gf_reset_wrapper, body .gform_wrapper.gf_reset_wrapper div, body .gform_wrapper.gf_reset_wrapper span, body .gform_wrapper.gf_reset_wrapper iframe, body .gform_wrapper.gf_reset_wrapper h1, body .gform_wrapper.gf_reset_wrapper h2, body .gform_wrapper.gf_reset_wrapper h3, body .gform_wrapper.gf_reset_wrapper h4, body .gform_wrapper.gf_reset_wrapper h5, body .gform_wrapper.gf_reset_wrapper h6, body .gform_wrapper.gf_reset_wrapper p, body .gform_wrapper.gf_reset_wrapper img, body .gform_wrapper.gf_reset_wrapper ol, body .gform_wrapper.gf_reset_wrapper ul, body .gform_wrapper.gf_reset_wrapper li, body .gform_wrapper.gf_reset_wrapper fieldset, body .gform_wrapper.gf_reset_wrapper form, body .gform_wrapper.gf_reset_wrapper label, body .gform_wrapper.gf_reset_wrapper legend, body .gform_wrapper.gf_reset_wrapper input[type=text], body .gform_wrapper.gf_reset_wrapper input[type=email], body .gform_wrapper.gf_reset_wrapper input[type=tel], body .gform_wrapper.gf_reset_wrapper input[type=url], body .gform_wrapper.gf_reset_wrapper input[type=number], body .gform_wrapper.gf_reset_wrapper input[type=password], body .gform_wrapper.gf_reset_wrapper select, body .gform_wrapper.gf_reset_wrapper textarea, body .gform_wrapper.gf_reset_wrapper input[type=submit], body .gform_wrapper.gf_reset_wrapper input[type=button], body .gform_wrapper.gf_reset_wrapper input[type=image], body .gform_wrapper.gf_reset_wrapper button, body .gform_wrapper.gf_reset_wrapper table, body .gform_wrapper.gf_reset_wrapper caption, body .gform_wrapper.gf_reset_wrapper tbody, body .gform_wrapper.gf_reset_wrapper tfoot, body .gform_wrapper.gf_reset_wrapper thead, body .gform_wrapper.gf_reset_wrapper tr, body .gform_wrapper.gf_reset_wrapper th, body .gform_wrapper.gf_reset_wrapper td {
margin: 0;
padding: 0;
border: 0;
outline: 0;
}
body .gform_wrapper.gf_reset_wrapper div, body .gform_wrapper.gf_reset_wrapper span, body .gform_wrapper.gf_reset_wrapper iframe, body .gform_wrapper.gf_reset_wrapper p, body .gform_wrapper.gf_reset_wrapper img, body .gform_wrapper.gf_reset_wrapper ol, body .gform_wrapper.gf_reset_wrapper ul, body .gform_wrapper.gf_reset_wrapper li, body .gform_wrapper.gf_reset_wrapper fieldset, body .gform_wrapper.gf_reset_wrapper form, body .gform_wrapper.gf_reset_wrapper label, body .gform_wrapper.gf_reset_wrapper legend, body .gform_wrapper.gf_reset_wrapper input[type=text], body .gform_wrapper.gf_reset_wrapper input[type=email], body .gform_wrapper.gf_reset_wrapper input[type=tel], body .gform_wrapper.gf_reset_wrapper input[type=url], body .gform_wrapper.gf_reset_wrapper input[type=number], body .gform_wrapper.gf_reset_wrapper input[type=password], body .gform_wrapper.gf_reset_wrapper select, body .gform_wrapper.gf_reset_wrapper textarea, body .gform_wrapper.gf_reset_wrapper input[type=submit], body .gform_wrapper.gf_reset_wrapper input[type=button], body .gform_wrapper.gf_reset_wrapper input[type=image], body .gform_wrapper.gf_reset_wrapper button, body .gform_wrapper.gf_reset_wrapper table, body .gform_wrapper.gf_reset_wrapper caption, body .gform_wrapper.gf_reset_wrapper tbody, body .gform_wrapper.gf_reset_wrapper tfoot, body .gform_wrapper.gf_reset_wrapper thead, body .gform_wrapper.gf_reset_wrapper tr, body .gform_wrapper.gf_reset_wrapper th, body .gform_wrapper.gf_reset_wrapper td {
font-weight: inherit;
font-style: inherit;
font-size: 100%;
font-family: inherit;
vertical-align: baseline;
line-height: 1;
font-weight: normal;
}
body .gform_wrapper.gf_reset_wrapper div, body .gform_wrapper.gf_reset_wrapper span, body .gform_wrapper.gf_reset_wrapper p { line-height: 1.8 }
body .gform_wrapper.gf_reset_wrapper fieldset, body .gform_wrapper.gf_reset_wrapper img { border: 0 }
body .gform_wrapper.gf_reset_wrapper ol, body .gform_wrapper.gf_reset_wrapper ul, body .gform_wrapper.gf_reset_wrapper li { list-style: none }
body .gform_wrapper.gf_reset_wrapper a img { border: none }
body .gform_wrapper.gf_reset_wrapper :focus { outline: 0 }

View File

@ -0,0 +1 @@
body .gform_wrapper.gf_reset_wrapper,body .gform_wrapper.gf_reset_wrapper button,body .gform_wrapper.gf_reset_wrapper caption,body .gform_wrapper.gf_reset_wrapper div,body .gform_wrapper.gf_reset_wrapper fieldset,body .gform_wrapper.gf_reset_wrapper form,body .gform_wrapper.gf_reset_wrapper h1,body .gform_wrapper.gf_reset_wrapper h2,body .gform_wrapper.gf_reset_wrapper h3,body .gform_wrapper.gf_reset_wrapper h4,body .gform_wrapper.gf_reset_wrapper h5,body .gform_wrapper.gf_reset_wrapper h6,body .gform_wrapper.gf_reset_wrapper iframe,body .gform_wrapper.gf_reset_wrapper img,body .gform_wrapper.gf_reset_wrapper input[type=button],body .gform_wrapper.gf_reset_wrapper input[type=email],body .gform_wrapper.gf_reset_wrapper input[type=image],body .gform_wrapper.gf_reset_wrapper input[type=number],body .gform_wrapper.gf_reset_wrapper input[type=password],body .gform_wrapper.gf_reset_wrapper input[type=submit],body .gform_wrapper.gf_reset_wrapper input[type=tel],body .gform_wrapper.gf_reset_wrapper input[type=text],body .gform_wrapper.gf_reset_wrapper input[type=url],body .gform_wrapper.gf_reset_wrapper label,body .gform_wrapper.gf_reset_wrapper legend,body .gform_wrapper.gf_reset_wrapper li,body .gform_wrapper.gf_reset_wrapper ol,body .gform_wrapper.gf_reset_wrapper p,body .gform_wrapper.gf_reset_wrapper select,body .gform_wrapper.gf_reset_wrapper span,body .gform_wrapper.gf_reset_wrapper table,body .gform_wrapper.gf_reset_wrapper tbody,body .gform_wrapper.gf_reset_wrapper td,body .gform_wrapper.gf_reset_wrapper textarea,body .gform_wrapper.gf_reset_wrapper tfoot,body .gform_wrapper.gf_reset_wrapper th,body .gform_wrapper.gf_reset_wrapper thead,body .gform_wrapper.gf_reset_wrapper tr,body .gform_wrapper.gf_reset_wrapper ul{margin:0;padding:0;border:0;outline:0}body .gform_wrapper.gf_reset_wrapper button,body .gform_wrapper.gf_reset_wrapper caption,body .gform_wrapper.gf_reset_wrapper div,body .gform_wrapper.gf_reset_wrapper fieldset,body .gform_wrapper.gf_reset_wrapper form,body .gform_wrapper.gf_reset_wrapper iframe,body .gform_wrapper.gf_reset_wrapper img,body .gform_wrapper.gf_reset_wrapper input[type=button],body .gform_wrapper.gf_reset_wrapper input[type=email],body .gform_wrapper.gf_reset_wrapper input[type=image],body .gform_wrapper.gf_reset_wrapper input[type=number],body .gform_wrapper.gf_reset_wrapper input[type=password],body .gform_wrapper.gf_reset_wrapper input[type=submit],body .gform_wrapper.gf_reset_wrapper input[type=tel],body .gform_wrapper.gf_reset_wrapper input[type=text],body .gform_wrapper.gf_reset_wrapper input[type=url],body .gform_wrapper.gf_reset_wrapper label,body .gform_wrapper.gf_reset_wrapper legend,body .gform_wrapper.gf_reset_wrapper li,body .gform_wrapper.gf_reset_wrapper ol,body .gform_wrapper.gf_reset_wrapper p,body .gform_wrapper.gf_reset_wrapper select,body .gform_wrapper.gf_reset_wrapper span,body .gform_wrapper.gf_reset_wrapper table,body .gform_wrapper.gf_reset_wrapper tbody,body .gform_wrapper.gf_reset_wrapper td,body .gform_wrapper.gf_reset_wrapper textarea,body .gform_wrapper.gf_reset_wrapper tfoot,body .gform_wrapper.gf_reset_wrapper th,body .gform_wrapper.gf_reset_wrapper thead,body .gform_wrapper.gf_reset_wrapper tr,body .gform_wrapper.gf_reset_wrapper ul{font-style:inherit;font-size:100%;font-family:inherit;vertical-align:baseline;line-height:1;font-weight:400}body .gform_wrapper.gf_reset_wrapper div,body .gform_wrapper.gf_reset_wrapper p,body .gform_wrapper.gf_reset_wrapper span{line-height:1.8}body .gform_wrapper.gf_reset_wrapper fieldset,body .gform_wrapper.gf_reset_wrapper img{border:0}body .gform_wrapper.gf_reset_wrapper li,body .gform_wrapper.gf_reset_wrapper ol,body .gform_wrapper.gf_reset_wrapper ul{list-style:none}body .gform_wrapper.gf_reset_wrapper a img{border:none}body .gform_wrapper.gf_reset_wrapper :focus{outline:0}

View File

@ -0,0 +1,15 @@
@import url('formreset.css');
@import url('datepicker.css');
@import url('formsmain.css');
@import url('readyclass.css');
@import url('browsers.css');
@import url('rtl.css');
/*
Note: October 2, 2014 3:51 PM
All CSS files are now enqueued directly for better minification support.
This file has been left in place temporarily for anyone who may have manually referenced this file in their theme.
*/

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,2 @@
<?php
//Nothing to see here

View File

@ -0,0 +1,139 @@
/*
----------------------------------------------------------------
jquery-ui.custom.css
Gravity Forms Custom jQuery UI styles
http: //www.gravityforms.com
updated: March 18, 2013 4:15 PM
Gravity Forms is a Rocketgenius project
copyright 2013 Rocketgenius Inc.
http: //www.rocketgenius.com
copyright 2009 (http://jqueryui.com/about)
dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
NOTE: DO NOT EDIT THIS FILE!
THIS FILE IS REPLACED DURING AUTO UPGRADE
AND ANY CHANGES MADE HERE WILL BE OVERWRITTEN.
----------------------------------------------------------------
*/
.ui-helper-hidden {
display: none;
}
.ui-helper-hidden-accessible {
position: absolute;
left: -99999999px;
}
.ui-helper-reset {
margin: 0;
padding: 0;
border: 0;
outline: 0;
line-height: 1.3;
text-decoration: none;
font-size: 100%;
list-style: none;
}
.ui-helper-clearfix:after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
.ui-helper-clearfix {
display: inline-block;
}
* html .ui-helper-clearfix {
height: 1%;
}
.ui-helper-clearfix {
display: block;
}
.ui-helper-zfix {
width: 100%;
height: 100%;
top: 0;
left: 0;
position: absolute;
opacity: 0;
filter: Alpha(Opacity=0);
}
.ui-state-disabled {
cursor: default !important;
}
.ui-icon {
display: block;
text-indent: -99999px;
overflow: hidden;
background-repeat: no-repeat;
}
.ui-tabs {
padding: .2em;
zoom: 1;
}
.ui-tabs[style] {
border: 1px solid #C2D7EF !important;
margin: 6px 0 0 !important;
swidth: 438px !important;
}
.ui-tabs .ui-tabs-nav {
list-style: none;
position: relative;
padding: .2em .2em 0 0;
}
.ui-tabs .ui-tabs-nav li {
position: relative;
float: left;
border-bottom-width: 0 !important;
margin: 0 .2em -1px 0;
padding: 0;
text-align: center;
}
.ui-tabs .ui-tabs-nav li a {
display: block;
text-decoration: none;
padding: .5em 1em;
text-align: center;
font-size: 12px;
}
.ui-tabs .ui-tabs-nav li.ui-tabs-selected {
padding-bottom: 1px;
border-bottom-width: 0;
}
.ui-tabs .ui-tabs-nav li.ui-tabs-selected a,.ui-tabs .ui-tabs-nav li.ui-state-disabled a,.ui-tabs .ui-tabs-nav li.ui-state-processing a {
cursor: text;
}
.ui-tabs .ui-tabs-nav li a,.ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a {
cursor: pointer;
}
.ui-tabs .ui-tabs-panel {
padding: 1em 1.4em;
display: block;
border-width: 0;
background: none;
}
.ui-tabs .ui-tabs-hide {
display: none !important;
}

View File

@ -0,0 +1 @@
.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{position:absolute;left:-99999999px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden}* html .ui-helper-clearfix{height:1%}.ui-helper-clearfix{display:block}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-tabs{padding:.2em;zoom:1}.ui-tabs[style]{border:1px solid #C2D7EF!important;margin:6px 0 0!important;swidth:438px!important}.ui-tabs .ui-tabs-nav{list-style:none;position:relative;padding:.2em .2em 0 0}.ui-tabs .ui-tabs-nav li{position:relative;float:left;border-bottom-width:0!important;margin:0 .2em -1px 0;padding:0;text-align:center}.ui-tabs .ui-tabs-nav li a{display:block;text-decoration:none;padding:.5em 1em;text-align:center;font-size:12px}.ui-tabs .ui-tabs-nav li.ui-tabs-selected{padding-bottom:1px;border-bottom-width:0}.ui-tabs .ui-tabs-nav li.ui-state-disabled a,.ui-tabs .ui-tabs-nav li.ui-state-processing a,.ui-tabs .ui-tabs-nav li.ui-tabs-selected a{cursor:text}.ui-tabs .ui-tabs-nav li a,.ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a{cursor:pointer}.ui-tabs .ui-tabs-panel{padding:1em 1.4em;display:block;border-width:0;background:0 0}.ui-tabs .ui-tabs-hide{display:none!important}

View File

@ -0,0 +1,587 @@
/*
----------------------------------------------------------------
preview.css
Gravity Forms Form Preview Styles
http://www.gravityforms.com
updated: November 11, 2016 9:28 AM GMT-5
Gravity Forms is a Rocketgenius project
copyright 2008-2016 Rocketgenius Inc.
http: //www.rocketgenius.com
this may not be redistributed without the
express written permission of the author.
NOTE: DO NOT EDIT THIS FILE!
THIS FILE IS REPLACED DURING AUTO UPGRADE
AND ANY CHANGES MADE HERE WILL BE OVERWRITTTEN.
----------------------------------------------------------------
*/
html {
box-sizing: border-box;
}
*,
*:before,
*:after {
box-sizing: inherit;
}
body {
display: block !important;
font-family: "lucida sans", "lucida grande", lucida , arial, sans-serif;
font-size: 16px;
padding: 0 0 20px 0;
background-color: #F1F1F1;
}
div#preview_hdr {
margin: 0;
color: #FFF;
font-family: "Open Sans",sans-serif;
padding: 10px 20px 8px 0;
font-size: 16px;
background-color: #0074A2;
display:block !important;
}
div#preview_hdr h2 {
font-weight: normal;
padding: 0 !important;
margin: 0 !important;
font-size: 18px;
white-space: nowrap !important;
}
div#preview_hdr div:first-child {
padding-left: 16px;
}
div#preview_hdr span.toggle_helpers {
width: auto !important;
display: block;
float: right;
text-align: right;
margin-top: 2px;
font-family: "lucida sans", "lucida grande", lucida , sans-serif;
color: #FFF;
font-weight: normal;
letter-spacing: normal;
font-size: 12px;
vertical-align: middle;
}
div#preview_hdr span.toggle_helpers label {
line-height: 1;
}
div#preview_hdr a {
color: #FFF;
text-decoration: none;
display: inline;
font-weight: normal;
letter-spacing: normal;
font-size: 12px;
}
div#preview_hdr a:hover {
color: #FFF;
text-decoration: underline;
}
div#preview_note {
background-color: #fff;
box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1);
display: inline-block;
font-family: "lucida sans", "lucida grande", lucida , sans-serif;
font-size: 12px;
line-height: 1.6;
margin: 12px 24px -6px 24px;
padding: 11px 30px 11px 15px;
position: relative;
text-align: left;
border-left: 4px solid #ffba00;
}
div#preview_note i.hidenotice {
margin-left: 6px;
cursor: pointer;
display: inline-block;
width: 10px;
height: 10px;
background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHZpZXdCb3g9Ii0yODkgMzgxIDMyIDMyIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IC0yODkgMzgxIDMyIDMyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4uc3Qwe2ZpbGw6Izc5MDAwMDt9PC9zdHlsZT48cGF0aCBjbGFzcz0ic3QwIiBkPSJNLTI1OC4zLDM4Ny44bC05LjIsOS4zbDkuMiw5LjJjMC40LDAuNCwwLjQsMSwwLDEuNGwtNC4yLDQuMmMtMC40LDAuNC0xLDAuNC0xLjQsMGwtOS4yLTkuMmwtOS4xLDkuMmMtMC40LDAuNC0xLDAuNC0xLjQsMGwtNC4yLTQuMmMtMC40LTAuNC0wLjQtMSwwLTEuNGw5LjEtOS4ybC05LjEtOS4xYy0wLjQtMC40LTAuNC0xLDAtMS40bDQuMi00LjJjMC40LTAuNCwxLTAuNCwxLjQsMGw5LjEsOS4xbDkuMi05LjNjMC40LTAuNCwxLTAuNCwxLjQsMGw0LjIsNC4yQy0yNTcuOSwzODYuOC0yNTcuOSwzODcuNC0yNTguMywzODcuOHoiLz48L3N2Zz4=);
background-repeat: no-repeat;
background-size: 10px 10px;
position: absolute;
top: 15px;
right: 10px;
}
div#preview_form_container {
padding: 20px 20px 32px 20px;
background-color: #FFF;
border: 1px solid #FFF;
border-bottom: 4px solid #D3D3D3;
}
div#preview_form_container.showgrid {
border: 1px solid #E6E6E6;
border-bottom: 4px solid #D3D3D3;
background-image:url(../images/preview_grid.gif);
background-position: 20px 0;
position: relative;
box-sizing: border-box;
}
@media only screen and (min-width: 641px) {
div#preview_form_container.showgrid .gform_wrapper form {
z-index: 50 !important;
position: relative;
}
div#preview_form_container.showgrid span.rule25 {
padding-left: 4px;
display: inline-block;
height: 100% !important;
border-left: 1px solid rgba(116, 156, 40, .5);
position: absolute;
left: 25%;
top: 0;
vertical-align: top;
z-index: 1;
}
div#preview_form_container.showgrid span.rule25:before {
content:"25%";
font-size: .75rem;
color: rgba(116, 156, 40, .5);
background-color: rgba(255, 255, 255, .5);
margin-left: -.75rem;
font-weight: 700;
font-family: monospace;
}
div#preview_form_container.showgrid span.rule33 {
padding-left: 4px;
display: inline-block;
height: 100% !important;
border-left: 1px solid rgba(198, 7, 9, .25);
position: absolute;
left: 33.3%;
top: 0;
vertical-align: top;
z-index: 1;
}
div#preview_form_container.showgrid span.rule33:before {
content:"33%";
font-size: .75rem;
color: rgba(198, 7, 9, .5);
background-color: rgba(255, 255, 255, .5);
margin-left: -.75rem;
font-weight: 700;
font-family: monospace;
}
div#preview_form_container.showgrid span.rule50 {
padding-left: 4px;
display: inline-block;
height: 100% !important;
border-left: 1px solid rgba(116, 156, 40, .5);
position: absolute;
left: 50%;
top: 0;
vertical-align: top;
z-index: 1;
}
div#preview_form_container.showgrid span.rule50:before {
content:"50%";
font-size: .75rem;
color: rgba(116, 156, 40, .5);
background-color: rgba(255, 255, 255, .5);
margin-left: -.75rem;
font-weight: 700;
font-family: monospace;
}
div#preview_form_container.showgrid span.rule66 {
padding-left: 4px;
display: inline-block;
height: 100% !important;
border-left: 1px solid rgba(198, 7, 9, .25);
position: absolute;
left: 66.6%;
top: 0;
vertical-align: top;
z-index: 1;
}
div#preview_form_container.showgrid span.rule66:before {
content:"66%";
font-size: .75rem;
color: rgba(198, 7, 9, .5);
background-color: rgba(255, 255, 255, .5);
margin-left: -.75rem;
font-weight: 700;
font-family: monospace;
}
div#preview_form_container.showgrid span.rule75 {
padding-left: 4px;
display: inline-block;
height: 100% !important;
border-left: 1px solid rgba(116, 156, 40, .5);
position: absolute;
left: 75%;
top: 0;
vertical-align: top;
z-index: 1;
}
div#preview_form_container.showgrid span.rule75:before {
content:"75%";
font-size: .75rem;
color: rgba(116, 156, 40, .5);
background-color: rgba(255, 255, 255, .5);
margin-left: -.75rem;
font-weight: 700;
font-family: monospace;
}
}
.gform_wrapper {
color: #000;
font-size: 1em;
margin: 16px auto;
}
.gform_footer input.button,
.gform_footer input[type=button],
.gform_page_footer input.button,
.gform_page_footer input[type=button] {
border: none;
font-size: 1em;
text-decoration: none;
color: #FFF;
background-color: #3498db;
box-shadow: inset 0px 1px 0px #73b0d8, 0px 4px 0px #2980b9;
text-shadow: 0px 1px 1px rgba(255,255,255,0.3);
position: relative;
padding: 12px 24px;
border-radius: 4px;
-webkit-appearance: none !important;
}
.gform_wrapper.gf_browser_ie .gform_footer input.button,
.gform_wrapper.gf_browser_ie .gform_footer input[type=button],
.gform_wrapper.gf_browser_ie .gform_page_footer input.button,
.gform_wrapper.gf_browser_ie .gform_page_footer input[type=button] {
padding: 12px 24px 12px 24px !important;
}
.gform_footer input.button:hover,
.gform_footer input[type=button]:hover,
.gform_page_footer input.button:hover,
.gform_page_footer input[type=button]:hover {
color: #FFF;
background-color: #4ba7e5;
}
div#helper_legend_container,
div#helper_legend_container ul#helper_legend {
display: none;
}
div#browser_size_info {
position: fixed;
right: 5px;
bottom: 5px;
z-index: 9999;
font-size: 12px;
font-weight: normal;
width: auto;
display: -moz-inline-stack;
display: inline-block;
padding: 4px 8px;
background-color: #FFFBCC;
border: 1px solid #E6DB55;
}
@media only screen and (min-width: 320px) {
/* experimental styles to display field ids and class names in preview */
div#helper_legend_container {
background-color:#fff;
padding: 12px 20px 16px 20px;
margin: 16px 24px 0 24px;
width: auto;
border-bottom: 4px solid #D3D3D3;
}
div#helper_legend_container ul#helper_legend {
display: block;
}
ul#helper_legend li {
display: -moz-inline-stack;
display: inline-block;
width: auto;
vertical-align: middle;
font-size: 16px;
position: relative;
padding-left: 20px;
margin-right: 16px;
}
ul#helper_legend li.showclass:before {
content:"";
width: 16px;
height: 16px;
display: -moz-inline-stack;
display: inline-block;
position: absolute;
top: 4px;
left: 0;
background-color: #ff9;
border: 2px solid #FC6;
}
ul#helper_legend li.showid:before {
content:"";
width: 16px;
height: 16px;
display: -moz-inline-stack;
display: inline-block;
position: absolute;
top: 4px;
left: 0;
background-color: #CF9;
border: 2px solid #73e600;
}
.gform_wrapper .gf_showme ul.gform_fields li.gfield:before {
content:"\25bc " attr(id);
line-height: 2.5;
display: block;
font-size: 11px;
font-weight: 700;
background-color: #CF9;
border-left: 4px solid #73e600;
color: #060;
padding: 2px 4px;
text-indent: 4px;
font-family: monospace;
}
.gform_wrapper .gf_showme ul.gfield_checkbox li label:before,
.gform_wrapper .gf_showme ul.gfield_radio li label:before {
content:"\25bc " attr(id);
line-height: 2.5;
display: block;
font-size: 11px;
font-weight: 400;
background-color: #CF9;
border-left: 4px solid #73e600;
color: #060;
padding: 2px 4px;
text-indent: 4px;
font-family: monospace;
}
.gform_wrapper .gf_showme .gform_heading,
.gform_wrapper .gf_showme .gform_body,
.gform_wrapper .gf_showme .gform_footer,
.gform_wrapper .gf_showme .gform_page_footer,
.gform_wrapper .gf_showme .gform_page {
border: 1px dashed #F60;
padding: 16px;
}
.gform_wrapper .gf_showme .gform_heading .gform_title,
.gform_wrapper .gf_showme .gform_heading .gform_description {
border: 1px dashed #060;
padding: 16px;
margin-top: 8px;
display: block;
}
.gform_wrapper .gf_showme ul.gform_fields li.gfield {
border: 1px dashed #060;
margin-top: 32px !important;
padding: 16px;
}
.gform_wrapper .gf_showme ul.gform_fields label.gfield_label {
border: 1px dashed #060;
padding: 16px;
}
.gform_wrapper .gf_showme ul.gform_fields label.gfield_label span.gfield_required {
border: 1px dashed #060;
padding: 8px;
display: -moz-inline-stack;
display: inline-block;
vertical-align: middle;
}
.gform_wrapper .gf_showme ul.gform_fields,
.gform_wrapper .gf_showme ul.gform_fields .ginput_container,
.gform_wrapper .gf_showme ul.gform_fields li .gfield_description,
.gform_wrapper .gf_showme table.gfield_list,
.gform_wrapper .gf_showme table.gfield_list td.gfield_list_cell,
.gform_wrapper .gf_showme table.gfield_list td.gfield_list_icons,
.gform_wrapper .gf_showme .gform_card_icon_container,
.gform_wrapper .gf_showme ul.gfield_checkbox,
.gform_wrapper .gf_showme ul.gfield_checkbox li,
.gform_wrapper .gf_showme ul.gfield_radio,
.gform_wrapper .gf_showme ul.gfield_radio li,
.gform_wrapper .gf_showme .gform_footer a.gform_save_link,
.gform_wrapper .gf_showme .gform_page_footer a.gform_save_link,
.gform_wrapper .gf_showme .chosen-container,
.gform_wrapper .gf_showme .gsection_description,
.gform_wrapper .gf_showme .gsection_title {
border: 1px dashed #060;
padding: 16px;
margin-top: 8px;
}
.gform_wrapper .gf_showme ul.gfield_checkbox li {
display: block;
margin-bottom: 8px !important;
}
.gform_wrapper .gf_showme li.gf_list_2col ul.gfield_checkbox li,
.gform_wrapper .gf_showme li.gf_list_3col ul.gfield_checkbox li,
.gform_wrapper .gf_showme li.gf_list_4col ul.gfield_checkbox li,
.gform_wrapper .gf_showme li.gf_list_5col ul.gfield_checkbox li {
margin-bottom: 8px !important;
}
.gform_wrapper .gf_showme li.gf_list_2col ul li {
width: 49% !important;
margin-right: 8px !important;
}
.gform_wrapper .gf_showme li.gf_list_3col ul li {
width: 32.3% !important;
margin-right: 8px !important;
}
.gform_wrapper .gf_showme li.gf_list_4col ul li {
width: 24% !important;
margin-right: 8px !important;
}
.gform_wrapper .gf_showme li.gf_list_5col ul li {
width: 19% !important;
margin-right: 8px !important;
}
.gform_wrapper .gf_showme li.gf_list_inline ul li {
margin-right: 8px !important;
}
.gform_wrapper .gf_showme table.gfield_list td.gfield_list_cell {
position: relative;
}
.gform_wrapper .gf_showme table.gfield_list {
display: -moz-inline-stack;
display: inline-block;
width: 100%;
}
.gform_wrapper .gf_showme table.gfield_list thead,
.gform_wrapper .gf_showme table.gfield_list tbody,
.gform_wrapper .gf_showme table.gfield_list tfoot {
width: 100%;
}
.gform_wrapper .gf_showme ul.gform_fields li .ginput_container_name span,
.gform_wrapper .gf_showme ul.gform_fields li .ginput_container_address span {
border: 1px dashed #060;
padding: 16px;
margin-top: 8px;
margin-right: 8px;
}
.gform_wrapper .gf_showme ul.gform_fields li .ginput_container_address span.ginput_full {
width: 100%;
display: -moz-inline-stack;
display: inline-block;
}
.gform_wrapper .gf_showme ul.gform_fields li .ginput_container_address span.ginput_left,
.gform_wrapper .gf_showme ul.gform_fields li .ginput_container_address span.ginput_right {
width: 49%;
}
.gform_wrapper .gf_showme ul.gform_fields li .ginput_container_name span:last-child,
.gform_wrapper .gf_showme ul.gform_fields li .ginput_container_address span:last-child {
margin-right: 0;
}
.gform_wrapper .gf_showme ul.gform_fields li.gfield.gf_left_half,
.gform_wrapper .gf_showme ul.gform_fields li.gfield.gf_right_half {
width: 49%;
}
.gform_wrapper .gf_showme ul.gform_fields li.gfield.gf_left_half,
.gform_wrapper .gf_showme ul.gform_fields li.gfield.gf_left_third,
.gform_wrapper .gf_showme ul.gform_fields li.gfield.gf_middle_third {
margin-right:16px;
}
.gform_wrapper .gf_showme *:not(label):after,
.gform_wrapper .gf_showme *:not(option):after,
.gform_wrapper .gf_showme label.gfield_label:after,
.gform_wrapper .gf_showme ul.gform_fields li.gfield:after,
.gform_wrapper .gf_showme ul.gfield_checkbox li label:after,
.gform_wrapper .gf_showme .gform_footer input[type='submit'].gform_button.button:after {
content: "\25b2 " attr(class);
line-height: 2.5;
display: block;
width: auto;
font-size: 11px;
font-weight: 400;
background-color: #FF9;
border-left: 4px solid #FC6;
margin-top: 8px;
padding: 2px 4px;
color: #963;
text-indent: 4px;
font-family: monospace;
}
.gform_wrapper .gf_showme .gform_footer input[type='submit'].gform_button.button {
display: -moz-inline-stack;
display: inline-block;
}
.gform_wrapper .gf_showme li.gfield_html *:after,
.gform_wrapper .gf_showme table thead:after,
.gform_wrapper .gf_showme table tbody:after,
.gform_wrapper .gf_showme table th:after,
.gform_wrapper .gf_showme table tr:after,
.gform_wrapper .gf_showme table tfoot:after,
.gform_wrapper .gf_showme .ginput_full label:after,
.gform_wrapper .gf_showme .ginput_left label:after,
.gform_wrapper .gf_showme .ginput_right label:after,
.gform_wrapper .gf_showme .gf_clear:after,
.gform_wrapper .gf_showme .ginput_container_multiselect option:after,
.gform_wrapper .gf_showme ul.gfield_checkbox li label:after,
.gform_wrapper .gf_showme ul.gfield_radio li label:after,
.gform_wrapper .gf_showme .ginput_container_name label:after,
.gform_wrapper .gf_showme .ginput_container_select option:after,
.gform_wrapper .gf_showme option:after {
content: none !important;
}
div#preview_form_container {
margin: 24px;
}
}
@media only screen and (max-width: 640px) {
span.toggle_helpers {
display: none !important;
}
}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,331 @@
/*
----------------------------------------------------------------
print.css
Gravity Forms Print Entry Styles
http://www.gravityforms.com
updated: April 23, 2013 10:38 AM
Gravity Forms is a Rocketgenius project
copyright 2013 Rocketgenius Inc.
http: //www.rocketgenius.com
this may not be re-distrubited without the
express written permission of the author.
NOTE: DO NOT EDIT THIS FILE!
THIS FILE IS REPLACED DURING AUTO UPGRADE
AND ANY CHANGES MADE HERE WILL BE OVERWRITTEN.
------------------------------------------------
*/
@media screen
{
body{
color: #333
}
:focus {
outline: 0
}
div#print_preview_hdr {
margin: 0 0 16px 0;
color: #18749D;
font-family: Georgia,"Times New Roman","Bitstream Charter",Times,serif;
padding: 12px 20px 12px 0;
font-size: 16px;
border-bottom: 2px solid #C5D7F1;
background-color: #DFEFFF;
display: block !important
}
div#print_preview_hdr div:first-child {
/*background-image: url(../images/wp-logo.png);*/
background-position: 16px center;
background-repeat: no-repeat;
padding-left: 36px
}
div#print_preview_hdr span.actionlinks {
width: 200px;
display: block;
float: right;
text-align: right;
margin-top: 5px;
font-family: "lucida sans", "lucida grande", lucida , sans-serif;
font-size: 12px;
color: #CCC
}
div#print_preview_hdr a {
color: #21759B;
text-decoration: none;
display: inline;
font-weight: normal;
letter-spacing: normal
}
div#print_preview_hdr a:hover {
color: #21759B;
text-decoration: underline
}
div#view-container {
margin: 0 20px 20px 20px
}
div.print-hr {
border-top: 1px dotted #ccc;
margin: 15px 0 30px
}
}
@media print
{
body{
color:#000
}
div#print-preview-header,
div#print-preview-header span.actionlinks,
div#print-preview-header span.actionlinks a {
display: none !important
}
div#print-preview-header {
margin-left:-9000px
}
div.print-page-break {
page-break-after: always;
border-top: 0;
margin: 0
}
}
@media screen,print
{
html {
height: 100%;
}
body {
font-family: sans-serif;
font-size: 12px;
padding: 0;
margin: 0;
height: 100%
}
ul {
margin: 10px 0;
padding: 0
}
img {
border: 0
}
.widefat {
background-color: #FFF;
border-color: #DFDFDF
}
.widefat {
-moz-border-radius: 4px;
-khtml-border-radius: 4px;
-webkit-border-radius: 4px;
border-radius: 4px;
border-spacing: 0;
border-style: solid;
border-width: 1px;
clear: both;
margin: 0;
width: 100%
}
table.fixed {
table-layout: fixed
}
table.entry-detail-view, table.entry-detail-notes {
margin: 0 0 16px 0
}
table.entry-detail-notes {
page-break-before: always
}
table.entry-detail-view th, table.entry-detail-notes th {
font-size: 14px;
text-shadow: 0 1px 0 #FFF;
text-align: left;
padding: 7px;
background-color: #E3E3E3
}
table.entry-detail-view td.lastrow,
table.entry-detail-notes td.lastrow {
border-bottom: none !important
}
td.entry-view-section-break {
font-size: 14px;
font-weight: bold;
background-color: #EEE;
border-bottom: 1px solid #DFDFDF;
padding: 7px 7px
}
td.entry-view-field-name {
font-weight: bold;
background-color: #EAF2FA;
border-bottom: 1px solid #FFF;
line-height: 150%;
padding: 7px 7px
}
td.entry-view-field-value {
border-bottom: 1px solid #DFDFDF;
padding: 7px 7px 7px 40px;
line-height: 150%
}
td.entry-view-field-value p {
text-align: left;
line-height: 150%
}
td.entry-view-field-value ul.bulleted {
margin-left:12px
}
td.entry-view-field-value ul.bulleted li {
list-style-type:disc
}
td.entry-detail-note {
border-bottom: 1px solid #DFDFDF;
padding: 7px 7px;
line-height: 150%
}
div.note-avatar {
width: 48px;
height: 48px;
float: left;
margin-right: 6px
}
h6.note-author {
font-weight: bold;
font-size: 13px;
margin: 0;
padding: 0;
line-height: 100%
}
div.detail-note-content {
margin: 10px 0 10px 54px;
line-height: 150%
}
div.detail-note-content p {
line-height: 150%
}
/* transaction table styles ------------------------------------------------------------------------- */
table.entry-products {
border: 1px solid #DFDFDF;
border-right: none;
border-bottom: none;
margin: 10px 0
}
table.entry-products th[scope=col] {
background-color: #F4F4F4;
border-right: 1px solid #DFDFDF !important;
border-bottom: 1px solid #DFDFDF
}
table.entry-products col.entry-products-col2 {
width: 50px
}
table.entry-products col.entry-products-col3 {
width: 155px
}
table.entry-products col.entry-products-col4 {
width: 155px
}
table.entry-products td {
border-right: 1px solid #DFDFDF !important;
border-bottom: 1px solid #DFDFDF;
padding: 7px 7px 8px 7px;
vertical-align: top
}
table.entry-products td.textcenter,
table.entry-products th.textcenter {
text-align: center
}
table.entry-products td.textright,
table.entry-products th.textright {
text-align: right
}
table.entry-products td.grandtotal,
table.entry-products td.grandtotal_amount,
table.entry-products td.shipping,
table.entry-products td.shipping_amount {
font-weight: bold;
font-size: 13px;
padding-top: 7px;
padding-bottom: 8px
}
table.entry-products td.emptycell {
background-color: #F4F4F4
}
table.entry-products td div.product_name {
font-weight: bold;
color: #BF461E;
font-size: 13px;
margin-bottom: 5px
}
table.entry-products td ul.product_options {}
table.entry-products td ul.product_options li {
background-image: url(../images/prodlist.png);
background-repeat: no-repeat;
background-position: left top;
overflow: visible;
margin: 0 0 0 2px !important;
padding: 4px 0 4px 16px;
list-style-type: none
}
table.entry-products td ul.product_options li.lastitem {
background-image: url(../images/prodlist_last.png)
}
/* list table styles ------------------------------------------------------------------------- */
table.gfield_list td.gfield_list_cell {
padding: 8px 0
}
table.gfield_list td.gfield_list_cell + td.gfield_list_cell {
padding: 8px 10px
}
table.gfield_list thead tr th {
padding: 8px 0;
font-weight: bold
}
table.gfield_list thead tr th + th {
padding: 8px 10px
}
table.widefat tbody tr td.entry-view-field-value table.gfield_list {
border-top: 1px solid #DFDFDF !important;
border-left: 1px solid #DFDFDF !important;
border-spacing: 0;
padding: 0;
margin: 2px 0 6px;
width: 100%
}
table.widefat tbody tr td.entry-view-field-value table.gfield_list td {
border-right: 1px solid #DFDFDF !important;
font-family: sans-serif !important
}
table.widefat tbody tr td.entry-view-field-value table.gfield_list thead tr th {
background-image: none !important;
border-right: 1px solid #DFDFDF !important;
padding: 6px 10px;
font-family: sans-serif !important
}
table.widefat tbody tr td.entry-view-field-value ul li {
color: #555 !important
}
table.widefat tbody tr td.entry-view-field-value table.gfield_list td,
table.widefat tbody tr td.entry-view-field-value table.gfield_list th {
border-bottom: 1px solid #DFDFDF;
padding: 6px 10px
}
table.widefat tbody tr td.entry-view-field-value table.gfield_list td {
border-top: 1px solid #FFF
}
table.widefat tbody tr td.entry-view-field-value table.gfield_list th {
color: #333;
background-color: #F1F1F1;
font-size: 12px
}
table.widefat tbody tr td.entry-view-field-value table.gfield_list td {
font-size: 12px;
padding: 4px 7px 3px 10px;
vertical-align: top;
color: #555;
word-wrap: break-word
}
}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,925 @@
/*
----------------------------------------------------------------
readyclass.css
Gravity Forms Ready Class Pre-Set Helper Styles
http://www.gravityforms.com
updated: August 02, 2017 12:10 PM (GMT-05:00) US Eastern Time
Gravity Forms is a Rocketgenius project
copyright 2008-2017 Rocketgenius Inc.
http: //www.rocketgenius.com
this may not be redistributed without the
express written permission of the author.
NOTE: DO NOT EDIT THIS FILE! MAKE ANY MODIFICATIONS IN YOUR
THEME STYLESHEET. THIS FILE IS REPLACED DURING AUTO-UPDATES
AND ANY CHANGES MADE HERE WILL BE OVERWRITTEN.
If you need to make extensive customizations,
copy the contents of this file to your theme
style sheet for editing. Then, go to the form
settings page & set the 'output CSS' option
to no.
----------------------------------------------------------------
*/
@media only screen and (min-width: 641px) {
.gform_wrapper .top_label li.gfield.gf_inline {
vertical-align: top;
width: auto !important;
margin: 0;
padding-right: 16px;
float: none !important;
display: -moz-inline-stack;
display: inline-block;
}
.gform_wrapper .top_label li.gfield.gf_inline input[type=text].large,
.gform_wrapper .top_label li.gfield.gf_inline input[type=url].large,
.gform_wrapper .top_label li.gfield.gf_inline input[type=email].large,
.gform_wrapper .top_label li.gfield.gf_inline input[type=tel].large,
.gform_wrapper .top_label li.gfield.gf_inline input[type=number].large,
.gform_wrapper .top_label li.gfield.gf_inline input[type=password].large,
.gform_wrapper .top_label li.gfield.gf_inline input[type=text].medium,
.gform_wrapper .top_label li.gfield.gf_inline input[type=url].medium,
.gform_wrapper .top_label li.gfield.gf_inline input[type=email].medium,
.gform_wrapper .top_label li.gfield.gf_inline input[type=tel].medium,
.gform_wrapper .top_label li.gfield.gf_inline input[type=number].medium,
.gform_wrapper .top_label li.gfield.gf_inline input[type=password].medium,
.gform_wrapper .top_label li.gfield.gf_inline input[type=text].small,
.gform_wrapper .top_label li.gfield.gf_inline input[type=url].small,
.gform_wrapper .top_label li.gfield.gf_inline input[type=email].small,
.gform_wrapper .top_label li.gfield.gf_inline input[type=tel].small,
.gform_wrapper .top_label li.gfield.gf_inline input[type=number].small,
.gform_wrapper .top_label li.gfield.gf_inline input[type=password].small {
width: 100%;
}
.gform_wrapper .top_label li.gfield.gf_inline input[type=text].datepicker.medium {
width: 96px !important;
}
.gform_wrapper .top_label li.gfield.gf_inline select {
width: 100%;
}
.gform_wrapper .top_label li.gfield.gf_inline textarea {
width: 100%;
}
.gform_wrapper .top_label li.gfield.gf_inline div.gfield_time_hour input[type=text],
.gform_wrapper .top_label li.gfield.gf_inline div.gfield_time_minute input[type=text] {
width: 70% !important;
}
.gform_wrapper .top_label li.gfield.gf_inline div.gfield_time_hour,
.gform_wrapper .top_label li.gfield.gf_inline div.gfield_time_minute,
.gform_wrapper .top_label li.gfield.gf_inline div.gfield_date_month,
.gform_wrapper .top_label li.gfield.gf_inline div.gfield_date_day,
.gform_wrapper .top_label li.gfield.gf_inline div.gfield_date_year {
width: 50px;
}
.gform_wrapper .top_label li.gfield.gf_inline div.gfield_time_ampm {
width: auto;
}
.gform_wrapper li.gf_inline div.ginput_container {
white-space: nowrap !important;
}
.gform_wrapper li.gf_inline div.ginput_container.ginput_container_date label {
display: block !important;
}
.gform_wrapper li.gfield.gfield_error.gf_inline {
margin-right: 16px;
padding-right: 0;
}
.gform_wrapper .top_label li.gfield.gf_left_half,
.gform_wrapper .top_label li.gfield.gf_right_half {
display: -moz-inline-stack;
display: inline-block;
vertical-align: top;
width: 50%;
padding-right: 16px;
float: none;
}
.gform_wrapper .top_label li.gfield.gf_left_half .ginput_container:not(.gfield_time_hour):not(.gfield_time_minute):not(.gfield_time_ampm):not(.ginput_container_date):not(.ginput_quantity):not(.datepicker),
.gform_wrapper .top_label li.gfield.gf_right_half .ginput_container:not(.gfield_time_hour):not(.gfield_time_minute):not(.gfield_time_ampm):not(.ginput_container_date):not(.ginput_quantity):not(.datepicker) {
width: 100% !important;
margin: 8px 0 0 0;
padding-left: 0;
padding-right: 0;
}
.gform_wrapper .top_label li.gfield.gf_left_half:before {
content: "";
display: block;
clear: both;
}
.gform_wrapper .top_label li.gfield.gf_right_half:after {
content:"";
display: table;
clear:both;
}
.gform_wrapper.gform_validation_error .top_label li.gfield.gfield_error.gf_left_half,
.gform_wrapper.gform_validation_error .top_label li.gfield.gfield_error.gf_right_half {
max-width: calc(50% - 16px);
padding-right: 0;
}
.gform_wrapper .top_label li.gfield.gfield_error.gf_left_half {
margin-right: 16px;
}
.gform_wrapper .top_label li.gfield.gf_left_half div:not(.ginput_container_date) input.medium,
.gform_wrapper .top_label li.gfield.gf_left_half div:not(.ginput_container_date) input.large,
.gform_wrapper .top_label li.gfield.gf_left_half div:not(.ginput_container_date) select.medium,
.gform_wrapper .top_label li.gfield.gf_left_half div:not(.ginput_container_date) select.large,
.gform_wrapper .top_label li.gfield.gf_right_half div:not(.ginput_container_date) input.medium,
.gform_wrapper .top_label li.gfield.gf_right_half div:not(.ginput_container_date) input.large,
.gform_wrapper .top_label li.gfield.gf_right_half div:not(.ginput_container_date) select.medium,
.gform_wrapper .top_label li.gfield.gf_right_half div:not(.ginput_container_date) select.large {
width: 100%;
}
.gform_wrapper .top_label li.gfield.gf_left_half textarea,
.gform_wrapper .top_label li.gfield.gf_right_half textarea {
width: 98%;
}
.gform_wrapper .top_label li.gfield.gf_left_half input.small,
.gform_wrapper .top_label li.gfield.gf_right_half input.small {
width: 35%;
}
.gform_wrapper .top_label li.gfield.gf_left_half+li.gsection,
.gform_wrapper .top_label li.gfield.gf_right_half+li.gsection {
padding: 16px 0 8px 0;
}
.gform_wrapper .top_label li.gfield.gf_left_half+li.gfield.gsection.gf_left_half,
.gform_wrapper .top_label li.gfield.gf_right_half+li.gfield.gsection.gf_left_half,
.gform_wrapper .top_label li.gfield.gf_left_half+li.gfield.gsection.gf_right_half,
.gform_wrapper .top_label li.gfield.gf_right_half+li.gfield.gsection.gf_right_half,
.gform_wrapper .top_label li.gfield.gsection.gf_left_half+li.gfield.gsection.gf_left_half,
.gform_wrapper .top_label li.gfield.gsection.gf_right_half+li.gfield.gsection.gf_left_half,
.gform_wrapper .top_label li.gfield.gsection.gf_right_half+li.gfield.gsection.gf_right_half {
padding: 16px 0 8px 0;
}
.gform_wrapper .top_label li.gfield.gsection.gf_left_half+li.gfield.gsection.gf_right_half {
padding: 0 0 8px 0;
}
.gform_wrapper .top_label li.gfield.gsection.gf_left_half+li.gfield.gsection.gf_right_half+li.gfield.gsection.gf_left_half+li.gfield.gsection.gf_right_half {
padding: 16px 0 8px 0;
}
.gform_wrapper .top_label li.gfield.gf_left_half+li.gfield,
.gform_wrapper .top_label li.gfield.gf_right_half+li.gfield,
.gform_wrapper .top_label li.gfield.gf_left_half+.gform_footer,
.gform_wrapper .top_label li.gfield.gf_right_half+.gform_footer {
clear: both;
}
/* 3 columns */
.gform_wrapper .top_label li.gfield.gf_left_third,
.gform_wrapper .top_label li.gfield.gf_middle_third,
.gform_wrapper .top_label li.gfield.gf_right_third {
display: -moz-inline-stack;
display: inline-block;
vertical-align: top;
float: none;
}
.gform_wrapper .top_label li.gfield.gf_left_third:not(.gfield_time_hour):not(.gfield_time_minute):not(.gfield_time_ampm),
.gform_wrapper .top_label li.gfield.gf_middle_third:not(.gfield_time_hour):not(.gfield_time_minute):not(.gfield_time_ampm) {
width: 33.3%;
}
.gform_wrapper .top_label li.gfield.gf_right_third:not(.gfield_time_hour):not(.gfield_time_minute):not(.gfield_time_ampm) {
width: 33.4%;
}
.gform_wrapper .top_label li.gfield.gf_left_third,
.gform_wrapper .top_label li.gfield.gf_middle_third,
.gform_wrapper .top_label li.gfield.gf_right_third {
margin-bottom: 8px;
}
.gform_wrapper .top_label li.gfield.gf_left_third div:not(.ginput_container_date) input.medium,
.gform_wrapper .top_label li.gfield.gf_left_third div:not(.ginput_container_date) input.large,
.gform_wrapper .top_label li.gfield.gf_left_third div:not(.ginput_container_date) select.medium,
.gform_wrapper .top_label li.gfield.gf_left_third div:not(.ginput_container_date) select.large,
.gform_wrapper .top_label li.gfield.gf_middle_third div:not(.ginput_container_date) input.medium,
.gform_wrapper .top_label li.gfield.gf_middle_third div:not(.ginput_container_date) input.large,
.gform_wrapper .top_label li.gfield.gf_middle_third div:not(.ginput_container_date) select.medium,
.gform_wrapper .top_label li.gfield.gf_middle_third div:not(.ginput_container_date) select.large,
.gform_wrapper .top_label li.gfield.gf_right_third div:not(.ginput_container_date) input.medium,
.gform_wrapper .top_label li.gfield.gf_right_third div:not(.ginput_container_date) input.large,
.gform_wrapper .top_label li.gfield.gf_right_third div:not(.ginput_container_date) select.medium,
.gform_wrapper .top_label li.gfield.gf_right_third div:not(.ginput_container_date) select.large {
width: 100%;
}
.gform_wrapper .top_label li.gfield.gf_left_third div:not(.ginput_container_date) input:not([type='radio']):not([type='checkbox']):not(.ginput_quantity),
.gform_wrapper .top_label li.gfield.gf_middle_third div:not(.ginput_container_date) input:not([type='radio']):not([type='checkbox']):not(.ginput_quantity),
.gform_wrapper .top_label li.gfield.gf_right_third div:not(.ginput_container_date) input:not([type='radio']):not([type='checkbox']):not(.ginput_quantity),
.gform_wrapper .top_label li.gfield.gf_left_third div:not(.ginput_container_date) select,
.gform_wrapper .top_label li.gfield.gf_middle_third div:not(.ginput_container_date) select,
.gform_wrapper .top_label li.gfield.gf_right_third div:not(.ginput_container_date) select {
width:100% !important;
}
.gform_wrapper .top_label li.gfield.gfield_error.gf_left_third,
.gform_wrapper .top_label li.gfield.gfield_error.gf_middle_third {
width: calc(33.3% - 24px) !important;
margin-right: 16px;
}
.gform_wrapper .top_label li.gfield.gfield_error.gf_right_third {
width: 33.4%;
}
.gform_wrapper .top_label li.gfield.gf_right_third:after {
content:"";
display: table;
clear: both;
}
.gform_wrapper .top_label li.gfield.gf_left_third+li.gsection,
.gform_wrapper .top_label li.gfield.gf_right_third+li.gsection {
padding: 16px 0 8px 0;
}
.gform_wrapper .top_label li.gfield.gf_left_third+li.gfield,
.gform_wrapper .top_label li.gfield.gf_middle_third+li.gfield,
.gform_wrapper .top_label li.gfield.gf_right_third+li.gfield,
.gform_wrapper .top_label li.gfield.gf_left_third+.gform_footer,
.gform_wrapper .top_label li.gfield.gf_middle_third+.gform_footer,
.gform_wrapper .top_label li.gfield.gf_right_third+.gform_footer {
clear: both;
}
/* 4 columns - quarters */
.gform_wrapper .top_label li.gfield.gf_first_quarter:not(.gfield_time_hour):not(.gfield_time_minute):not(.gfield_time_ampm),
.gform_wrapper .top_label li.gfield.gf_second_quarter:not(.gfield_time_hour):not(.gfield_time_minute):not(.gfield_time_ampm),
.gform_wrapper .top_label li.gfield.gf_third_quarter:not(.gfield_time_hour):not(.gfield_time_minute):not(.gfield_time_ampm),
.gform_wrapper .top_label li.gfield.gf_fourth_quarter:not(.gfield_time_hour):not(.gfield_time_minute):not(.gfield_time_ampm) {
width: 25%;
display: -moz-inline-stack;
display: inline-block;
vertical-align: top;
float: none;
}
.gform_wrapper .top_label li.gfield.gf_first_quarter,
.gform_wrapper .top_label li.gfield.gf_second_quarter,
.gform_wrapper .top_label li.gfield.gf_third_quarter,
.gform_wrapper .top_label li.gfield.gf_fourth_quarter {
margin-bottom: 8px;
}
.gform_wrapper .top_label li.gfield.gf_first_quarter div:not(.ginput_container_date) input:not([type='radio']):not([type='checkbox']),
.gform_wrapper .top_label li.gfield.gf_second_quarter div:not(.ginput_container_date) input:not([type='radio']):not([type='checkbox']),
.gform_wrapper .top_label li.gfield.gf_third_quarter div:not(.ginput_container_date) input:not([type='radio']):not([type='checkbox']),
.gform_wrapper .top_label li.gfield.gf_fourth_quarter div:not(.ginput_container_date) input:not([type='radio']):not([type='checkbox']),
.gform_wrapper .top_label li.gfield.gf_first_quarter div:not(.ginput_container_date) select,
.gform_wrapper .top_label li.gfield.gf_second_quarter div:not(.ginput_container_date) select,
.gform_wrapper .top_label li.gfield.gf_third_quarter div:not(.ginput_container_date) select,
.gform_wrapper .top_label li.gfield.gf_fourth_quarter div:not(.ginput_container_date) select {
width: 100% !important;
}
.gform_wrapper .top_label li.gfield.gfield_error.gf_first_quarter,
.gform_wrapper .top_label li.gfield.gfield_error.gf_second_quarter,
.gform_wrapper .top_label li.gfield.gfield_error.gf_third_quarter,
.gform_wrapper .top_label li.gfield.gfield_error.gf_fourth_quarter {
width: 24.5%;
}
.gform_wrapper .top_label li.gfield.gf_fourth_quarter:after {
content: "";
display: table;
clear: both;
}
.gform_wrapper .top_label li.gfield.gf_first_quarter input.medium,
.gform_wrapper .top_label li.gfield.gf_first_quarter input.large,
.gform_wrapper .top_label li.gfield.gf_first_quarter select.medium,
.gform_wrapper .top_label li.gfield.gf_first_quarter select.large,
.gform_wrapper .top_label li.gfield.gf_second_quarter input.medium,
.gform_wrapper .top_label li.gfield.gf_second_quarter input.large,
.gform_wrapper .top_label li.gfield.gf_second_quarter select.medium,
.gform_wrapper .top_label li.gfield.gf_second_quarter select.large,
.gform_wrapper .top_label li.gfield.gf_third_quarter input.medium,
.gform_wrapper .top_label li.gfield.gf_third_quarter input.large,
.gform_wrapper .top_label li.gfield.gf_third_quarter select.medium,
.gform_wrapper .top_label li.gfield.gf_third_quarter select.large,
.gform_wrapper .top_label li.gfield.gf_fourth_quarter input.medium,
.gform_wrapper .top_label li.gfield.gf_fourth_quarter input.large,
.gform_wrapper .top_label li.gfield.gf_fourth_quarter select.medium,
.gform_wrapper .top_label li.gfield.gf_fourth_quarter select.large {
width: 97.5%;
}
.gform_wrapper .top_label li.gfield.gf_first_quarter+li.gsection,
.gform_wrapper .top_label li.gfield.gf_fourth_quarter+li.gsection {
padding: 16px 0 8px 0;
}
.gform_wrapper .top_label li.gfield.gf_first_quarter+li.gfield,
.gform_wrapper .top_label li.gfield.gf_second_quarter+li.gfield,
.gform_wrapper .top_label li.gfield.gf_third_quarter+li.gfield,
.gform_wrapper .top_label li.gfield.gf_fourth_quarter+li.gfield,
.gform_wrapper .top_label li.gfield.gf_first_quarter+.gform_footer,
.gform_wrapper .top_label li.gfield.gf_second_quarter+.gform_footer,
.gform_wrapper .top_label li.gfield.gf_third_quarter+.gform_footer,
.gform_wrapper .top_label li.gfield.gf_fourth_quarter+.gform_footer {
clear: both;
}
/* horizontal list columns - displayed inline */
.gform_wrapper .top_label li ul.gfield_checkbox,
.gform_wrapper .top_label li ul.gfield_radio {
width: calc(100% + 16px);
}
.gform_wrapper ul.gform_fields:not(.top_label) li ul.gfield_checkbox,
.gform_wrapper ul.gform_fields:not(.top_label) li ul.gfield_radio {
width: calc(70% + 16px);
}
.gform_wrapper li.gfield.gf_list_2col ul.gfield_checkbox li,
.gform_wrapper li.gfield.gf_list_2col ul.gfield_radio li {
width: 50%;
display: -moz-inline-stack;
display: inline-block;
margin: 0;
padding-right: 16px;
min-height: 28px;
vertical-align: top;
font-size: 90%;
}
.gform_wrapper li.gfield.gf_list_3col ul.gfield_checkbox li,
.gform_wrapper li.gfield.gf_list_3col ul.gfield_radio li {
width: 33.3%;
display: -moz-inline-stack;
display: inline-block;
margin: 0 0 2px 0;
padding-right: 16px;
min-height: 28px;
vertical-align: top;
font-size: 90%;
}
.gform_wrapper li.gfield.gf_list_2col ul.gfield_checkbox li label,
.gform_wrapper li.gfield.gf_list_2col ul.gfield_radio li label,
.gform_wrapper li.gfield.gf_list_3col ul.gfield_checkbox li label,
.gform_wrapper li.gfield.gf_list_3col ul.gfield_radio li label,
.gform_wrapper li.gfield.gf_list_4col ul.gfield_checkbox li label,
.gform_wrapper li.gfield.gf_list_4col ul.gfield_radio li label {
max-width: 75%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
vertical-align: middle;
}
.gform_wrapper li.gfield.gf_list_4col ul.gfield_checkbox li,
.gform_wrapper li.gfield.gf_list_4col ul.gfield_radio li {
width: 25%;
display: -moz-inline-stack;
display: inline-block;
margin: 0;
padding-right: 16px;
min-height: 28px;
vertical-align: top;
font-size: 90%;
}
.gform_wrapper li.gfield.gf_list_5col ul.gfield_checkbox li,
.gform_wrapper li.gfield.gf_list_5col ul.gfield_radio li {
width: 20%;
display: -moz-inline-stack;
display: inline-block;
margin: 0;
padding-right: 16px;
min-height: 28px;
vertical-align: top;
font-size: 90%;
}
.gform_wrapper li.gfield.gf_list_2col ul.gfield_checkbox,
.gform_wrapper li.gfield.gf_list_2col ul.gfield_radio,
.gform_wrapper li.gfield.gf_list_3col ul.gfield_checkbox,
.gform_wrapper li.gfield.gf_list_3col ul.gfield_radio,
.gform_wrapper li.gfield.gf_list_4col ul.gfield_checkbox,
.gform_wrapper li.gfield.gf_list_4col ul.gfield_radio,
.gform_wrapper li.gfield.gf_list_5col ul.gfield_checkbox,
.gform_wrapper li.gfield.gf_list_5col ul.gfield_radio {
overflow: hidden;
}
.gform_wrapper ul.gform_fields:not(.top_label) li.gfield.gf_list_2col label.gfield_label,
.gform_wrapper ul.gform_fields:not(.top_label) li.gfield.gf_list_3col label.gfield_label,
.gform_wrapper ul.gform_fields:not(.top_label) li.gfield.gf_list_4col label.gfield_label,
.gform_wrapper ul.gform_fields:not(.top_label) li.gfield.gf_list_5col label.gfield_label,
.gform_wrapper ul.gform_fields:not(.top_label) li.gfield.gf_list_inline label.gfield_label {
margin: 0 0 10px 0;
}
/* vertical list columns - using CSS columns */
.gform_wrapper li.gf_list_2col_vertical .ginput_container_checkbox ul.gfield_checkbox,
.gform_wrapper li.gf_list_3col_vertical .ginput_container_checkbox ul.gfield_checkbox,
.gform_wrapper li.gf_list_4col_vertical .ginput_container_checkbox ul.gfield_checkbox,
.gform_wrapper li.gf_list_5col_vertical .ginput_container_checkbox ul.gfield_checkbox {
-webkit-column-gap: 16px;
-moz-column-gap: 16px;
column-gap: 16px;
}
.gform_wrapper ul.gform_fields:not(.top_label) li.gf_list_2col_vertical label.gfield_label,
.gform_wrapper ul.gform_fields:not(.top_label) li.gf_list_2col_vertical label.gfield_label,
.gform_wrapper ul.gform_fields:not(.top_label) li.gf_list_2col_vertical label.gfield_label,
.gform_wrapper ul.gform_fields:not(.top_label) li.gf_list_2col_vertical label.gfield_label {
margin: 0 0 10px 0;
}
.gform_wrapper li.gf_list_2col_vertical .ginput_container_checkbox ul.gfield_checkbox,
.gform_wrapper li.gf_list_2col_vertical .ginput_container_radio ul.gfield_radio {
width: calc(100% - 16px);
-webkit-column-count: 2;
-moz-column-count: 2;
column-count: 2;
}
.gform_wrapper li.gf_list_3col_vertical .ginput_container_checkbox ul.gfield_checkbox,
.gform_wrapper li.gf_list_3col_vertical .ginput_container_radio ul.gfield_radio {
width: calc(100% - 8px);
-webkit-column-count: 3;
-moz-column-count: 3;
column-count: 3;
}
.gform_wrapper li.gf_list_4col_vertical .ginput_container_checkbox ul.gfield_checkbox,
.gform_wrapper li.gf_list_4col_vertical .ginput_container_radio ul.gfield_radio {
width: calc(100% - 8px);
-webkit-column-count: 4;
-moz-column-count: 4;
column-count: 4;
}
.gform_wrapper li.gf_list_5col_vertical .ginput_container_checkbox ul.gfield_checkbox,
.gform_wrapper li.gf_list_5col_vertical .ginput_container_radio ul.gfield_radio {
width: calc(100% - 8px);
-webkit-column-count: 5;
-moz-column-count: 5;
column-count: 5;
}
.gform_wrapper li.gf_list_2col_vertical .ginput_container_checkbox ul.gfield_checkbox li label,
.gform_wrapper li.gf_list_2col_vertical .ginput_container_radio ul.gfield_radio li label,
.gform_wrapper li.gf_list_3col_vertical .ginput_container_checkbox ul.gfield_checkbox li label,
.gform_wrapper li.gf_list_3col_vertical .ginput_container_radio ul.gfield_radio li label,
.gform_wrapper li.gf_list_4col_vertical .ginput_container_checkbox ul.gfield_checkbox li label,
.gform_wrapper li.gf_list_4col_vertical .ginput_container_radio ul.gfield_radio li label,
.gform_wrapper li.gf_list_5col_vertical .ginput_container_checkbox ul.gfield_checkbox li label,
.gform_wrapper li.gf_list_5col_vertical .ginput_container_radio ul.gfield_radio li label {
max-width: 75%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.gform_wrapper li.gfield.gf_list_height_25 ul.gfield_checkbox li,
.gform_wrapper li.gfield.gf_list_height_25 ul.gfield_radio li {
height: 25px;
}
.gform_wrapper li.gfield.gf_list_height_50 ul.gfield_checkbox li,
.gform_wrapper li.gfield.gf_list_height_50 ul.gfield_radio li {
height: 50px;
}
.gform_wrapper li.gfield.gf_list_height_75 ul.gfield_checkbox li,
.gform_wrapper li.gfield.gf_list_height_75 ul.gfield_radio li {
height: 75px;
}
.gform_wrapper li.gfield.gf_list_height_100 ul.gfield_checkbox li,
.gform_wrapper li.gfield.gf_list_height_100 ul.gfield_radio li {
height: 100px;
}
.gform_wrapper li.gfield.gf_list_height_125 ul.gfield_checkbox li,
.gform_wrapper li.gfield.gf_list_height_125 ul.gfield_radio li {
height: 125px;
}
.gform_wrapper li.gfield.gf_list_height_150 ul.gfield_checkbox li,
.gform_wrapper li.gfield.gf_list_height_150 ul.gfield_radio li {
height: 150px;
}
.gform_wrapper li.gf_list_inline ul.gfield_checkbox li,
.gform_wrapper li.gf_list_inline ul.gfield_radio li {
width: auto !important;
float: none !important;
margin: 0 8px 10px 0;
display: -moz-inline-stack;
display: inline-block;
}
html[dir="rtl"] .gform_wrapper li.gf_list_inline ul.gfield_checkbox li,
html[dir="rtl"] .gform_wrapper li.gf_list_inline ul.gfield_radio li {
padding-left: 16px !important;
padding-right: 0 !important;
}
.gform_wrapper li.gf_hide_ampm div.gfield_time_ampm {
display: none !important;
}
.gform_wrapper li.gsection.gf_scroll_text {
height: 240px;
width: calc(100% - 16px);
padding: 16px;
background-color: #fff;
overflow-y: scroll;
overflow-x: hidden;
border: 1px solid #CCC;
border-bottom: 1px solid #CCC !important;
}
.gform_wrapper .top_label li.gsection.gf_scroll_text h2.gsection_title {
margin: 10px 10px 0 8px !important
}
.gform_wrapper.gf_browser_gecko .top_label li.gsection.gf_scroll_text h2.gsection_title,
.gform_wrapper.gf_browser_chrome .top_label li.gsection.gf_scroll_text h2.gsection_title {
margin: 0 10px 0 8px !important;
}
.gform_wrapper .top_label li.gsection.gf_scroll_text .gsection_description {
margin: 10px;
font-size: 12px;
}
.gform_wrapper div.gform_ul.gform_fields .top_label li.gfield.gsection.gf_scroll_text div.gsection_description ul li,
.gform_wrapper form div.gform_ul.gform_fields .top_label li.gfield.gsection.gf_scroll_text div.gsection_description ul li {
list-style-type: disc !important;
margin: 0 0 8px;
overflow: visible;
padding-left: 0;
}
.gform_wrapper div.gform_ul.gform_fields .top_label li.gfield.gsection.gf_scroll_text div.gsection_description ul,
.gform_wrapper form div.gform_ul.gform_fields .top_label li.gfield.gsection.gf_scroll_text div.gsection_description ul {
list-style-type: disc !important;
margin: 16px 0 16px 18px;
padding-left: 0;
}
.gform_wrapper div.gform_ul.gform_fields .top_label li.gfield.gsection.gf_scroll_text div.gsection_description ol li,
.gform_wrapper form div.gform_ul.gform_fields .top_label li.gfield.gsection.gf_scroll_text div.gsection_description ol li {
list-style-type: decimal!important;
overflow: visible;
margin: 0 0 8px;
padding-left: 0;
}
.gform_wrapper div.gform_ul.gform_fields .top_label li.gfield.gsection.gf_scroll_text div.gsection_description ol,
.gform_wrapper form div.gform_ul.gform_fields .top_label li.gfield.gsection.gf_scroll_text div.gsection_description ol {
list-style-type: decimal!important;
margin: 16px 0 18px 32px;
padding-left: 0;
}
.gform_wrapper div.gform_ul.gform_fields .top_label li.gfield.gsection.gf_scroll_text div.gsection_description ol li ul,
.gform_wrapper form div.gform_ul.gform_fields .top_label li.gfield.gsection.gf_scroll_text div.gsection_description ol li ul li {
list-style-type: disc !important;
padding-left: 0;
}
.gform_wrapper div.gform_ul.gform_fields .top_label li.gfield.gsection.gf_scroll_text div.gsection_description ol li ul {
margin: 16px 0 16px 18px;
}
.gform_wrapper form div.gform_ul.gform_fields .top_label li.gfield.gsection.gf_scroll_text div.gsection_description ol li ul li {
margin: 0 0 8px;
}
.gform_wrapper div.gform_ul.gform_fields .top_label li.gfield.gsection.gf_scroll_text div.gsection_description dl {
margin: 0 0 18px 0;
padding-left: 0;
}
.gform_wrapper div.gform_ul.gform_fields .top_label li.gfield.gsection.gf_scroll_text div.gsection_description dl dt {
font-weight: 700;
}
.gform_wrapper div.gform_ul.gform_fields .top_label li.gfield.gsection.gf_scroll_text div.gsection_description dl dd {
margin: 0 0 16px 18px;
}
.gform_wrapper li.gfield.gfield_html.gf_alert_green,
.gform_wrapper li.gfield.gfield_html.gf_alert_red,
.gform_wrapper li.gfield.gfield_html.gf_alert_yellow,
.gform_wrapper li.gfield.gfield_html.gf_alert_gray,
.gform_wrapper li.gfield.gfield_html.gf_alert_blue {
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
margin: 20px 0 !important;
padding: 20px !important;
}
.gform_wrapper li.gfield.gfield_html.gf_alert_green {
border: 1px solid #97B48A;
background-color: #CBECA0;
text-shadow: #DFB 1px 1px;
color: #030;
}
.gform_wrapper li.gfield.gfield_html.gf_alert_red {
border: 1px solid #CFADB3;
background-color: #FAF2F5;
text-shadow: #FFF 1px 1px;
color: #832525;
}
.gform_wrapper li.gfield.gfield_html.gf_alert_yellow {
border: 1px solid #E6DB55;
background-color: #FFFBCC;
text-shadow: #FCFAEA 1px 1px;
color: #222;
}
.gform_wrapper li.gfield.gfield_html.gf_alert_gray {
border: 1px solid #CCC;
background-color: #EEE;
text-shadow: #FFF 1px 1px;
color: #424242;
}
.gform_wrapper li.gfield.gfield_html.gf_alert_blue {
border: 1px solid #a7c2e7;
background-color: #D1E4F3;
text-shadow: #E0F1FF 1px 1px;
color: #314475;
}
div.gform_confirmation_wrapper.gf_confirmation_simple_yellow {
margin: 30px 0;
max-width: 99%;
border-top: 1px solid #E6DB55;
border-bottom: 1px solid #E6DB55;
padding: 32px;
background-color: #FFFBCC;
color: #424242;
font-size: 25px;
}
div.gform_confirmation_wrapper.gf_confirmation_simple_gray {
margin: 30px 0;
max-width: 99%;
border-top: 1px solid #CCC;
border-bottom: 1px solid #CCC;
padding: 32px;
background-color: #EAEAEA;
color: #424242;
font-size: 25px;
}
div.gform_confirmation_wrapper.gf_confirmation_yellow_gradient {
position: relative;
background-color: #FFFBD2;
margin: 30px 0;
border: 1px solid #E6DB55;
-webkit-box-shadow: 0px 0px 5px rgba(221, 215, 131, 0.75);
-moz-box-shadow: 0px 0px 5px rgba(221, 215, 131, 0.75);
box-shadow: 0px 0px 5px rgba(221, 215, 131, 0.75);
}
div.gform_confirmation_wrapper.gf_confirmation_yellow_gradient div.gforms_confirmation_message {
margin: 0;
padding: 40px;
max-width: 99%;
font-size: 28px;
border-top: 2px solid #FFF;
border-bottom: 1px solid #E6DB55;
background-color: #FFFBCC;
color: #424242;
background: #fffce5;
background: -moz-linear-gradient(top, #fffce5 0%, #fff9bf 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#fffce5), color-stop(100%,#fff9bf));
background: -webkit-linear-gradient(top, #fffce5 0%,#fff9bf 100%);
background: -o-linear-gradient(top, #fffce5 0%,#fff9bf 100%);
background: -ms-linear-gradient(top, #fffce5 0%,#fff9bf 100%);
background: linear-gradient(to bottom, #fffce5 0%,#fff9bf 100%);
}
div.gform_confirmation_wrapper.gf_confirmation_green_gradient {
position: relative;
background-color: #f1fcdf;
margin: 30px 0;
border: 1px solid #a7c37c;
-webkit-box-shadow: 0px 0px 5px rgba(86, 122, 86, 0.4);
-moz-box-shadow: 0px 0px 5px rgba(86, 122, 86, 0.4);
box-shadow: 0px 0px 5px rgba(86, 122, 86, 0.4);
}
div.gform_confirmation_wrapper.gf_confirmation_green_gradient div.gforms_confirmation_message {
margin: 0;
padding: 40px;
max-width: 99%;
font-size: 28px;
border-top: 2px solid #effade;
border-bottom: 1px solid #a7c37c;
background-color: #FFFBCC;
text-shadow: #DFB 1px 1px;
color: #030;
background: rgb(219,242,183);
background: -moz-linear-gradient(top, rgba(219,242,183,1) 0%, rgba(180,208,136,1) 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(219,242,183,1)), color-stop(100%,rgba(180,208,136,1)));
background: -webkit-linear-gradient(top, rgba(219,242,183,1) 0%,rgba(180,208,136,1) 100%);
background: -o-linear-gradient(top, rgba(219,242,183,1) 0%,rgba(180,208,136,1) 100%);
background: -ms-linear-gradient(top, rgba(219,242,183,1) 0%,rgba(180,208,136,1) 100%);
background: linear-gradient(to bottom, rgba(219,242,183,1) 0%,rgba(180,208,136,1) 100%);
}
div.gform_confirmation_wrapper.gf_confirmation_yellow_gradient:before,
div.gform_confirmation_wrapper.gf_confirmation_yellow_gradient:after,
div.gform_confirmation_wrapper.gf_confirmation_green_gradient:before,
div.gform_confirmation_wrapper.gf_confirmation_green_gradient:after {
z-index: -1;
position: absolute;
content: "";
bottom: 15px;
left: 10px;
width: 50%;
top: 80%;
max-width: 40%;
background: rgba(0, 0, 0, 0.2);
-webkit-box-shadow: 0 15px 10px rgba(0,0,0, 0.2);
-moz-box-shadow: 0 15px 10px rgba(0, 0, 0, 0.2);
box-shadow: 0 15px 10px rgba(0, 0, 0, 0.2);
-webkit-transform: rotate(-3deg);
-moz-transform: rotate(-3deg);
-o-transform: rotate(-3deg);
-ms-transform: rotate(-3deg);
transform: rotate(-3deg);
}
div.gform_confirmation_wrapper.gf_confirmation_yellow_gradient:after,
div.gform_confirmation_wrapper.gf_confirmation_green_gradient:after {
-webkit-transform: rotate(3deg);
-moz-transform: rotate(3deg);
-o-transform: rotate(3deg);
-ms-transform: rotate(3deg);
transform: rotate(3deg);
right: 10px;
left: auto;
}
/* simple horizontal form ready class - very simple implementation for up to 5 fields and a button */
.gform_wrapper.gf_simple_horizontal_wrapper.centered_wrapper {
width: auto;
margin: 0 auto;
display: table;
}
.gform_wrapper form.gf_simple_horizontal {
width: calc(100% - 16px);
margin: 0 auto;
}
.gform_wrapper form.gf_simple_horizontal div.gform_body,
.gform_wrapper form.gf_simple_horizontal div.gform_footer.top_label {
display: table-cell;
vertical-align: middle;
margin: 0;
padding: 0;
position: relative;
}
.gform_wrapper form.gf_simple_horizontal div.gform_body {
width: auto;
max-width: 75%;
}
.gform_wrapper form.gf_simple_horizontal div.ginput_container,
.gform_wrapper form.gf_simple_horizontal ul li.gfield {
margin-top: 0 !important;
}
.gform_wrapper form.gf_simple_horizontal div.gform_footer.top_label {
width: auto;
max-width: 25%;
padding: 0;
margin: 0;
}
body:not(rtl) .gform_wrapper form.gf_simple_horizontal div.gform_footer.top_label {
text-align: left
}
.gform_wrapper form.gf_simple_horizontal div.gform_body ul.top_label {
display: table;
width: 100%;
}
.gform_wrapper form.gf_simple_horizontal div.gform_body ul.top_label li.gfield {
display: table-cell;
padding-right: 1em;
height: auto;
}
.gform_wrapper form.gf_simple_horizontal label.gfield_label,
.gform_wrapper form.gf_simple_horizontal .ginput_complex label,
.gform_wrapper form.gf_simple_horizontal .gfield_description:not(.validation_message) {
display: block;
height: 1px;
width: 1px;
overflow: hidden;
position: absolute;
top: 0;
left: -9000px;
}
.gform_wrapper form.gf_simple_horizontal div.gform_body ul.top_label.form_sublabel_below li.gfield {
vertical-align: middle;
}
.gform_wrapper form.gf_simple_horizontal div.gform_body ul.top_label.form_sublabel_above li.gfield {
vertical-align: middle;
}
.gform_wrapper form.gf_simple_horizontal div.gform_body ul.top_label li.gfield input.small,
.gform_wrapper form.gf_simple_horizontal div.gform_body ul.top_label li.gfield input.medium,
.gform_wrapper form.gf_simple_horizontal div.gform_body ul.top_label li.gfield input.large {
width: 100%
}
.gform_wrapper form.gf_simple_horizontal div.gform_body ul.top_label li.gfield select.small,
.gform_wrapper form.gf_simple_horizontal div.gform_body ul.top_label li.gfield select.medium,
.gform_wrapper form.gf_simple_horizontal div.gform_body ul.top_label li.gfield select.large {
width: 100%
}
.gform_wrapper form.gf_simple_horizontal div.gform_footer.top_label input[type="submit"],
.gform_wrapper form.gf_simple_horizontal div.gform_footer.top_label input[type="button"],
.gform_wrapper form.gf_simple_horizontal div.gform_footer.top_label input[type="image"] {
height: auto;
}
.gform_wrapper form.gf_simple_horizontal .top_label .gfield_error {
margin-bottom: 0;
}
.gform_wrapper form.gf_simple_horizontal ul li.gfield .ginput_container_checkbox ul li,
.gform_wrapper form.gf_simple_horizontal ul li.gfield .ginput_container_radio ul li {
display: inline-block;
margin-right: .5em;
}
html[dir="rtl"] .gform_wrapper form.gf_simple_horizontal div.ginput_complex.ginput_container.gf_name_has_2 span {
width: 48.5%;
}
html[dir="rtl"] .gform_wrapper form.gf_simple_horizontal div.ginput_complex.ginput_container.gf_name_has_3 span {
width: 33%;
}
html[dir="rtl"] .gform_wrapper form.gf_simple_horizontal div.ginput_complex.ginput_container.gf_name_has_4 span {
width: 24.5%;
}
html[dir="rtl"] .gform_wrapper form.gf_simple_horizontal div.ginput_complex.ginput_container.gf_name_has_5 span {
width: 19.5%;
}
/* end media query */
}
/* add equal padding to form for better centering */
body .gform_wrapper.gf_form_center_wrapper {padding: 16px 0 16px 16px;}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,40 @@
/*
----------------------------------------------------------------
reset.css
Gravity Forms CSS Reset
http://www.gravityforms.com
updated: March 15, 2015 1:36 PM
Gravity Forms is a Rocketgenius project
copyright 2008-2015 Rocketgenius Inc.
http: //www.rocketgenius.com
this may not be redistributed without the
express written permission of the author.
NOTE: DO NOT EDIT THIS FILE! MAKE ANY MODIFICATIONS IN YOUR
THEME STYLESHEET. THIS FILE IS REPLACED DURING AUTO-UPDATES
AND ANY CHANGES MADE HERE WILL BE OVERWRITTEN.
----------------------------------------------------------------
*/
html, body, fieldset, form, label, legend {
margin: 0;
padding: 0;
border: 0;
outline: 0;
font-weight: inherit;
font-style: inherit;
font-size: 100%;
font-family: inherit;
vertical-align: baseline;
}
ul {
margin: 0;
padding: 0;
}
body {
font-size: 62.5%;
line-height: 1.5;
}

View File

@ -0,0 +1 @@
body,fieldset,form,html,label,legend{margin:0;padding:0;border:0;outline:0;font-weight:inherit;font-style:inherit;font-size:100%;font-family:inherit;vertical-align:baseline}ul{margin:0;padding:0}body{font-size:62.5%;line-height:1.5}

View File

@ -0,0 +1,754 @@
/*
----------------------------------------------------------------
rtl.css
Gravity Forms RTL Language Support
http://www.gravityforms.com
updated: July 1, 2016 9:48 AM GMT-5
Gravity Forms is a Rocketgenius project
copyright 2013-2016 Rocketgenius Inc.
http: //www.rocketgenius.com
this may not be redistributed without the
express written permission of the author.
NOTE: DO NOT EDIT THIS FILE! MAKE ANY MODIFICATIONS IN YOUR
THEME STYLESHEET. THIS FILE IS REPLACED DURING AUTO-UPDATES
AND ANY CHANGES MADE HERE WILL BE OVERWRITTEN.
If you need to make extensive customizations,
copy the contents of this file to your theme
style sheet for editing. Then, go to the form
settings page & set the 'output CSS' option
to no.
----------------------------------------------------------------
*/
html[dir="rtl"] .gform_wrapper *,
html[dir="rtl"] .gform_wrapper form,
html[dir="rtl"] .gform_wrapper .gform_body,
html[dir="rtl"] .gform_wrapper ul li,
html[dir="rtl"] .gform_wrapper ul li.gfield,
html[dir="rtl"] .gform_wrapper ul li.gfield.gfield_html,
html[dir="rtl"] .gform_wrapper ul li.gfield input,
html[dir="rtl"] .gform_wrapper ul li.gfield textarea,
html[dir="rtl"] .gform_wrapper textarea,
html[dir="rtl"] .gform_wrapper ul li.gfield select,
html[dir="rtl"] .gform_wrapper select,
html[dir="rtl"] .gform_wrapper input[type="text"],
html[dir="rtl"] .gform_wrapper input[type="email"],
html[dir="rtl"] .gform_wrapper input[type="password"],
html[dir="rtl"] .gform_wrapper input[type="url"],
html[dir="rtl"] .gform_wrapper input[type="tel"],
html[dir="rtl"] .gform_wrapper input[type="submit"],
html[dir="rtl"] .gform_wrapper input[type="button"],
html[dir="rtl"] .gform_wrapper button,
html[dir="rtl"] .gform_wrapper table tr td.gfield_list_icons,
html[dir="rtl"] .gform_wrapper div.validation_error,
html[dir="rtl"] .gform_wrapper h3.gform_title,
html[dir="rtl"] .gform_wrapper span.gform_description,
html[dir="rtl"] .gform_wrapper .gform_footer {
text-align: right;
direction: rtl;
}
html[dir="rtl"] .gform_wrapper ul,
html[dir="rtl"] .gform_wrapper ul li {
margin-right: 0 !important;
padding-right: 0 !important;
}
html[dir="rtl"] .gform_wrapper div.gform_body ul.gform_fields li.gfield.gfield_html ol li,
html[dir="rtl"] .gform_wrapper form div.gform_body ul.gform_fields li.gfield.gfield_html ol li,
html[dir="rtl"] .gform_wrapper div.gform_body ul.gform_fields li.gfield.gfield_html ul li,
html[dir="rtl"] .gform_wrapper form div.gform_body ul.gform_fields li.gfield.gfield_html ul li {
margin: 0 0 0 0 !important;
direction: rtl !important;
}
body .gform_wrapper.gf_rtl_wrapper div.gform_body ul.gform_fields li.gfield.gfield_html table {
direction: rtl !important;
}
html[dir="rtl"] .gform_wrapper table.gfield_list th,
html[dir="rtl"] .gform_wrapper table.gfield_list td {
padding-left: 16px;
padding-right: 0;
}
.gform_wrapper table.gfield_list tr td.gfield_list_icons,
.gform_wrapper table.gfield_list tr td:last-child {
padding: 0 4px 0 0 !important;
}
html[dir="rtl"] .gform_wrapper.gf_browser_gecko .top_label input[type="file"],
html[dir="rtl"] .gform_wrapper.gf_browser_gecko .left_label input[type="file"],
html[dir="rtl"] .gform_wrapper.gf_browser_gecko .right_label input[type="file"] {
width: 55% !important;
direction: rtl !important;
}
html[dir="rtl"] .gform_wrapper.recaptchatable #recaptcha_response_field {
position: static !important;
}
html[dir="rtl"] .gform_wrapper .chosen-container-multi ul.chosen-choices li.search-choice {
float: right !important;
margin: 3px 5px 3px 0 !important;
}
html[dir="rtl"] .gform_wrapper .chosen-container ul.chosen-choices li.search-field {
float: right !important;
}
html[dir="rtl"] .gform_wrapper .right_label .gfield_label {
text-align: left !important;
}
body.rtl .gform_wrapper *,
body.rtl .gform_wrapper form,
body.rtl .gform_wrapper .gform_body,
body.rtl .gform_wrapper ul li,
body.rtl .gform_wrapper ul li.gfield,
body.rtl .gform_wrapper ul li.gfield.gfield_html,
body.rtl .gform_wrapper ul li.gfield input,
body.rtl .gform_wrapper ul li.gfield textarea,
body.rtl .gform_wrapper textarea,
body.rtl .gform_wrapper ul li.gfield select,
body.rtl .gform_wrapper select,
body.rtl .gform_wrapper input[type="text"],
body.rtl .gform_wrapper input[type="email"],
body.rtl .gform_wrapper input[type="password"],
body.rtl .gform_wrapper input[type="url"],
body.rtl .gform_wrapper input[type="tel"],
body.rtl .gform_wrapper input[type="submit"],
body.rtl .gform_wrapper input[type="button"],
body.rtl .gform_wrapper button,
body.rtl .gform_wrapper table tr td.gfield_list_icons,
body.rtl .gform_wrapper div.validation_error,
body.rtl .gform_wrapper h3.gform_title,
body.rtl .gform_wrapper span.gform_description,
body.rtl .gform_wrapper .gform_footer,
body .gform_wrapper.gf_rtl_wrapper ul li,
body .gform_wrapper.gf_rtl_wrapper ul li.gfield,
body .gform_wrapper.gf_rtl_wrapper ul li.gfield.gfield_html,
body .gform_wrapper.gf_rtl_wrapper ul li.gfield input,
body .gform_wrapper.gf_rtl_wrapper ul li.gfield textarea,
body .gform_wrapper.gf_rtl_wrapper textarea,
body .gform_wrapper.gf_rtl_wrapper ul li.gfield select,
body .gform_wrapper.gf_rtl_wrapper select,
body .gform_wrapper.gf_rtl_wrapper input[type="text"],
body .gform_wrapper.gf_rtl_wrapper input[type="email"],
body .gform_wrapper.gf_rtl_wrapper input[type="password"],
body .gform_wrapper.gf_rtl_wrapper input[type="url"],
body .gform_wrapper.gf_rtl_wrapper input[type="tel"],
body .gform_wrapper.gf_rtl_wrapper input[type="submit"],
body .gform_wrapper.gf_rtl_wrapper input[type="button"],
body .gform_wrapper.gf_rtl_wrapper button,
body .gform_wrapper.gf_rtl_wrapper table tr td.gfield_list_icons,
body .gform_wrapper.gf_rtl_wrapper div.validation_error,
body .gform_wrapper.gf_rtl_wrapper .gform_heading,
body .gform_wrapper.gf_rtl_wrapper h3.gform_title,
body .gform_wrapper.gf_rtl_wrapper span.gform_description,
body .gform_wrapper.gf_rtl_wrapper .gform_footer {
text-align: right !important;
direction: rtl !important;
}
body.rtl .gform_wrapper ul,
body.rtl .gform_wrapper ul li,
body .gform_wrapper.gf_rtl_wrapper ul,
body .gform_wrapper.gf_rtl_wrapper ul li {
margin-right: 0 !important;
padding-right: 0 !important;
}
body.rtl .gform_wrapper .gfield_checkbox li input[type="checkbox"],
body.rtl .gform_wrapper .gfield_radio li input[type="radio"],
body.rtl .gform_wrapper .gfield_checkbox li input,
body .gform_wrapper.gf_rtl_wrapper .gfield_checkbox li input[type="checkbox"],
body .gform_wrapper.gf_rtl_wrapper .gfield_radio li input[type="radio"],
body .gform_wrapper.gf_rtl_wrapper .gfield_checkbox li input {
float: right !important;
}
body.rtl .gform_wrapper div.gform_body ul.gform_fields li.gfield.gfield_html ol li,
body.rtl .gform_wrapper form div.gform_body ul.gform_fields li.gfield.gfield_html ol li,
body.rtl .gform_wrapper div.gform_body ul.gform_fields li.gfield.gfield_html ul li,
body.rtl .gform_wrapper form div.gform_body ul.gform_fields li.gfield.gfield_html ul li,
body .gform_wrapper.gf_rtl_wrapper div.gform_body ul.gform_fields li.gfield.gfield_html ol li,
body .gform_wrapper.gf_rtl_wrapper form div.gform_body ul.gform_fields li.gfield.gfield_html ol li,
body .gform_wrapper.gf_rtl_wrapper div.gform_body ul.gform_fields li.gfield.gfield_html ul li,
body .gform_wrapper.gf_rtl_wrapper form div.gform_body ul.gform_fields li.gfield.gfield_html ul li {
margin: 0 24px 0 0 !important;
direction: rtl !important;
}
body .gform_wrapper.gf_rtl_wrapper div.gform_body ul.gform_fields li.gfield.gfield_html table {
direction: rtl !important;
}
body .gform_wrapper.gf_rtl_wrapper div.gform_body ul.gform_fields li.gfield.gfield_html table th,
body .gform_wrapper.gf_rtl_wrapper div.gform_body ul.gform_fields li.gfield.gfield_html table td,
body .gform_wrapper.gf_rtl_wrapper div.gform_body ul.gform_fields li.gfield.gfield_html p,
body .gform_wrapper.gf_rtl_wrapper div.gform_body ul.gform_fields li.gfield.gfield_html span,
body .gform_wrapper.gf_rtl_wrapper div.gform_body ul.gform_fields li.gfield.gfield_html blockquote {
text-align: right !important;
direction: rtl !important;
}
body.rtl .gform_wrapper table.gfield_list th,
body.rtl .gform_wrapper table.gfield_list td,
body .gform_wrapper.gf_rtl_wrapper table.gfield_list th,
body .gform_wrapper.gf_rtl_wrapper table.gfield_list td {
padding: 0 !important;
}
body .gform_wrapper.gf_rtl_wrapper table.gfield_list {
direction: rtl !important;
}
body .gform_wrapper.gf_rtl_wrapper table.gfield_list thead th {
text-align: right !important;
}
body.rtl .gform_wrapper table input,
body .gform_wrapper.gf_rtl_wrapper table input {
float: right !important;
}
body.rtl .gform_wrapper.recaptchatable #recaptcha_response_field,
body .gform_wrapper.gf_rtl_wrapper .recaptchatable #recaptcha_response_field {
position: static !important;
}
body.rtl .gform_wrapper .chosen-container-multi ul.chosen-choices li.search-choice,
body .gform_wrapper.gf_rtl_wrapper .chosen-container-multi ul.chosen-choices li.search-choice {
float: right !important;
margin: 3px 5px 3px 0 !important;
}
body.rtl .gform_wrapper .chosen-container ul.chosen-choices li.search-field,
body .gform_wrapper.gf_rtl_wrapper .chosen-container ul.chosen-choices li.search-field {
float: right !important;
}
body.rtl .gform_wrapper ul:not(.top_label) .gfield_label,
body .gform_wrapper.gf_rtl_wrapper ul:not(.top_label) .gfield_label {
float: right !important;
margin: 0 0 0 15px !important;
}
body.rtl .gform_wrapper .right_label .gfield_label,
body .gform_wrapper.gf_rtl_wrapper .right_label .gfield_label {
text-align: left !important;
}
body.rtl .gform_wrapper ul:not(.top_label) .gfield_description,
body.rtl .gform_wrapper ul:not(.top_label) .instruction,
body .gform_wrapper.gf_rtl_wrapper ul:not(.top_label) .gfield_description,
body .gform_wrapper.gf_rtl_wrapper ul:not(.top_label) .instruction {
margin-right: 31% !important;
margin-left: 0 !important;
}
body.rtl .gform_wrapper ul:not(.top_label) div.ginput_complex,
body .gform_wrapper.gf_rtl_wrapper ul:not(.top_label) div.ginput_complex {
margin-right: 31% !important;
margin-left: 0 !important;
}
body.rtl .gform_wrapper ul:not(.top_label) .gfield_description,
body .gform_wrapper.gf_rtl_wrapper ul:not(.top_label) .gfield_description {
padding: 0;
}
body.rtl .gform_wrapper ul:not(.top_label) li.gfield_html_formatted,
body .gform_wrapper.gf_rtl_wrapper ul:not(.top_label) li.gfield_html_formatted {
margin-left: 0 !important;
margin-right: 32% !important;
}
body.rtl .gform_wrapper .gform_footer.right_label,
body.rtl .gform_wrapper .gform_footer.left_label,
body .gform_wrapper.gf_rtl_wrapper .gform_footer.right_label,
body .gform_wrapper.gf_rtl_wrapper .gform_footer.left_label {
padding: 16px 31% 10px 0 !important;
}
html[dir="rtl"] .gform_wrapper .ginput_right select,
body.rtl .gform_wrapper .ginput_right select,
body .gform_wrapper.gf_rtl_wrapper .ginput_right select {
margin-right: 2px;
}
html[dir="rtl"] .gform_wrapper img.ui-datepicker-trigger,
body.rtl .gform_wrapper img.ui-datepicker-trigger,
body .gform_wrapper.gf_rtl_wrapper img.ui-datepicker-trigger {
margin: 4px 2px 0 0;
}
html[dir="rtl"] .gform_wrapper .gf_progressbar_percentage span,
body.rtl .gform_wrapper .gf_progressbar_percentage span,
body .gform_wrapper.gf_rtl_wrapper .gf_progressbar_percentage span {
display: block;
width: auto;
float: left !important;
}
html[dir="rtl"] .gform_wrapper .gf_step span.gf_step_number,
body.rtl .gform_wrapper .gf_step span.gf_step_number,
body .gform_wrapper.gf_rtl_wrapper .gf_step span.gf_step_number {
float: right !important;
}
html[dir="rtl"] .gform_wrapper .gf_step,
body.rtl .gform_wrapper .gf_step,
body .gform_wrapper.gf_rtl_wrapper .gform_wrapper .gf_step {
margin: 0 0 10px 10px !important;
}
html[dir="rtl"] .gform_wrapper .chosen-container .chosen-results li.active-result,
body.rtl .gform_wrapper .chosen-container .chosen-results li.active-result,
body .gform_wrapper.gf_rtl_wrapper .chosen-container .chosen-results li.active-result {
padding-right: 24px !important;
}
html[dir="rtl"] .gform_wrapper .chosen-container-multi .chosen-choices .search-choice .search-choice-close,
body.rtl .gform_wrapper .chosen-container-multi .chosen-choices .search-choice .search-choice-close,
body .gform_wrapper.gf_rtl_wrapper .chosen-container-multi .chosen-choices .search-choice .search-choice-close {
right: 5px !important;
}
html[dir="rtl"] .gform_wrapper .chosen-container-multi ul.chosen-choices li.search-choice span,
body.rtl .gform_wrapper .chosen-container-multi ul.chosen-choices li.search-choice span,
body .gform_wrapper.gf_rtl_wrapper .gform_wrapper .chosen-container-multi ul.chosen-choices li.search-choice span {
display: block;
margin-right: 19px !important;
}
html[dir="rtl"] div#preview_hdr span.actionlinks {
float: left !important;
text-align: left !important;
}
html[dir="rtl"] div#preview_hdr div:first-child {
background-position: right center !important;
padding-left: 10px !important;
padding-right: 10px !important;
}
html[dir="rtl"] .gform_wrapper .gfield_visibility_hidden,
html[dir="rtl"] .gform_wrapper .gf_invisible {
left: auto; right: -9999px;
}
html[dir="rtl"] .gform_wrapper .gf_progressbar_percentage {
border-radius: 4px 20px 20px 4px;
}
/* admin RTL support */
html[dir="rtl"] body.wp-admin * {
direction: rtl !important;
}
html[dir="rtl"] body.wp-admin li.gf_form_switcher {
display: block;
position: relative;
right: 0;
}
html[dir="rtl"] body.wp-admin li.gf_form_switcher select {
}
html[dir="rtl"] body.wp-admin div#add_fields {
float: left;
}
html[dir="rtl"] body.wp-admin .button-title-link div.add-buttons-title {
position: relative;
background-image: url(../images/gf-expand-title-bg-rtl.png);
background-position: left 0;
text-align: right;
padding: 8px 14px 0 0 !important;
}
html[dir="rtl"] body.wp-admin ul#gf_form_toolbar_links {
padding: 0 6px 0 0 !important;
}
html[dir="rtl"] body.wp-admin .top_label .gfield_label {
margin: 8px 6px 4px 0;
}
html[dir="rtl"] body.wp-admin .gfield_checkbox li input[type=checkbox],
html[dir="rtl"] body.wp-admin .gfield_radio li input[type=radio],
html[dir="rtl"] body.wp-admin .gfield_checkbox li input {
float: right !important;
margin-left: 2px !important;
margin-right: 1px !important;
}
html[dir="rtl"] body.wp-admin .ginput_complex .ginput_left,
html[dir="rtl"] body.wp-admin .ginput_complex .ginput_right {
float: right !important;
}
html[dir="rtl"] body.wp-admin .gfield_time_hour,
html[dir="rtl"] body.wp-admin .gfield_time_minute {
float: right;
}
html[dir="rtl"] body.wp-admin .gfield_date_month,
html[dir="rtl"] body.wp-admin .gfield_date_day,
html[dir="rtl"] body.wp-admin .gfield_date_year {
float: right !important;
}
html[dir="rtl"] body.wp-admin img#gfield_input_datepicker_icon {
left: -4px;
}
html[dir="rtl"] body.wp-admin div#gf_nofield_1_instructions {
background-position: 0 -1995px;
}
html[dir="rtl"] body.wp-admin div#gf_nofield_1_instructions span {
margin-left: 300px;
}
html[dir="rtl"] body.wp-admin ul#gform_fields li#no-fields div.newform_notice span {
position: absolute;
right:340px;
top: 40px;
background-position: 0 -1880px;
}
html[dir="rtl"] body.wp-admin .gf_new_form_modal_container .setting-row label {
float: right !important;
}
html[dir="rtl"] body.wp-admin .gf_new_form_modal_container div.submit-row input#save_new_form.button {
float: right !important;
}
html[dir="rtl"] body.wp-admin #TB_ajaxWindowTitle {
float: right !important;
}
html[dir="rtl"] body.wp-admin #TB_closeAjaxWindow {
float: left !important;
}
html[dir="rtl"] body.wp-admin .gform_tabs li.active a {
position: relative;
right: -1px;
padding: 6px 10px 6px 10px !important;
}
html[dir="rtl"] body.wp-admin a.tooltip,
html[dir="rtl"] body.wp-admin a.tooltip_left,
html[dir="rtl"] body.wp-admin a.tooltip_bottomleft {
overflow: hidden;
}
html[dir="rtl"] body.wp-admin h2.gf_admin_page_title span.gf_admin_page_subtitle span.gf_admin_page_formid {
margin: 0 0 0 8px !important;
}
html[dir="rtl"] body.wp-admin p.submit input.gf_settings_savebutton {
float: right;
}
html[dir="rtl"] body.wp-admin p[style] {
text-align: right !important;
}
html[dir="rtl"] body.wp-admin div.delete-alert {
padding: 0 20px 20px 20px;
}
html[dir="rtl"] .gform_wrapper .ginput_complex.ginput_container_address span.ginput_full + span.ginput_right,
html[dir="rtl"] .gform_wrapper .ginput_complex.ginput_container_address .ginput_left:nth-of-type(odd) {
padding-right: 0 !important;
padding-left: 16px !important;
}
html[dir="rtl"] .gform_wrapper span.ginput_left,
html[dir="rtl"] .gform_wrapper ul.gform_fields li.gfield {
padding-left: 16px;
padding-right: 0;
}
html[dir="rtl"] .gform_wrapper ul.gform_fields li.gfield.gfield_error {
padding-right: 16px !important;
}
html[dir="rtl"] div.ginput_complex.ginput_container.gf_name_has_2 span:first-child,
html[dir="rtl"] div.ginput_complex.ginput_container.gf_name_has_3 span:first-child,
html[dir="rtl"] div.ginput_complex.ginput_container.gf_name_has_4 span:first-child,
html[dir="rtl"] div.ginput_complex.ginput_container.gf_name_has_5 span:first-child {
margin-right: 0 !important;
padding-right: 0;
margin-left: -4px;
}
html[dir="rtl"] div.ginput_container_name span {
padding-right: 0;
padding-left: 16px;
margin-right: 0;
margin-left: -4px;
}
html[dir="rtl"] div#preview_hdr span.toggle_helpers {
float: left;
}
html[dir="rtl"] div#preview_hdr span.toggle_helpers label,
html[dir="rtl"] div#preview_hdr span.toggle_helpers input {
display: -moz-inline-stack;
display: inline-block;
}
html[dir="rtl"] div#preview_note {
border-right: 4px solid #ffba00;
border-left: none !important;
}
html[dir="rtl"] .gform_wrapper span.gfield_required {
margin-left: 0;
margin-right: 4px;
}
html[dir="rtl"] .gform_wrapper li.gfield.gfield_creditcard_warning div.gfield_creditcard_warning_message span {
padding: 0 24px 14px 0;
}
html[dir="rtl"] .gform_wrapper .gfield_time_hour i {
float: left;
}
html[dir="rtl"] .gform_wrapper .description, .gform_wrapper .gfield_description,
html[dir="rtl"] .gform_wrapper .gsection_description {
padding: 10px 0 10px 16px;
}
html[dir="rtl"] .gform_wrapper .gform_card_icon_container div {
float: right;
}
html[dir="rtl"] .gform_wrapper .ginput_complex .ginput_cardinfo_left,
html[dir="rtl"] .gform_wrapper .ginput_complex .ginput_cardinfo_right {
float: right;
}
html[dir="rtl"] .gform_wrapper .ginput_complex .ginput_cardinfo_right span.ginput_card_security_code_icon {
right: 6px;
top: -1px;
width: 32px;
}
html[dir="rtl"] .gform_wrapper li.gfield.gfield_creditcard_warning div.gfield_creditcard_warning_message span {
background-position: 100% top;
}
html[dir="rtl"] div.form_saved_message,
html[dir="rtl"] div.form_saved_message * {
text-align: center !important;
}
html[dir="rtl"] .gform_wrapper .gfield_checkbox li label,
html[dir="rtl"] .gform_wrapper .gfield_radio li label {
margin: 0 4px 0 0;
}
html[dir="rtl"] .gform_wrapper:not(.gf_browser_gecko):not(.gf_browser_ie) select {
background-position: 3.5% center;
}
html[dir="rtl"] .gform_wrapper .gform_fileupload_multifile .gform_drop_area,
html[dir="rtl"] .gform_wrapper span.gform_drop_instructions {
text-align: center;
}
html[dir="rtl"] .gform_wrapper .ginput_complex.ginput_container.ginput_container_email .ginput_left,
html[dir="rtl"] .gform_wrapper .ginput_complex.ginput_container.ginput_container_email .ginput_right {
padding-left: 16px;
padding-right: 0;
}
html[dir="rtl"] .gform_wrapper div.validation_error {
text-align: center;
}
html[dir="rtl"] .gform_wrapper span.ginput_price {
float: right;
}
@media only screen and (max-width: 761px), (min-device-width: 768px) and (max-device-width: 1024px) {
/* Force the list table to not be like tables anymore */
html[dir="rtl"] .gform_wrapper table.gfield_list {
border: 0;
}
html[dir="rtl"] .gform_wrapper ul.gform_fields.form_sublabel_above table.gfield_list td:before {
margin: 8px 1px 3px 0;
}
html[dir="rtl"] .gform_wrapper table.gfield_list td {
clear: both;
}
html[dir="rtl"] .gform_wrapper table.gfield_list td:last-child(2) {
padding-bottom: 4px !important;
}
html[dir="rtl"] .gform_wrapper table.gfield_list td.gfield_list_icons {
vertical-align: middle;
padding: 0 4px 4px 0 !important;
}
}
/* media queries - tablet or desktop */
@media only screen and (min-width: 641px) {
html[dir="rtl"] .gform_wrapper ul:not(.top_label) .gfield_label {
float: right !important;
margin: 0 0 0 15px !important;
}
html[dir="rtl"] .gform_wrapper ul:not(.top_label) .ginput_container:not(.ginput_container_time),
html[dir="rtl"] .gform_wrapper ul:not(.top_label) .gfield_description {
width: 70%;
margin-right: 29%;
margin-left: 0;
}
html[dir="rtl"] .gform_wrapper ul:not(.top_label) .gfield_description,
html[dir="rtl"] .gform_wrapper .ul:not(.top_label) .instruction {
margin-right: 29% !important;
margin-left: 0 !important;
}
html[dir="rtl"] .gform_wrapper ul:not(.top_label) div.ginput_complex {
margin-right: 31% !important;
margin-left: 0 !important;
}
html[dir="rtl"] .gform_wrapper ul:not(.top_label) .gfield_description {
padding: 10px 0 10px 0 !important;
}
html[dir="rtl"] .gform_wrapper ul:not(.top_label) li.gfield_html_formatted {
margin-left: 0 !important;
margin-right: 32% !important;
}
html[dir="rtl"] .gform_wrapper .gform_footer.right_label,
html[dir="rtl"] .gform_wrapper .gform_footer.left_label {
padding: 16px 31% 10px 0 !important;
}
html[dir="rtl"] .gform_wrapper .gform_footer a.gform_save_link,
html[dir="rtl"] .gform_wrapper .gform_page_footer a.gform_save_link {
margin-right: 16px;
}
html[dir="rtl"] .gform_wrapper table input {
float: right !important;
}
html[dir="rtl"] .gform_wrapper .left_label li.gfield .gfield_password_strength,
html[dir="rtl"] .gform_wrapper .right_label li.gfield .gfield_password_strength {
margin-left: 0;
margin-right: 29%;
width: 70%;
text-align: center !important;
}
html[dir="rtl"] .gform_wrapper .ginput_complex.ginput_container_address .ginput_left,
html[dir="rtl"] .gform_wrapper .ginput_complex.ginput_container_address span.ginput_right + span.ginput_left.address_zip {
margin-right: 0;
}
html[dir="rtl"] .gform_wrapper .ginput_complex .ginput_left, .gform_wrapper .ginput_complex .ginput_right {
margin: 0 0 0 -4px;
}
html[dir="rtl"] .gform_wrapper .ginput_complex.ginput_container_address span.ginput_right + span.ginput_left {
padding-right: 0 !important;
margin-right: 0 !important;
}
html[dir="rtl"] .gform_wrapper .ginput_complex.ginput_container_address .ginput_right {
margin-right: 0;
}
html[dir="rtl"] .gform_wrapper ul li.gf_right_half {
margin-left: 0;
}
html[dir="rtl"] .gform_wrapper .gform_footer input.button,
html[dir="rtl"] .gform_wrapper .gform_page_footer input.button,
html[dir="rtl"] .gform_wrapper .gform_footer input[type=submit],
html[dir="rtl"] .gform_wrapper .gform_page_footer input[type=submit] {
margin: 0 0 0 16px;
}
}
@media only screen and (max-width: 641px) {
html[dir="rtl"] body .gform_wrapper .gform_page_footer .button.gform_previous_button,
html[dir="rtl"] body .gform_wrapper .gform_page_footer .button.gform_next_button,
html[dir="rtl"] body .gform_wrapper .gform_footer .button.gform_button,
html[dir="rtl"] body .gform_wrapper .gform_page_footer .button.gform_button,
html[dir="rtl"] body .gform_wrapper .gform_page_footer,
html[dir="rtl"] body .gform_wrapper .gform_page_footer,
html[dir="rtl"] body .gform_wrapper .gform_footer a.gform_save_link,
html[dir="rtl"] body .gform_wrapper .gform_page_footer a.gform_save_link {
text-align: center !important;
}
html[dir="rtl"] div.ginput_container_name span {
padding-left: 0;
}
html[dir="rtl"] .gform_wrapper .ginput_complex.ginput_container_address span.ginput_full + span.ginput_right,
html[dir="rtl"] .gform_wrapper .ginput_complex.ginput_container_address .ginput_left:nth-of-type(odd) {
padding-right: 0 !important;
padding-left: 0 !important;
}
html[dir="rtl"] .gform_footer,
html[dir="rtl"] .gform_page_footer {
padding-left: 16px;
}
html[dir="rtl"] .gform_wrapper {
padding-right: 16px;
}
}
/* RTL tweaks for Firefox */
body.rtl .gform_wrapper.gf_browser_gecko .top_label input[type="file"],
body.rtl .gform_wrapper.gf_browser_gecko .left_label input[type="file"],
body.rtl .gform_wrapper.gf_browser_gecko .right_label input[type="file"],
body .gform_wrapper.gf_rtl_wrapper.gf_browser_gecko .top_label input[type="file"],
body .gform_wrapper.gf_rtl_wrapper.gf_browser_gecko .left_label input[type="file"],
body .gform_wrapper.gf_rtl_wrapper.gf_browser_gecko .right_label input[type="file"] {
width: 55% !important;
direction: rtl;
}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,3 @@
.wpview-type-gravityform {
min-height: 100px!important;
}

View File

@ -0,0 +1 @@
.wpview-type-gravityform{min-height:100px!important}

View File

@ -0,0 +1,42 @@
.gf-edit-shortcode-form {
padding: 5px 15px; }
.gf-edit-shortcode-form input, .gf-edit-shortcode-form textarea {
border: 1px solid #ddd;
-webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.07);
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.07);
background-color: #fff;
color: #333;
outline: none;
-webkit-transition: 0.05s border-color ease-in-out;
transition: 0.05s border-color ease-in-out;
max-width: 100%; }
.gf-edit-shortcode-form textarea {
width: 100%;
max-width: 100%;
min-height: 100px; }
.gf-edit-shortcode-form .gf-edit-shortcode-form-fields > div {
margin-bottom: 10px; }
.gf-edit-shortcode-form .field-block label {
display: block;
margin-bottom: 5px; }
.gf-edit-shortcode-form .field-inline {
padding-top: 10px; }
.gf-edit-shortcode-form .field-inline label {
display: inline-block; }
.gf-edit-shortcode-form-standard-attrs div{
display: inline;
margin-right:15px;
}
#gf-edit-shortcode-form-advanced-attrs div{
margin-bottom:5px;
}
#gf-edit-shortcode-form-advanced-attrs{
margin-left:15px;
}
#TB_ajaxContent {
min-height:92%!important;
}

View File

@ -0,0 +1 @@
.gf-edit-shortcode-form{padding:5px 15px}.gf-edit-shortcode-form input,.gf-edit-shortcode-form textarea{border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07);background-color:#fff;color:#333;outline:0;-webkit-transition:50ms border-color ease-in-out;transition:50ms border-color ease-in-out;max-width:100%}.gf-edit-shortcode-form textarea{width:100%;max-width:100%;min-height:100px}.gf-edit-shortcode-form .gf-edit-shortcode-form-fields>div{margin-bottom:10px}.gf-edit-shortcode-form .field-block label{display:block;margin-bottom:5px}.gf-edit-shortcode-form .field-inline{padding-top:10px}.gf-edit-shortcode-form .field-inline label{display:inline-block}.gf-edit-shortcode-form-standard-attrs div{display:inline;margin-right:15px}#gf-edit-shortcode-form-advanced-attrs div{margin-bottom:5px}#gf-edit-shortcode-form-advanced-attrs{margin-left:15px}#TB_ajaxContent{min-height:92%!important}

View File

@ -0,0 +1,69 @@
/*
----------------------------------------------------------------
tooltip.css
Gravity Forms Admin Tooltip Styles
http://www.gravityforms.com
updated: November 6, 2013 12:42 PM
Gravity Forms is a Rocketgenius project
copyright 2013 Rocketgenius Inc.
http: //www.rocketgenius.com
this may not be re-distrubited without the
express written permission of the author.
NOTE: DO NOT EDIT THIS FILE!
THIS FILE IS REPLACED DURING AUTO UPGRADE
AND ANY CHANGES MADE HERE WILL BE OVERWRITTEN.
----------------------------------------------------------------
*/
a.tooltip,
a.tooltip_left,
a.tooltip_bottomleft {
width: 16px;
text-decoration: none;
color: #424242;
zoom: 1;
filter: alpha(opacity=50);
opacity: 0.5;
}
a.tooltip:hover,
a.tooltip_left:hover,
a.tooltip_bottomleft:hover {
color: #0074A2;
zoom: 1;
filter: alpha(opacity=100);
opacity: 1.0;
}
.ui-tooltip {
padding: 18px;
position: absolute;
z-index: 9999999;
max-width: 300px;color: #000;
text-shadow: 1px 1px 1px #fff;
font-size: 1.0em;
-webkit-border-radius: 6px;
-moz-border-radius: 6px;
border-radius: 6px;
-webkit-box-shadow: 0 8px 6px -6px rgba(0,0,0,0.3);
-moz-box-shadow: 0 8px 6px -6px rgba(0,0,0,0.3);
box-shadow: 0 8px 6px -6px rgba(0,0,0,0.3);
}
body .ui-tooltip {
border: 4px solid #999;
background-color: #ededed;
}
body .ui-tooltip h6 {
color: #0e6085;
font-size: 1.1em;
font-weight: bold;
margin: 0 0 3px 0 !important;
padding: 0 !important;
}

View File

@ -0,0 +1 @@
a.tooltip,a.tooltip_bottomleft,a.tooltip_left{width:16px;text-decoration:none;color:#424242;zoom:1;filter:alpha(opacity=50);opacity:.5}a.tooltip:hover,a.tooltip_bottomleft:hover,a.tooltip_left:hover{color:#0074A2;zoom:1;filter:alpha(opacity=100);opacity:1}.ui-tooltip{padding:18px;position:absolute;z-index:9999999;max-width:300px;color:#000;text-shadow:1px 1px 1px #fff;font-size:1em;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 8px 6px -6px rgba(0,0,0,.3);-moz-box-shadow:0 8px 6px -6px rgba(0,0,0,.3);box-shadow:0 8px 6px -6px rgba(0,0,0,.3)}body .ui-tooltip{border:4px solid #999;background-color:#ededed}body .ui-tooltip h6{color:#0e6085;font-size:1.1em;font-weight:700;margin:0 0 3px!important;padding:0!important}

View File

@ -0,0 +1 @@
.ui-tabs{padding:.2em;zoom:1}.ui-tabs .ui-tabs-nav{list-style:none;position:relative;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{position:relative;float:left;border-bottom-width:0!important;margin:0 .2em -1px 0;padding:0}.ui-tabs .ui-tabs-nav li a{float:left;text-decoration:none;padding:.5em 1em}.ui-tabs .ui-tabs-nav li.ui-tabs-selected{padding-bottom:1px;border-bottom-width:0}.ui-tabs .ui-tabs-nav li.ui-state-disabled a,.ui-tabs .ui-tabs-nav li.ui-state-processing a,.ui-tabs .ui-tabs-nav li.ui-tabs-selected a{cursor:text}.ui-tabs .ui-tabs-nav li a,.ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a{cursor:pointer}.ui-tabs .ui-tabs-panel{padding:1em 1.4em;display:block;border-width:0;background:0 0}.ui-tabs .ui-tabs-hide{display:none!important}

View File

@ -0,0 +1,64 @@
/*
----------------------------------------------------------------
ui.tabs.css
Gravity Forms - admin UI tab styles
http://www.gravityforms.com
updated: January 3, 2012 11:54 AM
Gravity Forms is a Rocketgenius project
copyright 2012 Rocketgenius Inc.
http: //www.rocketgenius.com
this may not be re-distrubited without the
express written permission of the author.
NOTE: DO NOT EDIT THIS FILE!
THIS FILE IS REPLACED DURING AUTO UPGRADE
AND ANY CHANGES MADE HERE WILL BE OVERWRITTEN.
----------------------------------------------------------------
*/
.ui-tabs {
padding: 0.2em;
zoom: 1
}
.ui-tabs .ui-tabs-nav {
list-style: none;
position: relative;
padding: 0.2em 0.2em 0
}
.ui-tabs .ui-tabs-nav li {
position: relative;
float: left;
border-bottom-width: 0 !important;
margin: 0 .2em -1px 0;
padding: 0
}
.ui-tabs .ui-tabs-nav li a {
float: left;
text-decoration: none;
padding: 0.5em 1em
}
.ui-tabs .ui-tabs-nav li.ui-tabs-selected {
padding-bottom: 1px;
border-bottom-width: 0
}
.ui-tabs .ui-tabs-nav li.ui-tabs-selected a,
.ui-tabs .ui-tabs-nav li.ui-state-disabled a,
.ui-tabs .ui-tabs-nav li.ui-state-processing a {
cursor: text
}
.ui-tabs .ui-tabs-nav li a,
.ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a {
cursor: pointer
}
.ui-tabs .ui-tabs-panel {
padding: 1em 1.4em;
display: block;
border-width: 0;
background: none
}
.ui-tabs .ui-tabs-hide {
display: none !important
}

View File

@ -0,0 +1,149 @@
<?php
if ( ! class_exists( 'GFForms' ) ) {
die();
}
if ( ! class_exists( 'RGCurrency' ) ) {
class RGCurrency {
private $currency;
public function __construct( $currency ) {
if ( is_array( $currency ) ) {
$this->currency = $currency;
} else {
$this->currency = self::get_currency( $currency );
}
}
public function to_number( $text ) {
$text = strval( $text );
if ( is_numeric( $text ) ) {
return floatval( $text );
}
//Making sure symbol is in unicode format (i.e. &#4444;)
$text = preg_replace( '/&.*?;/', '', $text );
//Removing symbol from text
$text = str_replace( $this->currency['symbol_right'], '', $text );
$text = str_replace( $this->currency['symbol_left'], '', $text );
if ( ! empty( $this->currency['symbol_old'] ) ) {
$text = str_replace( $this->currency['symbol_old'], '', $text );
}
//Removing all non-numeric characters
$array = str_split( $text );
$is_negative = false;
$clean_number = '';
foreach ( $array as $char ) {
if ( ( $char >= '0' && $char <= '9' ) || $char == $this->currency['decimal_separator'] ) {
$clean_number .= $char;
} else if ( $char == '-' ) {
$is_negative = true;
}
}
$decimal_separator = $this->currency && $this->currency['decimal_separator'] ? $this->currency['decimal_separator'] : '.';
//Removing thousand separators but keeping decimal point
$array = str_split( $clean_number );
$float_number = '';
for ( $i = 0, $count = sizeof( $array ); $i < $count; $i ++ ) {
$char = $array[ $i ];
if ( $char >= '0' && $char <= '9' ) {
$float_number .= $char;
} else if ( $char == $decimal_separator ) {
$float_number .= '.';
}
}
if ( $is_negative ) {
$float_number = '-' . $float_number;
}
return is_numeric( $float_number ) ? floatval( $float_number ) : false;
}
public function to_money( $number, $do_encode = false ) {
if ( ! is_numeric( $number ) ) {
$number = $this->to_number( $number );
}
if ( $number === false ) {
return '';
}
$negative = '';
if ( strpos( strval( $number ), '-' ) !== false ) {
$negative = '-';
$number = floatval( substr( $number, 1 ) );
}
$money = number_format( $number, $this->currency['decimals'], $this->currency['decimal_separator'], $this->currency['thousand_separator'] );
if ( $money == '0.00' ){
$negative = '';
}
$symbol_left = ! empty( $this->currency['symbol_left'] ) ? $this->currency['symbol_left'] . $this->currency['symbol_padding'] : '';
$symbol_right = ! empty( $this->currency['symbol_right'] ) ? $this->currency['symbol_padding'] . $this->currency['symbol_right'] : '';
if ( $do_encode ) {
$symbol_left = html_entity_decode( $symbol_left );
$symbol_right = html_entity_decode( $symbol_right );
}
return $negative . $symbol_left . $money . $symbol_right;
}
public static function get_currency( $code ) {
$currencies = self::get_currencies();
return $currencies[ $code ];
}
public function is_zero_decimal() {
return empty( $this->currency['decimals'] );
}
public static function get_currencies() {
$currencies = array(
'USD' => array( 'name' => esc_html__( 'U.S. Dollar', 'gravityforms' ), 'symbol_left' => '$', 'symbol_right' => '', 'symbol_padding' => '', 'thousand_separator' => ',', 'decimal_separator' => '.', 'decimals' => 2 ),
'GBP' => array( 'name' => esc_html__( 'Pound Sterling', 'gravityforms' ), 'symbol_left' => '&#163;', 'symbol_right' => '', 'symbol_padding' => ' ', 'thousand_separator' => ',', 'decimal_separator' => '.', 'decimals' => 2 ),
'EUR' => array( 'name' => esc_html__( 'Euro', 'gravityforms' ), 'symbol_left' => '', 'symbol_right' => '&#8364;', 'symbol_padding' => ' ', 'thousand_separator' => '.', 'decimal_separator' => ',', 'decimals' => 2 ),
'AUD' => array( 'name' => esc_html__( 'Australian Dollar', 'gravityforms' ), 'symbol_left' => '$', 'symbol_right' => '', 'symbol_padding' => ' ', 'thousand_separator' => ',', 'decimal_separator' => '.', 'decimals' => 2 ),
'BRL' => array( 'name' => esc_html__( 'Brazilian Real', 'gravityforms' ), 'symbol_left' => 'R$', 'symbol_right' => '', 'symbol_padding' => ' ', 'thousand_separator' => '.', 'decimal_separator' => ',', 'decimals' => 2 ),
'CAD' => array( 'name' => esc_html__( 'Canadian Dollar', 'gravityforms' ), 'symbol_left' => '$', 'symbol_right' => 'CAD', 'symbol_padding' => ' ', 'thousand_separator' => ',', 'decimal_separator' => '.', 'decimals' => 2 ),
'CZK' => array( 'name' => esc_html__( 'Czech Koruna', 'gravityforms' ), 'symbol_left' => '', 'symbol_right' => '&#75;&#269;', 'symbol_padding' => ' ', 'thousand_separator' => ' ', 'decimal_separator' => ',', 'decimals' => 2 ),
'DKK' => array( 'name' => esc_html__( 'Danish Krone', 'gravityforms' ), 'symbol_left' => '', 'symbol_right' => 'kr.', 'symbol_padding' => ' ', 'thousand_separator' => '.', 'decimal_separator' => ',', 'decimals' => 2 ),
'HKD' => array( 'name' => esc_html__( 'Hong Kong Dollar', 'gravityforms' ), 'symbol_left' => 'HK$', 'symbol_right' => '', 'symbol_padding' => '', 'thousand_separator' => ',', 'decimal_separator' => '.', 'decimals' => 2 ),
'HUF' => array( 'name' => esc_html__( 'Hungarian Forint', 'gravityforms' ), 'symbol_left' => '', 'symbol_right' => 'Ft', 'symbol_padding' => ' ', 'thousand_separator' => '.', 'decimal_separator' => ',', 'decimals' => 2 ),
'ILS' => array( 'name' => esc_html__( 'Israeli New Sheqel', 'gravityforms' ), 'symbol_left' => '&#8362;', 'symbol_right' => '', 'symbol_padding' => ' ', 'thousand_separator' => ',', 'decimal_separator' => '.', 'decimals' => 2 ),
'JPY' => array( 'name' => esc_html__( 'Japanese Yen', 'gravityforms' ), 'symbol_left' => '&#165;', 'symbol_right' => '', 'symbol_padding' => ' ', 'thousand_separator' => ',', 'decimal_separator' => '', 'decimals' => 0 ),
'MYR' => array( 'name' => esc_html__( 'Malaysian Ringgit', 'gravityforms' ), 'symbol_left' => '&#82;&#77;', 'symbol_right' => '', 'symbol_padding' => ' ', 'thousand_separator' => ',', 'decimal_separator' => '.', 'decimals' => 2 ),
'MXN' => array( 'name' => esc_html__( 'Mexican Peso', 'gravityforms' ), 'symbol_left' => '$', 'symbol_right' => '', 'symbol_padding' => ' ', 'thousand_separator' => ',', 'decimal_separator' => '.', 'decimals' => 2 ),
'NOK' => array( 'name' => esc_html__( 'Norwegian Krone', 'gravityforms' ), 'symbol_left' => 'Kr', 'symbol_right' => '', 'symbol_padding' => ' ', 'thousand_separator' => '.', 'decimal_separator' => ',', 'decimals' => 2 ),
'NZD' => array( 'name' => esc_html__( 'New Zealand Dollar', 'gravityforms' ), 'symbol_left' => '$', 'symbol_right' => '', 'symbol_padding' => ' ', 'thousand_separator' => ',', 'decimal_separator' => '.', 'decimals' => 2 ),
'PHP' => array( 'name' => esc_html__( 'Philippine Peso', 'gravityforms' ), 'symbol_left' => 'Php', 'symbol_right' => '', 'symbol_padding' => ' ', 'thousand_separator' => ',', 'decimal_separator' => '.', 'decimals' => 2 ),
'PLN' => array( 'name' => esc_html__( 'Polish Zloty', 'gravityforms' ), 'symbol_left' => '&#122;&#322;', 'symbol_right' => '', 'symbol_padding' => ' ', 'thousand_separator' => '.', 'decimal_separator' => ',', 'decimals' => 2 ),
'RUB' => array( 'name' => esc_html__( 'Russian Ruble', 'gravityforms' ), 'symbol_left' => '', 'symbol_right' => 'pyб', 'symbol_padding' => ' ', 'thousand_separator' => ' ', 'decimal_separator' => '.', 'decimals' => 2 ),
'SGD' => array( 'name' => esc_html__( 'Singapore Dollar', 'gravityforms' ), 'symbol_left' => '$', 'symbol_right' => '', 'symbol_padding' => ' ', 'thousand_separator' => ',', 'decimal_separator' => '.', 'decimals' => 2 ),
'ZAR' => array( 'name' => esc_html__( 'South African Rand', 'gravityforms' ), 'symbol_left' => 'R', 'symbol_right' => '', 'symbol_padding' => '', 'thousand_separator' => ',', 'decimal_separator' => '.', 'decimals' => 2 ),
'SEK' => array( 'name' => esc_html__( 'Swedish Krona', 'gravityforms' ), 'symbol_left' => '', 'symbol_right' => 'Kr', 'symbol_padding' => ' ', 'thousand_separator' => ' ', 'decimal_separator' => ',', 'decimals' => 2 ),
'CHF' => array( 'name' => esc_html__( 'Swiss Franc', 'gravityforms' ), 'symbol_left' => 'CHF', 'symbol_right' => '', 'symbol_padding' => ' ', 'thousand_separator' => "'", 'decimal_separator' => '.', 'decimals' => 2, 'symbol_old' => 'Fr.' ),
'TWD' => array( 'name' => esc_html__( 'Taiwan New Dollar', 'gravityforms' ), 'symbol_left' => '$', 'symbol_right' => '', 'symbol_padding' => ' ', 'thousand_separator' => ',', 'decimal_separator' => '.', 'decimals' => 2 ),
'THB' => array( 'name' => esc_html__( 'Thai Baht', 'gravityforms' ), 'symbol_left' => '&#3647;', 'symbol_right' => '', 'symbol_padding' => ' ', 'thousand_separator' => ',', 'decimal_separator' => '.', 'decimals' => 2 ),
);
return apply_filters( 'gform_currencies', $currencies );
}
}
}

Some files were not shown because too many files have changed in this diff Show More