diff --git a/LICENSE b/LICENSE-AGPL3 similarity index 100% rename from LICENSE rename to LICENSE-AGPL3 diff --git a/LICENSE-ZF2 b/LICENSE-ZF2 new file mode 100644 index 00000000..5f05cdc9 --- /dev/null +++ b/LICENSE-ZF2 @@ -0,0 +1,27 @@ +Copyright (c) 2005-2013, Zend Technologies USA, Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + * Neither the name of Zend Technologies USA, Inc. nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/README.md b/README.md index b076a5e7..2bab63dd 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,61 @@ -barbossa -======== +ZendSkeletonApplication +======================= -Main repository +Introduction +------------ +This is a simple, skeleton application using the ZF2 MVC layer and module +systems. This application is meant to be used as a starting place for those +looking to get their feet wet with ZF2. + + +Installation +------------ + +Using Composer (recommended) +---------------------------- +The recommended way to get a working copy of this project is to clone the repository +and use `composer` to install dependencies using the `create-project` command: + + curl -s https://getcomposer.org/installer | php -- + php composer.phar create-project -sdev --repository-url="https://packages.zendframework.com" zendframework/skeleton-application path/to/install + +Alternately, clone the repository and manually invoke `composer` using the shipped +`composer.phar`: + + cd my/project/dir + git clone git://github.com/zendframework/ZendSkeletonApplication.git + cd ZendSkeletonApplication + php composer.phar self-update + php composer.phar install + +(The `self-update` directive is to ensure you have an up-to-date `composer.phar` +available.) + +Another alternative for downloading the project is to grab it via `curl`, and +then pass it to `tar`: + + cd my/project/dir + curl -#L https://github.com/zendframework/ZendSkeletonApplication/tarball/master | tar xz --strip-components=1 + +You would then invoke `composer` to install dependencies per the previous +example. + +Using Git submodules +-------------------- +Alternatively, you can install using native git submodules: + + git clone git://github.com/zendframework/ZendSkeletonApplication.git --recursive + +Virtual Host +------------ +Afterwards, set up a virtual host to point to the public/ directory of the +project and you should be ready to go! + +Alternatively — if you are using PHP 5.4 or above — you may start the internal PHP cli-server in the public +directory: + + cd public + php -S 0.0.0.0:8080 index.php + +This will start the cli-server on port 8080, and bind it to all network +interfaces. diff --git a/composer.json b/composer.json new file mode 100644 index 00000000..a29cf318 --- /dev/null +++ b/composer.json @@ -0,0 +1,15 @@ +{ + "name": "zendframework/skeleton-application", + "description": "Skeleton Application for ZF2", + "license": "BSD-3-Clause", + "keywords": [ + "framework", + "zf2" + ], + "homepage": "http://framework.zend.com/", + "require": { + "php": ">=5.3.3", + "zendframework/zendframework": "2.2.*", + "zendframework/zend-developer-tools": "dev-master" + } +} diff --git a/composer.lock b/composer.lock new file mode 100644 index 00000000..66d78664 --- /dev/null +++ b/composer.lock @@ -0,0 +1,200 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file" + ], + "hash": "7f0b96f280da85d801a4623e87e3265a", + "packages": [ + { + "name": "zendframework/zend-developer-tools", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/zendframework/ZendDeveloperTools.git", + "reference": "23bcd78e80bd963f08b125d80587a640ad7a237d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zendframework/ZendDeveloperTools/zipball/23bcd78e80bd963f08b125d80587a640ad7a237d", + "reference": "23bcd78e80bd963f08b125d80587a640ad7a237d", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "zendframework/zend-debug": "2.*", + "zendframework/zend-eventmanager": "2.*", + "zendframework/zend-mvc": "2.*", + "zendframework/zend-servicemanager": "2.*", + "zendframework/zend-stdlib": "2.*", + "zendframework/zend-version": "2.*" + }, + "suggest": { + "bjyoungblood/bjy-profiler": "Version: dev-master, allows the usage of the (Zend) Db collector.", + "ocramius/ocra-service-manager": "OcraServiceManager can help you track dependencies within your application." + }, + "type": "zf-module", + "autoload": { + "psr-0": { + "ZendDeveloperTools": "src/" + }, + "classmap": [ + "./Module.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Evan Coury", + "email": "me@evancoury.com", + "homepage": "http://blog.evan.pro/" + }, + { + "name": "Eric Boh", + "email": "cossish@gmail.com" + } + ], + "description": "Module for developer and debug tools for working with the ZF2 MVC layer.", + "homepage": "https://github.com/zendframework/ZendDeveloperTools", + "keywords": [ + "debug", + "developer", + "module", + "zf2" + ], + "time": "2013-10-24 10:03:13" + }, + { + "name": "zendframework/zendframework", + "version": "2.2.4", + "source": { + "type": "git", + "url": "https://github.com/zendframework/zf2.git", + "reference": "5b03d868755c181fc9b5dc56c1f8c26e73ca0bed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zendframework/zf2/zipball/5b03d868755c181fc9b5dc56c1f8c26e73ca0bed", + "reference": "5b03d868755c181fc9b5dc56c1f8c26e73ca0bed", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "replace": { + "zendframework/zend-authentication": "self.version", + "zendframework/zend-barcode": "self.version", + "zendframework/zend-cache": "self.version", + "zendframework/zend-captcha": "self.version", + "zendframework/zend-code": "self.version", + "zendframework/zend-config": "self.version", + "zendframework/zend-console": "self.version", + "zendframework/zend-crypt": "self.version", + "zendframework/zend-db": "self.version", + "zendframework/zend-debug": "self.version", + "zendframework/zend-di": "self.version", + "zendframework/zend-dom": "self.version", + "zendframework/zend-escaper": "self.version", + "zendframework/zend-eventmanager": "self.version", + "zendframework/zend-feed": "self.version", + "zendframework/zend-file": "self.version", + "zendframework/zend-filter": "self.version", + "zendframework/zend-form": "self.version", + "zendframework/zend-http": "self.version", + "zendframework/zend-i18n": "self.version", + "zendframework/zend-inputfilter": "self.version", + "zendframework/zend-json": "self.version", + "zendframework/zend-ldap": "self.version", + "zendframework/zend-loader": "self.version", + "zendframework/zend-log": "self.version", + "zendframework/zend-mail": "self.version", + "zendframework/zend-math": "self.version", + "zendframework/zend-memory": "self.version", + "zendframework/zend-mime": "self.version", + "zendframework/zend-modulemanager": "self.version", + "zendframework/zend-mvc": "self.version", + "zendframework/zend-navigation": "self.version", + "zendframework/zend-paginator": "self.version", + "zendframework/zend-permissions-acl": "self.version", + "zendframework/zend-permissions-rbac": "self.version", + "zendframework/zend-progressbar": "self.version", + "zendframework/zend-resources": "self.version", + "zendframework/zend-serializer": "self.version", + "zendframework/zend-server": "self.version", + "zendframework/zend-servicemanager": "self.version", + "zendframework/zend-session": "self.version", + "zendframework/zend-soap": "self.version", + "zendframework/zend-stdlib": "self.version", + "zendframework/zend-tag": "self.version", + "zendframework/zend-test": "self.version", + "zendframework/zend-text": "self.version", + "zendframework/zend-uri": "self.version", + "zendframework/zend-validator": "self.version", + "zendframework/zend-version": "self.version", + "zendframework/zend-view": "self.version", + "zendframework/zend-xmlrpc": "self.version" + }, + "require-dev": { + "doctrine/annotations": ">=1.0", + "ircmaxell/random-lib": "dev-master", + "ircmaxell/security-lib": "dev-master", + "ocramius/proxy-manager": "0.4.*", + "phpunit/phpunit": "3.7.*" + }, + "suggest": { + "doctrine/annotations": "Doctrine Annotations >=1.0 for annotation features", + "ext-intl": "ext/intl for i18n features (included in default builds of PHP)", + "ircmaxell/random-lib": "Fallback random byte generator for Zend\\Math\\Rand if OpenSSL/Mcrypt extensions are unavailable", + "ocramius/proxy-manager": "ProxyManager to handle lazy initialization of services", + "zendframework/zendpdf": "ZendPdf for creating PDF representations of barcodes", + "zendframework/zendservice-recaptcha": "ZendService\\ReCaptcha for rendering ReCaptchas in Zend\\Captcha and/or Zend\\Form" + }, + "bin": [ + "bin/classmap_generator.php", + "bin/pluginmap_generator.php", + "bin/templatemap_generator.php" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.2-dev", + "dev-develop": "2.3-dev" + } + }, + "autoload": { + "psr-0": { + "Zend\\": "library/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Zend Framework 2", + "homepage": "http://framework.zend.com/", + "keywords": [ + "framework", + "zf2" + ], + "time": "2013-08-26 15:09:04" + } + ], + "packages-dev": [ + + ], + "aliases": [ + + ], + "minimum-stability": "stable", + "stability-flags": { + "zendframework/zend-developer-tools": 20 + }, + "platform": { + "php": ">=5.3.3" + }, + "platform-dev": [ + + ] +} diff --git a/composer.phar b/composer.phar new file mode 100755 index 00000000..42fb2aee Binary files /dev/null and b/composer.phar differ diff --git a/config/application.config.php b/config/application.config.php new file mode 100644 index 00000000..e2ca9ad2 --- /dev/null +++ b/config/application.config.php @@ -0,0 +1,75 @@ + array( + 'ZendDeveloperTools', + 'Application', + 'Dashboard', + 'Director', + 'Pool', + 'Volume', + 'Storage', + 'Client', + 'Job', + 'File', + 'Log', + ), + + // These are various options for the listeners attached to the ModuleManager + 'module_listener_options' => array( + // This should be an array of paths in which modules reside. + // If a string key is provided, the listener will consider that a module + // namespace, the value of that key the specific path to that module's + // Module class. + 'module_paths' => array( + './module', + './vendor', + ), + + // An array of paths from which to glob configuration files after + // modules are loaded. These effectively override configuration + // provided by modules themselves. Paths may use GLOB_BRACE notation. + 'config_glob_paths' => array( + 'config/autoload/{,*.}{global,local}.php', + ), + + // Whether or not to enable a configuration cache. + // If enabled, the merged configuration will be cached and used in + // subsequent requests. + //'config_cache_enabled' => $booleanValue, + + // The key used to create the configuration cache file name. + //'config_cache_key' => $stringKey, + + // Whether or not to enable a module class map cache. + // If enabled, creates a module class map cache which will be used + // by in future requests, to reduce the autoloading process. + //'module_map_cache_enabled' => $booleanValue, + + // The key used to create the class map cache file name. + //'module_map_cache_key' => $stringKey, + + // The path in which to cache merged configuration. + //'cache_dir' => $stringPath, + + // Whether or not to enable modules dependency checking. + // Enabled by default, prevents usage of modules that depend on other modules + // that weren't loaded. + // 'check_dependencies' => true, + ), + + // Used to create an own service manager. May contain one or more child arrays. + //'service_listener_options' => array( + // array( + // 'service_manager' => $stringServiceManagerName, + // 'config_key' => $stringConfigKey, + // 'interface' => $stringOptionalInterface, + // 'method' => $stringRequiredMethodName, + // ), + // ) + + // Initial configuration with which to seed the ServiceManager. + // Should be compatible with Zend\ServiceManager\Config. + // 'service_manager' => array(), +); + diff --git a/config/autoload/.gitignore b/config/autoload/.gitignore new file mode 100644 index 00000000..1a83fda6 --- /dev/null +++ b/config/autoload/.gitignore @@ -0,0 +1,2 @@ +local.php +*.local.php diff --git a/config/autoload/README.md b/config/autoload/README.md new file mode 100644 index 00000000..4e504db0 --- /dev/null +++ b/config/autoload/README.md @@ -0,0 +1,8 @@ +About this directory: +===================== + +By default, this application is configured to load all configs in +`./config/autoload/{,*.}{global,local}.php`. Doing this provides a +location for a developer to drop in configuration override files provided by +modules, as well as cleanly provide individual, application-wide config files +for things like database connections, etc. diff --git a/config/autoload/global.php b/config/autoload/global.php new file mode 100644 index 00000000..c14b26eb --- /dev/null +++ b/config/autoload/global.php @@ -0,0 +1,28 @@ + array( + 'driver' => 'Pdo', + 'dsn' => 'pgsql:dbname=bareos;host=localhost', + 'driver_options'=> array( + //TODO + ), + ), + 'service_manager' => array( + 'factories' => array( + 'Zend\Db\Adapter\Adapter' + => 'Zend\Db\Adapter\AdapterServiceFactory', + ), + ), +); diff --git a/config/autoload/local.php.dist b/config/autoload/local.php.dist new file mode 100644 index 00000000..b1896a8c --- /dev/null +++ b/config/autoload/local.php.dist @@ -0,0 +1,18 @@ +add('Zend', $zf2Path); + } else { + include $zf2Path . '/Zend/Loader/AutoloaderFactory.php'; + Zend\Loader\AutoloaderFactory::factory(array( + 'Zend\Loader\StandardAutoloader' => array( + 'autoregister_zf' => true + ) + )); + } +} + +if (!class_exists('Zend\Loader\AutoloaderFactory')) { + throw new RuntimeException('Unable to load ZF2. Run `php composer.phar install` or define a ZF2_PATH environment variable.'); +} diff --git a/module/Application/Module.php b/module/Application/Module.php new file mode 100644 index 00000000..608b7074 --- /dev/null +++ b/module/Application/Module.php @@ -0,0 +1,42 @@ +getApplication()->getEventManager(); + $moduleRouteListener = new ModuleRouteListener(); + $moduleRouteListener->attach($eventManager); + } + + public function getConfig() + { + return include __DIR__ . '/config/module.config.php'; + } + + public function getAutoloaderConfig() + { + return array( + 'Zend\Loader\ClassMapAutoloader' => array( + 'application' => __DIR__ . '/autoload_classmap.php', + ), + 'Zend\Loader\StandardAutoloader' => array( + 'namespaces' => array( + __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__, + ), + ), + ); + } +} diff --git a/module/Application/autoload_classmap.php b/module/Application/autoload_classmap.php new file mode 100644 index 00000000..e1ecf1f1 --- /dev/null +++ b/module/Application/autoload_classmap.php @@ -0,0 +1,11 @@ + __DIR__ . '/Module.php', + 'Application\View\Helper\Date' => __DIR__ . '/src/Application/View/Helper/Date.php', + 'Application\View\Helper\JobStatus' => __DIR__ . '/src/Application/View/Helper/JobStatus.php', + 'Application\View\Helper\JobLevel' => __DIR__ . '/src/Application/View/Helper/JobLevel.php', + 'Application\View\Helper\JobType' => __DIR__ . '/src/Application/View/Helper/JobType.php', + 'Application\View\Helper\JobDuration' => __DIR__ . '/src/Application/View/Helper/JobDuration.php', + 'Application\Controller\IndexController' => __DIR__ . '/src/Application/Controller/IndexController.php', +); diff --git a/module/Application/config/module.config.php b/module/Application/config/module.config.php new file mode 100644 index 00000000..4ef23ea4 --- /dev/null +++ b/module/Application/config/module.config.php @@ -0,0 +1,178 @@ + array( + 'routes' => array( + 'home' => array( + 'type' => 'Zend\Mvc\Router\Http\Literal', + 'options' => array( + 'route' => '/', + 'defaults' => array( + 'controller' => 'Application\Controller\Index', + 'action' => 'index', + ), + ), + ), + // The following is a route to simplify getting started creating + // new controllers and actions without needing to create a new + // module. Simply drop new controllers in, and you can access them + // using the path /application/:controller/:action + 'application' => array( + 'type' => 'Literal', + 'options' => array( + 'route' => '/application', + 'defaults' => array( + '__NAMESPACE__' => 'Application\Controller', + 'controller' => 'Index', + 'action' => 'index', + ), + ), + 'may_terminate' => true, + 'child_routes' => array( + 'default' => array( + 'type' => 'Segment', + 'options' => array( + 'route' => '/[:controller[/:action]]', + 'constraints' => array( + 'controller' => '[a-zA-Z][a-zA-Z0-9_-]*', + 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', + ), + 'defaults' => array( + ), + ), + ), + ), + ), + ), + ), + 'service_manager' => array( + 'abstract_factories' => array( + 'Zend\Cache\Service\StorageCacheAbstractServiceFactory', + 'Zend\Log\LoggerAbstractServiceFactory', + ), + 'factories' => array( + //'translator' => 'Zend\I18n\Translator\TranslatorServiceFactory', + 'navigation' => 'Zend\Navigation\Service\DefaultNavigationFactory', + ), + 'aliases' => array( + 'translator' => 'MvcTranslator', + ), + ), + 'translator' => array( + 'locale' => 'en_US', + 'translation_file_patterns' => array( + array( + 'type' => 'gettext', + 'base_dir' => __DIR__ . '/../language', + 'pattern' => '%s.mo', + ), + ), + ), + 'controllers' => array( + 'invokables' => array( + 'Application\Controller\Index' => 'Application\Controller\IndexController' + ), + ), + 'view_helpers' => array( + 'invokables' => array ( + 'printDate' => 'Application\View\Helper\Date', + 'printJobStatus' => 'Application\View\Helper\JobStatus', + 'printJobLevel' => 'Application\View\Helper\JobLevel', + 'printJobType' => 'Application\View\Helper\JobType', + 'printJobDuration' => 'Application\View\Helper\JobDuration', + 'printBytes' => 'Application\View\Helper\Bytes', + 'printRetention' => 'Application\View\Helper\Retention', + ), + ), + 'view_manager' => array( + 'display_not_found_reason' => true, + 'display_exceptions' => true, + 'doctype' => 'HTML5', + 'not_found_template' => 'error/404', + 'exception_template' => 'error/index', + 'template_map' => array( + 'layout/layout' => __DIR__ . '/../view/layout/layout.phtml', + 'application/index/index' => __DIR__ . '/../view/application/index/index.phtml', + 'error/404' => __DIR__ . '/../view/error/404.phtml', + 'error/index' => __DIR__ . '/../view/error/index.phtml', + ), + 'template_path_stack' => array( + __DIR__ . '/../view', + ), + ), + // Placeholder for console routes + 'console' => array( + 'router' => array( + 'routes' => array( + ), + ), + ), + 'navigation' => array( + 'default' => array( + /* + array( + 'label' => 'Home', + 'route' => 'home', + ), + */ + array( + 'label' => 'Dashboard', + 'route' => 'dashboard', + ), + array( + 'label' => 'Director', + 'route' => 'director', + ), + array( + 'label' => 'Pool', + 'route' => 'pool', + ), + array( + 'label' => 'Volume', + 'route' => 'volume', + ), + array( + 'label' => 'Storage', + 'route' => 'storage', + ), + array( + 'label' => 'Client', + 'route' => 'client', + ), + array( + 'label' => 'Job', + 'route' => 'job', + ), + array( + 'label' => 'File', + 'route' => 'file', + ), + array( + 'label' => 'Log', + 'route' => 'log', + ), + /* + array( + 'label' => 'Restore', + 'route' => 'restore', + ), + array( + 'label' => 'Administration', + 'route' => 'admin', + ), + array( + 'label' => 'User', + 'route' => 'user', + ), + */ + ), + ), +); + diff --git a/module/Application/language/ar_JO.mo b/module/Application/language/ar_JO.mo new file mode 100644 index 00000000..765226cc Binary files /dev/null and b/module/Application/language/ar_JO.mo differ diff --git a/module/Application/language/ar_JO.po b/module/Application/language/ar_JO.po new file mode 100644 index 00000000..b7de6b1c --- /dev/null +++ b/module/Application/language/ar_JO.po @@ -0,0 +1,153 @@ +msgid "" +msgstr "" +"Project-Id-Version: ZendSkeletonApplication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-04-16 20:08-1900\n" +"PO-Revision-Date: 2013-04-16 20:08-1900\n" +"Last-Translator: Anas Al-Far \n" +"Language-Team: ZF Contibutors \n" +"Language: Arabic\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 16bit\n" +"X-Poedit-KeywordsList: translate\n" +"X-Poedit-Language: Arabic\n" +"X-Poedit-Country: JORDAN\n" +"X-Poedit-Basepath: .\n" +"X-Poedit-SearchPath-0: ..\n" + +#: ../view/layout/layout.phtml:6 +#: ../view/layout/layout.phtml:33 +msgid "Skeleton Application" +msgstr "تطبيق هيكلي" + +#: ../view/layout/layout.phtml:36 +msgid "Home" +msgstr "الرئيسية" + +#: ../view/layout/layout.phtml:50 +msgid "All rights reserved." +msgstr "جميع الحقوق محفوظة لـ " + +#: ../view/application/index/index.phtml:2 +#, php-format +msgid "Welcome to %sZend Framework 2%s" +msgstr "أهلا بك في %sZend Framework 2%s" + +#: ../view/application/index/index.phtml:3 +#, php-format +msgid "Congratulations! You have successfully installed the %sZF2 Skeleton Application%s. You are currently running Zend Framework version %s. This skeleton can serve as a simple starting point for you to begin building your application on ZF2." +msgstr "تهانينا! لقد قمت بتثبيت %s التطبيق الهيكلي لـ ZF2 %s بنجاح. أنت تقوم حاليا بتشغيل النسخة %s من Zend Framework. تستطيع أن تستعمل هذا التطبيق الهيكلي كنقطة إنطلاق سهلة لبناء التطبيق الخاص بك باستخدام ZF2. " + +#: ../view/application/index/index.phtml:4 +msgid "Fork Zend Framework 2 on GitHub" +msgstr "قم بتحميل فرع جديد من Zend Framewok 2 على منصة GitHub" + +#: ../view/application/index/index.phtml:10 +msgid "Follow Development" +msgstr "تابع عملية التطوير" + +#: ../view/application/index/index.phtml:11 +#, php-format +msgid "Zend Framework 2 is under active development. If you are interested in following the development of ZF2, there is a special ZF2 portal on the official Zend Framework website which provides links to the ZF2 %swiki%s, %sdev blog%s, %sissue tracker%s, and much more. This is a great resource for staying up to date with the latest developments!" +msgstr "إن عملية تطوير منظومة Zend Framework 2 نشطة جدا. إذا كنت مهتما بمتابعة عملية التطوير لمنظومة ZF2، فهناك بوابة خاصة بـ ZF2 على الموقع الرسمي لـ Zend Framework والذي يحتوي على وصلات خاصة لـ %sويكيبيديا%s، %sمدونة المطورين%s، %sمتابعة المشاكل%s، وغيرها كثير. إنه مصدر مميز يبقيك على اطلاع بآخر مستجدات عملية التطوير." + +#: ../view/application/index/index.phtml:12 +msgid "ZF2 Development Portal" +msgstr "بوابة تطوير ZF2" + +#: ../view/application/index/index.phtml:16 +msgid "Discover Modules" +msgstr "إكتشف الوحدات البرمجية" + +#: ../view/application/index/index.phtml:17 +#, php-format +msgid "The community is working on developing a community site to serve as a repository and gallery for ZF2 modules. The project is available %son GitHub%s. The site is currently live and currently contains a list of some of the modules already available for ZF2." +msgstr "إن مجتمع المبرمجين المحترفين يعمل الآن على تطوير موقع خاص بهم ليخدم كمصدر لوحدات ZF2 البرمجية. المشروع متوفر على منصة %sGitHub%s. إن الموقع متوفر الآن ويحتوي على بعض الوحدات البرمجية الجاهزة للاستخدام في ZF2." + +#: ../view/application/index/index.phtmlمl:18 +msgid "Explore ZF2 Modules" +msgstr "استعرض الوحدات البرمجية لـ ZF2" + +#: ../view/application/index/index.phtml:22 +msgid "Help & Support" +msgstr "المساعدة والدعم" + +#: ../view/application/index/index.phtml:23 +#, php-format +msgid "If you need any help or support while developing with ZF2, you may reach us via IRC: %s#zftalk on Freenode%s. We'd love to hear any questions or feedback you may have regarding the beta releases. Alternatively, you may subscribe and post questions to the %smailing lists%s." +msgstr "إذا كنت تحتاج إلى المساعدة أو الدعم أثناء استخدامك ZF2، يمكنك الاتصال بنا من خلال شبكة IRC: %s#zftalk على سيرفر Freenode%s. سوف نكون سعيدين جدا بالاستماع إلى أي سؤال أو ملاحظة لديك حول النسخ التجريبية. ومن جهة أخرى، تستطيع أن تشترك وترسل أسئلتك إلى %sالقائمة البريدية%s. " + +#: ../view/application/index/index.phtml:24 +msgid "Ping us on IRC" +msgstr "اتصل بنا على IRC" + +#: ../view/error/index.phtml:1 +msgid "An error occurred" +msgstr "حدث خطأ أثناء تنفيذ العملية" + +#: ../view/error/index.phtml:8 +msgid "Additional information" +msgstr "معلومات إضافية" + +#: ../view/error/index.phtml:11 +#: ../view/error/index.phtml:35 +msgid "File" +msgstr "ملف" + +#: ../view/error/index.phtml:15 +#: ../view/error/index.phtml:39 +msgid "Message" +msgstr "رسالة" + +#: ../view/error/index.phtml:19 +#: ../view/error/index.phtml:43 +#: ../view/error/404.phtml:55 +msgid "Stack trace" +msgstr "تتبع الحدث" + +#: ../view/error/index.phtml:29 +msgid "Previous exceptions" +msgstr "الاستثناءات السابقة" + +#: ../view/error/index.phtml:58 +msgid "No Exception available" +msgstr "لم يحدث استثناءات" + +#: ../view/error/404.phtml:1 +msgid "A 404 error occurred" +msgstr "حدث خطأ 404" + +#: ../view/error/404.phtml:10 +msgid "The requested controller was unable to dispatch the request." +msgstr "لم تستطع وحدة التحكم معالجة الطلب" + +#: ../view/error/404.phtml:13 +msgid "The requested controller could not be mapped to an existing controller class." +msgstr "لم يستطع ZF2 من مطابقة وحدة التحكم المطلوبة بالمصنفات الموجودة" + +#: ../view/error/404.phtml:16 +msgid "The requested controller was not dispatchable." +msgstr "لم يتم مطابقة وحدة التحكم المطلوبة" + +#: ../view/error/404.phtml:19 +msgid "The requested URL could not be matched by routing." +msgstr "" + +#: ../view/error/404.phtml:22 +msgid "We cannot determine at this time why a 404 was generated." +msgstr "" + +#: ../view/error/404.phtml:34 +msgid "Controller" +msgstr "" + +#: ../view/error/404.phtml:41 +#, php-format +msgid "resolves to %s" +msgstr "" + +#: ../view/error/404.phtml:51 +msgid "Exception" +msgstr "" + diff --git a/module/Application/language/ar_SY.mo b/module/Application/language/ar_SY.mo new file mode 100644 index 00000000..0f7dd7cd Binary files /dev/null and b/module/Application/language/ar_SY.mo differ diff --git a/module/Application/language/ar_SY.po b/module/Application/language/ar_SY.po new file mode 100644 index 00000000..49fd9fef --- /dev/null +++ b/module/Application/language/ar_SY.po @@ -0,0 +1,184 @@ +# +# tawfek daghistani , 2012. +# Tawfek Daghistani , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: ZendSkeletonApplication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-07-05 22:17-0700\n" +"PO-Revision-Date: 2012-07-07 13:58+0300\n" +"Last-Translator: Tawfek Daghistani \n" +"Language-Team: Arabic <>\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-KeywordsList: translate\n" +"X-Poedit-Language: English\n" +"X-Poedit-Country: UNITED STATES\n" +"X-Poedit-Basepath: .\n" +"X-Poedit-SearchPath-0: ..\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: ../view/layout/layout.phtml:6 ../view/layout/layout.phtml:33 +msgid "Skeleton Application" +msgstr "Skeleton Application" + +#: ../view/layout/layout.phtml:36 +msgid "Home" +msgstr "الصفحة الرئيسية" + +#: ../view/layout/layout.phtml:50 +msgid "All rights reserved." +msgstr "جميع الحقوق محفوظة" + +#: ../view/application/index/index.phtml:2 +#, php-format +msgid "Welcome to %sZend Framework 2%s" +msgstr "أهلا بك في %sZend Framework 2%s" + +#: ../view/application/index/index.phtml:3 +#, php-format +msgid "" +"Congratulations! You have successfully installed the %sZF2 Skeleton " +"Application%s. You are currently running Zend Framework version %s. This " +"skeleton can serve as a simple starting point for you to begin building your " +"application on ZF2." +msgstr "" +"تهانينا! لقد قمت بتنصيب %sZF2 Skeleton Application%s . أنت الآن تستخدم مكتبة " +"زيند الإصدار %s . هذا التطبيق يمكن أن يكون لك نقطة بداية سهلة في بناء " +"برامجك الخاصة على مكتبة زيند " + +#: ../view/application/index/index.phtml:4 +msgid "Fork Zend Framework 2 on GitHub" +msgstr "اشتق مكتبة زيند على GitHub " + +#: ../view/application/index/index.phtml:10 +msgid "Follow Development" +msgstr "تابع أخر التطورات" + +#: ../view/application/index/index.phtml:11 +#, php-format +msgid "" +"Zend Framework 2 is under active development. If you are interested in " +"following the development of ZF2, there is a special ZF2 portal on the " +"official Zend Framework website which provides links to the ZF2 %swiki%s, " +"%sdev blog%s, %sissue tracker%s, and much more. This is a great resource for " +"staying up to date with the latest developments!" +msgstr "" +"مكتبة زيند تخضع للتطوير المستمر , إذا كان لديك الرغبة في متابعة التطورات , " +"بإمكانك تصفح الموقع الرسمي للمكتبة الذي يحتوي على روابط إلى %swiki%s, %sdev " +"blog%s, %sissue tracker%s, ,و المزيد . هذه مصادر رائعة لمتابعة أخر التطورات" + +#: ../view/application/index/index.phtml:12 +msgid "ZF2 Development Portal" +msgstr "بوابة التطوير الخاصة ب زيند" + +#: ../view/application/index/index.phtml:16 +msgid "Discover Modules" +msgstr "تعرف على الإضافات" + +#: ../view/application/index/index.phtml:17 +#, php-format +msgid "" +"The community is working on developing a community site to serve as a " +"repository and gallery for ZF2 modules. The project is available %son GitHub" +"%s. The site is currently live and currently contains a list of some of the " +"modules already available for ZF2." +msgstr "" +"المجتمع البرمجي يعمل على تطوير موقع خاص به ليكون كمصدر و معرض لإضافات ZF2 . " +"هذا المشروع موجود على %son GitHub%s . هذا الموقع يخضع للتطوير المستمر و " +"يحتوي على قائمة من الإضافات الخاصة ب ZF2 " + +#: ../view/application/index/index.phtml:18 +msgid "Explore ZF2 Modules" +msgstr "إكتشف إضافات ZF2 " + +#: ../view/application/index/index.phtml:22 +msgid "Help & Support" +msgstr "الدعم و المساعدة " + +#: ../view/application/index/index.phtml:23 +#, php-format +msgid "" +"If you need any help or support while developing with ZF2, you may reach us " +"via IRC: %s#zftalk on Freenode%s. We'd love to hear any questions or " +"feedback you may have regarding the beta releases. Alternatively, you may " +"subscribe and post questions to the %smailing lists%s." +msgstr "" +"إذا كنت تريد الحصول على دعم فني أو مساعدة في تطوير ZF2 , بإمكانك التواصل عبر " +"IRC: %s#zftalk on Freenode%s. نحن نريد أن نسمع منك المزيد من الأسئلة , " +"الأراء و الملاحظات على النسخة التجربية من المكتبة , أو بإمكانك الإشتراك و " +"التفاعل أو وضع الأسئلة في القائمة البريدية %smailing lists%s." + +#: ../view/application/index/index.phtml:24 +msgid "Ping us on IRC" +msgstr "تواصل معنا في IRC" + +#: ../view/error/index.phtml:1 +msgid "An error occurred" +msgstr "حصل خطأ ما " + +#: ../view/error/index.phtml:8 +msgid "Additional information" +msgstr "مزيد من المعلومات" + +#: ../view/error/index.phtml:11 ../view/error/index.phtml:35 +msgid "File" +msgstr "ملف" + +#: ../view/error/index.phtml:15 ../view/error/index.phtml:39 +msgid "Message" +msgstr "الرسالة" + +#: ../view/error/index.phtml:19 ../view/error/index.phtml:43 +#: ../view/error/404.phtml:55 +msgid "Stack trace" +msgstr "تفاصيل الخطأ" + +#: ../view/error/index.phtml:29 +msgid "Previous exceptions" +msgstr "الأخطاء السابقة" + +#: ../view/error/index.phtml:58 +msgid "No Exception available" +msgstr "لايوجد خطأ" + +#: ../view/error/404.phtml:1 +msgid "A 404 error occurred" +msgstr "حصل خطأ 404 , الصفحة غير موجودة" + +#: ../view/error/404.phtml:10 +msgid "The requested controller was unable to dispatch the request." +msgstr "المتحكم المطلوب غير قادر على إجابة الطلب" + +#: ../view/error/404.phtml:13 +msgid "" +"The requested controller could not be mapped to an existing controller class." +msgstr "لا يمكن ربط المتحكم المطلوب بأي من المتحكمات الموجودة حالياًَ" + +#: ../view/error/404.phtml:16 +msgid "The requested controller was not dispatchable." +msgstr "المتحكم المطلوب غير قادر على الإجابة " + +#: ../view/error/404.phtml:19 +msgid "The requested URL could not be matched by routing." +msgstr "الرابط المطلوب غير معرف لدى الموجه" + +#: ../view/error/404.phtml:22 +msgid "We cannot determine at this time why a 404 was generated." +msgstr "لا يمكنني التحديد لماذا حصل الخطأ 404 في هذا الوقت " + +#: ../view/error/404.phtml:34 +msgid "Controller" +msgstr "المتحكم " + +#: ../view/error/404.phtml:41 +#, php-format +msgid "resolves to %s" +msgstr "يوصل إلى %s" + +#: ../view/error/404.phtml:51 +msgid "Exception" +msgstr "خطأ برمجي" diff --git a/module/Application/language/cs_CZ.mo b/module/Application/language/cs_CZ.mo new file mode 100644 index 00000000..552e3efe Binary files /dev/null and b/module/Application/language/cs_CZ.mo differ diff --git a/module/Application/language/cs_CZ.po b/module/Application/language/cs_CZ.po new file mode 100644 index 00000000..48026426 --- /dev/null +++ b/module/Application/language/cs_CZ.po @@ -0,0 +1,153 @@ +msgid "" +msgstr "" +"Project-Id-Version: ZendSkeletonApplication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-07-05 22:17-0700\n" +"PO-Revision-Date: 2012-07-06 13:05+0100\n" +"Last-Translator: David Lukas \n" +"Language-Team: ZF Contibutors \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-KeywordsList: translate\n" +"X-Poedit-Language: Czech\n" +"X-Poedit-Country: CZECH REPUBLIC\n" +"X-Poedit-Basepath: .\n" +"X-Poedit-SearchPath-0: ..\n" + +#: ../view/layout/layout.phtml:6 +#: ../view/layout/layout.phtml:33 +msgid "Skeleton Application" +msgstr "Skeleton aplikace" + +#: ../view/layout/layout.phtml:36 +msgid "Home" +msgstr "Úvod" + +#: ../view/layout/layout.phtml:50 +msgid "All rights reserved." +msgstr "Všechna práva vyhrazena." + +#: ../view/application/index/index.phtml:2 +#, php-format +msgid "Welcome to %sZend Framework 2%s" +msgstr "Vítejte v %sZend Framework 2%s" + +#: ../view/application/index/index.phtml:3 +#, php-format +msgid "Congratulations! You have successfully installed the %sZF2 Skeleton Application%s. You are currently running Zend Framework version %s. This skeleton can serve as a simple starting point for you to begin building your application on ZF2." +msgstr "Blahopřejeme! Úspěšně jste nainstalovali %sZF2 Skeleton Application%s. Právě používáte Zend Framework verze %s. Tato kostra aplikace vám poslouží jako jednoduchý výchozí bod, ze kterého můžete vyjít při tvorbě vlastní aplikace nad ZF2." + +#: ../view/application/index/index.phtml:4 +msgid "Fork Zend Framework 2 on GitHub" +msgstr "Fork Zend Framework 2 na GitHub" + +#: ../view/application/index/index.phtml:10 +msgid "Follow Development" +msgstr "Sledujte vývoj" + +#: ../view/application/index/index.phtml:11 +#, php-format +msgid "Zend Framework 2 is under active development. If you are interested in following the development of ZF2, there is a special ZF2 portal on the official Zend Framework website which provides links to the ZF2 %swiki%s, %sdev blog%s, %sissue tracker%s, and much more. This is a great resource for staying up to date with the latest developments!" +msgstr "Zend Framework 2 je aktivně vyvíjen. Chcete-li sledovat vývoj ZF2, máte na oficiálních webových stránkách Zend Framework k dispozici zvláštní portál ZF2, na kterém najdete odkazy na ZF2 %swiki%s, %svývojářský blog%s, %sissue tracker%s a mnoho dalšího. Tento portál je skvělý zdroj aktuálních informací o nejnovějším vývoji!" + +#: ../view/application/index/index.phtml:12 +msgid "ZF2 Development Portal" +msgstr "Vývojářský portál ZF2" + +#: ../view/application/index/index.phtml:16 +msgid "Discover Modules" +msgstr "Objevte Moduly" + +#: ../view/application/index/index.phtml:17 +#, php-format +msgid "The community is working on developing a community site to serve as a repository and gallery for ZF2 modules. The project is available %son GitHub%s. The site is currently live and currently contains a list of some of the modules already available for ZF2." +msgstr "Komunita pracuje na vývoji komunitního webu, který bude sloužit jako archiv a galerie modulů ZF2. Tento projekt je dostupný %sna GitHub%s. Web je aktuálně v provozu a obsahuje seznam některých již dostupných modulů ZF2." + +#: ../view/application/index/index.phtml:18 +msgid "Explore ZF2 Modules" +msgstr "Prozkoumejte Moduly ZF2" + +#: ../view/application/index/index.phtml:22 +msgid "Help & Support" +msgstr "Pomoc & Podpora" + +#: ../view/application/index/index.phtml:23 +#, php-format +msgid "If you need any help or support while developing with ZF2, you may reach us via IRC: %s#zftalk on Freenode%s. We'd love to hear any questions or feedback you may have regarding the beta releases. Alternatively, you may subscribe and post questions to the %smailing lists%s." +msgstr "Budete-li při vývoji se ZF2 potřebovat jakoukoli pomoc nebo podporu, můžete nás zastihnout přes IRC: %s#zftalk na Freenode%s. Budeme rádi za jakékoli vaše otázky nebo připomínky týkající se beta verzí. Případně se také můžete přihlásit k odběru a posílat otázky na naše %se-mailové distribuční seznamy%s." + +#: ../view/application/index/index.phtml:24 +msgid "Ping us on IRC" +msgstr "Ozvěte se nám na IRC" + +#: ../view/error/index.phtml:1 +msgid "An error occurred" +msgstr "Vyskytla se chyba" + +#: ../view/error/index.phtml:8 +msgid "Additional information" +msgstr "Další informace" + +#: ../view/error/index.phtml:11 +#: ../view/error/index.phtml:35 +msgid "File" +msgstr "Soubor" + +#: ../view/error/index.phtml:15 +#: ../view/error/index.phtml:39 +msgid "Message" +msgstr "Zpráva" + +#: ../view/error/index.phtml:19 +#: ../view/error/index.phtml:43 +#: ../view/error/404.phtml:55 +msgid "Stack trace" +msgstr "Trasování zásobníku (Stack trace)" + +#: ../view/error/index.phtml:29 +msgid "Previous exceptions" +msgstr "Předchozí výjimky" + +#: ../view/error/index.phtml:58 +msgid "No Exception available" +msgstr "Žádná výjimka není k dispozici" + +#: ../view/error/404.phtml:1 +msgid "A 404 error occurred" +msgstr "Vyskytla se chyba 404" + +#: ../view/error/404.phtml:10 +msgid "The requested controller was unable to dispatch the request." +msgstr "Požadovaný controller nemohl vyřídit požadavek." + +#: ../view/error/404.phtml:13 +msgid "The requested controller could not be mapped to an existing controller class." +msgstr "Požadovaný controller se nepodařilo namapovat na žádnou existující třídu controlleru." + +#: ../view/error/404.phtml:16 +msgid "The requested controller was not dispatchable." +msgstr "Požadovaný controller nepodporuje vyřízení (controller not dispatchable)." + +#: ../view/error/404.phtml:19 +msgid "The requested URL could not be matched by routing." +msgstr "S požadovaným URL nebyla při směrování (routing) nalezena shoda." + +#: ../view/error/404.phtml:22 +msgid "We cannot determine at this time why a 404 was generated." +msgstr "Momentálně nedokážeme určit, proč byla vygenerována chyba 404." + +#: ../view/error/404.phtml:34 +msgid "Controller" +msgstr "Controller" + +#: ../view/error/404.phtml:41 +#, php-format +msgid "resolves to %s" +msgstr "je mapován na %s" + +#: ../view/error/404.phtml:51 +msgid "Exception" +msgstr "Výjimka" + diff --git a/module/Application/language/de_DE.mo b/module/Application/language/de_DE.mo new file mode 100644 index 00000000..c1dd222a Binary files /dev/null and b/module/Application/language/de_DE.mo differ diff --git a/module/Application/language/de_DE.po b/module/Application/language/de_DE.po new file mode 100644 index 00000000..9b804b53 --- /dev/null +++ b/module/Application/language/de_DE.po @@ -0,0 +1,153 @@ +msgid "" +msgstr "" +"Project-Id-Version: ZendSkeletonApplication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-07-05 23:45-0700\n" +"PO-Revision-Date: 2012-07-06 08:18-0700\n" +"Last-Translator: Evan Coury \n" +"Language-Team: ZF Contributors \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-KeywordsList: translate\n" +"X-Poedit-Basepath: .\n" +"X-Poedit-Language: German\n" +"X-Poedit-Country: GERMANY\n" +"X-Poedit-SearchPath-0: ..\n" + +#: ../view/layout/layout.phtml:6 +#: ../view/layout/layout.phtml:33 +msgid "Skeleton Application" +msgstr "" + +#: ../view/layout/layout.phtml:36 +msgid "Home" +msgstr "Startseite" + +#: ../view/layout/layout.phtml:50 +msgid "All rights reserved." +msgstr "Alle Rechte vorbehalten." + +#: ../view/application/index/index.phtml:2 +#, php-format +msgid "Welcome to %sZend Framework 2%s" +msgstr "Willkommen zu dem %sZend Framework 2%s" + +#: ../view/application/index/index.phtml:3 +#, php-format +msgid "Congratulations! You have successfully installed the %sZF2 Skeleton Application%s. You are currently running Zend Framework version %s. This skeleton can serve as a simple starting point for you to begin building your application on ZF2." +msgstr "Herzlichen Glückwunsch! Sie haben die %sZF2 Skeleton Application%s erfolgreich installiert und benutzen gerade die Version %s des Zend Frameworks. Dieses Gerüst kann Ihnen als Einstiegspunkt, für Ihre weitere Entwicklung, basierend auf dem Zend Framework 2, dienen." + +#: ../view/application/index/index.phtml:4 +msgid "Fork Zend Framework 2 on GitHub" +msgstr "Fork Zend Framework 2 auf GitHub" + +#: ../view/application/index/index.phtml:10 +msgid "Follow Development" +msgstr "Folge der Entwicklung" + +#: ../view/application/index/index.phtml:11 +#, php-format +msgid "Zend Framework 2 is under active development. If you are interested in following the development of ZF2, there is a special ZF2 portal on the official Zend Framework website which provides links to the ZF2 %swiki%s, %sdev blog%s, %sissue tracker%s, and much more. This is a great resource for staying up to date with the latest developments!" +msgstr "Das Zend Framework 2 wird z.Z. aktiv weiterentwickelt. Sollten Sie daran interessiert sein, die Entwicklung von ZF2 zu verfolgen, so bietet Ihnen die offizielle Webseite einen eigens für das Zend Framework 2 eingerichteten Bereich, auf der Sie Verlinkungen zum ZF2 %sWiki%s, %sEntwickler Blog%s, einem %sFehlerverfolgungssystem%s und noch vielem mehr finden. Dieser Bereich ist eine hervorragende Quelle um stets aktuell zu bleiben." + +#: ../view/application/index/index.phtml:12 +msgid "ZF2 Development Portal" +msgstr "ZF2 Entwickler Portal" + +#: ../view/application/index/index.phtml:16 +msgid "Discover Modules" +msgstr "Entdecken Sie Module" + +#: ../view/application/index/index.phtml:17 +#, php-format +msgid "The community is working on developing a community site to serve as a repository and gallery for ZF2 modules. The project is available %son GitHub%s. The site is currently live and currently contains a list of some of the modules already available for ZF2." +msgstr "Die Community arbeitet momentan an einer Community Seite, welche als Galerie für ZF2 Module dient. Dieses Projekt ist %sauf GitHub%s verfügbar. Die Webseite ist bereits Online und enthält eine Liste mit schon veröffentlichten Modulen für das Zend Framework 2." + +#: ../view/application/index/index.phtml:18 +msgid "Explore ZF2 Modules" +msgstr "Erkunden Sie ZF2 Module" + +#: ../view/application/index/index.phtml:22 +msgid "Help & Support" +msgstr "Hilfe & Support" + +#: ../view/application/index/index.phtml:23 +#, php-format +msgid "If you need any help or support while developing with ZF2, you may reach us via IRC: %s#zftalk on Freenode%s. We'd love to hear any questions or feedback you may have regarding the beta releases. Alternatively, you may subscribe and post questions to the %smailing lists%s." +msgstr "Sollten Sie Hilfe jeglicher Art bei der Entwicklung mit dem Zend Framework 2 benötigen, kontaktieren Sie uns doch einfach über das IRC: %s#zftalk on Freenode%s. Wir freuen uns darauf, Ihnen bei Ihren Fragen zu helfen oder aber auch Ihre Meinung bezüglich der Beta Versionen zu hören. Alternativ können Sie auch die %smailing lists%s abonnieren und Ihre Fragen dort stellen." + +#: ../view/application/index/index.phtml:24 +msgid "Ping us on IRC" +msgstr "Schreiben Sie uns im IRC an" + +#: ../view/error/index.phtml:1 +msgid "An error occurred" +msgstr "Ein Fehler ist aufgetreten" + +#: ../view/error/index.phtml:8 +msgid "Additional information" +msgstr "Zusätzliche Information" + +#: ../view/error/index.phtml:11 +#: ../view/error/index.phtml:35 +msgid "File" +msgstr "Datei" + +#: ../view/error/index.phtml:15 +#: ../view/error/index.phtml:39 +msgid "Message" +msgstr "Meldung" + +#: ../view/error/index.phtml:19 +#: ../view/error/index.phtml:43 +#: ../view/error/404.phtml:55 +msgid "Stack trace" +msgstr "Stapelüberwachung" + +#: ../view/error/index.phtml:29 +msgid "Previous exceptions" +msgstr "Vorherige Ausnahme" + +#: ../view/error/index.phtml:58 +msgid "No Exception available" +msgstr "Es ist keine Ausnahme verfügbar" + +#: ../view/error/404.phtml:1 +msgid "A 404 error occurred" +msgstr "Es trat ein 404 Fehler auf" + +#: ../view/error/404.phtml:10 +msgid "The requested controller was unable to dispatch the request." +msgstr "Der angeforderte Controller war nicht in der Lage die Anfrage zu verarbeiten." + +#: ../view/error/404.phtml:13 +msgid "The requested controller could not be mapped to an existing controller class." +msgstr "Der angeforderte Controller konnte keiner Controller Klasse zugeordnet werden." + +#: ../view/error/404.phtml:16 +msgid "The requested controller was not dispatchable." +msgstr "Der angeforderte Controller ist nicht aufrufbar." + +#: ../view/error/404.phtml:19 +msgid "The requested URL could not be matched by routing." +msgstr "Für die angeforderte URL konnte keine Übereinstimmung gefunden werden." + +#: ../view/error/404.phtml:22 +msgid "We cannot determine at this time why a 404 was generated." +msgstr "Zu diesem Zeitpunkt ist es uns nicht möglich zu bestimmen, warum ein 404 Fehler aufgetreten ist." + +#: ../view/error/404.phtml:34 +msgid "Controller" +msgstr "Controller" + +#: ../view/error/404.phtml:41 +#, php-format +msgid "resolves to %s" +msgstr "wird aufgelöst in %s" + +#: ../view/error/404.phtml:51 +msgid "Exception" +msgstr "Ausnahme" + diff --git a/module/Application/language/en_US.mo b/module/Application/language/en_US.mo new file mode 100644 index 00000000..972a28ab Binary files /dev/null and b/module/Application/language/en_US.mo differ diff --git a/module/Application/language/en_US.po b/module/Application/language/en_US.po new file mode 100644 index 00000000..b5e5f81b --- /dev/null +++ b/module/Application/language/en_US.po @@ -0,0 +1,153 @@ +msgid "" +msgstr "" +"Project-Id-Version: ZendSkeletonApplication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-07-05 22:17-0700\n" +"PO-Revision-Date: 2012-07-05 22:17-0700\n" +"Last-Translator: Evan Coury \n" +"Language-Team: ZF Contibutors \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-KeywordsList: translate\n" +"X-Poedit-Language: English\n" +"X-Poedit-Country: UNITED STATES\n" +"X-Poedit-Basepath: .\n" +"X-Poedit-SearchPath-0: ..\n" + +#: ../view/layout/layout.phtml:6 +#: ../view/layout/layout.phtml:33 +msgid "Skeleton Application" +msgstr "" + +#: ../view/layout/layout.phtml:36 +msgid "Home" +msgstr "" + +#: ../view/layout/layout.phtml:50 +msgid "All rights reserved." +msgstr "" + +#: ../view/application/index/index.phtml:2 +#, php-format +msgid "Welcome to %sZend Framework 2%s" +msgstr "" + +#: ../view/application/index/index.phtml:3 +#, php-format +msgid "Congratulations! You have successfully installed the %sZF2 Skeleton Application%s. You are currently running Zend Framework version %s. This skeleton can serve as a simple starting point for you to begin building your application on ZF2." +msgstr "" + +#: ../view/application/index/index.phtml:4 +msgid "Fork Zend Framework 2 on GitHub" +msgstr "" + +#: ../view/application/index/index.phtml:10 +msgid "Follow Development" +msgstr "" + +#: ../view/application/index/index.phtml:11 +#, php-format +msgid "Zend Framework 2 is under active development. If you are interested in following the development of ZF2, there is a special ZF2 portal on the official Zend Framework website which provides links to the ZF2 %swiki%s, %sdev blog%s, %sissue tracker%s, and much more. This is a great resource for staying up to date with the latest developments!" +msgstr "" + +#: ../view/application/index/index.phtml:12 +msgid "ZF2 Development Portal" +msgstr "" + +#: ../view/application/index/index.phtml:16 +msgid "Discover Modules" +msgstr "" + +#: ../view/application/index/index.phtml:17 +#, php-format +msgid "The community is working on developing a community site to serve as a repository and gallery for ZF2 modules. The project is available %son GitHub%s. The site is currently live and currently contains a list of some of the modules already available for ZF2." +msgstr "" + +#: ../view/application/index/index.phtml:18 +msgid "Explore ZF2 Modules" +msgstr "" + +#: ../view/application/index/index.phtml:22 +msgid "Help & Support" +msgstr "" + +#: ../view/application/index/index.phtml:23 +#, php-format +msgid "If you need any help or support while developing with ZF2, you may reach us via IRC: %s#zftalk on Freenode%s. We'd love to hear any questions or feedback you may have regarding the beta releases. Alternatively, you may subscribe and post questions to the %smailing lists%s." +msgstr "" + +#: ../view/application/index/index.phtml:24 +msgid "Ping us on IRC" +msgstr "" + +#: ../view/error/index.phtml:1 +msgid "An error occurred" +msgstr "" + +#: ../view/error/index.phtml:8 +msgid "Additional information" +msgstr "" + +#: ../view/error/index.phtml:11 +#: ../view/error/index.phtml:35 +msgid "File" +msgstr "" + +#: ../view/error/index.phtml:15 +#: ../view/error/index.phtml:39 +msgid "Message" +msgstr "" + +#: ../view/error/index.phtml:19 +#: ../view/error/index.phtml:43 +#: ../view/error/404.phtml:55 +msgid "Stack trace" +msgstr "" + +#: ../view/error/index.phtml:29 +msgid "Previous exceptions" +msgstr "" + +#: ../view/error/index.phtml:58 +msgid "No Exception available" +msgstr "" + +#: ../view/error/404.phtml:1 +msgid "A 404 error occurred" +msgstr "" + +#: ../view/error/404.phtml:10 +msgid "The requested controller was unable to dispatch the request." +msgstr "" + +#: ../view/error/404.phtml:13 +msgid "The requested controller could not be mapped to an existing controller class." +msgstr "" + +#: ../view/error/404.phtml:16 +msgid "The requested controller was not dispatchable." +msgstr "" + +#: ../view/error/404.phtml:19 +msgid "The requested URL could not be matched by routing." +msgstr "" + +#: ../view/error/404.phtml:22 +msgid "We cannot determine at this time why a 404 was generated." +msgstr "" + +#: ../view/error/404.phtml:34 +msgid "Controller" +msgstr "" + +#: ../view/error/404.phtml:41 +#, php-format +msgid "resolves to %s" +msgstr "" + +#: ../view/error/404.phtml:51 +msgid "Exception" +msgstr "" + diff --git a/module/Application/language/es_ES.mo b/module/Application/language/es_ES.mo new file mode 100644 index 00000000..1aa2614c Binary files /dev/null and b/module/Application/language/es_ES.mo differ diff --git a/module/Application/language/es_ES.po b/module/Application/language/es_ES.po new file mode 100644 index 00000000..07c18645 --- /dev/null +++ b/module/Application/language/es_ES.po @@ -0,0 +1,111 @@ +msgid "" +msgstr "" +"Project-Id-Version: ZendSkeletonApplication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-07-06 19:07+0100\n" +"PO-Revision-Date: 2012-07-06 19:09+0100\n" +"Last-Translator: Adolfo Abegg \n" +"Language-Team: ZF Contributors \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: \n" +"X-Poedit-KeywordsList: translate\n" +"X-Poedit-Basepath: .\n" +"X-Poedit-Language: Spanish\n" +"X-Poedit-Country: SPAIN\n" +"X-Poedit-SearchPath-0: ..\n" + +msgid "Skeleton Application" +msgstr "Aplicación Esqueleto" + +msgid "Home" +msgstr "Inicio" + +msgid "All rights reserved." +msgstr "Todos los derechos reservados" + +msgid "Welcome to %sZend Framework 2%s" +msgstr "Bienvenido al %sZend Framework 2%s" + +msgid "Congratulations! You have successfully installed the %sZF2 Skeleton Application%s. You are currently running Zend Framework version %s. This skeleton can serve as a simple starting point for you to begin building your application on ZF2." +msgstr "¡Felicitaciones! Haz instalado correctamente el %sla aplicación esqueleto del ZF2%s. Estás corriendo la versión %s del Zend Framework. Este esqueleto te servirá como un punto de inicio sencillo para empezar a construir tu aplicación con el ZF2." + +msgid "Fork Zend Framework 2 on GitHub" +msgstr "Hacer un Fork del Zend Framework 2 en GitHub" + +msgid "Follow Development" +msgstr "Seguir el Desarrollo" + +msgid "Zend Framework 2 is under active development. If you are interested in following the development of ZF2, there is a special ZF2 portal on the official Zend Framework website which provides links to the ZF2 %swiki%s, %sdev blog%s, %sissue tracker%s, and much more. This is a great resource for staying up to date with the latest developments!" +msgstr "El Zend Framework 2 está en pleno desarrollo. Si estás interesado en seguir el desarrollo del ZF2, existe un portal especial para el ZF2 en el sitio web oficial del Zend Framework el cual provee enlaces %sa la Wiki%s, %sal Blog de desarrollo%s, %sal issue tracker%s y mucho más. Este es un gran recurso para mantenerte al día con los últimos avances en el desarrollo!" + +msgid "ZF2 Development Portal" +msgstr "Portal de Desarrollo del ZF2" + +msgid "Discover Modules" +msgstr "Descubre Módulos" + +msgid "The community is working on developing a community site to serve as a repository and gallery for ZF2 modules. The project is available %son GitHub%s. The site is currently live and currently contains a list of some of the modules already available for ZF2." +msgstr "La comunidad está trabajando en el desarrollo de una web comunitaria que servirá de repositorio y galería de los módulos del ZF2. El proyecto está disponible %sen GitHub%s. El sitio web está en línea y actualmente posee una lista de algunos módulos que ya están disponibles para el ZF2." + +msgid "Explore ZF2 Modules" +msgstr "Explora los módulos del ZF2" + +msgid "Help & Support" +msgstr "Ayuda & Soporte" + +msgid "If you need any help or support while developing with ZF2, you may reach us via IRC: %s#zftalk on Freenode%s. We'd love to hear any questions or feedback you may have regarding the beta releases. Alternatively, you may subscribe and post questions to the %smailing lists%s." +msgstr "Si necesitas alguna ayuda o soporte mientras estás desarrollando con el ZF2, puedes encontrarnos via IRC: %s#zftalk en Freenode%s. Nos encantaría leer tus preguntas o cualquier feedback que puedas tener en relación a los lanzamientos de las versiones beta. También puedes subscribirte y enviar preguntas %sa la lista de correos%s" + +msgid "Ping us on IRC" +msgstr "Escríbenos en el IRC" + +msgid "An error occurred" +msgstr "Ha ocurrido un error" + +msgid "Additional information" +msgstr "Información adicional" + +msgid "File" +msgstr "Archivo" + +msgid "Message" +msgstr "Mensaje" + +msgid "Stack trace" +msgstr "Seguimiento de la pila (stack trace)" + +msgid "Previous exceptions" +msgstr "Excepciones anteriores" + +msgid "No Exception available" +msgstr "No hay ninguna Excepción disponible." + +msgid "A 404 error occurred" +msgstr "Ha ocurrido un error 404" + +msgid "The requested controller was unable to dispatch the request." +msgstr "El controlador solicitado no pudo ejecutar la petición." + +msgid "The requested controller could not be mapped to an existing controller class." +msgstr "El controlador solicitado no se pudo mapear con una clase de controlador existente." + +msgid "The requested controller was not dispatchable." +msgstr "El controlador solicitado no es ejecutable." + +msgid "The requested URL could not be matched by routing." +msgstr "El ruteador no ha encontrado la ruta para la URL solicitada." + +msgid "We cannot determine at this time why a 404 was generated." +msgstr "No pudimos determinar por qué un error 404 ha sido generado." + +msgid "Controller" +msgstr "Controller" + +msgid "resolves to %s" +msgstr "se resuelve a %s" + +msgid "Exception" +msgstr "Excepción" + diff --git a/module/Application/language/fr_CA.mo b/module/Application/language/fr_CA.mo new file mode 100644 index 00000000..cad344b0 Binary files /dev/null and b/module/Application/language/fr_CA.mo differ diff --git a/module/Application/language/fr_CA.po b/module/Application/language/fr_CA.po new file mode 100644 index 00000000..61349ffa --- /dev/null +++ b/module/Application/language/fr_CA.po @@ -0,0 +1,153 @@ +msgid "" +msgstr "" +"Project-Id-Version: ZendSkeletonApplication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-07-06 01:46-0500\n" +"PO-Revision-Date: 2012-07-06 02:08-0500\n" +"Last-Translator: EBB Dev \n" +"Language-Team: ZF Contibutors \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-KeywordsList: translate\n" +"X-Poedit-Language: French\n" +"X-Poedit-Country: CANADA\n" +"X-Poedit-Basepath: .\n" +"X-Poedit-SearchPath-0: ..\n" + +#: ../view/error/404.phtml:1 +msgid "A 404 error occurred" +msgstr "Une erreur 404 est survenue" + +#: ../view/error/404.phtml:10 +msgid "The requested controller was unable to dispatch the request." +msgstr "Le contrôleur demandé n'a pas pu acheminer la requête." + +#: ../view/error/404.phtml:13 +msgid "The requested controller could not be mapped to an existing controller class." +msgstr "Le contrôleur demandé ne correspond pas à une classe contrôleur existante." + +#: ../view/error/404.phtml:16 +msgid "The requested controller was not dispatchable." +msgstr "Le contrôleur demandé ne peut être acheminé." + +#: ../view/error/404.phtml:19 +msgid "The requested URL could not be matched by routing." +msgstr "L'URL demandée n'a pas pu trouver de route correspondante." + +#: ../view/error/404.phtml:22 +msgid "We cannot determine at this time why a 404 was generated." +msgstr "Nous ne pouvons pas déterminer pour le moment pourquoi une 404 a été générée." + +#: ../view/error/404.phtml:34 +msgid "Controller" +msgstr "Contrôleur" + +#: ../view/error/404.phtml:41 +#, php-format +msgid "resolves to %s" +msgstr "résout en %s" + +#: ../view/error/404.phtml:51 +msgid "Exception" +msgstr "Exception" + +#: ../view/error/404.phtml:55 +#: ../view/error/index.phtml:19 +#: ../view/error/index.phtml:43 +msgid "Stack trace" +msgstr "Pile d'exécution" + +#: ../view/error/index.phtml:1 +msgid "An error occurred" +msgstr "Une erreur est survenue" + +#: ../view/error/index.phtml:8 +msgid "Additional information" +msgstr "Informations complémentaires" + +#: ../view/error/index.phtml:11 +#: ../view/error/index.phtml:35 +msgid "File" +msgstr "Fichier" + +#: ../view/error/index.phtml:15 +#: ../view/error/index.phtml:39 +msgid "Message" +msgstr "Message" + +#: ../view/error/index.phtml:29 +msgid "Previous exceptions" +msgstr "Exceptions précédentes" + +#: ../view/error/index.phtml:58 +msgid "No Exception available" +msgstr "Aucune exception disponible" + +#: ../view/application/index/index.phtml:2 +#, php-format +msgid "Welcome to %sZend Framework 2%s" +msgstr "Bienvenue dans %sZend Framework 2%s" + +#: ../view/application/index/index.phtml:3 +#, php-format +msgid "Congratulations! You have successfully installed the %sZF2 Skeleton Application%s. You are currently running Zend Framework version %s. This skeleton can serve as a simple starting point for you to begin building your application on ZF2." +msgstr "Félicitations ! Vous avez installé %sZF2 Skeleton Application%s avec succès. Vous utilisez actuellement Zend Framework version %s. Cette structure peut vous servir comme point de départ simple pour démarrer la construction de votre application avec ZF2." + +#: ../view/application/index/index.phtml:4 +msgid "Fork Zend Framework 2 on GitHub" +msgstr "Faites un Fork de Zend Framework 2 sur GitHub" + +#: ../view/application/index/index.phtml:10 +msgid "Follow Development" +msgstr "Suivre le développement" + +#: ../view/application/index/index.phtml:11 +#, php-format +msgid "Zend Framework 2 is under active development. If you are interested in following the development of ZF2, there is a special ZF2 portal on the official Zend Framework website which provides links to the ZF2 %swiki%s, %sdev blog%s, %sissue tracker%s, and much more. This is a great resource for staying up to date with the latest developments!" +msgstr "Zend Framework 2 est en cours de développement. Si vous êtes intéressé pour suivre l'évolution de ZF2, il existe un portail dédié à ZF2 sur le site officiel Zend Framework qui propose des liens vers le %swiki%s ZF2, le %sblogue de dev%s, le %ssuivi des problèmes%s, et bien plus encore. Il s'agit d'une excellente ressource pour rester à jour sur les dernières évolutions !" + +#: ../view/application/index/index.phtml:12 +msgid "ZF2 Development Portal" +msgstr "Portail sur le développement de ZF2" + +#: ../view/application/index/index.phtml:16 +msgid "Discover Modules" +msgstr "Découvrez les modules" + +#: ../view/application/index/index.phtml:17 +#, php-format +msgid "The community is working on developing a community site to serve as a repository and gallery for ZF2 modules. The project is available %son GitHub%s. The site is currently live and currently contains a list of some of the modules already available for ZF2." +msgstr "La communauté travaille sur le développement d'un site communautaire avec l'objectif de servir de dépôt et de galerie pour les modules ZF2. Le projet est disponible %ssur GitHub%s. Le site est déjà en ligne, et contient une liste non exhaustive des modules déjà disponibles pour ZF2." + +#: ../view/application/index/index.phtml:18 +msgid "Explore ZF2 Modules" +msgstr "Explorer les modules ZF2" + +#: ../view/application/index/index.phtml:22 +msgid "Help & Support" +msgstr "Aide & support" + +#: ../view/application/index/index.phtml:23 +#, php-format +msgid "If you need any help or support while developing with ZF2, you may reach us via IRC: %s#zftalk on Freenode%s. We'd love to hear any questions or feedback you may have regarding the beta releases. Alternatively, you may subscribe and post questions to the %smailing lists%s." +msgstr "Si vous avez besoin d'aide ou de soutient en développant avec ZF2, vous pouvez nous joindre sur IRC : %s#zftalk sur Freenode%s. Nous aimerions connaître vos questions ou les commentaires que vous pourriez avoir au sujet des versions beta. Sinon, vous pouvez vous abonner, et poser des questions sur la %sliste de diffusion%s." + +#: ../view/application/index/index.phtml:24 +msgid "Ping us on IRC" +msgstr "Rejoignez-nous sur IRC" + +#: ../view/layout/layout.phtml:6 +#: ../view/layout/layout.phtml:33 +msgid "Skeleton Application" +msgstr "Skeleton Application" + +#: ../view/layout/layout.phtml:36 +msgid "Home" +msgstr "Accueil" + +#: ../view/layout/layout.phtml:50 +msgid "All rights reserved." +msgstr "Tous droits réservés." + diff --git a/module/Application/language/fr_FR.mo b/module/Application/language/fr_FR.mo new file mode 100644 index 00000000..87372a4c Binary files /dev/null and b/module/Application/language/fr_FR.mo differ diff --git a/module/Application/language/fr_FR.po b/module/Application/language/fr_FR.po new file mode 100644 index 00000000..2d7d79a5 --- /dev/null +++ b/module/Application/language/fr_FR.po @@ -0,0 +1,153 @@ +msgid "" +msgstr "" +"Project-Id-Version: ZendSkeletonApplication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-07-05 22:32-0700\n" +"PO-Revision-Date: 2012-07-05 23:36-0700\n" +"Last-Translator: Evan Coury \n" +"Language-Team: ZF Contibutors \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-KeywordsList: translate\n" +"X-Poedit-Language: French\n" +"X-Poedit-Country: FRANCE\n" +"X-Poedit-Basepath: .\n" +"X-Poedit-SearchPath-0: ..\n" + +#: ../view/layout/layout.phtml:6 +#: ../view/layout/layout.phtml:33 +msgid "Skeleton Application" +msgstr "Skeleton Application" + +#: ../view/layout/layout.phtml:36 +msgid "Home" +msgstr "Accueil" + +#: ../view/layout/layout.phtml:50 +msgid "All rights reserved." +msgstr "Tous droits réservés." + +#: ../view/application/index/index.phtml:2 +#, php-format +msgid "Welcome to %sZend Framework 2%s" +msgstr "Bienvenue dans le %sZend Framework 2%s" + +#: ../view/application/index/index.phtml:3 +#, php-format +msgid "Congratulations! You have successfully installed the %sZF2 Skeleton Application%s. You are currently running Zend Framework version %s. This skeleton can serve as a simple starting point for you to begin building your application on ZF2." +msgstr "Félicitations ! Vous avez installé avec succès le %sZF2 Skeleton Application%s. Vous utilisez actuellement Zend Framework version %s. Cette structure peut vous servir comme un point de départ simple pour démarrer la construction de votre application avec ZF2." + +#: ../view/application/index/index.phtml:4 +msgid "Fork Zend Framework 2 on GitHub" +msgstr "Faites un Fork de Zend Framework 2 sur GitHub" + +#: ../view/application/index/index.phtml:10 +msgid "Follow Development" +msgstr "Suivre le développement" + +#: ../view/application/index/index.phtml:11 +#, php-format +msgid "Zend Framework 2 is under active development. If you are interested in following the development of ZF2, there is a special ZF2 portal on the official Zend Framework website which provides links to the ZF2 %swiki%s, %sdev blog%s, %sissue tracker%s, and much more. This is a great resource for staying up to date with the latest developments!" +msgstr "Zend Framework 2 est en cours de développement. Si vous êtes intéressé pour suivre l'évolution de ZF2, il existe un portail dédié à ZF2 sur le site officiel Zend Framework qui propose des liens vers le %swiki%s ZF2, %sdev blog%s, %ssuivi des problèmes%s, et bien plus encore. Il s'agit d'une excellente ressource pour rester à jour sur les dernières évolutions !" + +#: ../view/application/index/index.phtml:12 +msgid "ZF2 Development Portal" +msgstr "Portail sur le développement de ZF2" + +#: ../view/application/index/index.phtml:16 +msgid "Discover Modules" +msgstr "Découvrez les modules" + +#: ../view/application/index/index.phtml:17 +#, php-format +msgid "The community is working on developing a community site to serve as a repository and gallery for ZF2 modules. The project is available %son GitHub%s. The site is currently live and currently contains a list of some of the modules already available for ZF2." +msgstr "La communauté travaille sur le développement d'un site communautaire avec l'objectif de servir de dépôt et de galerie pour les modules ZF2. Le projet est disponible %ssur GitHub%s. Le site est déjà en ligne, et contient une liste non exhaustive des modules déjà disponibles pour ZF2." + +#: ../view/application/index/index.phtml:18 +msgid "Explore ZF2 Modules" +msgstr "Explorer les modules ZF2" + +#: ../view/application/index/index.phtml:22 +msgid "Help & Support" +msgstr "Aide & support" + +#: ../view/application/index/index.phtml:23 +#, php-format +msgid "If you need any help or support while developing with ZF2, you may reach us via IRC: %s#zftalk on Freenode%s. We'd love to hear any questions or feedback you may have regarding the beta releases. Alternatively, you may subscribe and post questions to the %smailing lists%s." +msgstr "Si vous avez besoin d'aide ou de support en développant avec ZF2, vous pouvez nous joindre sur IRC : %s#zftalk sur Freenode%s. Nous aimerions avoir vos questions ou vos commentaires que vous pourriez avoir au sujet des versions bêta. Sinon, vous pouvez vous abonner, et poser des questions sur la %sliste de diffusion%s." + +#: ../view/application/index/index.phtml:24 +msgid "Ping us on IRC" +msgstr "Rejoignez-nous sur IRC" + +#: ../view/error/index.phtml:1 +msgid "An error occurred" +msgstr "Une erreur est survenue" + +#: ../view/error/index.phtml:8 +msgid "Additional information" +msgstr "Informations complémentaires" + +#: ../view/error/index.phtml:11 +#: ../view/error/index.phtml:35 +msgid "File" +msgstr "Fichier" + +#: ../view/error/index.phtml:15 +#: ../view/error/index.phtml:39 +msgid "Message" +msgstr "Message" + +#: ../view/error/index.phtml:19 +#: ../view/error/index.phtml:43 +#: ../view/error/404.phtml:55 +msgid "Stack trace" +msgstr "Pile d'exécution" + +#: ../view/error/index.phtml:29 +msgid "Previous exceptions" +msgstr "Exceptions précédentes" + +#: ../view/error/index.phtml:58 +msgid "No Exception available" +msgstr "Aucune exception disponible" + +#: ../view/error/404.phtml:1 +msgid "A 404 error occurred" +msgstr "Une erreur 404 est survenue" + +#: ../view/error/404.phtml:10 +msgid "The requested controller was unable to dispatch the request." +msgstr "Le contrôleur demandé n'a pas pu dispatcher la requête." + +#: ../view/error/404.phtml:13 +msgid "The requested controller could not be mapped to an existing controller class." +msgstr "Le contrôleur demandé ne correspond pas à une classe existante de contrôleur." + +#: ../view/error/404.phtml:16 +msgid "The requested controller was not dispatchable." +msgstr "Le contrôleur demandé n'est pas dispatchable." + +#: ../view/error/404.phtml:19 +msgid "The requested URL could not be matched by routing." +msgstr "L'URL demandée n'a pas pu trouver de route correspondante." + +#: ../view/error/404.phtml:22 +msgid "We cannot determine at this time why a 404 was generated." +msgstr "Nous ne pouvons pas déterminer pour le moment pourquoi une 404 a été générée." + +#: ../view/error/404.phtml:34 +msgid "Controller" +msgstr "Contrôleur" + +#: ../view/error/404.phtml:41 +#, php-format +msgid "resolves to %s" +msgstr "résout en %s" + +#: ../view/error/404.phtml:51 +msgid "Exception" +msgstr "Exception" + diff --git a/module/Application/language/it_IT.mo b/module/Application/language/it_IT.mo new file mode 100644 index 00000000..9d1eecfd Binary files /dev/null and b/module/Application/language/it_IT.mo differ diff --git a/module/Application/language/it_IT.po b/module/Application/language/it_IT.po new file mode 100644 index 00000000..afc42219 --- /dev/null +++ b/module/Application/language/it_IT.po @@ -0,0 +1,154 @@ +msgid "" +msgstr "" +"Project-Id-Version: ZendSkeletonApplication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-07-05 23:45-0700\n" +"PO-Revision-Date: 2012-07-12 22:14+0100\n" +"Last-Translator: Marco Pivetta \n" +"Language-Team: ZF Contributors \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-KeywordsList: translate\n" +"X-Poedit-Basepath: .\n" +"X-Poedit-Language: German\n" +"X-Poedit-Country: GERMANY\n" +"X-Poedit-Bookmarks: -1,-1,-1,-1,-1,-1,5,-1,-1,-1\n" +"X-Poedit-SearchPath-0: ..\n" + +#: ../view/layout/layout.phtml:6 +#: ../view/layout/layout.phtml:33 +msgid "Skeleton Application" +msgstr "" + +#: ../view/layout/layout.phtml:36 +msgid "Home" +msgstr "Pagina iniziale" + +#: ../view/layout/layout.phtml:50 +msgid "All rights reserved." +msgstr "Tutti i diritti sono riservati." + +#: ../view/application/index/index.phtml:2 +#, php-format +msgid "Welcome to %sZend Framework 2%s" +msgstr "Benvenuto in %sZend Framework 2%s" + +#: ../view/application/index/index.phtml:3 +#, php-format +msgid "Congratulations! You have successfully installed the %sZF2 Skeleton Application%s. You are currently running Zend Framework version %s. This skeleton can serve as a simple starting point for you to begin building your application on ZF2." +msgstr "Congratulazioni! Hai appena installato con successo %sZF2 Skeleton Application%s e stai utilizzando la versione %s di Zend Framework. Questa struttura può servirti come semplice punto di riferimento per iniziare a costruire un'applicazione basata su ZF2." + +#: ../view/application/index/index.phtml:4 +msgid "Fork Zend Framework 2 on GitHub" +msgstr "Crea un fork di Zend Framework 2 su GitHub" + +#: ../view/application/index/index.phtml:10 +msgid "Follow Development" +msgstr "Segui lo sviluppo" + +#: ../view/application/index/index.phtml:11 +#, php-format +msgid "Zend Framework 2 is under active development. If you are interested in following the development of ZF2, there is a special ZF2 portal on the official Zend Framework website which provides links to the ZF2 %swiki%s, %sdev blog%s, %sissue tracker%s, and much more. This is a great resource for staying up to date with the latest developments!" +msgstr "Zend Framework 2 è in forte sviluppo. Se sei interessato a seguire lo sviluppo di ZF2, è presente un portale che fornisce link al %swiki%s, al %sdev blog%s, all'%sissue tracker%s e a molto altro riguardo a ZF2. Il Portale è un'ottima risorsa per rimanere aggiornati con gli ultimi sviluppi!" + +#: ../view/application/index/index.phtml:12 +msgid "ZF2 Development Portal" +msgstr "Portale sullo sviluppo di ZF2" + +#: ../view/application/index/index.phtml:16 +msgid "Discover Modules" +msgstr "Scopri i Moduli" + +#: ../view/application/index/index.phtml:17 +#, php-format +msgid "The community is working on developing a community site to serve as a repository and gallery for ZF2 modules. The project is available %son GitHub%s. The site is currently live and currently contains a list of some of the modules already available for ZF2." +msgstr "La community sta lavorando allo sviluppo di un sito che deve servire come raccolta e gallery di Moduli per ZF2. Il progetto è disponibile %son Github%s. Il sito è visitabile e al momento contiene una lista di alcuni dei Moduli già disponibili per ZF2." + +#: ../view/application/index/index.phtml:18 +msgid "Explore ZF2 Modules" +msgstr "Esplora i Moduli di ZF2" + +#: ../view/application/index/index.phtml:22 +msgid "Help & Support" +msgstr "Aiuto & Supporto" + +#: ../view/application/index/index.phtml:23 +#, php-format +msgid "If you need any help or support while developing with ZF2, you may reach us via IRC: %s#zftalk on Freenode%s. We'd love to hear any questions or feedback you may have regarding the beta releases. Alternatively, you may subscribe and post questions to the %smailing lists%s." +msgstr "Qualora ti servisse aiuto o supporto mentre sviluppi con ZF2, puoi contattarci tramite IRC: %s#zftalk on Freenode%s. Ci piacerebbe moltissimo ricevere le tue domande o qualunque feedback tu possa avere riguardo alle beta release. In alternativa, puoi iscriverti e inviare domande alla %smailing lists%s." + +#: ../view/application/index/index.phtml:24 +msgid "Ping us on IRC" +msgstr "Contattaci su IRC" + +#: ../view/error/index.phtml:1 +msgid "An error occurred" +msgstr "Si è verificato un errore" + +#: ../view/error/index.phtml:8 +msgid "Additional information" +msgstr "Informazioni aggiuntive" + +#: ../view/error/index.phtml:11 +#: ../view/error/index.phtml:35 +msgid "File" +msgstr "File" + +#: ../view/error/index.phtml:15 +#: ../view/error/index.phtml:39 +msgid "Message" +msgstr "Messaggio" + +#: ../view/error/index.phtml:19 +#: ../view/error/index.phtml:43 +#: ../view/error/404.phtml:55 +msgid "Stack trace" +msgstr "" + +#: ../view/error/index.phtml:29 +msgid "Previous exceptions" +msgstr "Eccezioni precedenti" + +#: ../view/error/index.phtml:58 +msgid "No Exception available" +msgstr "Non è disponibile alcuna eccezione" + +#: ../view/error/404.phtml:1 +msgid "A 404 error occurred" +msgstr "Si è verificato un errore 404" + +#: ../view/error/404.phtml:10 +msgid "The requested controller was unable to dispatch the request." +msgstr "Il controller richiesto non è stato in grado di elaborare la richiesta." + +#: ../view/error/404.phtml:13 +msgid "The requested controller could not be mapped to an existing controller class." +msgstr "Non è stato possibile mappare il controller richiesto ad una classe di tipo controller." + +#: ../view/error/404.phtml:16 +msgid "The requested controller was not dispatchable." +msgstr "Il controller richiesto non è un oggetto dispatchable." + +#: ../view/error/404.phtml:19 +msgid "The requested URL could not be matched by routing." +msgstr "Non è stato possibile effettuare il match dell'indirizzo richiesto tramite routing." + +#: ../view/error/404.phtml:22 +msgid "We cannot determine at this time why a 404 was generated." +msgstr "In questo momento non siamo in grado di determinare perchè sia stato generato un 404." + +#: ../view/error/404.phtml:34 +msgid "Controller" +msgstr "Controller" + +#: ../view/error/404.phtml:41 +#, php-format +msgid "resolves to %s" +msgstr "viene risolto in %s" + +#: ../view/error/404.phtml:51 +msgid "Exception" +msgstr "Eccezione" + diff --git a/module/Application/language/ja_JP.mo b/module/Application/language/ja_JP.mo new file mode 100644 index 00000000..4f5f4b1a Binary files /dev/null and b/module/Application/language/ja_JP.mo differ diff --git a/module/Application/language/ja_JP.po b/module/Application/language/ja_JP.po new file mode 100644 index 00000000..d23d5b27 --- /dev/null +++ b/module/Application/language/ja_JP.po @@ -0,0 +1,140 @@ +msgid "" +msgstr "" +"Project-Id-Version: ZendSkeletonApplication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-07-05 19:30-0700\n" +"PO-Revision-Date: 2012-07-15 08:20+0900\n" +"Last-Translator: sasezaki \n" +"Language-Team: Japanese\n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-KeywordsList: translate\n" +"X-Poedit-Language: Japanese\n" +"X-Poedit-Country: Japan\n" +"X-Poedit-Basepath: .\n" +"X-Poedit-SearchPath-0: ..\n" + +#: ../view/application/index/index.phtml:2 +#, php-format +msgid "Welcome to %sZend Framework 2%s" +msgstr "%sZend Framework 2%s へようこそ" + +#: ../view/application/index/index.phtml:3 +#, php-format +msgid "Congratulations! You have successfully installed the %sZF2 Skeleton Application%s. You are currently running Zend Framework version %s. This skeleton can serve as a simple starting point for you to begin building your application on ZF2." +msgstr "おめでとうございます! %sZF2 Skeleton Application%s のインストールに成功しました。 あなたは Zend Framework version %s を動作させています。このスケルトンはZF2上でのアプリケーション構築を始めるためにシンプルなスタートポイントを提供します。" + +#: ../view/application/index/index.phtml:4 +msgid "Fork Zend Framework 2 on GitHub" +msgstr "GitHub で Zend Framework 2 をフォーク" + +#: ../view/application/index/index.phtml:10 +msgid "Follow Development" +msgstr "開発を追う" + +#: ../view/application/index/index.phtml:11 +#, php-format +msgid "Zend Framework 2 is under active development. If you are interested in following the development of ZF2, there is a special ZF2 portal on the official Zend Framework website which provides links to the ZF2 %swiki%s, %sdev blog%s, %sissue tracker%s, and much more. This is a great resource for staying up to date with the latest developments!" +msgstr "Zend Framework 2 は鋭意開発中です。ZF2の開発進行にご関心がおありでしょうか、Zend Framework公式ウェブサイト上ではZF2特別ポータルがあり、 %swiki%s、 %sdev blog%s、 %sissue tracker%s、 などのZF2関連のものを提供しています。最新の開発状況に追随するためのすばらしいリソースです。" + +#: ../view/application/index/index.phtml:12 +msgid "ZF2 Development Portal" +msgstr "ZF2 開発ポータル" + +#: ../view/application/index/index.phtml:16 +msgid "Discover Modules" +msgstr "モジュールを見つける" + +#: ../view/application/index/index.phtml:17 +#, php-format +msgid "The community is working on developing a community site to serve as a repository and gallery for ZF2 modules. The project is available %son GitHub%s. The site is currently live and currently contains a list of some of the modules already available for ZF2." +msgstr "コミュニティーはZF2モジュールのためのリポジトリとギャラリーを提供するコミュニティーサイトを開発中です。プロジェクトは %s GitHub%s で利用可能です。サイトは現在運営されており、ZF2ですでに利用可能なモジュールのリストを持っています。" + +#: ../view/application/index/index.phtml:18 +msgid "Explore ZF2 Modules" +msgstr "ZF2モジュールを探す" + +#: ../view/application/index/index.phtml:22 +msgid "Help & Support" +msgstr "ヘルプとサポート" + +#: ../view/application/index/index.phtml:23 +#, php-format +msgid "If you need any help or support while developing with ZF2, you may reach us via IRC: %s#zftalk on Freenode%s. We'd love to hear any questions or feedback you may have regarding the beta releases. Alternatively, you may subscribe and post questions to the %smailing lists%s." +msgstr "ZF2 で開発中に何らかのお手伝いやサポートが必要な場合、IRC を通じて私たちと連絡することができます。: %s#zftalk on Freenode%s ベータ版についてあなたが抱えるかもしれない質問やフィードバックを何でも聞きたいと望みます。あるいは、%smailing lists%s を購読したり質問をポストしたりできます。" + +#: ../view/application/index/index.phtml:24 +msgid "Ping us on IRC" +msgstr "IRC で呼び出す" + +#: ../view/error/index.phtml:1 +msgid "An error occurred" +msgstr "エラーが発生しました" + +#: ../view/error/index.phtml:8 +msgid "Additional information" +msgstr "追加の情報" + +#: ../view/error/index.phtml:11 +#: ../view/error/index.phtml:35 +msgid "File" +msgstr "ファイル" + +#: ../view/error/index.phtml:15 +#: ../view/error/index.phtml:39 +msgid "Message" +msgstr "メッセージ" + +#: ../view/error/index.phtml:19 +#: ../view/error/index.phtml:43 +#: ../view/error/404.phtml:55 +msgid "Stack trace" +msgstr "スタックトレース" + +#: ../view/error/index.phtml:29 +msgid "Previous exceptions" +msgstr "前の例外" + +#: ../view/error/index.phtml:58 +msgid "No Exception available" +msgstr "例外が利用できません" + +#: ../view/error/404.phtml:1 +msgid "A 404 error occurred" +msgstr "404エラーが発生しました" + +#: ../view/error/404.phtml:10 +msgid "The requested controller was unable to dispatch the request." +msgstr "要求されたコントローラはリクエストをディスパッチできませんでした。" + +#: ../view/error/404.phtml:13 +msgid "The requested controller could not be mapped to an existing controller class." +msgstr "要求されたコントローラは存在するコントローラクラスにマッピングできませんでした。" + +#: ../view/error/404.phtml:16 +msgid "The requested controller was not dispatchable." +msgstr "要求されたコントローラはディスパッチ不可能でした。" + +#: ../view/error/404.phtml:19 +msgid "The requested URL could not be matched by routing." +msgstr "要求されたURLはルーティングにマッチしませんでした。" + +#: ../view/error/404.phtml:22 +msgid "We cannot determine at this time why a 404 was generated." +msgstr "404が生成された理由について現時点で判断できません。" + +#: ../view/error/404.phtml:34 +msgid "Controller" +msgstr "コントローラ" + +#: ../view/error/404.phtml:41 +#, php-format +msgid "resolves to %s" +msgstr "%s に解決" + +#: ../view/error/404.phtml:51 +msgid "Exception" +msgstr "例外" + diff --git a/module/Application/language/nb_NO.mo b/module/Application/language/nb_NO.mo new file mode 100644 index 00000000..5340a267 Binary files /dev/null and b/module/Application/language/nb_NO.mo differ diff --git a/module/Application/language/nb_NO.po b/module/Application/language/nb_NO.po new file mode 100644 index 00000000..cfcd84bd --- /dev/null +++ b/module/Application/language/nb_NO.po @@ -0,0 +1,184 @@ +msgid "" +msgstr "" +"Project-Id-Version: ZendSkeletonApplication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-07-05 22:17-0700\n" +"PO-Revision-Date: 2012-10-20 15:20+0100\n" +"Last-Translator: Sven Anders Robbestad \n" +"Language-Team: ZF Contibutors \n" +"Language: en_US\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-KeywordsList: translate\n" +"X-Poedit-Basepath: .\n" +"X-Generator: Poedit 1.5.4\n" +"X-Poedit-SearchPath-0: ..\n" + +#: ../view/layout/layout.phtml:6 ../view/layout/layout.phtml:33 +msgid "Skeleton Application" +msgstr "Skjelettapplikasjon" + +#: ../view/layout/layout.phtml:36 +msgid "Home" +msgstr "Hjem" + +#: ../view/layout/layout.phtml:50 +msgid "All rights reserved." +msgstr "Alle rettigheter reservert." + +#: ../view/application/index/index.phtml:2 +#, php-format +msgid "Welcome to %sZend Framework 2%s" +msgstr "Velkommen til %sZend Framework 2%s" + +#: ../view/application/index/index.phtml:3 +#, php-format +msgid "" +"Congratulations! You have successfully installed the %sZF2 Skeleton " +"Application%s. You are currently running Zend Framework version %s. This " +"skeleton can serve as a simple starting point for you to begin building your " +"application on ZF2." +msgstr "" +"Gratulerer! Du har installert %sZF2 Skjelettapplikasjon%s, Du bruker " +"akkurat nå versjon %s av Zend Framework. Dette skjelettet kan brukes som et " +"enkelt utgangspunkt når du begynner å bygge din applikasjon med ZF2." + +#: ../view/application/index/index.phtml:4 +msgid "Fork Zend Framework 2 on GitHub" +msgstr "Forgren Zend Framework 2 på GitHub" + +#: ../view/application/index/index.phtml:10 +msgid "Follow Development" +msgstr "Følg Utviklingen" + +#: ../view/application/index/index.phtml:11 +#, php-format +msgid "" +"Zend Framework 2 is under active development. If you are interested in " +"following the development of ZF2, there is a special ZF2 portal on the " +"official Zend Framework website which provides links to the ZF2 %swiki%s, " +"%sdev blog%s, %sissue tracker%s, and much more. This is a great resource for " +"staying up to date with the latest developments!" +msgstr "" +"ZF2 er i aktiv utvikling. Hvis du er interessert i å følge utviklingen så " +"finnes det en spesiell ZF2-portal på den offisielle hjemmesiden til Zend " +"Framework som inneholder lenker til ZF2 %swiki%s, %sdev blog%s, %sissue " +"tracker%s, og mye mer. Det er en flott ressurs for deg som vil holde deg " +"oppdatert!" + +#: ../view/application/index/index.phtml:12 +msgid "ZF2 Development Portal" +msgstr "ZF2 Utviklingsportal" + +#: ../view/application/index/index.phtml:16 +msgid "Discover Modules" +msgstr "Oppdag Moduler" + +#: ../view/application/index/index.phtml:17 +#, php-format +msgid "" +"The community is working on developing a community site to serve as a " +"repository and gallery for ZF2 modules. The project is available %son GitHub" +"%s. The site is currently live and currently contains a list of some of the " +"modules already available for ZF2." +msgstr "" +"Nettsamfunnet arbeider med å utvikle en spesiell samfunnsside som kan tjene " +"som et bibliotek og galleri for ZF2-moduler. Prosjektet er tilgjengelig %spå " +"GitHub%s. Nettstedet inneholder for tiden en liste med enkelte av modulene " +"som er tilgjengelig for Zend Framework 2." + +#: ../view/application/index/index.phtml:18 +msgid "Explore ZF2 Modules" +msgstr "Utforsk ZF2-moduler" + +#: ../view/application/index/index.phtml:22 +msgid "Help & Support" +msgstr "Hjelp & Støtte" + +#: ../view/application/index/index.phtml:23 +#, php-format +msgid "" +"If you need any help or support while developing with ZF2, you may reach us " +"via IRC: %s#zftalk on Freenode%s. We'd love to hear any questions or " +"feedback you may have regarding the beta releases. Alternatively, you may " +"subscribe and post questions to the %smailing lists%s." +msgstr "" +"Hvis du trenger hjelp eller støtte mens du utvikler med ZF2 så kan du nå oss " +"via IRC: %s#zftalk on Freenode%s. Vi hører gjerne fra deg om du har " +"spørsmål eller tilbakemeldinger på betautgavene. Du kan også abonnere og " +"stille spørsmål på våre %smailinglister%s." + +#: ../view/application/index/index.phtml:24 +msgid "Ping us on IRC" +msgstr "Ping oss på IRC" + +#: ../view/error/index.phtml:1 +msgid "An error occurred" +msgstr "En feil har oppstått" + +#: ../view/error/index.phtml:8 +msgid "Additional information" +msgstr "Ytterligere informasjon" + +#: ../view/error/index.phtml:11 ../view/error/index.phtml:35 +msgid "File" +msgstr "Fil" + +#: ../view/error/index.phtml:15 ../view/error/index.phtml:39 +msgid "Message" +msgstr "Beskjed" + +#: ../view/error/index.phtml:19 ../view/error/index.phtml:43 +#: ../view/error/404.phtml:55 +msgid "Stack trace" +msgstr "Stakkspor" + +#: ../view/error/index.phtml:29 +msgid "Previous exceptions" +msgstr "Forrige unntak" + +#: ../view/error/index.phtml:58 +msgid "No Exception available" +msgstr "Ingen unntak tilgjengelig" + +#: ../view/error/404.phtml:1 +msgid "A 404 error occurred" +msgstr "En 404 feil oppsto" + +#: ../view/error/404.phtml:10 +msgid "The requested controller was unable to dispatch the request." +msgstr "Den valgte kontrolleren kunne ikke håndtere forespørselen." + +#: ../view/error/404.phtml:13 +msgid "" +"The requested controller could not be mapped to an existing controller class." +msgstr "" +"Den valgte kontrolleren kunne ikke knyttes opp mot en eksisterende " +"kontrollerklasse." + +#: ../view/error/404.phtml:16 +msgid "The requested controller was not dispatchable." +msgstr "Den forspurte kontrolleren kunne ikke brukes." + +#: ../view/error/404.phtml:19 +msgid "The requested URL could not be matched by routing." +msgstr "Den angitte URL kunne ikke finnes i rutingoppsettet" + +#: ../view/error/404.phtml:22 +msgid "We cannot determine at this time why a 404 was generated." +msgstr "" +"På dette tidspunkt kan vi ikke bestemme årsaken til at en 404 ble generert." + +#: ../view/error/404.phtml:34 +msgid "Controller" +msgstr "Kontroller" + +#: ../view/error/404.phtml:41 +#, php-format +msgid "resolves to %s" +msgstr "løser til %s" + +#: ../view/error/404.phtml:51 +msgid "Exception" +msgstr "Unntak" diff --git a/module/Application/language/nl_NL.mo b/module/Application/language/nl_NL.mo new file mode 100644 index 00000000..2f6d6a1a Binary files /dev/null and b/module/Application/language/nl_NL.mo differ diff --git a/module/Application/language/nl_NL.po b/module/Application/language/nl_NL.po new file mode 100644 index 00000000..59f91afb --- /dev/null +++ b/module/Application/language/nl_NL.po @@ -0,0 +1,153 @@ +msgid "" +msgstr "" +"Project-Id-Version: ZendSkeletonApplication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-07-05 22:17-0700\n" +"PO-Revision-Date: 2012-07-24 12:48+0100\n" +"Last-Translator: Walter Tamboer\n" +"Language-Team: ZF Contibutors \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-KeywordsList: translate\n" +"X-Poedit-Language: Dutch\n" +"X-Poedit-Country: NETHERLANDS\n" +"X-Poedit-Basepath: .\n" +"X-Poedit-SearchPath-0: ..\n" + +#: ../view/layout/layout.phtml:6 +#: ../view/layout/layout.phtml:33 +msgid "Skeleton Application" +msgstr "Applicatie Fundering" + +#: ../view/layout/layout.phtml:36 +msgid "Home" +msgstr "Home" + +#: ../view/layout/layout.phtml:50 +msgid "All rights reserved." +msgstr "Alle rechten voorbehouden." + +#: ../view/application/index/index.phtml:2 +#, php-format +msgid "Welcome to %sZend Framework 2%s" +msgstr "Welkom bij %sZend Framework 2%s" + +#: ../view/application/index/index.phtml:3 +#, php-format +msgid "Congratulations! You have successfully installed the %sZF2 Skeleton Application%s. You are currently running Zend Framework version %s. This skeleton can serve as a simple starting point for you to begin building your application on ZF2." +msgstr "Gefeliciteerd! Je hebt de %sZF2 Applicatie Fundering%s succesvol geinstalleerd. Je gebruikt Zend Framework versie %s. Deze fundering biedt je een startpunt om je ZF2 applicatie op voort te bouwen." + +#: ../view/application/index/index.phtml:4 +msgid "Fork Zend Framework 2 on GitHub" +msgstr "Fork Zend Framework 2 op GitHub" + +#: ../view/application/index/index.phtml:10 +msgid "Follow Development" +msgstr "Volg de Ontwikkeling" + +#: ../view/application/index/index.phtml:11 +#, php-format +msgid "Zend Framework 2 is under active development. If you are interested in following the development of ZF2, there is a special ZF2 portal on the official Zend Framework website which provides links to the ZF2 %swiki%s, %sdev blog%s, %sissue tracker%s, and much more. This is a great resource for staying up to date with the latest developments!" +msgstr "Zend Framework 2 wordt actief ontwikkeld. Als je interesse hebt in het volgen van deze ontwikkelingen dan kun je de ZF2 portaal bezoeken op de officiële website van Zend Framework. Daar staan links naar de ZF2 %swiki%s, %sdev blog%s, %sissue tracker%s en nog veel meer. Het is het perfecte middel om up-to-date te blijven met de ontwikkelingen." + +#: ../view/application/index/index.phtml:12 +msgid "ZF2 Development Portal" +msgstr "ZF2 Ontwikkelaars Portaal" + +#: ../view/application/index/index.phtml:16 +msgid "Discover Modules" +msgstr "Ontdek Modules" + +#: ../view/application/index/index.phtml:17 +#, php-format +msgid "The community is working on developing a community site to serve as a repository and gallery for ZF2 modules. The project is available %son GitHub%s. The site is currently live and currently contains a list of some of the modules already available for ZF2." +msgstr "De community werkt aan een eigen community website die dient als een bewaarplaats en galerij voor ZF2 modules. Het project is beschikbaar %sop GitHub%s. De site staat op dit moment live en bevat een lijst met modules die op dit moment beschikbaar zijn voor ZF2." + +#: ../view/application/index/index.phtml:18 +msgid "Explore ZF2 Modules" +msgstr "Verken ZF2 Modules" + +#: ../view/application/index/index.phtml:22 +msgid "Help & Support" +msgstr "Hulp & Support" + +#: ../view/application/index/index.phtml:23 +#, php-format +msgid "If you need any help or support while developing with ZF2, you may reach us via IRC: %s#zftalk on Freenode%s. We'd love to hear any questions or feedback you may have regarding the beta releases. Alternatively, you may subscribe and post questions to the %smailing lists%s." +msgstr "Als je hulp nodig hebt tijdens het ontwikkelen met ZF2, dan kun je ons bereiken via IRC: %s#zftalk op Freenode%s. We beantwoorde met alle liefde je vragen en zouden graag feedback krijgen betreffende de beta releases. Je kunt je ook abonneren op de %smailing lists%s." + +#: ../view/application/index/index.phtml:24 +msgid "Ping us on IRC" +msgstr "Ping ons via IRC" + +#: ../view/error/index.phtml:1 +msgid "An error occurred" +msgstr "Er is een fout opgetreden" + +#: ../view/error/index.phtml:8 +msgid "Additional information" +msgstr "Additionele informatie" + +#: ../view/error/index.phtml:11 +#: ../view/error/index.phtml:35 +msgid "File" +msgstr "Bestand" + +#: ../view/error/index.phtml:15 +#: ../view/error/index.phtml:39 +msgid "Message" +msgstr "Bericht" + +#: ../view/error/index.phtml:19 +#: ../view/error/index.phtml:43 +#: ../view/error/404.phtml:55 +msgid "Stack trace" +msgstr "Stack trace" + +#: ../view/error/index.phtml:29 +msgid "Previous exceptions" +msgstr "Vorige excepties" + +#: ../view/error/index.phtml:58 +msgid "No Exception available" +msgstr "Geen exceptie beschikbaar" + +#: ../view/error/404.phtml:1 +msgid "A 404 error occurred" +msgstr "De pagina kon niet worden gevonden." + +#: ../view/error/404.phtml:10 +msgid "The requested controller was unable to dispatch the request." +msgstr "De opgevraagde controller kon deze aanvraag niet verwerken." + +#: ../view/error/404.phtml:13 +msgid "The requested controller could not be mapped to an existing controller class." +msgstr "Er is geen mapping beschikbaar voor de opgevraagde controller." + +#: ../view/error/404.phtml:16 +msgid "The requested controller was not dispatchable." +msgstr "De opgevraagde controller is niet bruikbaar (dispatchable)." + +#: ../view/error/404.phtml:19 +msgid "The requested URL could not be matched by routing." +msgstr "Er is geen route gevonden die overeenkomt met de opgevraagde URL." + +#: ../view/error/404.phtml:22 +msgid "We cannot determine at this time why a 404 was generated." +msgstr "We kunnen op dit moment niet achterhalen waarom de pagina niet kon worden gevonden." + +#: ../view/error/404.phtml:34 +msgid "Controller" +msgstr "Controller" + +#: ../view/error/404.phtml:41 +#, php-format +msgid "resolves to %s" +msgstr "verwijst naar %s" + +#: ../view/error/404.phtml:51 +msgid "Exception" +msgstr "Exceptie" + diff --git a/module/Application/language/pl_PL.mo b/module/Application/language/pl_PL.mo new file mode 100644 index 00000000..306defd4 Binary files /dev/null and b/module/Application/language/pl_PL.mo differ diff --git a/module/Application/language/pl_PL.po b/module/Application/language/pl_PL.po new file mode 100644 index 00000000..def8050e --- /dev/null +++ b/module/Application/language/pl_PL.po @@ -0,0 +1,153 @@ +msgid "" +msgstr "" +"Project-Id-Version: ZendSkeletonApplication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-07-05 22:17-0700\n" +"PO-Revision-Date: 2012-07-28 20:33+0100\n" +"Last-Translator: Łukasz Rodziewicz \n" +"Language-Team: ZF Contibutors \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-KeywordsList: translate\n" +"X-Poedit-Language: Polish\n" +"X-Poedit-Country: POLAND\n" +"X-Poedit-Basepath: .\n" +"X-Poedit-SearchPath-0: ..\n" + +#: ../view/layout/layout.phtml:6 +#: ../view/layout/layout.phtml:33 +msgid "Skeleton Application" +msgstr "Szkielet Aplikacji" + +#: ../view/layout/layout.phtml:36 +msgid "Home" +msgstr "Strona startowa" + +#: ../view/layout/layout.phtml:50 +msgid "All rights reserved." +msgstr "Wszelkie prawa zastrzeżone." + +#: ../view/application/index/index.phtml:2 +#, php-format +msgid "Welcome to %sZend Framework 2%s" +msgstr "Witaj w %sZend Framework 2%s" + +#: ../view/application/index/index.phtml:3 +#, php-format +msgid "Congratulations! You have successfully installed the %sZF2 Skeleton Application%s. You are currently running Zend Framework version %s. This skeleton can serve as a simple starting point for you to begin building your application on ZF2." +msgstr "Gratulacje! Z powodzeniem zainstalowałeś %sZF2 Skeleton Application%s. Aktualnie używasz Zend Framework w wersji %s. Ten szkielet może służyć jak prosty punkt startowy do budowy Twoich aplikacji na ZF2." + +#: ../view/application/index/index.phtml:4 +msgid "Fork Zend Framework 2 on GitHub" +msgstr "Forkuj Zend Framework 2 na GitHub'e" + +#: ../view/application/index/index.phtml:10 +msgid "Follow Development" +msgstr "Śledź prace programistyczne" + +#: ../view/application/index/index.phtml:11 +#, php-format +msgid "Zend Framework 2 is under active development. If you are interested in following the development of ZF2, there is a special ZF2 portal on the official Zend Framework website which provides links to the ZF2 %swiki%s, %sdev blog%s, %sissue tracker%s, and much more. This is a great resource for staying up to date with the latest developments!" +msgstr "Zend Framework 2 jest w trakcie aktywnych prac programistycznych. Jeśli jesteś zainteresowany śledzeniem jego rozwoju, istnieje specialny portal ZF2 na oficjalnej stronie Zend Framework na którym dostępne są linki do ZF2 %swiki%s, %sdev blog%s, %sissue tracker%s, oraz wiele więcej. Jest to świetne miejsce by śledzić najnowsze zmiany!" + +#: ../view/application/index/index.phtml:12 +msgid "ZF2 Development Portal" +msgstr "ZF2 Development Portal" + +#: ../view/application/index/index.phtml:16 +msgid "Discover Modules" +msgstr "Odkryj Moduły" + +#: ../view/application/index/index.phtml:17 +#, php-format +msgid "The community is working on developing a community site to serve as a repository and gallery for ZF2 modules. The project is available %son GitHub%s. The site is currently live and currently contains a list of some of the modules already available for ZF2." +msgstr "Społeczność pracuje nad stworzeniem społecznościowego serwisu który posłuży jako repozytorium i galeria dla modułów ZF2. Projekt wkrótce będzie dostępny na %son GitHub%s. Ta strona jest aktualnie online i udostępnia listę niektórych modułów dostępnych dla ZF2." + +#: ../view/application/index/index.phtml:18 +msgid "Explore ZF2 Modules" +msgstr "Odkryj Moduły ZF2" + +#: ../view/application/index/index.phtml:22 +msgid "Help & Support" +msgstr "Pomoc & Wsparcie" + +#: ../view/application/index/index.phtml:23 +#, php-format +msgid "If you need any help or support while developing with ZF2, you may reach us via IRC: %s#zftalk on Freenode%s. We'd love to hear any questions or feedback you may have regarding the beta releases. Alternatively, you may subscribe and post questions to the %smailing lists%s." +msgstr "Jeśli potrzebujesz jakiejkolwiek pomocy lub wsparcia podczas programowania na ZF2, możesz skontaktować się z nami via IRC: %s#zftalk w sieci Freenode%s. Z przyjemnością wysłuchamy wszelkich pytań lub sugestii które możesz mieć odnoście wydań beta. Alternatywnie, możesz zapisać się i wysłać pytanie na %smailing lists%s." + +#: ../view/application/index/index.phtml:24 +msgid "Ping us on IRC" +msgstr "Wyślij nam wiadomość na IRC" + +#: ../view/error/index.phtml:1 +msgid "An error occurred" +msgstr "Wystąpił błąd" + +#: ../view/error/index.phtml:8 +msgid "Additional information" +msgstr "Dodatkowe informacje" + +#: ../view/error/index.phtml:11 +#: ../view/error/index.phtml:35 +msgid "File" +msgstr "Plik" + +#: ../view/error/index.phtml:15 +#: ../view/error/index.phtml:39 +msgid "Message" +msgstr "Komunikat" + +#: ../view/error/index.phtml:19 +#: ../view/error/index.phtml:43 +#: ../view/error/404.phtml:55 +msgid "Stack trace" +msgstr "Stack trace" + +#: ../view/error/index.phtml:29 +msgid "Previous exceptions" +msgstr "Poprzedni wyjątek" + +#: ../view/error/index.phtml:58 +msgid "No Exception available" +msgstr "Brak dostępnego wyjątku" + +#: ../view/error/404.phtml:1 +msgid "A 404 error occurred" +msgstr "Wystąpił błąd 404" + +#: ../view/error/404.phtml:10 +msgid "The requested controller was unable to dispatch the request." +msgstr "Żądany kontroler nie mógł zmapować żądania." + +#: ../view/error/404.phtml:13 +msgid "The requested controller could not be mapped to an existing controller class." +msgstr "Żądany kontroler nie mógł być zmapowany na isteniejącą klasę kontrolera." + +#: ../view/error/404.phtml:16 +msgid "The requested controller was not dispatchable." +msgstr "Żądany kontroler nie mógł zostać zmapowany." + +#: ../view/error/404.phtml:19 +msgid "The requested URL could not be matched by routing." +msgstr "Żądany adres URL nie mógł zostać powiązany z routing'iem." + +#: ../view/error/404.phtml:22 +msgid "We cannot determine at this time why a 404 was generated." +msgstr "Nie możemy określić tym razem dlaczego wygenerowano błąd 404." + +#: ../view/error/404.phtml:34 +msgid "Controller" +msgstr "Kontroler" + +#: ../view/error/404.phtml:41 +#, php-format +msgid "resolves to %s" +msgstr "rozwiązuje na %s" + +#: ../view/error/404.phtml:51 +msgid "Exception" +msgstr "Wyjątek" + diff --git a/module/Application/language/pt_BR.mo b/module/Application/language/pt_BR.mo new file mode 100644 index 00000000..1b1ce6c6 Binary files /dev/null and b/module/Application/language/pt_BR.mo differ diff --git a/module/Application/language/pt_BR.po b/module/Application/language/pt_BR.po new file mode 100644 index 00000000..4120cc7f --- /dev/null +++ b/module/Application/language/pt_BR.po @@ -0,0 +1,153 @@ +msgid "" +msgstr "" +"Project-Id-Version: ZendSkeletonApplication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-07-05 22:17-0700\n" +"PO-Revision-Date: 2012-09-09 15:23-0300\n" +"Last-Translator: Diogo Melo \n" +"Language-Team: ZF Contibutors \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-KeywordsList: translate\n" +"X-Poedit-Language: Portuguese\n" +"X-Poedit-Country: Brazil\n" +"X-Poedit-Basepath: .\n" +"X-Poedit-SearchPath-0: ..\n" + +#: ../view/layout/layout.phtml:6 +#: ../view/layout/layout.phtml:33 +msgid "Skeleton Application" +msgstr "Aplicação Skeleton" + +#: ../view/layout/layout.phtml:36 +msgid "Home" +msgstr "Início" + +#: ../view/layout/layout.phtml:50 +msgid "All rights reserved." +msgstr "Todos os direitos reservados." + +#: ../view/application/index/index.phtml:2 +#, php-format +msgid "Welcome to %sZend Framework 2%s" +msgstr "Bem vindo ao %sZend Framework 2%s" + +#: ../view/application/index/index.phtml:3 +#, php-format +msgid "Congratulations! You have successfully installed the %sZF2 Skeleton Application%s. You are currently running Zend Framework version %s. This skeleton can serve as a simple starting point for you to begin building your application on ZF2." +msgstr "Parabéns! Você instalou a %sAplicação Skeleton ZF2%s com sucesso. Você está usando a versão %s do Zend Framework. Este esqueleto serve simplesmente como um ponto de inicio na construção da sua aplicação ZF2." + +#: ../view/application/index/index.phtml:4 +msgid "Fork Zend Framework 2 on GitHub" +msgstr "Replique Zend Framework 2 no GitHub" + +#: ../view/application/index/index.phtml:10 +msgid "Follow Development" +msgstr "Acompanhe o Desenvolvimento" + +#: ../view/application/index/index.phtml:11 +#, php-format +msgid "Zend Framework 2 is under active development. If you are interested in following the development of ZF2, there is a special ZF2 portal on the official Zend Framework website which provides links to the ZF2 %swiki%s, %sdev blog%s, %sissue tracker%s, and much more. This is a great resource for staying up to date with the latest developments!" +msgstr "Zend Framework 2 está sob desenvolvimento ativo. Se vocês está interessado em acompanhar o desenvolvimento do ZF2, tem um portal ZF2 especial no site oficial do Zend Framework que possui links para ZF2 %swiki%s, %sdev blog%s, %sissue tracker%s, dentre outros. Este é um excelente material para se manter atualizado com os últimos desenvolvimentos!" + +#: ../view/application/index/index.phtml:12 +msgid "ZF2 Development Portal" +msgstr "Portal de Desenvolvimento do ZF2" + +#: ../view/application/index/index.phtml:16 +msgid "Discover Modules" +msgstr "Descubra Módulos" + +#: ../view/application/index/index.phtml:17 +#, php-format +msgid "The community is working on developing a community site to serve as a repository and gallery for ZF2 modules. The project is available %son GitHub%s. The site is currently live and currently contains a list of some of the modules already available for ZF2." +msgstr "A Comunidade está trabalhando em desenvolver um site comunitário para servir como repositório e galeria de módulos ZF2. O projeto estará disponível %sem breve no GitHub%s. O site já está online e atualmente contém uma lista de alguns dos módulos já disponíveis para ZF2." + +#: ../view/application/index/index.phtml:18 +msgid "Explore ZF2 Modules" +msgstr "Explore Módulos ZF2" + +#: ../view/application/index/index.phtml:22 +msgid "Help & Support" +msgstr "Ajuda & Suporte" + +#: ../view/application/index/index.phtml:23 +#, php-format +msgid "If you need any help or support while developing with ZF2, you may reach us via IRC: %s#zftalk on Freenode%s. We'd love to hear any questions or feedback you may have regarding the beta releases. Alternatively, you may subscribe and post questions to the %smailing lists%s." +msgstr "Caso você precise de ajuda ou suporte enquanto desenvolve com ZF2, pode nos encontrar pelo %s#zftalk on Freenode%s. Vamos gostar muito de ouvir perguntas e opiniões que você possa ter em relação às versões beta. Também, você pode se registrar e enviar perguntar para a %slista de e-mail%s." + +#: ../view/application/index/index.phtml:24 +msgid "Ping us on IRC" +msgstr "Nos escreva no IRC" + +#: ../view/error/index.phtml:1 +msgid "An error occurred" +msgstr "Ocorreu um erro" + +#: ../view/error/index.phtml:8 +msgid "Additional information" +msgstr "Informação adicional" + +#: ../view/error/index.phtml:11 +#: ../view/error/index.phtml:35 +msgid "File" +msgstr "Arquivo" + +#: ../view/error/index.phtml:15 +#: ../view/error/index.phtml:39 +msgid "Message" +msgstr "Mensagem" + +#: ../view/error/index.phtml:19 +#: ../view/error/index.phtml:43 +#: ../view/error/404.phtml:55 +msgid "Stack trace" +msgstr "Pilha de execução" + +#: ../view/error/index.phtml:29 +msgid "Previous exceptions" +msgstr "Exceções anteriores" + +#: ../view/error/index.phtml:58 +msgid "No Exception available" +msgstr "Nenhuma exceção disponível" + +#: ../view/error/404.phtml:1 +msgid "A 404 error occurred" +msgstr "Ocorreu um erro 404" + +#: ../view/error/404.phtml:10 +msgid "The requested controller was unable to dispatch the request." +msgstr "O controlador requisitado não foi capaz de despachar a requisição." + +#: ../view/error/404.phtml:13 +msgid "The requested controller could not be mapped to an existing controller class." +msgstr "O controlador requisitados não pode ser mapeado a uma classe de controlador existente." + +#: ../view/error/404.phtml:16 +msgid "The requested controller was not dispatchable." +msgstr "O controlador requisitado não foi despachado." + +#: ../view/error/404.phtml:19 +msgid "The requested URL could not be matched by routing." +msgstr "A URL requisitada não pode ser encontrada em uma rota." + +#: ../view/error/404.phtml:22 +msgid "We cannot determine at this time why a 404 was generated." +msgstr "Não foi possível determinar o motivo do 404 ter ocorrido." + +#: ../view/error/404.phtml:34 +msgid "Controller" +msgstr "Controlador" + +#: ../view/error/404.phtml:41 +#, php-format +msgid "resolves to %s" +msgstr "resolve como %s" + +#: ../view/error/404.phtml:51 +msgid "Exception" +msgstr "Exceção" + diff --git a/module/Application/language/ru_RU.mo b/module/Application/language/ru_RU.mo new file mode 100644 index 00000000..6398c5e6 Binary files /dev/null and b/module/Application/language/ru_RU.mo differ diff --git a/module/Application/language/ru_RU.po b/module/Application/language/ru_RU.po new file mode 100644 index 00000000..b2e978a7 --- /dev/null +++ b/module/Application/language/ru_RU.po @@ -0,0 +1,182 @@ +msgid "" +msgstr "" +"Project-Id-Version: ZendSkeletonApplication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-07-05 22:17-0700\n" +"PO-Revision-Date: 2012-10-23 08:46+0400\n" +"Last-Translator: vragovR \n" +"Language-Team: ZF Contibutors \n" +"Language: en_US\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-KeywordsList: translate\n" +"X-Poedit-Basepath: .\n" +"X-Generator: Poedit 1.5.4\n" +"X-Poedit-SearchPath-0: ..\n" + +#: ../view/layout/layout.phtml:6 ../view/layout/layout.phtml:33 +msgid "Skeleton Application" +msgstr "Skeleton Application" + +#: ../view/layout/layout.phtml:36 +msgid "Home" +msgstr "Главная" + +#: ../view/layout/layout.phtml:50 +msgid "All rights reserved." +msgstr "Все права защищены." + +#: ../view/application/index/index.phtml:2 +#, php-format +msgid "Welcome to %sZend Framework 2%s" +msgstr "Привет, %sZend Framework 2%s" + +#: ../view/application/index/index.phtml:3 +#, php-format +msgid "" +"Congratulations! You have successfully installed the %sZF2 Skeleton " +"Application%s. You are currently running Zend Framework version %s. This " +"skeleton can serve as a simple starting point for you to begin building your " +"application on ZF2." +msgstr "" +"Поздравляем! Вы успешно установили %sZF2 Skeleton Application%s. У вас " +"установлен Zend Framework версии %s. Этот каркас может служить простой " +"отправной точкой, чтобы начать строить приложения на ZF2." + +#: ../view/application/index/index.phtml:4 +msgid "Fork Zend Framework 2 on GitHub" +msgstr "Fork Zend Framework 2 на GitHub" + +#: ../view/application/index/index.phtml:10 +msgid "Follow Development" +msgstr "Следи за Разработкой" + +#: ../view/application/index/index.phtml:11 +#, php-format +msgid "" +"Zend Framework 2 is under active development. If you are interested in " +"following the development of ZF2, there is a special ZF2 portal on the " +"official Zend Framework website which provides links to the ZF2 %swiki%s, " +"%sdev blog%s, %sissue tracker%s, and much more. This is a great resource for " +"staying up to date with the latest developments!" +msgstr "" +"Zend Framework 2 активно развивается. Если вы заинтересованы в его " +"развитии, для вас есть специальный портал ZF2 на официальном сайте Zend " +"Framework который дает ссылки на ZF2 %swiki%s, %sdev blog%s, %sissue tracker" +"%s, и многое другое. Это отличный ресурс для того чтобы быть в курсе " +"последних событий." + +#: ../view/application/index/index.phtml:12 +msgid "ZF2 Development Portal" +msgstr "ZF2 Портал Разработчика" + +#: ../view/application/index/index.phtml:16 +msgid "Discover Modules" +msgstr "Узнай о Модулях" + +#: ../view/application/index/index.phtml:17 +#, php-format +msgid "" +"The community is working on developing a community site to serve as a " +"repository and gallery for ZF2 modules. The project is available %son GitHub" +"%s. The site is currently live and currently contains a list of some of the " +"modules already available for ZF2." +msgstr "" +"Сообщество работает над созданием сайта, который служит хранилищем и галереей " +"для ZF2 модулей. Проект доступен %sна GitHub%s. Сайт в настоящее время " +"активен и содержит список модулей уже доступных для ZF2." + +#: ../view/application/index/index.phtml:18 +msgid "Explore ZF2 Modules" +msgstr "Узнать о ZF2 модулях" + +#: ../view/application/index/index.phtml:22 +msgid "Help & Support" +msgstr "Помощь и Поддержка" + +#: ../view/application/index/index.phtml:23 +#, php-format +msgid "" +"If you need any help or support while developing with ZF2, you may reach us " +"via IRC: %s#zftalk on Freenode%s. We'd love to hear any questions or " +"feedback you may have regarding the beta releases. Alternatively, you may " +"subscribe and post questions to the %smailing lists%s." +msgstr "" +"Если вам нужна помощь или поддержка при разработке с ZF2, вы можете " +"связаться с нами по IRC: %s#zftalk on Freenode%s. Мы хотели бы узнать " +"какие вопросы или предложения вы имеете относительно текущей версии. Кроме " +"того, вы можете задавать вопросы в %smailing lists%s." + +#: ../view/application/index/index.phtml:24 +msgid "Ping us on IRC" +msgstr "Присоединяйся к IRC" + +#: ../view/error/index.phtml:1 +msgid "An error occurred" +msgstr "Произошла ошибка" + +#: ../view/error/index.phtml:8 +msgid "Additional information" +msgstr "Дополнительная информация" + +#: ../view/error/index.phtml:11 ../view/error/index.phtml:35 +msgid "File" +msgstr "Файл" + +#: ../view/error/index.phtml:15 ../view/error/index.phtml:39 +msgid "Message" +msgstr "Сообщение" + +#: ../view/error/index.phtml:19 ../view/error/index.phtml:43 +#: ../view/error/404.phtml:55 +msgid "Stack trace" +msgstr "Развертывание стека" + +#: ../view/error/index.phtml:29 +msgid "Previous exceptions" +msgstr "Предыдущие исключения" + +#: ../view/error/index.phtml:58 +msgid "No Exception available" +msgstr "Нет имеющихся исключений" + +#: ../view/error/404.phtml:1 +msgid "A 404 error occurred" +msgstr "Ошибка 404" + +#: ../view/error/404.phtml:10 +msgid "The requested controller was unable to dispatch the request." +msgstr "Запрашиваемый контроллер не смог отправить запрос." + +#: ../view/error/404.phtml:13 +msgid "" +"The requested controller could not be mapped to an existing controller class." +msgstr "" +"Запрашиваемый контроллер не может быть сопоставлен с существующими классом " +"контроллера." + +#: ../view/error/404.phtml:16 +msgid "The requested controller was not dispatchable." +msgstr "Запрашиваемый контроллер не доступен." + +#: ../view/error/404.phtml:19 +msgid "The requested URL could not be matched by routing." +msgstr "Для запрашиваемого URL не может быть достигнуто направление." + +#: ../view/error/404.phtml:22 +msgid "We cannot determine at this time why a 404 was generated." +msgstr "Мы не можем определить причину создания страницы 404." + +#: ../view/error/404.phtml:34 +msgid "Controller" +msgstr "Контроллер" + +#: ../view/error/404.phtml:41 +#, php-format +msgid "resolves to %s" +msgstr "разрешает для %s" + +#: ../view/error/404.phtml:51 +msgid "Exception" +msgstr "Исключение" diff --git a/module/Application/language/sl_SI.mo b/module/Application/language/sl_SI.mo new file mode 100644 index 00000000..b0561c7b Binary files /dev/null and b/module/Application/language/sl_SI.mo differ diff --git a/module/Application/language/sl_SI.po b/module/Application/language/sl_SI.po new file mode 100644 index 00000000..615e1e3e --- /dev/null +++ b/module/Application/language/sl_SI.po @@ -0,0 +1,153 @@ +msgid "" +msgstr "" +"Project-Id-Version: ZendSkeletonApplication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-08-29 14:40-0000\n" +"PO-Revision-Date: 2013-08-29 14:40-0000\n" +"Last-Translator: Peter Kokot \n" +"Language-Team: ZF Contibutors \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-KeywordsList: translate\n" +"X-Poedit-Language: Slovenian\n" +"X-Poedit-Country: SLOVENIA\n" +"X-Poedit-Basepath: .\n" +"X-Poedit-SearchPath-0: ..\n" + +#: ../view/layout/layout.phtml:6 +#: ../view/layout/layout.phtml:33 +msgid "Skeleton Application" +msgstr "Ogrodna aplikacija" + +#: ../view/layout/layout.phtml:36 +msgid "Home" +msgstr "Domov" + +#: ../view/layout/layout.phtml:50 +msgid "All rights reserved." +msgstr "Vse pravice pridržane" + +#: ../view/application/index/index.phtml:2 +#, php-format +msgid "Welcome to %sZend Framework 2%s" +msgstr "Dobrodošli v %sZend Framework 2%s" + +#: ../view/application/index/index.phtml:3 +#, php-format +msgid "Congratulations! You have successfully installed the %sZF2 Skeleton Application%s. You are currently running Zend Framework version %s. This skeleton can serve as a simple starting point for you to begin building your application on ZF2." +msgstr "Čestitamo! Uspešno ste namestili %sZF2 ogrodno aplikacijo%s. Trenutno poganjate Zend Framework verzijo %s. Ta ogrodna aplikacija vam ponuja enostavno začetno točko za začetek gradnje aplikacije na ZF2." + +#: ../view/application/index/index.phtml:4 +msgid "Fork Zend Framework 2 on GitHub" +msgstr "Fork Zend Framework 2 na GitHub-u" + +#: ../view/application/index/index.phtml:10 +msgid "Follow Development" +msgstr "Sledite razvoju" + +#: ../view/application/index/index.phtml:11 +#, php-format +msgid "Zend Framework 2 is under active development. If you are interested in following the development of ZF2, there is a special ZF2 portal on the official Zend Framework website which provides links to the ZF2 %swiki%s, %sdev blog%s, %sissue tracker%s, and much more. This is a great resource for staying up to date with the latest developments!" +msgstr "Zend Framework 2 je v aktivnem razvoju. Če vas zanima sledenje razvoju ZF2, je na voljo poseben ZF2 portal na uradni Zend Framework spletni strani, ki ponuja povezave do ZF2 %swiki%s, %srazvojnih blogov%s, %ssledilnika težav%s in veliko več. To je odličen vir, da ostanete v stiku z novostmi z zadnjim razvojem!" + +#: ../view/application/index/index.phtml:12 +msgid "ZF2 Development Portal" +msgstr "ZF2 razvojni portal" + +#: ../view/application/index/index.phtml:16 +msgid "Discover Modules" +msgstr "Odkrijte module" + +#: ../view/application/index/index.phtml:17 +#, php-format +msgid "The community is working on developing a community site to serve as a repository and gallery for ZF2 modules. The project is available %son GitHub%s. The site is currently live and currently contains a list of some of the modules already available for ZF2." +msgstr "Skupnost dela na razvoju strani za skupnost, ki bo ponujala repozitorij in galerijo ZF2 modulov. Ta projekt je na voljo %sna GitHub-u%s. Stran je trenutno v produkciji in trenutno vsebuje seznam nekaterih modulov, ki so že na voljo za ZF2." + +#: ../view/application/index/index.phtml:18 +msgid "Explore ZF2 Modules" +msgstr "Raziščite ZF2 module" + +#: ../view/application/index/index.phtml:22 +msgid "Help & Support" +msgstr "Pomoč & podpora" + +#: ../view/application/index/index.phtml:23 +#, php-format +msgid "If you need any help or support while developing with ZF2, you may reach us via IRC: %s#zftalk on Freenode%s. We'd love to hear any questions or feedback you may have regarding the beta releases. Alternatively, you may subscribe and post questions to the %smailing lists%s." +msgstr "Če potrebujete pomoč ali podporo med razvojem z ZF2, nas lahko dobite preko IRC-a: %s#zftalk na Freenode%s. Radi slišimo kakršnakoli vprašanja ali odziv, ki ga imate v zvezi v beta izdajami. Alternativno se lahko prijavite ali pišete vprašanja na %sdopisne sezname%s." + +#: ../view/application/index/index.phtml:24 +msgid "Ping us on IRC" +msgstr "Ping na IRC-u" + +#: ../view/error/index.phtml:1 +msgid "An error occurred" +msgstr "Prišlo je do napake" + +#: ../view/error/index.phtml:8 +msgid "Additional information" +msgstr "Dodatne informacije" + +#: ../view/error/index.phtml:11 +#: ../view/error/index.phtml:35 +msgid "File" +msgstr "Datoteka" + +#: ../view/error/index.phtml:15 +#: ../view/error/index.phtml:39 +msgid "Message" +msgstr "Sporočilo" + +#: ../view/error/index.phtml:19 +#: ../view/error/index.phtml:43 +#: ../view/error/404.phtml:55 +msgid "Stack trace" +msgstr "Skladovna sled" + +#: ../view/error/index.phtml:29 +msgid "Previous exceptions" +msgstr "Prejšnja izjema" + +#: ../view/error/index.phtml:58 +msgid "No Exception available" +msgstr "Izjema ni na voljo" + +#: ../view/error/404.phtml:1 +msgid "A 404 error occurred" +msgstr "Prišlo je do napake 404" + +#: ../view/error/404.phtml:10 +msgid "The requested controller was unable to dispatch the request." +msgstr "Zahtevani krmilnik ni uspel poslati zahtevka." + +#: ../view/error/404.phtml:13 +msgid "The requested controller could not be mapped to an existing controller class." +msgstr "Zahtevani krmilnik ni bil preslikan k obstoječemu razredu krmilnika." + +#: ../view/error/404.phtml:16 +msgid "The requested controller was not dispatchable." +msgstr "Zahtevanega krmilnika ni bilo mogoče poslati" + +#: ../view/error/404.phtml:19 +msgid "The requested URL could not be matched by routing." +msgstr "Zahtevani URL se ne ujema z usmerjanjem" + +#: ../view/error/404.phtml:22 +msgid "We cannot determine at this time why a 404 was generated." +msgstr "Trenutno ne moremo ugotoviti zakaj je prišlo do napake 404." + +#: ../view/error/404.phtml:34 +msgid "Controller" +msgstr "Krmilnik" + +#: ../view/error/404.phtml:41 +#, php-format +msgid "resolves to %s" +msgstr "se razreši v %s" + +#: ../view/error/404.phtml:51 +msgid "Exception" +msgstr "Izjema" + diff --git a/module/Application/language/tr_TR.mo b/module/Application/language/tr_TR.mo new file mode 100644 index 00000000..7175b116 Binary files /dev/null and b/module/Application/language/tr_TR.mo differ diff --git a/module/Application/language/tr_TR.po b/module/Application/language/tr_TR.po new file mode 100644 index 00000000..bc3c6192 --- /dev/null +++ b/module/Application/language/tr_TR.po @@ -0,0 +1,153 @@ +msgid "" +msgstr "" +"Project-Id-Version: ZendSkeletonApplication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-07-05 22:17-0700\n" +"PO-Revision-Date: 2012-07-06 13:19+0200\n" +"Last-Translator: H.H.G. multistore \n" +"Language-Team: ZF Contibutors \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-KeywordsList: translate\n" +"X-Poedit-Language: Turkish\n" +"X-Poedit-Country: TURKEY\n" +"X-Poedit-Basepath: .\n" +"X-Poedit-SearchPath-0: ..\n" + +#: ../view/layout/layout.phtml:6 +#: ../view/layout/layout.phtml:33 +msgid "Skeleton Application" +msgstr "" + +#: ../view/layout/layout.phtml:36 +msgid "Home" +msgstr "Anasayfa" + +#: ../view/layout/layout.phtml:50 +msgid "All rights reserved." +msgstr "Tüm haklar saklıdır." + +#: ../view/application/index/index.phtml:2 +#, php-format +msgid "Welcome to %sZend Framework 2%s" +msgstr "%sZend Framework 2%s'a hoş geldiniz" + +#: ../view/application/index/index.phtml:3 +#, php-format +msgid "Congratulations! You have successfully installed the %sZF2 Skeleton Application%s. You are currently running Zend Framework version %s. This skeleton can serve as a simple starting point for you to begin building your application on ZF2." +msgstr "Tebrikler! %sZF2 Skeleton Application%s'u başarıyla yüklediniz. Şu anda Zend Framework %s sürüm ile çalışıyorsunuz. Bu iskelet ZF2 üzerinde uygulama oluşturmak için basit bir başlangıç ​​noktası olarak hizmet verebilir." + +#: ../view/application/index/index.phtml:4 +msgid "Fork Zend Framework 2 on GitHub" +msgstr "Zend Framework 2'yi GitHub'da fork edin" + +#: ../view/application/index/index.phtml:10 +msgid "Follow Development" +msgstr "Gelişimi izleyin" + +#: ../view/application/index/index.phtml:11 +#, php-format +msgid "Zend Framework 2 is under active development. If you are interested in following the development of ZF2, there is a special ZF2 portal on the official Zend Framework website which provides links to the ZF2 %swiki%s, %sdev blog%s, %sissue tracker%s, and much more. This is a great resource for staying up to date with the latest developments!" +msgstr "Zend Framework 2 aktif geliştirilmektedir. Eğer ZF2'nin gelişimi ile ilgileniyorsanız, ZF2 için resmi Zend Framework websitesinde özel portal mevcut, orada ZF2 %swiki%s'ye, %sDEV blog%s'a, %ssorun takibi%s'ne bağlantılarını ve çok daha fazlasını sunar. Bu son gelişmeler ile güncel kalmak için büyük bir kaynaktır!" + +#: ../view/application/index/index.phtml:12 +msgid "ZF2 Development Portal" +msgstr "ZF2 Development Portal" + +#: ../view/application/index/index.phtml:16 +msgid "Discover Modules" +msgstr "Modülleri keşfedin" + +#: ../view/application/index/index.phtml:17 +#, php-format +msgid "The community is working on developing a community site to serve as a repository and gallery for ZF2 modules. The project is available %son GitHub%s. The site is currently live and currently contains a list of some of the modules already available for ZF2." +msgstr "Topluluk ZF2 modülleri için bir depo ve galeri olarak hizmet edecek bir topluluk sitesi geliştirme üzerinde çalışıyor. Proje %sGitHub%s'da mevcut. Site şu anda canlı ve ZF2 için bazı mevcut modüllerin listesini içerir." + +#: ../view/application/index/index.phtml:18 +msgid "Explore ZF2 Modules" +msgstr "ZF2 Modüllerini keşfedin" + +#: ../view/application/index/index.phtml:22 +msgid "Help & Support" +msgstr "Yardım & Destek" + +#: ../view/application/index/index.phtml:23 +#, php-format +msgid "If you need any help or support while developing with ZF2, you may reach us via IRC: %s#zftalk on Freenode%s. We'd love to hear any questions or feedback you may have regarding the beta releases. Alternatively, you may subscribe and post questions to the %smailing lists%s." +msgstr "ZF2 ile geliştirirken herhangi yardım veya desteğe ihtiyacınız varsa, bize IRC: %sFreenode #zftalk%s üzerinden ulaşabilirsiniz. Beta sürümleri ile ilgili olabilecek herhangi bir sorunuzu ya da yorumlarınızı duymak isteriz. Alternatif olarak %smailing listelerine%s abone olup sorularınızı sorabilirsiniz." + +#: ../view/application/index/index.phtml:24 +msgid "Ping us on IRC" +msgstr "IRC bizi pingleyin" + +#: ../view/error/index.phtml:1 +msgid "An error occurred" +msgstr "An error occurred" + +#: ../view/error/index.phtml:8 +msgid "Additional information" +msgstr "Ek bilgiler" + +#: ../view/error/index.phtml:11 +#: ../view/error/index.phtml:35 +msgid "File" +msgstr "Klasör" + +#: ../view/error/index.phtml:15 +#: ../view/error/index.phtml:39 +msgid "Message" +msgstr "Mesaj" + +#: ../view/error/index.phtml:19 +#: ../view/error/index.phtml:43 +#: ../view/error/404.phtml:55 +msgid "Stack trace" +msgstr "Denetleyici" + +#: ../view/error/index.phtml:29 +msgid "Previous exceptions" +msgstr "Önceki istisnalar" + +#: ../view/error/index.phtml:58 +msgid "No Exception available" +msgstr "İstisna yok" + +#: ../view/error/404.phtml:1 +msgid "A 404 error occurred" +msgstr "Bir 404 hatası oluştu" + +#: ../view/error/404.phtml:10 +msgid "The requested controller was unable to dispatch the request." +msgstr "Talep edilen denetleyici işlemi işlemesi mümkün değildir." + +#: ../view/error/404.phtml:13 +msgid "The requested controller could not be mapped to an existing controller class." +msgstr "Talep edilen denetleyiciye uygun denetleyici sınıfı tahsis edilemedi." + +#: ../view/error/404.phtml:16 +msgid "The requested controller was not dispatchable." +msgstr "Talep edilen denetleyici çağrılabilir değildir." + +#: ../view/error/404.phtml:19 +msgid "The requested URL could not be matched by routing." +msgstr "İstenen URL yönlendirmede tahsis edilemedi" + +#: ../view/error/404.phtml:22 +msgid "We cannot determine at this time why a 404 was generated." +msgstr "Neden 404 hatasının oluştuğunu şu an belirleyemiyoruz." + +#: ../view/error/404.phtml:34 +msgid "Controller" +msgstr "Denetleyici" + +#: ../view/error/404.phtml:41 +#, php-format +msgid "resolves to %s" +msgstr "Buraya çözümlenir: %s" + +#: ../view/error/404.phtml:51 +msgid "Exception" +msgstr "İstisna" + diff --git a/module/Application/language/zh_CN.mo b/module/Application/language/zh_CN.mo new file mode 100644 index 00000000..2a3be234 Binary files /dev/null and b/module/Application/language/zh_CN.mo differ diff --git a/module/Application/language/zh_CN.po b/module/Application/language/zh_CN.po new file mode 100644 index 00000000..b6a2fb92 --- /dev/null +++ b/module/Application/language/zh_CN.po @@ -0,0 +1,174 @@ +msgid "" +msgstr "" +"Project-Id-Version: ZendSkeletonApplication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-07-05 22:17-0700\n" +"PO-Revision-Date: 2012-09-08 13:15+0800\n" +"Last-Translator: Evan Coury \n" +"Language-Team: ZF Contibutors \n" +"Language: en_US\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-KeywordsList: translate\n" +"X-Poedit-Basepath: .\n" +"X-Poedit-SearchPath-0: ..\n" + +#: ../view/layout/layout.phtml:6 ../view/layout/layout.phtml:33 +msgid "Skeleton Application" +msgstr "框架应用" + +#: ../view/layout/layout.phtml:36 +msgid "Home" +msgstr "主页" + +#: ../view/layout/layout.phtml:50 +msgid "All rights reserved." +msgstr "All rights reserved." + +#: ../view/application/index/index.phtml:2 +#, php-format +msgid "Welcome to %sZend Framework 2%s" +msgstr "欢迎使用%sZend Framework 2%s" + +#: ../view/application/index/index.phtml:3 +#, php-format +msgid "" +"Congratulations! You have successfully installed the %sZF2 Skeleton " +"Application%s. You are currently running Zend Framework version %s. This " +"skeleton can serve as a simple starting point for you to begin building your " +"application on ZF2." +msgstr "" +"恭喜!您已经成功安装了%sZF2 Skeleton Application%s。您现在运行的Zend " +"Framework的版本为%s。这个框架应用可以用作您创建自己的ZF2应用的起点。" + +#: ../view/application/index/index.phtml:4 +msgid "Fork Zend Framework 2 on GitHub" +msgstr "在GitHub中获取Zend Framework 2到您的应用" + +#: ../view/application/index/index.phtml:10 +msgid "Follow Development" +msgstr "关注开发" + +#: ../view/application/index/index.phtml:11 +#, php-format +msgid "" +"Zend Framework 2 is under active development. If you are interested in " +"following the development of ZF2, there is a special ZF2 portal on the " +"official Zend Framework website which provides links to the ZF2 %swiki%s, " +"%sdev blog%s, %sissue tracker%s, and much more. This is a great resource for " +"staying up to date with the latest developments!" +msgstr "" +"Zend Framework 2正在开发中。如果您有兴趣关注ZF2的开发,Zend Framework的官方网" +"站有一个专门的ZF2入口,从这个入口可以进入ZF2的%swiki%s, %sdev blog%s, " +"%sissue tracker%s等。这些是关注我们最新开发的好资源!" + +#: ../view/application/index/index.phtml:12 +msgid "ZF2 Development Portal" +msgstr "ZF2 开发入口" + +#: ../view/application/index/index.phtml:16 +msgid "Discover Modules" +msgstr "探索模块" + +#: ../view/application/index/index.phtml:17 +#, php-format +msgid "" +"The community is working on developing a community site to serve as a " +"repository and gallery for ZF2 modules. The project is available %son GitHub" +"%s. The site is currently live and currently contains a list of some of the " +"modules already available for ZF2." +msgstr "" +"社区正在开发一个能够存储和展示ZF2模块的功能。这个项目可以在%son GitHub%s找" +"到。这个网站现在已经包含了许多ZF2可用的模块。" + +#: ../view/application/index/index.phtml:18 +msgid "Explore ZF2 Modules" +msgstr "浏览ZF2模块" + +#: ../view/application/index/index.phtml:22 +msgid "Help & Support" +msgstr "帮助 & 支持" + +#: ../view/application/index/index.phtml:23 +#, php-format +msgid "" +"If you need any help or support while developing with ZF2, you may reach us " +"via IRC: %s#zftalk on Freenode%s. We'd love to hear any questions or " +"feedback you may have regarding the beta releases. Alternatively, you may " +"subscribe and post questions to the %smailing lists%s." +msgstr "" +"如果您需要一些关于ZF2开发的帮助和支持,可以通过IRC: %s#zftalk on Freenode" +"%s。我们非常乐意收到您对于发布的公测版提问和反馈。或者,您也可以通" +"过%smailing lists%s订阅并发布问题。" + +#: ../view/application/index/index.phtml:24 +msgid "Ping us on IRC" +msgstr "在IRC上ping我们" + +#: ../view/error/index.phtml:1 +msgid "An error occurred" +msgstr "发生错误" + +#: ../view/error/index.phtml:8 +msgid "Additional information" +msgstr "附加信息" + +#: ../view/error/index.phtml:11 ../view/error/index.phtml:35 +msgid "File" +msgstr "文件" + +#: ../view/error/index.phtml:15 ../view/error/index.phtml:39 +msgid "Message" +msgstr "消息" + +#: ../view/error/index.phtml:19 ../view/error/index.phtml:43 +#: ../view/error/404.phtml:55 +msgid "Stack trace" +msgstr "Stack trace" + +#: ../view/error/index.phtml:29 +msgid "Previous exceptions" +msgstr "上一个异常" + +#: ../view/error/index.phtml:58 +msgid "No Exception available" +msgstr "没有可用的Exception" + +#: ../view/error/404.phtml:1 +msgid "A 404 error occurred" +msgstr "404 缺少目标文件" + +#: ../view/error/404.phtml:10 +msgid "The requested controller was unable to dispatch the request." +msgstr "所请求的控制器不能分发该请求" + +#: ../view/error/404.phtml:13 +msgid "" +"The requested controller could not be mapped to an existing controller class." +msgstr "所请求的控制器不能映射到已存在的控制器类" + +#: ../view/error/404.phtml:16 +msgid "The requested controller was not dispatchable." +msgstr "" + +#: ../view/error/404.phtml:19 +msgid "The requested URL could not be matched by routing." +msgstr "所请求的URL不能与路由对应" + +#: ../view/error/404.phtml:22 +msgid "We cannot determine at this time why a 404 was generated." +msgstr "我们不能确定为什么这次会出现404" + +#: ../view/error/404.phtml:34 +msgid "Controller" +msgstr "控制器" + +#: ../view/error/404.phtml:41 +#, php-format +msgid "resolves to %s" +msgstr "解决: %s" + +#: ../view/error/404.phtml:51 +msgid "Exception" +msgstr "异常" diff --git a/module/Application/language/zh_TW.mo b/module/Application/language/zh_TW.mo new file mode 100644 index 00000000..312dc1c6 Binary files /dev/null and b/module/Application/language/zh_TW.mo differ diff --git a/module/Application/language/zh_TW.po b/module/Application/language/zh_TW.po new file mode 100644 index 00000000..a2dde1e4 --- /dev/null +++ b/module/Application/language/zh_TW.po @@ -0,0 +1,175 @@ +msgid "" +msgstr "" +"Project-Id-Version: ZendSkeletonApplication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-07-05 22:17-0700\n" +"PO-Revision-Date: 2012-10-21 17:47+0800\n" +"Last-Translator: atans \n" +"Language-Team: ZF Contibutors \n" +"Language: en_US\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-KeywordsList: translate\n" +"X-Poedit-Basepath: .\n" +"X-Generator: Poedit 1.5.4\n" +"X-Poedit-SearchPath-0: ..\n" + +#: ../view/layout/layout.phtml:6 ../view/layout/layout.phtml:33 +msgid "Skeleton Application" +msgstr "框架應用" + +#: ../view/layout/layout.phtml:36 +msgid "Home" +msgstr "首頁" + +#: ../view/layout/layout.phtml:50 +msgid "All rights reserved." +msgstr "All rights reserved." + +#: ../view/application/index/index.phtml:2 +#, php-format +msgid "Welcome to %sZend Framework 2%s" +msgstr "歡迎使用%sZend Framework 2%s" + +#: ../view/application/index/index.phtml:3 +#, php-format +msgid "" +"Congratulations! You have successfully installed the %sZF2 Skeleton " +"Application%s. You are currently running Zend Framework version %s. This " +"skeleton can serve as a simple starting point for you to begin building your " +"application on ZF2." +msgstr "" +"恭喜!您已經成功安裝了%sZF2 Skeleton Application%s。您現在運行的Zend " +"Framework的版本為%s。這個框架應用可以用作您創建自己的ZF2應用的起點。" + +#: ../view/application/index/index.phtml:4 +msgid "Fork Zend Framework 2 on GitHub" +msgstr "在GitHub中獲取Zend Framework 2到你的應用" + +#: ../view/application/index/index.phtml:10 +msgid "Follow Development" +msgstr "關注開發" + +#: ../view/application/index/index.phtml:11 +#, php-format +msgid "" +"Zend Framework 2 is under active development. If you are interested in " +"following the development of ZF2, there is a special ZF2 portal on the " +"official Zend Framework website which provides links to the ZF2 %swiki%s, " +"%sdev blog%s, %sissue tracker%s, and much more. This is a great resource for " +"staying up to date with the latest developments!" +msgstr "" +"Zend Framework 2正在開發中。如果您有興趣關注ZF2的開發,Zend Framework的官方網" +"站有一個專門的ZF2入口,從這個入口可以進入ZF2的%swiki%s, %sdev blog%s, " +"%sissue tracker%s等。這些是關注我們最新開發的好資源!" + +#: ../view/application/index/index.phtml:12 +msgid "ZF2 Development Portal" +msgstr "ZF2 開發入口" + +#: ../view/application/index/index.phtml:16 +msgid "Discover Modules" +msgstr "探索模塊" + +#: ../view/application/index/index.phtml:17 +#, php-format +msgid "" +"The community is working on developing a community site to serve as a " +"repository and gallery for ZF2 modules. The project is available %son GitHub" +"%s. The site is currently live and currently contains a list of some of the " +"modules already available for ZF2." +msgstr "" +"社區正在開發一個能夠存儲和展示ZF2模塊批號的功能。這個項目可以在%son GitHub%s" +"找到。這個網站現在已經包含了許多ZF2可用的模塊。" + +#: ../view/application/index/index.phtml:18 +msgid "Explore ZF2 Modules" +msgstr "瀏覽ZF2模塊" + +#: ../view/application/index/index.phtml:22 +msgid "Help & Support" +msgstr "幫助 & 支持" + +#: ../view/application/index/index.phtml:23 +#, php-format +msgid "" +"If you need any help or support while developing with ZF2, you may reach us " +"via IRC: %s#zftalk on Freenode%s. We'd love to hear any questions or " +"feedback you may have regarding the beta releases. Alternatively, you may " +"subscribe and post questions to the %smailing lists%s." +msgstr "" +"如果您需要一些關於ZF2開發的幫助和支持,可以通過IRC: %s#zftalk on Freenode" +"%s。我們非常樂意​​收到您對於發布的公測版提問和反饋。或者,您也可以通" +"過%smailing lists%s訂閱並發布問題。" + +#: ../view/application/index/index.phtml:24 +msgid "Ping us on IRC" +msgstr "在IRC上ping我們" + +#: ../view/error/index.phtml:1 +msgid "An error occurred" +msgstr "發生錯誤" + +#: ../view/error/index.phtml:8 +msgid "Additional information" +msgstr "附加信息" + +#: ../view/error/index.phtml:11 ../view/error/index.phtml:35 +msgid "File" +msgstr "文件" + +#: ../view/error/index.phtml:15 ../view/error/index.phtml:39 +msgid "Message" +msgstr "消息" + +#: ../view/error/index.phtml:19 ../view/error/index.phtml:43 +#: ../view/error/404.phtml:55 +msgid "Stack trace" +msgstr "Stack trace" + +#: ../view/error/index.phtml:29 +msgid "Previous exceptions" +msgstr "上一个異常" + +#: ../view/error/index.phtml:58 +msgid "No Exception available" +msgstr "沒有可用的Exception" + +#: ../view/error/404.phtml:1 +msgid "A 404 error occurred" +msgstr "404 缺少目標文件" + +#: ../view/error/404.phtml:10 +msgid "The requested controller was unable to dispatch the request." +msgstr "所请求的控制器不能分发该请求" + +#: ../view/error/404.phtml:13 +msgid "" +"The requested controller could not be mapped to an existing controller class." +msgstr "所請求的控制器不能映射到已存在的控制器類" + +#: ../view/error/404.phtml:16 +msgid "The requested controller was not dispatchable." +msgstr "" + +#: ../view/error/404.phtml:19 +msgid "The requested URL could not be matched by routing." +msgstr "所請求的URL不能與路由對應" + +#: ../view/error/404.phtml:22 +msgid "We cannot determine at this time why a 404 was generated." +msgstr "我們不能確定為什麼這次會出現404" + +#: ../view/error/404.phtml:34 +msgid "Controller" +msgstr "控制器" + +#: ../view/error/404.phtml:41 +#, php-format +msgid "resolves to %s" +msgstr "解決: %s" + +#: ../view/error/404.phtml:51 +msgid "Exception" +msgstr "異常" diff --git a/module/Application/src/Application/Controller/IndexController.php b/module/Application/src/Application/Controller/IndexController.php new file mode 100644 index 00000000..f9172e72 --- /dev/null +++ b/module/Application/src/Application/Controller/IndexController.php @@ -0,0 +1,22 @@ +mb = ( ($bytes / 1024) / 1024 ); + $this->mb = round( $this->mb, 2, PHP_ROUND_HALF_EVEN ) . " MB"; + return $this->mb; + } +} \ No newline at end of file diff --git a/module/Application/src/Application/View/Helper/Date.php b/module/Application/src/Application/View/Helper/Date.php new file mode 100644 index 00000000..cb53d85a --- /dev/null +++ b/module/Application/src/Application/View/Helper/Date.php @@ -0,0 +1,73 @@ + + * @copyright Alle Listings sind urheberrechtlich geschützt! + * @link http://www.zendframeworkbuch.de/ und http://www.galileocomputing.de/3460 + */ + +/** + * namespace definition and usage + */ +namespace Application\View\Helper; + +use DateTime; +use IntlDateFormatter; +use Zend\View\Helper\AbstractHelper; + +/** + * Date output + * + * Simplifies the date output for the dateFormat view helper + * + * @package Application + */ +class Date extends AbstractHelper +{ + /** + * get string date and output it + * + * @param string $dateString + * @param string $mode + * @return boolean + */ + public function __invoke($dateString, $mode = 'medium') + { + if ($dateString == '0000-00-00 00:00:00' || $dateString == '') { + return '-'; + } + + switch ($mode) { + case 'long': + $dateType = IntlDateFormatter::LONG; + $timeType = IntlDateFormatter::LONG; + break; + + case 'short': + $dateType = IntlDateFormatter::SHORT; + $timeType = IntlDateFormatter::SHORT; + break; + + case 'dateonly': + $dateType = IntlDateFormatter::MEDIUM; + $timeType = IntlDateFormatter::NONE; + break; + + default: + case 'medium': + $dateType = IntlDateFormatter::MEDIUM; + $timeType = IntlDateFormatter::MEDIUM; + break; + } + + $dateTime = new DateTime($dateString); + + return $this->getView()->dateFormat($dateTime, $dateType, $timeType); + } +} diff --git a/module/Application/src/Application/View/Helper/JobDuration.php b/module/Application/src/Application/View/Helper/JobDuration.php new file mode 100644 index 00000000..8041d14f --- /dev/null +++ b/module/Application/src/Application/View/Helper/JobDuration.php @@ -0,0 +1,20 @@ +Non-fatal error"; + break; + case 'E': + $output = "
Terminated with errors
"; + break; + case 'f': + $output = "
Fatal error
"; + break; + case 'T': + $output = "
Completed successfully
"; + break; + default: + $output = $jobStatus; + break; + } + + return $output; + + } +} diff --git a/module/Application/src/Application/View/Helper/JobType.php b/module/Application/src/Application/View/Helper/JobType.php new file mode 100644 index 00000000..de63edc4 --- /dev/null +++ b/module/Application/src/Application/View/Helper/JobType.php @@ -0,0 +1,30 @@ +retention = (int) $retention; + $this->retention = round(($this->retention / 60 / 60 / 24 ), 2, PHP_ROUND_HALF_EVEN); + return $this->retention; + } +} \ No newline at end of file diff --git a/module/Application/view/application/index/index.phtml b/module/Application/view/application/index/index.phtml new file mode 100644 index 00000000..27e12883 --- /dev/null +++ b/module/Application/view/application/index/index.phtml @@ -0,0 +1,44 @@ +
+

translate('Welcome to %sbarbossa%s'), '', '') ?>

+

translate('Congratulations! You have successfully installed %sbarbossa%s. You are currently running barbossa version %s.'), '', '', \Zend\Version\Version::VERSION) ?>

+

translate('Fork barbossa on GitHub') ?> »

+
+ +
+ +
+
+
+

translate('Follow Development') ?>

+
+
+

translate('Barbossa is under active development. If you are interested in following the development of ZF2, there is a special ZF2 portal on the official Zend Framework website which provides links to the ZF2 %swiki%s, %sdev blog%s, %sissue tracker%s, and much more. This is a great resource for staying up to date with the latest developments!'), '', '', '', '', '', '') ?>

+

translate('ZF2 Development Portal') ?> »

+
+
+
+ +
+
+
+

translate('Discover Modules') ?>

+
+
+

translate('The community is working on developing a community site to serve as a repository and gallery for ZF2 modules. The project is available %son GitHub%s. The site is currently live and currently contains a list of some of the modules already available for ZF2.'), '', '') ?>

+

translate('Explore ZF2 Modules') ?> »

+
+
+
+ +
+
+
+

translate('Help & Support') ?>

+
+
+

translate('If you need any help or support while developing with ZF2, you may reach us via IRC: %s#zftalk on Freenode%s. We\'d love to hear any questions or feedback you may have regarding the beta releases. Alternatively, you may subscribe and post questions to the %smailing lists%s.'), '', '', '', '') ?>

+

translate('Ping us on IRC') ?> »

+
+
+
+
diff --git a/module/Application/view/error/404.phtml b/module/Application/view/error/404.phtml new file mode 100644 index 00000000..323733d5 --- /dev/null +++ b/module/Application/view/error/404.phtml @@ -0,0 +1,107 @@ +

translate('A 404 error occurred') ?>

+

message ?>

+ +reason) && $this->reason): ?> + +reason) { + case 'error-controller-cannot-dispatch': + $reasonMessage = $this->translate('The requested controller was unable to dispatch the request.'); + break; + case 'error-controller-not-found': + $reasonMessage = $this->translate('The requested controller could not be mapped to an existing controller class.'); + break; + case 'error-controller-invalid': + $reasonMessage = $this->translate('The requested controller was not dispatchable.'); + break; + case 'error-router-no-match': + $reasonMessage = $this->translate('The requested URL could not be matched by routing.'); + break; + default: + $reasonMessage = $this->translate('We cannot determine at this time why a 404 was generated.'); + break; +} +?> + +

+ + + +controller) && $this->controller): ?> + +
+
translate('Controller') ?>:
+
escapeHtml($this->controller) ?> +controller_class) + && $this->controller_class + && $this->controller_class != $this->controller +) { + echo '(' . sprintf($this->translate('resolves to %s'), $this->escapeHtml($this->controller_class)) . ')'; +} +?> +
+
+ + + +display_exceptions) && $this->display_exceptions): ?> + +exception) && $this->exception instanceof Exception): ?> +
+

translate('Additional information') ?>:

+

exception); ?>

+
+
translate('File') ?>:
+
+
exception->getFile() ?>:exception->getLine() ?>
+
+
translate('Message') ?>:
+
+
exception->getMessage() ?>
+
+
translate('Stack trace') ?>:
+
+
exception->getTraceAsString() ?>
+
+
+exception->getPrevious(); + if ($e) : +?> +
+

translate('Previous exceptions') ?>:

+
    + +
  • +

    +
    +
    translate('File') ?>:
    +
    +
    getFile() ?>:getLine() ?>
    +
    +
    translate('Message') ?>:
    +
    +
    getMessage() ?>
    +
    +
    translate('Stack trace') ?>:
    +
    +
    getTraceAsString() ?>
    +
    +
    +
  • + getPrevious(); + endwhile; + ?> +
+ + + + +

translate('No Exception available') ?>

+ + + + diff --git a/module/Application/view/error/index.phtml b/module/Application/view/error/index.phtml new file mode 100644 index 00000000..5165cd8e --- /dev/null +++ b/module/Application/view/error/index.phtml @@ -0,0 +1,62 @@ +

translate('An error occurred') ?>

+

message ?>

+ +display_exceptions) && $this->display_exceptions): ?> + +exception) && $this->exception instanceof Exception): ?> +
+

translate('Additional information') ?>:

+

exception); ?>

+
+
translate('File') ?>:
+
+
exception->getFile() ?>:exception->getLine() ?>
+
+
translate('Message') ?>:
+
+
exception->getMessage() ?>
+
+
translate('Stack trace') ?>:
+
+
exception->getTraceAsString() ?>
+
+
+exception->getPrevious(); + if ($e) : +?> +
+

translate('Previous exceptions') ?>:

+
    + +
  • +

    +
    +
    translate('File') ?>:
    +
    +
    getFile() ?>:getLine() ?>
    +
    +
    translate('Message') ?>:
    +
    +
    getMessage() ?>
    +
    +
    translate('Stack trace') ?>:
    +
    +
    getTraceAsString() ?>
    +
    +
    +
  • + getPrevious(); + endwhile; + ?> +
+ + + + +

translate('No Exception available') ?>

+ + + + diff --git a/module/Application/view/layout/layout.phtml b/module/Application/view/layout/layout.phtml new file mode 100644 index 00000000..fabf8247 --- /dev/null +++ b/module/Application/view/layout/layout.phtml @@ -0,0 +1,98 @@ +doctype(); ?> + + + + + headTitle('barbossa | '. $this->translate('Version 1.0.0'))->setSeparator(' - ')->setAutoEscape(false) ?> + + headMeta() + ->appendName('viewport', 'width=device-width, initial-scale=1.0') + ->appendHttpEquiv('X-UA-Compatible', 'IE=edge') + ?> + + + headLink(array('rel' => 'shortcut icon', 'type' => 'image/vnd.microsoft.icon', 'href' => $this->basePath() . '/img/favicon.ico')) + ->prependStylesheet($this->basePath() . '/css/style.css') + ->prependStylesheet($this->basePath() . '/css/bootstrap-theme.min.css') + ->prependStylesheet($this->basePath() . '/css/bootstrap.min.css') + ->prependStylesheet($this->basePath() . '/css/jquery.jqplot.min.css') + ?> + + + headScript() + ->prependFile($this->basePath() . '/js/bootstrap.min.js') + ->prependFile($this->basePath() . '/js/excanvas.min.js') + ->prependFile($this->basePath() . '/js/jqplot.pieRenderer.min.js') + ->prependFile($this->basePath() . '/js/jquery.jqplot.min.js') + ->prependFile($this->basePath() . '/js/jquery.min.js') + ->prependFile($this->basePath() . '/js/respond.min.js', 'text/javascript', array('conditional' => 'lt IE 9',)) + ->prependFile($this->basePath() . '/js/html5shiv.js', 'text/javascript', array('conditional' => 'lt IE 9',)) + ; ?> + + + + + + + + + +
+ + +

+ navigation('navigation') + ->breadcrumbs() + ->setMinDepth(0) + ->setPartial(array('partial/breadcrumb.phtml', 'Home')); + ?> +

+ + + content; ?> + +
+ +
+

© 2013 - Frank Bergkemper, translate('GNU Affero General Public License Version 3') ?>

+
+ +
+ + inlineScript() ?> + + + + + diff --git a/module/Application/view/partial/breadcrumb.phtml b/module/Application/view/partial/breadcrumb.phtml new file mode 100644 index 00000000..0ad34ab4 --- /dev/null +++ b/module/Application/view/partial/breadcrumb.phtml @@ -0,0 +1,24 @@ + + diff --git a/module/Application/view/partial/paginator.phtml b/module/Application/view/partial/paginator.phtml new file mode 100644 index 00000000..3156b7e1 --- /dev/null +++ b/module/Application/view/partial/paginator.phtml @@ -0,0 +1,61 @@ + +pageCount): ?> + +
+ +
    + + + previous)): ?> +
  • + previous +
  • + +
  • + previous +
  • + + + + first)): ?> +
  • + first +
  • + + + + pagesInRange as $page): ?> + current): ?> +
  • + +
  • + +
  • + +
  • + + + + + last)): ?> +
  • + last +
  • + + + + next)): ?> +
  • + next +
  • + +
  • + next +
  • + + +
+ +
+ + diff --git a/module/Client/Module.php b/module/Client/Module.php new file mode 100644 index 00000000..fdab17f5 --- /dev/null +++ b/module/Client/Module.php @@ -0,0 +1,52 @@ + array( + __DIR__ . '/autoload_classmap.php', + ), + 'Zend\Loader\StandardAutoloader' => array( + 'namespaces' => array( + __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__, + ), + ), + ); + } + + public function getConfig() + { + return include __DIR__ . '/config/module.config.php'; + } + + public function getServiceConfig() + { + return array( + 'factories' => array( + 'Client\Model\ClientTable' => function($sm) { + $tableGateway = $sm->get('ClientTableGateway'); + $table = new ClientTable($tableGateway); + return $table; + }, + 'ClientTableGateway' => function($sm) { + $dbAdapter = $sm->get('Zend\Db\Adapter\Adapter'); + $resultSetPrototype = new ResultSet(); + $resultSetPrototype->setArrayObjectPrototype(new Client()); + return new TableGateway('client', $dbAdapter, null, $resultSetPrototype); + }, + ), + ); + } + +} + diff --git a/module/Client/autoload_classmap.php b/module/Client/autoload_classmap.php new file mode 100644 index 00000000..d5be5de2 --- /dev/null +++ b/module/Client/autoload_classmap.php @@ -0,0 +1,3 @@ + array( + 'invokables' => array( + 'Client\Controller\Client' => 'Client\Controller\ClientController', + ), + ), + + 'router' => array( + 'routes' => array( + 'client' => array( + 'type' => 'segment', + 'options' => array( + 'route' => '/client[/][:action][/:id]', + 'constraints' => array( + 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', + 'id' => '[0-9]+', + ), + 'defaults' => array( + 'controller' => 'Client\Controller\Client', + 'action' => 'index', + ), + ), + + ), + ), + ), + + 'view_manager' => array( + 'template_path_stack' => array( + 'client' => __DIR__ . '/../view', + ), + ), + +); diff --git a/module/Client/src/Client/Controller/ClientController.php b/module/Client/src/Client/Controller/ClientController.php new file mode 100644 index 00000000..8488d0c0 --- /dev/null +++ b/module/Client/src/Client/Controller/ClientController.php @@ -0,0 +1,37 @@ + $this->getClientTable()->fetchAll(), + ) + ); + } + + public function detailsAction() + { + + } + + public function getClientTable() + { + if(!$this->clientTable) { + $sm = $this->getServiceLocator(); + $this->clientTable = $sm->get('Client\Model\ClientTable'); + } + return $this->clientTable; + } + +} + diff --git a/module/Client/src/Client/Model/Client.php b/module/Client/src/Client/Model/Client.php new file mode 100644 index 00000000..8c4d5a37 --- /dev/null +++ b/module/Client/src/Client/Model/Client.php @@ -0,0 +1,26 @@ +clientid = (!empty($data['clientid'])) ? $data['clientid'] : null; + $this->name = (!empty($data['name'])) ? $data['name'] : null; + $this->uname = (!empty($data['uname'])) ? $data['uname'] : null; + $this->autoprune = (!empty($data['autoprune'])) ? $data['autoprune'] : null; + $this->fileretention = (!empty($data['fileretention'])) ? $data['fileretention'] : null; + $this->jobretention = (!empty($data['jobretention'])) ? $data['jobretention'] : null; + } + +} + diff --git a/module/Client/src/Client/Model/ClientTable.php b/module/Client/src/Client/Model/ClientTable.php new file mode 100644 index 00000000..9f80cdbb --- /dev/null +++ b/module/Client/src/Client/Model/ClientTable.php @@ -0,0 +1,53 @@ +tableGateway = $tableGateway; + } + + public function fetchAll() + { + $resultSet = $this->tableGateway->select(); + return $resultSet; + } + + public function getClient($id) + { + $id = (int) $id; + $rowset = $this->tableGateway->select(array('id' => $id)); + $row = $rowset->current(); + if(!$row) { + throw new \Exception("Could not find row $id"); + } + return $row; + } + + public function getClientNum() + { + $select = new Select(); + $select->from('client'); + $resultSetPrototype = new ResultSet(); + $resultSetPrototype->setArrayObjectPrototype(new Client()); + $rowset = new DbSelect( + $select, + $this->tableGateway->getAdapter(), + $resultSetPrototype + ); + $num = $rowset->count(); + return $num; + } + +} + diff --git a/module/Client/view/client/client/details.phtml b/module/Client/view/client/client/details.phtml new file mode 100644 index 00000000..e69de29b diff --git a/module/Client/view/client/client/index.phtml b/module/Client/view/client/client/index.phtml new file mode 100644 index 00000000..086edf19 --- /dev/null +++ b/module/Client/view/client/client/index.phtml @@ -0,0 +1,34 @@ +headTitle($title); + +?> + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ClientNameVersionAutopruneFileretentionJobretention
escapeHtml($client->clientid); ?>escapeHtml($client->name); ?>escapeHtml($client->uname); ?>escapeHtml($client->autoprune); ?>escapeHtml($client->fileretention); ?>escapeHtml($client->jobretention); ?>
diff --git a/module/Dashboard/Module.php b/module/Dashboard/Module.php new file mode 100644 index 00000000..0a1992e8 --- /dev/null +++ b/module/Dashboard/Module.php @@ -0,0 +1,52 @@ + array( + __DIR__ . '/autoload_classmap.php', + ), + 'Zend\Loader\StandardAutoloader' => array( + 'namespaces' => array( + __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__, + ), + ), + ); + } + + public function getConfig() + { + return include __DIR__ . '/config/module.config.php'; + } + + public function getServiceConfig() + { + return array( + 'factories' => array( + 'Dashboard\Model\DashboardTable' => function($sm) { + $tableGateway = $sm->get('DashboardTableGateway'); + $table = new DashboardTable($tableGateway); + return $table; + }, + 'DashboardTableGateway' => function($sm) { + $dbAdapter = $sm->get('Zend\Db\Adapter\Adapter'); + $resultSetPrototype = new ResultSet(); + $resultSetPrototype->setArrayObjectPrototype(new Dashboard()); + return new TableGateway('dashboard', $dbAdapter, null, $resultSetPrototype); + }, + ), + ); + } + +} + diff --git a/module/Dashboard/autoload_classmap.php b/module/Dashboard/autoload_classmap.php new file mode 100644 index 00000000..d5be5de2 --- /dev/null +++ b/module/Dashboard/autoload_classmap.php @@ -0,0 +1,3 @@ + array( + 'invokables' => array( + 'Dashboard\Controller\Dashboard' => 'Dashboard\Controller\DashboardController', + ), + ), + + 'router' => array( + 'routes' => array( + 'dashboard' => array( + 'type' => 'segment', + 'options' => array( + 'route' => '/dashboard[/][:action][/:id]', + 'constraints' => array( + 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', + 'id' => '[0-9]+', + ), + 'defaults' => array( + 'controller' => 'Dashboard\Controller\Dashboard', + 'action' => 'index', + ), + ), + + ), + ), + ), + + 'view_manager' => array( + 'template_path_stack' => array( + 'dashboard' => __DIR__ . '/../view', + ), + ), + +); diff --git a/module/Dashboard/src/Dashboard/Controller/DashboardController.php b/module/Dashboard/src/Dashboard/Controller/DashboardController.php new file mode 100644 index 00000000..d3164354 --- /dev/null +++ b/module/Dashboard/src/Dashboard/Controller/DashboardController.php @@ -0,0 +1,104 @@ + $this->getJobTable()->getJobCountLast24HoursByStatus("C"), + 'jobsBlocked' => $this->getJobTable()->getJobCountLast24HoursByStatus("B"), + 'jobsRunning' => $this->getJobTable()->getJobCountLast24HoursByStatus("R"), + 'jobsTerminated' => $this->getJobTable()->getJobCountLast24HoursByStatus("T"), + 'jobsTerminatedWithErrors' => $this->getJobTable()->getJobCountLast24HoursByStatus("E"), + 'jobsWithNonFatalErrors' => $this->getJobTable()->getJobCountLast24HoursByStatus("e"), + 'jobsWithFatalErrors' => $this->getJobTable()->getJobCountLast24HoursByStatus("f"), + 'jobsCanceled' => $this->getJobTable()->getJobCountLast24HoursByStatus("A"), + 'jobsVerifyFoundDiff' => $this->getJobTable()->getJobCountLast24HoursByStatus("D"), + 'jobsWaitingForClient' => $this->getJobTable()->getJobCountLast24HoursByStatus("F"), + 'jobsWaitingForStorageDaemon' => $this->getJobTable()->getJobCountLast24HoursByStatus("S"), + 'jobsWaitingForNewMedia' => $this->getJobTable()->getJobCountLast24HoursByStatus("m"), + 'jobsWaitingForMediaMount' => $this->getJobTable()->getJobCountLast24HoursByStatus("M"), + 'jobsWaitingForStorageResource' => $this->getJobTable()->getJobCountLast24HoursByStatus("s"), + 'jobsWaitingForJobResource' => $this->getJobTable()->getJobCountLast24HoursByStatus("j"), + 'jobsWaitingForClientResource' => $this->getJobTable()->getJobCountLast24HoursByStatus("c"), + 'jobsWaitingOnMaximumJobs' => $this->getJobTable()->getJobCountLast24HoursByStatus("d"), + 'jobsWaitingOnStartTime' => $this->getJobTable()->getJobCountLast24HoursByStatus("t"), + 'jobsWaitingOnHigherPriorityJobs' => $this->getJobTable()->getJobCountLast24HoursByStatus("p"), + 'jobsSDdespoolingAttributes' => $this->getJobTable()->getJobCountLast24HoursByStatus("a"), + 'jobsBatchInsertFileRecords' => $this->getJobTable()->getJobCountLast24HoursByStatus("i"), + + 'clientNum' => $this->getClientTable()->getClientNum(), + 'poolNum' => $this->getPoolTable()->getPoolNum(), + 'volumeNum' => $this->getVolumeTable()->getVolumeNum(), + 'fileNum' => $this->getFileTable()->getFileNum(), + + ) + ); + } + + public function getJobTable() + { + if(!$this->jobTable) + { + $sm = $this->getServiceLocator(); + $this->jobTable = $sm->get('Job\Model\JobTable'); + } + return $this->jobTable; + } + + public function getClientTable() + { + if(!$this->clientTable) + { + $sm = $this->getServiceLocator(); + $this->clientTable = $sm->get('Client\Model\ClientTable'); + } + return $this->clientTable; + } + + public function getPoolTable() + { + if(!$this->poolTable) + { + $sm = $this->getServiceLocator(); + $this->poolTable = $sm->get('Pool\Model\PoolTable'); + } + return $this->poolTable; + } + + public function getVolumeTable() + { + if(!$this->volumeTable) + { + $sm = $this->getServiceLocator(); + $this->volumeTable = $sm->get('Volume\Model\VolumeTable'); + } + return $this->volumeTable; + } + + public function getFileTable() + { + if(!$this->fileTable) + { + $sm = $this->getServiceLocator(); + $this->fileTable = $sm->get('File\Model\FileTable'); + } + return $this->fileTable; + } + +} + diff --git a/module/Dashboard/src/Dashboard/Model/Dashboard.php b/module/Dashboard/src/Dashboard/Model/Dashboard.php new file mode 100644 index 00000000..bfdf9644 --- /dev/null +++ b/module/Dashboard/src/Dashboard/Model/Dashboard.php @@ -0,0 +1,16 @@ +dashboardid = (!empty($data['dashboardid'])) ? $data['dashboardid'] : null; + } + +} + diff --git a/module/Dashboard/src/Dashboard/Model/DashboardTable.php b/module/Dashboard/src/Dashboard/Model/DashboardTable.php new file mode 100644 index 00000000..4d80d8e1 --- /dev/null +++ b/module/Dashboard/src/Dashboard/Model/DashboardTable.php @@ -0,0 +1,35 @@ +tableGateway = $tableGateway; + } + + public function fetchAll() + { + $resultSet = $this->tableGateway->select(); + return $resultSet; + } + + public function getDashboard($id) + { + $id = (int) $id; + $rowset = $this->tableGateway->select(array('id' => $id)); + $row = $rowset->current(); + if(!$row) { + throw new \Exception("Could not find row $id"); + } + return $row; + } + +} + diff --git a/module/Dashboard/view/dashboard/dashboard/details.phtml b/module/Dashboard/view/dashboard/dashboard/details.phtml new file mode 100644 index 00000000..e69de29b diff --git a/module/Dashboard/view/dashboard/dashboard/index.phtml b/module/Dashboard/view/dashboard/dashboard/index.phtml new file mode 100644 index 00000000..e61ffa9f --- /dev/null +++ b/module/Dashboard/view/dashboard/dashboard/index.phtml @@ -0,0 +1,140 @@ +headTitle($title); + +?> + + + +
+ +
+ +
+
+

translate('Last 24 hours job statistic') ?>

+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + +
RunningjobsRunning; ?>
Completed successfuljobsTerminated; ?>
Terminated with errorsjobsTerminatedWithErrors; ?>
Non-fatal errorsjobsWithNonFatalErrors; ?>
Fatal errorsjobsWithFatalErrors; ?>
Canceled by userjobsCanceled; ?>
Verify found differencejobsVerifyFoundDiff; ?>
Waiting for clientjobsWaitingForClient; ?>
Waiting for storage daemonjobsWaitingForStorageDaemon; ?>
Waiting for new mediajobsWaitingForNewMedia; ?>
Waiting for media mountjobsWaitingForMediaMount; ?>
Waiting for storage resourcejobsWaitingForStorageResource; ?>
Waiting for job resourcejobsWaitingForJobResource; ?>
Waiting for client resourcejobsWaitingForClientResource; ?>
Waiting on maximum jobsjobsWaitingOnMaximumJobs; ?>
Waiting on start timejobsWaitingOnStartTime; ?>
Waiting on higher priority jobsjobsWaitingOnHigherPriorityJobs; ?>
SD despooling attributesjobsSDdespoolingAttributes; ?>
Doing batch insert file recordsjobsBatchInsertFileRecords; ?>
Created not yet runningjobsCreatedNotRunning; ?>
BlockedjobsBlocked; ?>
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+
+

translate('Catalog statistic') ?>

+
+ +
+ + + + + + + + + +
ClientsclientNum; ?>
FilesetsfilesetNum; ?>
PoolspoolNum; ?>
VolumesvolumeNum; ?>
Total JobsjobNum; ?>
Total filesfileNum; ?>
Total logslogNum; ?>
+ +
+ +
+ +
+ + +
\ No newline at end of file diff --git a/module/Director/Module.php b/module/Director/Module.php new file mode 100644 index 00000000..a5ab51a9 --- /dev/null +++ b/module/Director/Module.php @@ -0,0 +1,54 @@ + array( + __DIR__ . '/autoload_classmap.php', + ), + 'Zend\Loader\StandardAutoloader' => array( + 'namespaces' => array( + __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__, + ), + ), + ); + } + + public function getConfig() + { + return include __DIR__ . '/config/module.config.php'; + } + + public function getServiceConfig() + { + return array( + 'factories' => array( + 'Director\Model\DirectorTable' => function($sm) + { + $tableGateway = $sm->get('DirectorTableGateway'); + $table = new DirectorTable($tableGateway); + return $table; + }, + 'DirectorTableGateway' => function($sm) + { + $dbAdapter = $sm->get('Zend\Db\Adapter\Adapter'); + $resultSetPrototype = new ResultSet(); + $resultSetPrototype->setArrayObjectPrototype(new Director()); + return new TableGateway('director', $dbAdapter, null, $resultSetPrototype); + }, + ), + ); + } + +} + diff --git a/module/Director/autoload_classmap.php b/module/Director/autoload_classmap.php new file mode 100644 index 00000000..d864ec91 --- /dev/null +++ b/module/Director/autoload_classmap.php @@ -0,0 +1,4 @@ + array( + 'invokables' => array( + 'Director\Controller\Director' => 'Director\Controller\DirectorController', + ), + ), + + 'router' => array( + 'routes' => array( + 'director' => array( + 'type' => 'segment', + 'options' => array( + 'route' => '/director[/][:action][/:id]', + 'constraints' => array( + 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', + 'id' => '[0-9]+', + ), + 'defaults' => array( + 'controller' => 'Director\Controller\Director', + 'action' => 'index', + ), + ), + ), + ), + ), + + 'view_manager' => array( + 'template_path_stack' => array( + 'director' => __DIR__ . '/../view', + ), + ), + +); diff --git a/module/Director/src/Director/Controller/DirectorController.php b/module/Director/src/Director/Controller/DirectorController.php new file mode 100644 index 00000000..00b58ef6 --- /dev/null +++ b/module/Director/src/Director/Controller/DirectorController.php @@ -0,0 +1,50 @@ + $this->getDirectorStatus(), + )); + } + + public function getDirectorStatus() + { + if(!$this->directorStatus) + { + $descriptorspec = array( + 0 => array("pipe", "r"), + 1 => array("pipe", "w"), + 2 => array("pipe", "r") + ); + $cwd = '/usr/sbin'; + $env = NULL; + + $process = proc_open('bconsole', $descriptorspec, $pipes, $cwd, $env); + + if(!is_resource($process)) + throw new \Exception("proc_open error"); + + if(is_resource($process)) + { + fwrite($pipes[0], 'status director'); + fclose($pipes[0]); + while(!feof($pipes[1])) { + array_push($this->directorStatus, fread($pipes[1],8192)); + } + fclose($pipes[1]); + } + $return_value = proc_close($process); + } + return $this->directorStatus; + } +} + diff --git a/module/Director/src/Director/Model/Director.php b/module/Director/src/Director/Model/Director.php new file mode 100644 index 00000000..f55a3840 --- /dev/null +++ b/module/Director/src/Director/Model/Director.php @@ -0,0 +1,10 @@ +tableGateway = $tableGateway; + } + + public function fetchAll() + { + $resultSet = $this->tableGateway->select(); + return $resultSet; + } +*/ + + public function __construct() + { + } + + public function getStatus() + { + $status = exec('ls -al'); + return $status; + } + +} + diff --git a/module/Director/view/director/director/index.phtml b/module/Director/view/director/director/index.phtml new file mode 100644 index 00000000..e066fbea --- /dev/null +++ b/module/Director/view/director/director/index.phtml @@ -0,0 +1,14 @@ +headTitle($title); +?> + +
+
+directorStatus as $row) {
+    echo $row ."
"; + } +?> +
+
\ No newline at end of file diff --git a/module/File/Module.php b/module/File/Module.php new file mode 100644 index 00000000..8b30a9a7 --- /dev/null +++ b/module/File/Module.php @@ -0,0 +1,52 @@ + array( + __DIR__ . '/autoload_classmap.php', + ), + 'Zend\Loader\StandardAutoloader' => array( + 'namespaces' => array( + __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__, + ), + ), + ); + } + + public function getConfig() + { + return include __DIR__ . '/config/module.config.php'; + } + + public function getServiceConfig() + { + return array( + 'factories' => array( + 'File\Model\FileTable' => function($sm) { + $tableGateway = $sm->get('FileTableGateway'); + $table = new FileTable($tableGateway); + return $table; + }, + 'FileTableGateway' => function($sm) { + $dbAdapter = $sm->get('Zend\Db\Adapter\Adapter'); + $resultSetPrototype = new ResultSet(); + $resultSetPrototype->setArrayObjectPrototype(new File()); + return new TableGateway('file', $dbAdapter, null, $resultSetPrototype); + }, + ), + ); + } + +} + diff --git a/module/File/autoload_classmap.php b/module/File/autoload_classmap.php new file mode 100644 index 00000000..d5be5de2 --- /dev/null +++ b/module/File/autoload_classmap.php @@ -0,0 +1,3 @@ + array( + 'invokables' => array( + 'File\Controller\File' => 'File\Controller\FileController', + ), + ), + + 'router' => array( + 'routes' => array( + 'file' => array( + 'type' => 'segment', + 'options' => array( + 'route' => '/file[/][:action][/:id]', + 'constraints' => array( + 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', + 'id' => '[0-9]+', + ), + 'defaults' => array( + 'controller' => 'File\Controller\File', + 'action' => 'index', + ), + ), + + ), + ), + ), + + 'view_manager' => array( + 'template_path_stack' => array( + 'file' => __DIR__ . '/../view', + ), + ), + +); diff --git a/module/File/src/File/Controller/FileController.php b/module/File/src/File/Controller/FileController.php new file mode 100644 index 00000000..c4b027ac --- /dev/null +++ b/module/File/src/File/Controller/FileController.php @@ -0,0 +1,52 @@ +getFileTable()->fetchAll(true); + $paginator->setCurrentPageNumber( (int) $this->params()->fromQuery('page', 1) ); + $paginator->setItemCountPerPage(20); + + return new ViewModel( array('paginator' => $paginator) ); + } + + public function revisionsAction() + { + + } + + public function jobidAction() + { + $id = (int) $this->params()->fromRoute('id', 0); + + if (!$id) { + return $this->redirect()->toRoute('job'); + } + + $paginator = $this->getFileTable()->getFileByJobId($id); + $paginator->setCurrentPageNumber( (int) $this->params()->fromQuery('page', 1) ); + $paginator->setItemCountPerPage(20); + + return new ViewModel( array('paginator' => $paginator) ); + } + + public function getFileTable() + { + if(!$this->fileTable) { + $sm = $this->getServiceLocator(); + $this->fileTable = $sm->get('File\Model\FileTable'); + } + return $this->fileTable; + } + +} + diff --git a/module/File/src/File/Model/File.php b/module/File/src/File/Model/File.php new file mode 100644 index 00000000..c30c0273 --- /dev/null +++ b/module/File/src/File/Model/File.php @@ -0,0 +1,24 @@ +fileid = (!empty($data['fileid'])) ? $data['fileid'] : null; + $this->jobid = (!empty($data['jobid'])) ? $data['jobid'] : null; + $this->pathid = (!empty($data['pathid'])) ? $data['pathid'] : null; + $this->filenameid = (!empty($data['filenameid'])) ? $data['filenameid'] : null; + $this->name = (!empty($data['name'])) ? $data['name'] : null; + } + +} + diff --git a/module/File/src/File/Model/FileTable.php b/module/File/src/File/Model/FileTable.php new file mode 100644 index 00000000..78c1ac68 --- /dev/null +++ b/module/File/src/File/Model/FileTable.php @@ -0,0 +1,89 @@ +tableGateway = $tableGateway; + } + + public function fetchAll($paginated=false) + { + if($paginated) { + $select = new Select('file'); + $select->order('fileid DESC'); + $resultSetPrototype = new ResultSet(); + $resultSetPrototype->setArrayObjectPrototype(new File()); + $paginatorAdapter = new DbSelect( + $select, + $this->tableGateway->getAdapter(), + $resultSetPrototype + ); + $paginator = new Paginator($paginatorAdapter); + return $paginator; + } + $resultSet = $this->tableGateway->select(); + return $resultSet; + } + + public function getFile($id) + { + $id = (int) $id; + $rowset = $this->tableGateway->select(array('fileid' => $id)); + $row = $rowset->current(); + if(!$row) { + throw new \Exception("Could not find row $id"); + } + return $row; + } + + public function getFileByJobId($id) + { + $paginated = true; + $jobid = (int) $id; + if($paginated) { + $select = new Select(); + $select->from('file')->join('filename', 'file.filenameid = filename.filenameid'); + $select->where('file.jobid = ' . $jobid); + $resultSetPrototype = new ResultSet(); + $resultSetPrototype->setArrayObjectPrototype(new File()); + $paginatorAdapter = new DbSelect( + $select, + $this->tableGateway->getAdapter(), + $resultSetPrototype + ); + $paginator = new Paginator($paginatorAdapter); + return $paginator; + } + $resultSet = $this->tableGateway->select(); + return $resultSet; + } + + public function getFileNum() + { + $select = new Select(); + $select->from('file'); + $resultSetPrototype = new ResultSet(); + $resultSetPrototype->setArrayObjectPrototype(new File()); + $rowset = new DbSelect( + $select, + $this->tableGateway->getAdapter(), + $resultSetPrototype + ); + $num = $rowset->count(); + return $num; + } + +} + diff --git a/module/File/view/file/file/index.phtml b/module/File/view/file/file/index.phtml new file mode 100644 index 00000000..25bced37 --- /dev/null +++ b/module/File/view/file/file/index.phtml @@ -0,0 +1,41 @@ +headTitle($title); + +?> + + + + + + + + + + +paginator as $file) : ?> + + + + + + + + + + + + +
File IDJob IDPath IDFilename ID
escapeHtml($file->fileid); ?>escapeHtml($file->jobid); ?>escapeHtml($file->pathid); ?>escapeHtml($file->filenameid); ?>
+ +paginationControl( + $this->paginator, + 'Elastic', + array('partial/paginator.phtml', 'File'), + array('route' => 'file') + ); + +?> \ No newline at end of file diff --git a/module/File/view/file/file/jobid.phtml b/module/File/view/file/file/jobid.phtml new file mode 100644 index 00000000..33d8fcfc --- /dev/null +++ b/module/File/view/file/file/jobid.phtml @@ -0,0 +1,47 @@ +headTitle($title); + +?> + + + + + + + + + + + + + +paginator as $file) : ?> + + + + + + + + + + + + + + + +
File IDJob IDPath IDFilename IDFilename
escapeHtml($file->fileid); ?>escapeHtml($file->jobid); ?>escapeHtml($file->pathid); ?>escapeHtml($file->filenameid); ?>escapeHtml($file->name); ?>Show revisionsRestore last revision
+ +paginationControl( + $this->paginator, + 'Elastic', + array('partial/paginator.phtml', 'File'), + array('route' => $this->route) + ); + +?> \ No newline at end of file diff --git a/module/File/view/file/file/revisions.phtml b/module/File/view/file/file/revisions.phtml new file mode 100644 index 00000000..a8143662 --- /dev/null +++ b/module/File/view/file/file/revisions.phtml @@ -0,0 +1 @@ + array( + 'Job\Model\JobTable' => function($sm) { + $tableGateway = $sm->get('JobTableGateway'); + $table = new JobTable($tableGateway); + return $table; + }, + 'JobTableGateway' => function($sm) { + $dbAdapter = $sm->get('Zend\Db\Adapter\Adapter'); + $resultSetPrototype = new ResultSet(); + $resultSetPrototype->setArrayObjectPrototype(new Job()); + return new TableGateway('job', $dbAdapter, null, $resultSetPrototype); + }, + ), + ); + } + + public function getAutoloaderConfig() + { + return array( + 'Zend\Loader\ClassMapAutoloader' => array( + __DIR__ . '/autoload_classmap.php', + ), + 'Zend\Loader\StandardAutoloader' => array( + 'namespaces' => array( + __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__, + ), + ), + ); + } + + public function getConfig() + { + return include __DIR__ . '/config/module.config.php'; + } + +} diff --git a/module/Job/autoload_classmap.php b/module/Job/autoload_classmap.php new file mode 100644 index 00000000..d5be5de2 --- /dev/null +++ b/module/Job/autoload_classmap.php @@ -0,0 +1,3 @@ + array( + 'invokables' => array( + 'Job\Controller\Job' => 'Job\Controller\JobController', + ), + ), + + 'router' => array( + 'routes' => array( + 'job' => array( + 'type' => 'segment', + 'options' => array( + 'route' => '/job[/][:action][/:id]', + 'constraints' => array( + 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', + 'id' => '[0-9]+', + ), + 'defaults' => array( + 'controller' => 'Job\Controller\Job', + 'action' => 'index', + ), + ), + ), + ), + ), + + 'view_manager' => array( + 'template_path_stack' => array( + 'job' => __DIR__ . '/../view', + ), + ), + +); + diff --git a/module/Job/src/Job/Controller/JobController.php b/module/Job/src/Job/Controller/JobController.php new file mode 100644 index 00000000..ba686683 --- /dev/null +++ b/module/Job/src/Job/Controller/JobController.php @@ -0,0 +1,46 @@ +getJobTable()->fetchAll(true); + $paginator->setCurrentPageNumber( (int) $this->params()->fromQuery('page', 1) ); + $paginator->setItemCountPerPage(15); + + return new ViewModel(array('paginator' => $paginator)); + + } + + public function detailsAction() + { + $id = (int) $this->params()->fromRoute('id', 0); + if (!$id) { + return $this->redirect()->toRoute('job'); + } + + return new ViewModel(array( + 'job' => $this->getJobTable()->getJob($id), + )); + } + + public function getJobTable() + { + if(!$this->jobTable) { + $sm = $this->getServiceLocator(); + $this->jobTable = $sm->get('Job\Model\JobTable'); + } + return $this->jobTable; + } + +} + diff --git a/module/Job/src/Job/Model/Job.php b/module/Job/src/Job/Model/Job.php new file mode 100644 index 00000000..93643f5d --- /dev/null +++ b/module/Job/src/Job/Model/Job.php @@ -0,0 +1,63 @@ +jobid = (!empty($data['jobid'])) ? $data['jobid'] : null; + $this->job = (!empty($data['job'])) ? $data['job'] : null; + $this->jobname = (!empty($data['name'])) ? $data['name'] : null; + $this->type = (!empty($data['type'])) ? $data['type'] : null; + $this->level = (!empty($data['level'])) ? $data['level'] : null; + $this->clientid = (!empty($data['clientid'])) ? $data['clientid'] : null; + $this->jobstatus = (!empty($data['jobstatus'])) ? $data['jobstatus'] : null; + $this->schedtime = (!empty($data['schedtime'])) ? $data['schedtime'] : null; + $this->starttime = (!empty($data['starttime'])) ? $data['starttime'] : null; + $this->endtime = (!empty($data['endtime'])) ? $data['endtime'] : null; + $this->realendtime = (!empty($data['realendtime'])) ? $data['realendtime'] : null; + $this->jobdate = (!empty($data['jobdate'])) ? $data['jobdate'] : null; + $this->volsessionid = (!empty($data['volsessionid'])) ? $data['volsessionid'] : null; + $this->volsessiontime = (!empty($data['volsessiontime'])) ? $data['volsessiontime'] : null; + $this->jobfiles = (!empty($data['jobfiles'])) ? $data['jobfiles'] : null; + $this->jobbytes = (!empty($data['jobbytes'])) ? $data['jobbytes'] : null; + $this->readbytes = (!empty($data['readbytes'])) ? $data['readbytes'] : null; + $this->joberrors = (!empty($data['joberrors'])) ? $data['joberrors'] : null; + $this->poolid = (!empty($data['poolid'])) ? $data['poolid'] : null; + $this->filesetid = (!empty($data['filesetid'])) ? $data['filesetid'] : null; + $this->clientname = (!empty($data['clientname'])) ? $data['clientname'] : null; + } + +} + diff --git a/module/Job/src/Job/Model/JobTable.php b/module/Job/src/Job/Model/JobTable.php new file mode 100644 index 00000000..cd828fe6 --- /dev/null +++ b/module/Job/src/Job/Model/JobTable.php @@ -0,0 +1,158 @@ +tableGateway = $tableGateway; + } + + public function fetchAll($paginated=false) + { + if($paginated) { + $select = new Select(); + $select->from('job'); + $select->join('client', 'job.clientid = client.clientid', array('clientname' => 'name')); + $select->order('job.jobid DESC'); + $resultSetPrototype = new ResultSet(); + $resultSetPrototype->setArrayObjectPrototype(new Job()); + $paginatorAdapter = new DbSelect( + $select, + $this->tableGateway->getAdapter(), + $resultSetPrototype + ); + $paginator = new Paginator($paginatorAdapter); + return $paginator; + } + + $resultSet = $this->tableGateway->select(); + return $resultSet; + } + + public function getJob($jobid) + { + $jobid = (int) $jobid; + $rowset = $this->tableGateway->select(array('jobid' => $jobid)); + $row = $rowset->current(); + if(!$row) { + throw new \Exception("Could not find row $jobid"); + } + return $row; + } + + public function getJobCountLast24HoursByStatus($status) + { + $current_time = date("Y-m-d H:i:s",time()); + $back24h_time = date("Y-m-d H:i:s",time() - (60*60*23)); + + $select = new Select(); + $select->from('job'); + + if($status == "C") + { + $select->where("jobstatus = 'C' AND starttime >= '" . $back24h_time . "' AND endtime >= '" . $back24h_time . "'"); + } + if($status == "B") + { + $select->where("jobstatus = 'B' AND starttime >= '" . $back24h_time . "' AND endtime >= '" . $back24h_time . "'"); + } + if($status == "T") + { + $select->where("jobstatus = 'T' AND starttime >= '" . $back24h_time . "' AND endtime >= '" . $back24h_time . "'"); + } + if($status == "R") + { + $select->where("jobstatus = 'R' AND starttime >= '" . $back24h_time . "' AND endtime >= '" . $back24h_time . "'"); + } + if($status == "E") + { + $select->where("jobstatus = 'E' AND starttime >= '" . $back24h_time . "' AND endtime >= '" . $back24h_time . "'"); + } + if($status == "e") + { + $select->where("jobstatus = 'e' AND starttime >= '" . $back24h_time . "' AND endtime >= '" . $back24h_time . "'"); + } + if($status == "f") + { + $select->where("jobstatus = 'f' AND starttime >= '" . $back24h_time . "' AND endtime >= '" . $back24h_time . "'"); + } + if($status == "A") + { + $select->where("jobstatus = 'A' AND starttime >= '" . $back24h_time . "' AND endtime >= '" . $back24h_time . "'"); + } + if($status == "D") + { + $select->where("jobstatus = 'D' AND starttime >= '" . $back24h_time . "' AND endtime >= '" . $back24h_time . "'"); + } + if($status == "F") + { + $select->where("jobstatus = 'F' AND starttime >= '" . $back24h_time . "' AND endtime >= '" . $back24h_time . "'"); + } + if($status == "S") + { + $select->where("jobstatus = 'S' AND starttime >= '" . $back24h_time . "' AND endtime >= '" . $back24h_time . "'"); + } + if($status == "m") + { + $select->where("jobstatus = 'm' AND starttime >= '" . $back24h_time . "' AND endtime >= '" . $back24h_time . "'"); + } + if($status == "M") + { + $select->where("jobstatus = 'M' AND starttime >= '" . $back24h_time . "' AND endtime >= '" . $back24h_time . "'"); + } + if($status == "s") + { + $select->where("jobstatus = 's' AND starttime >= '" . $back24h_time . "' AND endtime >= '" . $back24h_time . "'"); + } + if($status == "j") + { + $select->where("jobstatus = 'j' AND starttime >= '" . $back24h_time . "' AND endtime >= '" . $back24h_time . "'"); + } + if($status == "c") + { + $select->where("jobstatus = 'c' AND starttime >= '" . $back24h_time . "' AND endtime >= '" . $back24h_time . "'"); + } + if($status == "d") + { + $select->where("jobstatus = 'd' AND starttime >= '" . $back24h_time . "' AND endtime >= '" . $back24h_time . "'"); + } + if($status == "t") + { + $select->where("jobstatus = 't' AND starttime >= '" . $back24h_time . "' AND endtime >= '" . $back24h_time . "'"); + } + if($status == "p") + { + $select->where("jobstatus = 'p' AND starttime >= '" . $back24h_time . "' AND endtime >= '" . $back24h_time . "'"); + } + if($status == "a") + { + $select->where("jobstatus = 'a' AND starttime >= '" . $back24h_time . "' AND endtime >= '" . $back24h_time . "'"); + } + if($status == "i") + { + $select->where("jobstatus = 'i' AND starttime >= '" . $back24h_time . "' AND endtime >= '" . $back24h_time . "'"); + } + + $resultSetPrototype = new ResultSet(); + $resultSetPrototype->setArrayObjectPrototype(new Job()); + $rowset = new DbSelect( + $select, + $this->tableGateway->getAdapter(), + $resultSetPrototype + ); + $num = $rowset->count(); + + return $num; + } + +} diff --git a/module/Job/test/Bootstrap.php b/module/Job/test/Bootstrap.php new file mode 100644 index 00000000..8fd81304 --- /dev/null +++ b/module/Job/test/Bootstrap.php @@ -0,0 +1,107 @@ + array('module_paths' => $zf2ModulePaths,), + 'modules' => array('Job') + ); + + $serviceManager = new ServiceManager(new ServiceManagerConfig()); + $serviceManager->setService('ApplicationConfig', $config); + $serviceManager->get('ModuleManager')->loadModules(); + static::$serviceManager = $serviceManager; + } + + public static function chroot() + { + $rootPath = dirname(static::findParentPath('module')); + chdir($rootPath); + } + + public static function getServiceManager() + { + return static::$serviceManager; + } + + protected static function initAutoloader() + { + $vendorPath = static::findParentPath('vendor'); + + $zf2Path = getenv('ZF2_PATH'); + + if (!$zf2Path) { + if (defined('ZF2_PATH')) { + $zf2Path = ZF2_PATH; + } + elseif (is_dir($vendorPath . '/ZF2/library')) { + $zf2Path = $vendorPath . '/ZF2/library'; + } + elseif (is_dir($vendorPath . '/zendframework/zendframework/library')) { + $zf2Path = $vendorPath . '/zendframework/zendframework/library'; + } + } + + if (!$zf2Path) { + throw new RuntimeException('Unable to load ZF2. Run `php composer.phar install` or' . ' define a ZF2_PATH environment variable.'); + } + + if (file_exists($vendorPath . '/autoload.php')) { + include $vendorPath . '/autoload.php'; + } + + include $zf2Path . '/Zend/Loader/AutoloaderFactory.php'; + + AutoloaderFactory::factory(array( + 'Zend\Loader\StandardAutoloader' => array( + 'autoregister_zf' => true, + 'namespaces' => array( + __NAMESPACE__ => __DIR__ . '/' . __NAMESPACE__, + ), + ), + )); + } + + protected static function findParentPath($path) + { + $dir = __DIR__; + $previousDir = '.'; + while (!is_dir($dir . '/' . $path)) { + $dir = dirname($dir); + if ($previousDir === $dir) + return false; + $previousDir = $dir; + } + return $dir . '/' . $path; + } + +} + +Bootstrap::init(); +Bootstrap::chroot(); + diff --git a/module/Job/test/JobTest/Controller/IndexControllerTest.php b/module/Job/test/JobTest/Controller/IndexControllerTest.php new file mode 100644 index 00000000..c992b2a0 --- /dev/null +++ b/module/Job/test/JobTest/Controller/IndexControllerTest.php @@ -0,0 +1,29 @@ +setApplicationConfig( + include '/srv/www/htdocs/barbossa/config/application.config.php' + ); + } + + public function testIndexActionCanBeAccessed() + { + $this->dispatch('/job'); + $this->assertResponseStatusCode(200); + $this->assertModuleName('Job'); + $this->assertControllerName('Job\Controller\Job'); + $this->assertControllerClass('JobController'); + $this->assertMatchedRouteName('job'); + } + +} diff --git a/module/Job/test/JobTest/Model/JobTableTest.php b/module/Job/test/JobTest/Model/JobTableTest.php new file mode 100644 index 00000000..b275754e --- /dev/null +++ b/module/Job/test/JobTest/Model/JobTableTest.php @@ -0,0 +1,35 @@ +getMock( + 'Zend\Db\TableGateway\TableGateway', + array('select'), + array(), + '', + false + ); + + $mockTableGateway->expects($this->once()) + ->method('select') + ->with() + ->will($this->returnValue($resultSet)); + + $jobTable = new JobTable($mockTableGateway); + + $this->assertSame($resultSet, $jobTable->fetchAll()); + + } + +} diff --git a/module/Job/test/phpunit.xml b/module/Job/test/phpunit.xml new file mode 100644 index 00000000..32424545 --- /dev/null +++ b/module/Job/test/phpunit.xml @@ -0,0 +1,9 @@ + + + + + + ./JobTest + + + diff --git a/module/Job/view/job/job/details.phtml b/module/Job/view/job/job/details.phtml new file mode 100644 index 00000000..4f8f5e70 --- /dev/null +++ b/module/Job/view/job/job/details.phtml @@ -0,0 +1,65 @@ +headTitle($title); + +?> + +

Job escapeHtml($job->jobid); ?> details

+ +
+ +
+ +
+ +
+

General

+
+ +
+ + + + + + + + + + + + + + + + +
JobescapeHtml($job->jobid); ?>
NameescapeHtml($job->jobname); ?>
ClientescapeHtml($job->clientname); ?>
TypeprintJobType($job->type); ?>
LevelprintJobLevel($job->level); ?>
Scheduled startprintDate($job->schedtime, 'long'); ?>
Real startprintDate($job->starttime, 'long'); ?>
EndprintDate($job->endtime, 'long'); ?>
FilesescapeHtml($job->jobfiles); ?>
BytesprintBytes($job->jobbytes); ?>
PoolescapeHtml($job->poolid); ?>
FilesetescapeHtml($job->filesetid); ?>
ErrorsescapeHtml($job->joberrors); ?>
StatusprintJobStatus($job->jobstatus); ?>
+ +
+ +
+ +
+ +
+ +
+ +
+

Log

+
+ +
+ + + +
+ +
+ +
+ + + +
diff --git a/module/Job/view/job/job/index.phtml b/module/Job/view/job/job/index.phtml new file mode 100644 index 00000000..be6713cf --- /dev/null +++ b/module/Job/view/job/job/index.phtml @@ -0,0 +1,54 @@ +headTitle($title); + +?> + + + + + + + + + + + + + + + + + +paginator as $job) : ?> + + + + + + + + + + + + + + + + + + +
JobNameClientTypeLevelStartEndDurationStatusLog
escapeHtml($job->jobid); ?>escapeHtml($job->jobname); ?>escapeHtml($job->clientname); ?>printJobType($job->type); ?>printJobLevel($job->level); ?>escapeHtml($job->starttime); ?>escapeHtml($job->endtime); ?>printJobDuration($job->starttime, $job->endtime); ?>printJobStatus($job->jobstatus); ?>View
+ +paginationControl( + $this->paginator, + 'Elastic', + array('partial/paginator.phtml', 'Job'), + array('route' => 'job') + ); + +?> diff --git a/module/Log/Module.php b/module/Log/Module.php new file mode 100644 index 00000000..32c8f1fa --- /dev/null +++ b/module/Log/Module.php @@ -0,0 +1,51 @@ + array( + 'Log\Model\LogTable' => function($sm) { + $tableGateway = $sm->get('LogTableGateway'); + $table = new LogTable($tableGateway); + return $table; + }, + 'LogTableGateway' => function($sm) { + $dbAdapter = $sm->get('Zend\Db\Adapter\Adapter'); + $resultSetPrototype = new ResultSet(); + $resultSetPrototype->setArrayObjectPrototype(new Log()); + return new TableGateway('log', $dbAdapter, null, $resultSetPrototype); + }, + ), + ); + } + + public function getAutoloaderConfig() + { + return array( + 'Zend\Loader\ClassMapAutoloader' => array( + __DIR__ . '/autoload_classmap.php', + ), + 'Zend\Loader\StandardAutoloader' => array( + 'namespaces' => array( + __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__, + ), + ), + ); + } + + public function getConfig() + { + return include __DIR__ . '/config/module.config.php'; + } + +} diff --git a/module/Log/autoload_classmap.php b/module/Log/autoload_classmap.php new file mode 100644 index 00000000..d5be5de2 --- /dev/null +++ b/module/Log/autoload_classmap.php @@ -0,0 +1,3 @@ + array( + 'invokables' => array( + 'Log\Controller\Log' => 'Log\Controller\LogController', + ), + ), + + 'router' => array( + 'routes' => array( + 'log' => array( + 'type' => 'segment', + 'options' => array( + 'route' => '/log[/][:action][/:id]', + 'constraints' => array( + 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', + 'id' => '[0-9]+', + ), + 'defaults' => array( + 'controller' => 'Log\Controller\Log', + 'action' => 'index', + ), + ), + ), + ), + ), + + 'view_manager' => array( + 'template_path_stack' => array( + 'log' => __DIR__ . '/../view', + ), + ), + +); + diff --git a/module/Log/src/Log/Controller/LogController.php b/module/Log/src/Log/Controller/LogController.php new file mode 100644 index 00000000..b66ca93a --- /dev/null +++ b/module/Log/src/Log/Controller/LogController.php @@ -0,0 +1,46 @@ +getLogTable()->fetchAll(true); + $paginator->setCurrentPageNumber( (int) $this->params()->fromQuery('page', 1) ); + $paginator->setItemCountPerPage(5); + + return new ViewModel(array('paginator' => $paginator)); + + } + + public function detailsAction() + { + $id = (int) $this->params()->fromRoute('id', 0); + if (!$id) { + return $this->redirect()->toRoute('log'); + } + + return new ViewModel(array( + 'log' => $this->getLogTable()->getLog($id), + )); + } + + public function getLogTable() + { + if(!$this->logTable) { + $sm = $this->getServiceLocator(); + $this->logTable = $sm->get('Log\Model\LogTable'); + } + return $this->logTable; + } + +} + diff --git a/module/Log/src/Log/Model/Log.php b/module/Log/src/Log/Model/Log.php new file mode 100644 index 00000000..18339498 --- /dev/null +++ b/module/Log/src/Log/Model/Log.php @@ -0,0 +1,22 @@ +logid = (!empty($data['logid'])) ? $data['logid'] : null; + $this->jobid = (!empty($data['jobid'])) ? $data['jobid'] : null; + $this->time = (!empty($data['time'])) ? $data['time'] : null; + $this->logtext = (!empty($data['logtext'])) ? $data['logtext'] : null; + } + +} + diff --git a/module/Log/src/Log/Model/LogTable.php b/module/Log/src/Log/Model/LogTable.php new file mode 100644 index 00000000..75b28927 --- /dev/null +++ b/module/Log/src/Log/Model/LogTable.php @@ -0,0 +1,51 @@ +tableGateway = $tableGateway; + } + + public function fetchAll($paginated=false) + { + if($paginated) { + $select = new Select('log'); + $select->order('logid DESC'); + $resultSetPrototype = new ResultSet(); + $resultSetPrototype->setArrayObjectPrototype(new Log()); + $paginatorAdapter = new DbSelect( + $select, + $this->tableGateway->getAdapter(), + $resultSetPrototype + ); + $paginator = new Paginator($paginatorAdapter); + return $paginator; + } + + $resultSet = $this->tableGateway->select(); + return $resultSet; + } + + public function getLog($logid) + { + $logid = (int) $logid; + $rowset = $this->tableGateway->select(array('logid' => $logid)); + $row = $rowset->current(); + if(!$row) { + throw new \Exception("Could not find row $logid"); + } + return $row; + } + +} diff --git a/module/Log/view/log/log/details.phtml b/module/Log/view/log/log/details.phtml new file mode 100644 index 00000000..3f796133 --- /dev/null +++ b/module/Log/view/log/log/details.phtml @@ -0,0 +1,36 @@ +headTitle($title); + +?> + +
+ +
+

Log escapeHtml($log->logid); ?> Details

+
+ +
+ + + + + + + + + + + + + + + + + + +
Log IDescapeHtml($log->logid); ?>
Job IDescapeHtml($log->jobid); ?>
TimeescapeHtml($log->time); ?>
TextescapeHtml($log->logtext); ?>
+
+ +
diff --git a/module/Log/view/log/log/index.phtml b/module/Log/view/log/log/index.phtml new file mode 100644 index 00000000..32bcf30c --- /dev/null +++ b/module/Log/view/log/log/index.phtml @@ -0,0 +1,41 @@ +headTitle($title); + +?> + + + + + + + + + + +paginator as $log) : ?> + + + + + + + + + + + + +
Log IDJob IDTimeText
escapeHtml($log->logid); ?>escapeHtml($log->jobid); ?>escapeHtml($log->time); ?>escapeHtml($log->logtext); ?>
+ +paginationControl( + $this->paginator, + 'Elastic', + array('partial/paginator.phtml', 'Log'), + array('route' => 'log') + ); + +?> diff --git a/module/Pool/Module.php b/module/Pool/Module.php new file mode 100644 index 00000000..0803f807 --- /dev/null +++ b/module/Pool/Module.php @@ -0,0 +1,52 @@ + array( + __DIR__ . '/autoload_classmap.php', + ), + 'Zend\Loader\StandardAutoloader' => array( + 'namespaces' => array( + __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__, + ), + ), + ); + } + + public function getConfig() + { + return include __DIR__ . '/config/module.config.php'; + } + + public function getServiceConfig() + { + return array( + 'factories' => array( + 'Pool\Model\PoolTable' => function($sm) { + $tableGateway = $sm->get('PoolTableGateway'); + $table = new PoolTable($tableGateway); + return $table; + }, + 'PoolTableGateway' => function($sm) { + $dbAdapter = $sm->get('Zend\Db\Adapter\Adapter'); + $resultSetPrototype = new ResultSet(); + $resultSetPrototype->setArrayObjectPrototype(new Pool()); + return new TableGateway('pool', $dbAdapter, null, $resultSetPrototype); + }, + ), + ); + } + +} + diff --git a/module/Pool/autoload_classmap.php b/module/Pool/autoload_classmap.php new file mode 100644 index 00000000..d5be5de2 --- /dev/null +++ b/module/Pool/autoload_classmap.php @@ -0,0 +1,3 @@ + array( + 'invokables' => array( + 'Pool\Controller\Pool' => 'Pool\Controller\PoolController', + ), + ), + + 'router' => array( + 'routes' => array( + 'pool' => array( + 'type' => 'segment', + 'options' => array( + 'route' => '/pool[/][:action][/:id]', + 'constraints' => array( + 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', + 'id' => '[0-9]+', + ), + 'defaults' => array( + 'controller' => 'Pool\Controller\Pool', + 'action' => 'index', + ), + ), + + ), + ), + ), + + 'view_manager' => array( + 'template_path_stack' => array( + 'pool' => __DIR__ . '/../view', + ), + ), + +); diff --git a/module/Pool/src/Pool/Controller/PoolController.php b/module/Pool/src/Pool/Controller/PoolController.php new file mode 100644 index 00000000..88d45701 --- /dev/null +++ b/module/Pool/src/Pool/Controller/PoolController.php @@ -0,0 +1,37 @@ + $this->getPoolTable()->fetchAll(), + ) + ); + } + + public function detailsAction() + { + + } + + public function getPoolTable() + { + if(!$this->poolTable) { + $sm = $this->getServiceLocator(); + $this->poolTable = $sm->get('Pool\Model\PoolTable'); + } + return $this->poolTable; + } + +} + diff --git a/module/Pool/src/Pool/Model/Pool.php b/module/Pool/src/Pool/Model/Pool.php new file mode 100644 index 00000000..7719560d --- /dev/null +++ b/module/Pool/src/Pool/Model/Pool.php @@ -0,0 +1,20 @@ +poolid = (!empty($data['poolid'])) ? $data['poolid'] : null; + $this->name = (!empty($data['name'])) ? $data['name'] : null; + $this->pooltype = (!empty($data['pooltype'])) ? $data['pooltype'] : null; + } + +} + diff --git a/module/Pool/src/Pool/Model/PoolTable.php b/module/Pool/src/Pool/Model/PoolTable.php new file mode 100644 index 00000000..eed2e3f2 --- /dev/null +++ b/module/Pool/src/Pool/Model/PoolTable.php @@ -0,0 +1,53 @@ +tableGateway = $tableGateway; + } + + public function fetchAll() + { + $resultSet = $this->tableGateway->select(); + return $resultSet; + } + + public function getPool($id) + { + $id = (int) $id; + $rowset = $this->tableGateway->select(array('poolid' => $id)); + $row = $rowset->current(); + if(!$row) { + throw new \Exception("Could not find row $id"); + } + return $row; + } + + public function getPoolNum() + { + $select = new Select(); + $select->from('pool'); + $resultSetPrototype = new ResultSet(); + $resultSetPrototype->setArrayObjectPrototype(new Pool()); + $rowset = new DbSelect( + $select, + $this->tableGateway->getAdapter(), + $resultSetPrototype + ); + $num = $rowset->count(); + return $num; + } + +} + diff --git a/module/Pool/view/pool/pool/details.phtml b/module/Pool/view/pool/pool/details.phtml new file mode 100644 index 00000000..e69de29b diff --git a/module/Pool/view/pool/pool/index.phtml b/module/Pool/view/pool/pool/index.phtml new file mode 100644 index 00000000..30266c64 --- /dev/null +++ b/module/Pool/view/pool/pool/index.phtml @@ -0,0 +1,28 @@ +headTitle($title); + +?> + + + + + + + + + + + + + + + + + + + + + +
IDNameType
escapeHtml($pool->poolid); ?>escapeHtml($pool->name); ?>escapeHtml($pool->pooltype); ?>
diff --git a/module/Storage/Module.php b/module/Storage/Module.php new file mode 100644 index 00000000..a1195711 --- /dev/null +++ b/module/Storage/Module.php @@ -0,0 +1,52 @@ + array( + __DIR__ . '/autoload_classmap.php', + ), + 'Zend\Loader\StandardAutoloader' => array( + 'namespaces' => array( + __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__, + ), + ), + ); + } + + public function getConfig() + { + return include __DIR__ . '/config/module.config.php'; + } + + public function getServiceConfig() + { + return array( + 'factories' => array( + 'Storage\Model\StorageTable' => function($sm) { + $tableGateway = $sm->get('StorageTableGateway'); + $table = new StorageTable($tableGateway); + return $table; + }, + 'StorageTableGateway' => function($sm) { + $dbAdapter = $sm->get('Zend\Db\Adapter\Adapter'); + $resultSetPrototype = new ResultSet(); + $resultSetPrototype->setArrayObjectPrototype(new Storage()); + return new TableGateway('storage', $dbAdapter, null, $resultSetPrototype); + }, + ), + ); + } + +} + diff --git a/module/Storage/autoload_classmap.php b/module/Storage/autoload_classmap.php new file mode 100644 index 00000000..d5be5de2 --- /dev/null +++ b/module/Storage/autoload_classmap.php @@ -0,0 +1,3 @@ + array( + 'invokables' => array( + 'Storage\Controller\Storage' => 'Storage\Controller\StorageController', + ), + ), + + 'router' => array( + 'routes' => array( + 'storage' => array( + 'type' => 'segment', + 'options' => array( + 'route' => '/storage[/][:action][/:id]', + 'constraints' => array( + 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', + 'id' => '[0-9]+', + ), + 'defaults' => array( + 'controller' => 'Storage\Controller\Storage', + 'action' => 'index', + ), + ), + + ), + ), + ), + + 'view_manager' => array( + 'template_path_stack' => array( + 'storage' => __DIR__ . '/../view', + ), + ), + +); diff --git a/module/Storage/src/Storage/Controller/StorageController.php b/module/Storage/src/Storage/Controller/StorageController.php new file mode 100644 index 00000000..2851a05a --- /dev/null +++ b/module/Storage/src/Storage/Controller/StorageController.php @@ -0,0 +1,37 @@ + $this->getStorageTable()->fetchAll(), + ) + ); + } + + public function detailsAction() + { + + } + + public function getStorageTable() + { + if(!$this->storageTable) { + $sm = $this->getServiceLocator(); + $this->storageTable = $sm->get('Storage\Model\StorageTable'); + } + return $this->storageTable; + } + +} + diff --git a/module/Storage/src/Storage/Model/Storage.php b/module/Storage/src/Storage/Model/Storage.php new file mode 100644 index 00000000..f36bdd55 --- /dev/null +++ b/module/Storage/src/Storage/Model/Storage.php @@ -0,0 +1,20 @@ +storageid = (!empty($data['storageid'])) ? $data['storageid'] : null; + $this->name = (!empty($data['name'])) ? $data['name'] : null; + $this->autochanger = (!empty($data['autochanger'])) ? $data['autochanger'] : null; + } + +} + diff --git a/module/Storage/src/Storage/Model/StorageTable.php b/module/Storage/src/Storage/Model/StorageTable.php new file mode 100644 index 00000000..05986d88 --- /dev/null +++ b/module/Storage/src/Storage/Model/StorageTable.php @@ -0,0 +1,35 @@ +tableGateway = $tableGateway; + } + + public function fetchAll() + { + $resultSet = $this->tableGateway->select(); + return $resultSet; + } + + public function getStorage($id) + { + $id = (int) $id; + $rowset = $this->tableGateway->select(array('id' => $id)); + $row = $rowset->current(); + if(!$row) { + throw new \Exception("Could not find row $id"); + } + return $row; + } + +} + diff --git a/module/Storage/view/storage/storage/details.phtml b/module/Storage/view/storage/storage/details.phtml new file mode 100644 index 00000000..e69de29b diff --git a/module/Storage/view/storage/storage/index.phtml b/module/Storage/view/storage/storage/index.phtml new file mode 100644 index 00000000..63ecfc7d --- /dev/null +++ b/module/Storage/view/storage/storage/index.phtml @@ -0,0 +1,28 @@ +headTitle($title); + +?> + + + + + + + + + + + + + + + + + + + + + +
IDNameAutochanger
escapeHtml($storage->storageid); ?>escapeHtml($storage->name); ?>escapeHtml($storage->autochanger); ?>
diff --git a/module/Volume/Module.php b/module/Volume/Module.php new file mode 100644 index 00000000..4cac3165 --- /dev/null +++ b/module/Volume/Module.php @@ -0,0 +1,52 @@ + array( + __DIR__ . '/autoload_classmap.php', + ), + 'Zend\Loader\StandardAutoloader' => array( + 'namespaces' => array( + __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__, + ), + ), + ); + } + + public function getConfig() + { + return include __DIR__ . '/config/module.config.php'; + } + + public function getServiceConfig() + { + return array( + 'factories' => array( + 'Volume\Model\VolumeTable' => function($sm) { + $tableGateway = $sm->get('VolumeTableGateway'); + $table = new VolumeTable($tableGateway); + return $table; + }, + 'VolumeTableGateway' => function($sm) { + $dbAdapter = $sm->get('Zend\Db\Adapter\Adapter'); + $resultSetPrototype = new ResultSet(); + $resultSetPrototype->setArrayObjectPrototype(new Volume()); + return new TableGateway('volume', $dbAdapter, null, $resultSetPrototype); + }, + ), + ); + } + +} + diff --git a/module/Volume/autoload_classmap.php b/module/Volume/autoload_classmap.php new file mode 100644 index 00000000..d5be5de2 --- /dev/null +++ b/module/Volume/autoload_classmap.php @@ -0,0 +1,3 @@ + array( + 'invokables' => array( + 'Volume\Controller\Volume' => 'Volume\Controller\VolumeController', + ), + ), + + 'router' => array( + 'routes' => array( + 'volume' => array( + 'type' => 'segment', + 'options' => array( + 'route' => '/volume[/][:action][/:id]', + 'constraints' => array( + 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', + 'id' => '[0-9]+', + ), + 'defaults' => array( + 'controller' => 'Volume\Controller\Volume', + 'action' => 'index', + ), + ), + + ), + ), + ), + + 'view_manager' => array( + 'template_path_stack' => array( + 'volume' => __DIR__ . '/../view', + ), + ), + +); diff --git a/module/Volume/src/Volume/Controller/VolumeController.php b/module/Volume/src/Volume/Controller/VolumeController.php new file mode 100644 index 00000000..bdc0eb79 --- /dev/null +++ b/module/Volume/src/Volume/Controller/VolumeController.php @@ -0,0 +1,37 @@ +getVolumeTable()->fetchAll(true); + $paginator->setCurrentPageNumber( (int) $this->params()->fromQuery('page', 1) ); + $paginator->setItemCountPerPage(20); + + return new ViewModel(array('paginator' => $paginator)); + } + + public function detailsAction() + { + + } + + public function getVolumeTable() + { + if(!$this->volumeTable) { + $sm = $this->getServiceLocator(); + $this->volumeTable = $sm->get('Volume\Model\VolumeTable'); + } + return $this->volumeTable; + } + +} + diff --git a/module/Volume/src/Volume/Model/Volume.php b/module/Volume/src/Volume/Model/Volume.php new file mode 100644 index 00000000..170e9aa9 --- /dev/null +++ b/module/Volume/src/Volume/Model/Volume.php @@ -0,0 +1,32 @@ +mediaid = (!empty($data['mediaid'])) ? $data['mediaid'] : null; + $this->volumename = (!empty($data['volumename'])) ? $data['volumename'] : null; + $this->mediatype = (!empty($data['mediatype'])) ? $data['mediatype'] : null; + $this->lastwritten = (!empty($data['lastwritten'])) ? $data['lastwritten'] : null; + $this->volstatus = (!empty($data['volstatus'])) ? $data['volstatus'] : null; + $this->volretention = (!empty($data['volretention'])) ? $data['volretention'] : null; + $this->volbytes = (!empty($data['volbytes'])) ? $data['volbytes'] : null; + $this->maxvolbytes = (!empty($data['maxvolbytes'])) ? $data['maxvolbytes'] : null; + $this->storageid = (!empty($data['storageid'])) ? $data['storageid'] : null; + } + +} + diff --git a/module/Volume/src/Volume/Model/VolumeTable.php b/module/Volume/src/Volume/Model/VolumeTable.php new file mode 100644 index 00000000..18bc63d9 --- /dev/null +++ b/module/Volume/src/Volume/Model/VolumeTable.php @@ -0,0 +1,62 @@ +tableGateway = $tableGateway; + } + + public function fetchAll($paginated=false) + { + if($paginated) { + $select = new Select('media'); + $select->order('mediaid ASC'); + $resultSetPrototype = new ResultSet(); + $resultSetPrototype->setArrayObjectPrototype(new Volume()); + $paginatorAdapter = new DbSelect( + $select, + $this->tableGateway->getAdapter(), + $resultSetPrototype + ); + $paginator = new Paginator($paginatorAdapter); + return $paginator; + } + $resultSet = $this->tableGateway->select(); + return $resultSet; + } + + public function getVolume($id) + { + + } + + public function getVolumeNum() + { + $select = new Select(); + $select->from('media'); + $resultSetPrototype = new ResultSet(); + $resultSetPrototype->setArrayObjectPrototype(new Volume()); + $rowset = new DbSelect( + $select, + $this->tableGateway->getAdapter(), + $resultSetPrototype + ); + $num = $rowset->count(); + return $num; + } + +} + diff --git a/module/Volume/view/volume/volume/details.phtml b/module/Volume/view/volume/volume/details.phtml new file mode 100644 index 00000000..36c44ae4 --- /dev/null +++ b/module/Volume/view/volume/volume/details.phtml @@ -0,0 +1,6 @@ +headTitle($title); + +?> diff --git a/module/Volume/view/volume/volume/index.phtml b/module/Volume/view/volume/volume/index.phtml new file mode 100644 index 00000000..fc569f49 --- /dev/null +++ b/module/Volume/view/volume/volume/index.phtml @@ -0,0 +1,54 @@ +headTitle($title); + +?> + + + + + + + + + + + + + + + + + +paginator as $volume) : ?> + + + + + + + + + + + + + + + + + + +
VolumeNameStorageTypeLast writtenStatusRetentionMaximum bytesCurrent bytesFree bytes
escapeHtml($volume->mediaid); ?>escapeHtml($volume->volumename); ?>escapeHtml($volume->storageid); ?>escapeHtml($volume->mediatype); ?>escapeHtml($volume->lastwritten); ?>escapeHtml($volume->volstatus); ?>printRetention($volume->volretention) . " days"; ?>printBytes($volume->maxvolbytes); ?>printBytes($volume->volbytes); ?>printBytes($volume->maxvolbytes - $volume->volbytes); ?>
+ +paginationControl( + $this->paginator, + 'Elastic', + array('partial/paginator.phtml', 'Volume'), + array('route' => 'volume') + ); + +?> \ No newline at end of file diff --git a/public/.htaccess b/public/.htaccess new file mode 100644 index 00000000..ed75e19c --- /dev/null +++ b/public/.htaccess @@ -0,0 +1,25 @@ + +# SetEnv APPLICATION_ENV production +SetEnv APPLICATION_ENV development + +RewriteEngine On + +# The following rule tells Apache that if the requested filename +# exists, simply serve it. + +RewriteCond %{REQUEST_FILENAME} -s [OR] +RewriteCond %{REQUEST_FILENAME} -l [OR] +RewriteCond %{REQUEST_FILENAME} -d +RewriteRule ^.*$ - [NC,L] + +# The following rewrites all other queries to index.php. The +# condition ensures that if you are using Apache aliases to do +# mass virtual hosting, the base path will be prepended to +# allow proper resolution of the index.php file; it will work +# in non-aliased environments as well, providing a safe, one-size +# fits all solution. + +RewriteCond %{REQUEST_URI}::$1 ^(/.+)(.+)::\2$ +RewriteRule ^(.*) - [E=BASE:%1] +RewriteRule ^(.*)$ %{ENV:BASE}index.php [NC,L] + diff --git a/public/css/bootstrap-theme.css b/public/css/bootstrap-theme.css new file mode 100644 index 00000000..ad117356 --- /dev/null +++ b/public/css/bootstrap-theme.css @@ -0,0 +1,384 @@ +.btn-default, +.btn-primary, +.btn-success, +.btn-info, +.btn-warning, +.btn-danger { + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.btn-default:active, +.btn-primary:active, +.btn-success:active, +.btn-info:active, +.btn-warning:active, +.btn-danger:active, +.btn-default.active, +.btn-primary.active, +.btn-success.active, +.btn-info.active, +.btn-warning.active, +.btn-danger.active { + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} + +.btn:active, +.btn.active { + background-image: none; +} + +.btn-default { + text-shadow: 0 1px 0 #fff; + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#ffffff), to(#e6e6e6)); + background-image: -webkit-linear-gradient(top, #ffffff, 0%, #e6e6e6, 100%); + background-image: -moz-linear-gradient(top, #ffffff 0%, #e6e6e6 100%); + background-image: linear-gradient(to bottom, #ffffff 0%, #e6e6e6 100%); + background-repeat: repeat-x; + border-color: #e0e0e0; + border-color: #ccc; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0); +} + +.btn-default:active, +.btn-default.active { + background-color: #e6e6e6; + border-color: #e0e0e0; +} + +.btn-primary { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#428bca), to(#3071a9)); + background-image: -webkit-linear-gradient(top, #428bca, 0%, #3071a9, 100%); + background-image: -moz-linear-gradient(top, #428bca 0%, #3071a9 100%); + background-image: linear-gradient(to bottom, #428bca 0%, #3071a9 100%); + background-repeat: repeat-x; + border-color: #2d6ca2; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0); +} + +.btn-primary:active, +.btn-primary.active { + background-color: #3071a9; + border-color: #2d6ca2; +} + +.btn-success { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#5cb85c), to(#449d44)); + background-image: -webkit-linear-gradient(top, #5cb85c, 0%, #449d44, 100%); + background-image: -moz-linear-gradient(top, #5cb85c 0%, #449d44 100%); + background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%); + background-repeat: repeat-x; + border-color: #419641; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0); +} + +.btn-success:active, +.btn-success.active { + background-color: #449d44; + border-color: #419641; +} + +.btn-warning { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f0ad4e), to(#ec971f)); + background-image: -webkit-linear-gradient(top, #f0ad4e, 0%, #ec971f, 100%); + background-image: -moz-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); + background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%); + background-repeat: repeat-x; + border-color: #eb9316; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0); +} + +.btn-warning:active, +.btn-warning.active { + background-color: #ec971f; + border-color: #eb9316; +} + +.btn-danger { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#d9534f), to(#c9302c)); + background-image: -webkit-linear-gradient(top, #d9534f, 0%, #c9302c, 100%); + background-image: -moz-linear-gradient(top, #d9534f 0%, #c9302c 100%); + background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%); + background-repeat: repeat-x; + border-color: #c12e2a; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0); +} + +.btn-danger:active, +.btn-danger.active { + background-color: #c9302c; + border-color: #c12e2a; +} + +.btn-info { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#5bc0de), to(#31b0d5)); + background-image: -webkit-linear-gradient(top, #5bc0de, 0%, #31b0d5, 100%); + background-image: -moz-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); + background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%); + background-repeat: repeat-x; + border-color: #2aabd2; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0); +} + +.btn-info:active, +.btn-info.active { + background-color: #31b0d5; + border-color: #2aabd2; +} + +.thumbnail, +.img-thumbnail { + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075); +} + +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus, +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + background-color: #357ebd; + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#428bca), to(#357ebd)); + background-image: -webkit-linear-gradient(top, #428bca, 0%, #357ebd, 100%); + background-image: -moz-linear-gradient(top, #428bca 0%, #357ebd 100%); + background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0); +} + +.navbar { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#ffffff), to(#f8f8f8)); + background-image: -webkit-linear-gradient(top, #ffffff, 0%, #f8f8f8, 100%); + background-image: -moz-linear-gradient(top, #ffffff 0%, #f8f8f8 100%); + background-image: linear-gradient(to bottom, #ffffff 0%, #f8f8f8 100%); + background-repeat: repeat-x; + border-radius: 4px; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075); +} + +.navbar .navbar-nav > .active > a { + background-color: #f8f8f8; +} + +.navbar-brand, +.navbar-nav > li > a { + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25); +} + +.navbar-inverse { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#3c3c3c), to(#222222)); + background-image: -webkit-linear-gradient(top, #3c3c3c, 0%, #222222, 100%); + background-image: -moz-linear-gradient(top, #3c3c3c 0%, #222222 100%); + background-image: linear-gradient(to bottom, #3c3c3c 0%, #222222 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0); +} + +.navbar-inverse .navbar-nav > .active > a { + background-color: #222222; +} + +.navbar-inverse .navbar-brand, +.navbar-inverse .navbar-nav > li > a { + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} + +.navbar-static-top, +.navbar-fixed-top, +.navbar-fixed-bottom { + border-radius: 0; +} + +.alert { + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.alert-success { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#dff0d8), to(#c8e5bc)); + background-image: -webkit-linear-gradient(top, #dff0d8, 0%, #c8e5bc, 100%); + background-image: -moz-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%); + background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%); + background-repeat: repeat-x; + border-color: #b2dba1; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0); +} + +.alert-info { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#d9edf7), to(#b9def0)); + background-image: -webkit-linear-gradient(top, #d9edf7, 0%, #b9def0, 100%); + background-image: -moz-linear-gradient(top, #d9edf7 0%, #b9def0 100%); + background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%); + background-repeat: repeat-x; + border-color: #9acfea; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0); +} + +.alert-warning { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#fcf8e3), to(#f8efc0)); + background-image: -webkit-linear-gradient(top, #fcf8e3, 0%, #f8efc0, 100%); + background-image: -moz-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%); + background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%); + background-repeat: repeat-x; + border-color: #f5e79e; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0); +} + +.alert-danger { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f2dede), to(#e7c3c3)); + background-image: -webkit-linear-gradient(top, #f2dede, 0%, #e7c3c3, 100%); + background-image: -moz-linear-gradient(top, #f2dede 0%, #e7c3c3 100%); + background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%); + background-repeat: repeat-x; + border-color: #dca7a7; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0); +} + +.progress { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#ebebeb), to(#f5f5f5)); + background-image: -webkit-linear-gradient(top, #ebebeb, 0%, #f5f5f5, 100%); + background-image: -moz-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%); + background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0); +} + +.progress-bar { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#428bca), to(#3071a9)); + background-image: -webkit-linear-gradient(top, #428bca, 0%, #3071a9, 100%); + background-image: -moz-linear-gradient(top, #428bca 0%, #3071a9 100%); + background-image: linear-gradient(to bottom, #428bca 0%, #3071a9 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0); +} + +.progress-bar-success { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#5cb85c), to(#449d44)); + background-image: -webkit-linear-gradient(top, #5cb85c, 0%, #449d44, 100%); + background-image: -moz-linear-gradient(top, #5cb85c 0%, #449d44 100%); + background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0); +} + +.progress-bar-info { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#5bc0de), to(#31b0d5)); + background-image: -webkit-linear-gradient(top, #5bc0de, 0%, #31b0d5, 100%); + background-image: -moz-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); + background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0); +} + +.progress-bar-warning { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f0ad4e), to(#ec971f)); + background-image: -webkit-linear-gradient(top, #f0ad4e, 0%, #ec971f, 100%); + background-image: -moz-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); + background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0); +} + +.progress-bar-danger { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#d9534f), to(#c9302c)); + background-image: -webkit-linear-gradient(top, #d9534f, 0%, #c9302c, 100%); + background-image: -moz-linear-gradient(top, #d9534f 0%, #c9302c 100%); + background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0); +} + +.list-group { + border-radius: 4px; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075); +} + +.list-group-item.active, +.list-group-item.active:hover, +.list-group-item.active:focus { + text-shadow: 0 -1px 0 #3071a9; + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#428bca), to(#3278b3)); + background-image: -webkit-linear-gradient(top, #428bca, 0%, #3278b3, 100%); + background-image: -moz-linear-gradient(top, #428bca 0%, #3278b3 100%); + background-image: linear-gradient(to bottom, #428bca 0%, #3278b3 100%); + background-repeat: repeat-x; + border-color: #3278b3; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0); +} + +.panel { + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.panel-default > .panel-heading { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f5f5f5), to(#e8e8e8)); + background-image: -webkit-linear-gradient(top, #f5f5f5, 0%, #e8e8e8, 100%); + background-image: -moz-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); + background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0); +} + +.panel-primary > .panel-heading { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#428bca), to(#357ebd)); + background-image: -webkit-linear-gradient(top, #428bca, 0%, #357ebd, 100%); + background-image: -moz-linear-gradient(top, #428bca 0%, #357ebd 100%); + background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0); +} + +.panel-success > .panel-heading { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#dff0d8), to(#d0e9c6)); + background-image: -webkit-linear-gradient(top, #dff0d8, 0%, #d0e9c6, 100%); + background-image: -moz-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%); + background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0); +} + +.panel-info > .panel-heading { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#d9edf7), to(#c4e3f3)); + background-image: -webkit-linear-gradient(top, #d9edf7, 0%, #c4e3f3, 100%); + background-image: -moz-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%); + background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0); +} + +.panel-warning > .panel-heading { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#fcf8e3), to(#faf2cc)); + background-image: -webkit-linear-gradient(top, #fcf8e3, 0%, #faf2cc, 100%); + background-image: -moz-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%); + background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0); +} + +.panel-danger > .panel-heading { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f2dede), to(#ebcccc)); + background-image: -webkit-linear-gradient(top, #f2dede, 0%, #ebcccc, 100%); + background-image: -moz-linear-gradient(top, #f2dede 0%, #ebcccc 100%); + background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0); +} + +.well { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#e8e8e8), to(#f5f5f5)); + background-image: -webkit-linear-gradient(top, #e8e8e8, 0%, #f5f5f5, 100%); + background-image: -moz-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%); + background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%); + background-repeat: repeat-x; + border-color: #dcdcdc; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0); + -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1); +} \ No newline at end of file diff --git a/public/css/bootstrap-theme.min.css b/public/css/bootstrap-theme.min.css new file mode 100644 index 00000000..cad36b4e --- /dev/null +++ b/public/css/bootstrap-theme.min.css @@ -0,0 +1 @@ +.btn-default,.btn-primary,.btn-success,.btn-info,.btn-warning,.btn-danger{text-shadow:0 -1px 0 rgba(0,0,0,0.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075)}.btn-default:active,.btn-primary:active,.btn-success:active,.btn-info:active,.btn-warning:active,.btn-danger:active,.btn-default.active,.btn-primary.active,.btn-success.active,.btn-info.active,.btn-warning.active,.btn-danger.active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn:active,.btn.active{background-image:none}.btn-default{text-shadow:0 1px 0 #fff;background-image:-webkit-gradient(linear,left 0,left 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,0%,#e6e6e6,100%);background-image:-moz-linear-gradient(top,#fff 0,#e6e6e6 100%);background-image:linear-gradient(to bottom,#fff 0,#e6e6e6 100%);background-repeat:repeat-x;border-color:#e0e0e0;border-color:#ccc;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0)}.btn-default:active,.btn-default.active{background-color:#e6e6e6;border-color:#e0e0e0}.btn-primary{background-image:-webkit-gradient(linear,left 0,left 100%,from(#428bca),to(#3071a9));background-image:-webkit-linear-gradient(top,#428bca,0%,#3071a9,100%);background-image:-moz-linear-gradient(top,#428bca 0,#3071a9 100%);background-image:linear-gradient(to bottom,#428bca 0,#3071a9 100%);background-repeat:repeat-x;border-color:#2d6ca2;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff3071a9',GradientType=0)}.btn-primary:active,.btn-primary.active{background-color:#3071a9;border-color:#2d6ca2}.btn-success{background-image:-webkit-gradient(linear,left 0,left 100%,from(#5cb85c),to(#449d44));background-image:-webkit-linear-gradient(top,#5cb85c,0%,#449d44,100%);background-image:-moz-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);background-repeat:repeat-x;border-color:#419641;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c',endColorstr='#ff449d44',GradientType=0)}.btn-success:active,.btn-success.active{background-color:#449d44;border-color:#419641}.btn-warning{background-image:-webkit-gradient(linear,left 0,left 100%,from(#f0ad4e),to(#ec971f));background-image:-webkit-linear-gradient(top,#f0ad4e,0%,#ec971f,100%);background-image:-moz-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);background-repeat:repeat-x;border-color:#eb9316;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e',endColorstr='#ffec971f',GradientType=0)}.btn-warning:active,.btn-warning.active{background-color:#ec971f;border-color:#eb9316}.btn-danger{background-image:-webkit-gradient(linear,left 0,left 100%,from(#d9534f),to(#c9302c));background-image:-webkit-linear-gradient(top,#d9534f,0%,#c9302c,100%);background-image:-moz-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);background-repeat:repeat-x;border-color:#c12e2a;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f',endColorstr='#ffc9302c',GradientType=0)}.btn-danger:active,.btn-danger.active{background-color:#c9302c;border-color:#c12e2a}.btn-info{background-image:-webkit-gradient(linear,left 0,left 100%,from(#5bc0de),to(#31b0d5));background-image:-webkit-linear-gradient(top,#5bc0de,0%,#31b0d5,100%);background-image:-moz-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);background-repeat:repeat-x;border-color:#2aabd2;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff31b0d5',GradientType=0)}.btn-info:active,.btn-info.active{background-color:#31b0d5;border-color:#2aabd2}.thumbnail,.img-thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.075);box-shadow:0 1px 2px rgba(0,0,0,0.075)}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{background-color:#357ebd;background-image:-webkit-gradient(linear,left 0,left 100%,from(#428bca),to(#357ebd));background-image:-webkit-linear-gradient(top,#428bca,0%,#357ebd,100%);background-image:-moz-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff357ebd',GradientType=0)}.navbar{background-image:-webkit-gradient(linear,left 0,left 100%,from(#fff),to(#f8f8f8));background-image:-webkit-linear-gradient(top,#fff,0%,#f8f8f8,100%);background-image:-moz-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);background-repeat:repeat-x;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff8f8f8',GradientType=0);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075)}.navbar .navbar-nav>.active>a{background-color:#f8f8f8}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,0.25)}.navbar-inverse{background-image:-webkit-gradient(linear,left 0,left 100%,from(#3c3c3c),to(#222));background-image:-webkit-linear-gradient(top,#3c3c3c,0%,#222,100%);background-image:-moz-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c',endColorstr='#ff222222',GradientType=0)}.navbar-inverse .navbar-nav>.active>a{background-color:#222}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-static-top,.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}.alert{text-shadow:0 1px 0 rgba(255,255,255,0.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.25),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.25),0 1px 2px rgba(0,0,0,0.05)}.alert-success{background-image:-webkit-gradient(linear,left 0,left 100%,from(#dff0d8),to(#c8e5bc));background-image:-webkit-linear-gradient(top,#dff0d8,0%,#c8e5bc,100%);background-image:-moz-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);background-repeat:repeat-x;border-color:#b2dba1;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8',endColorstr='#ffc8e5bc',GradientType=0)}.alert-info{background-image:-webkit-gradient(linear,left 0,left 100%,from(#d9edf7),to(#b9def0));background-image:-webkit-linear-gradient(top,#d9edf7,0%,#b9def0,100%);background-image:-moz-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);background-repeat:repeat-x;border-color:#9acfea;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7',endColorstr='#ffb9def0',GradientType=0)}.alert-warning{background-image:-webkit-gradient(linear,left 0,left 100%,from(#fcf8e3),to(#f8efc0));background-image:-webkit-linear-gradient(top,#fcf8e3,0%,#f8efc0,100%);background-image:-moz-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);background-repeat:repeat-x;border-color:#f5e79e;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3',endColorstr='#fff8efc0',GradientType=0)}.alert-danger{background-image:-webkit-gradient(linear,left 0,left 100%,from(#f2dede),to(#e7c3c3));background-image:-webkit-linear-gradient(top,#f2dede,0%,#e7c3c3,100%);background-image:-moz-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);background-repeat:repeat-x;border-color:#dca7a7;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede',endColorstr='#ffe7c3c3',GradientType=0)}.progress{background-image:-webkit-gradient(linear,left 0,left 100%,from(#ebebeb),to(#f5f5f5));background-image:-webkit-linear-gradient(top,#ebebeb,0%,#f5f5f5,100%);background-image:-moz-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb',endColorstr='#fff5f5f5',GradientType=0)}.progress-bar{background-image:-webkit-gradient(linear,left 0,left 100%,from(#428bca),to(#3071a9));background-image:-webkit-linear-gradient(top,#428bca,0%,#3071a9,100%);background-image:-moz-linear-gradient(top,#428bca 0,#3071a9 100%);background-image:linear-gradient(to bottom,#428bca 0,#3071a9 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff3071a9',GradientType=0)}.progress-bar-success{background-image:-webkit-gradient(linear,left 0,left 100%,from(#5cb85c),to(#449d44));background-image:-webkit-linear-gradient(top,#5cb85c,0%,#449d44,100%);background-image:-moz-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c',endColorstr='#ff449d44',GradientType=0)}.progress-bar-info{background-image:-webkit-gradient(linear,left 0,left 100%,from(#5bc0de),to(#31b0d5));background-image:-webkit-linear-gradient(top,#5bc0de,0%,#31b0d5,100%);background-image:-moz-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff31b0d5',GradientType=0)}.progress-bar-warning{background-image:-webkit-gradient(linear,left 0,left 100%,from(#f0ad4e),to(#ec971f));background-image:-webkit-linear-gradient(top,#f0ad4e,0%,#ec971f,100%);background-image:-moz-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e',endColorstr='#ffec971f',GradientType=0)}.progress-bar-danger{background-image:-webkit-gradient(linear,left 0,left 100%,from(#d9534f),to(#c9302c));background-image:-webkit-linear-gradient(top,#d9534f,0%,#c9302c,100%);background-image:-moz-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f',endColorstr='#ffc9302c',GradientType=0)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.075);box-shadow:0 1px 2px rgba(0,0,0,0.075)}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{text-shadow:0 -1px 0 #3071a9;background-image:-webkit-gradient(linear,left 0,left 100%,from(#428bca),to(#3278b3));background-image:-webkit-linear-gradient(top,#428bca,0%,#3278b3,100%);background-image:-moz-linear-gradient(top,#428bca 0,#3278b3 100%);background-image:linear-gradient(to bottom,#428bca 0,#3278b3 100%);background-repeat:repeat-x;border-color:#3278b3;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff3278b3',GradientType=0)}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.panel-default>.panel-heading{background-image:-webkit-gradient(linear,left 0,left 100%,from(#f5f5f5),to(#e8e8e8));background-image:-webkit-linear-gradient(top,#f5f5f5,0%,#e8e8e8,100%);background-image:-moz-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#ffe8e8e8',GradientType=0)}.panel-primary>.panel-heading{background-image:-webkit-gradient(linear,left 0,left 100%,from(#428bca),to(#357ebd));background-image:-webkit-linear-gradient(top,#428bca,0%,#357ebd,100%);background-image:-moz-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff357ebd',GradientType=0)}.panel-success>.panel-heading{background-image:-webkit-gradient(linear,left 0,left 100%,from(#dff0d8),to(#d0e9c6));background-image:-webkit-linear-gradient(top,#dff0d8,0%,#d0e9c6,100%);background-image:-moz-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8',endColorstr='#ffd0e9c6',GradientType=0)}.panel-info>.panel-heading{background-image:-webkit-gradient(linear,left 0,left 100%,from(#d9edf7),to(#c4e3f3));background-image:-webkit-linear-gradient(top,#d9edf7,0%,#c4e3f3,100%);background-image:-moz-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7',endColorstr='#ffc4e3f3',GradientType=0)}.panel-warning>.panel-heading{background-image:-webkit-gradient(linear,left 0,left 100%,from(#fcf8e3),to(#faf2cc));background-image:-webkit-linear-gradient(top,#fcf8e3,0%,#faf2cc,100%);background-image:-moz-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3',endColorstr='#fffaf2cc',GradientType=0)}.panel-danger>.panel-heading{background-image:-webkit-gradient(linear,left 0,left 100%,from(#f2dede),to(#ebcccc));background-image:-webkit-linear-gradient(top,#f2dede,0%,#ebcccc,100%);background-image:-moz-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede',endColorstr='#ffebcccc',GradientType=0)}.well{background-image:-webkit-gradient(linear,left 0,left 100%,from(#e8e8e8),to(#f5f5f5));background-image:-webkit-linear-gradient(top,#e8e8e8,0%,#f5f5f5,100%);background-image:-moz-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);background-repeat:repeat-x;border-color:#dcdcdc;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8',endColorstr='#fff5f5f5',GradientType=0);-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,0.05),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 3px rgba(0,0,0,0.05),0 1px 0 rgba(255,255,255,0.1)} \ No newline at end of file diff --git a/public/css/bootstrap.css b/public/css/bootstrap.css new file mode 100644 index 00000000..bbda4eed --- /dev/null +++ b/public/css/bootstrap.css @@ -0,0 +1,6805 @@ +/*! + * Bootstrap v3.0.0 + * + * Copyright 2013 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world by @mdo and @fat. + */ + +/*! normalize.css v2.1.0 | MIT License | git.io/normalize */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section, +summary { + display: block; +} + +audio, +canvas, +video { + display: inline-block; +} + +audio:not([controls]) { + display: none; + height: 0; +} + +[hidden] { + display: none; +} + +html { + font-family: sans-serif; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +body { + margin: 0; +} + +a:focus { + outline: thin dotted; +} + +a:active, +a:hover { + outline: 0; +} + +h1 { + margin: 0.67em 0; + font-size: 2em; +} + +abbr[title] { + border-bottom: 1px dotted; +} + +b, +strong { + font-weight: bold; +} + +dfn { + font-style: italic; +} + +hr { + height: 0; + -moz-box-sizing: content-box; + box-sizing: content-box; +} + +mark { + color: #000; + background: #ff0; +} + +code, +kbd, +pre, +samp { + font-family: monospace, serif; + font-size: 1em; +} + +pre { + white-space: pre-wrap; +} + +q { + quotes: "\201C" "\201D" "\2018" "\2019"; +} + +small { + font-size: 80%; +} + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +img { + border: 0; +} + +svg:not(:root) { + overflow: hidden; +} + +figure { + margin: 0; +} + +fieldset { + padding: 0.35em 0.625em 0.75em; + margin: 0 2px; + border: 1px solid #c0c0c0; +} + +legend { + padding: 0; + border: 0; +} + +button, +input, +select, +textarea { + margin: 0; + font-family: inherit; + font-size: 100%; +} + +button, +input { + line-height: normal; +} + +button, +select { + text-transform: none; +} + +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + cursor: pointer; + -webkit-appearance: button; +} + +button[disabled], +html input[disabled] { + cursor: default; +} + +input[type="checkbox"], +input[type="radio"] { + padding: 0; + box-sizing: border-box; +} + +input[type="search"] { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + -webkit-appearance: textfield; +} + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +button::-moz-focus-inner, +input::-moz-focus-inner { + padding: 0; + border: 0; +} + +textarea { + overflow: auto; + vertical-align: top; +} + +table { + border-collapse: collapse; + border-spacing: 0; +} + +@media print { + * { + color: #000 !important; + text-shadow: none !important; + background: transparent !important; + box-shadow: none !important; + } + a, + a:visited { + text-decoration: underline; + } + a[href]:after { + content: " (" attr(href) ")"; + } + abbr[title]:after { + content: " (" attr(title) ")"; + } + .ir a:after, + a[href^="javascript:"]:after, + a[href^="#"]:after { + content: ""; + } + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + thead { + display: table-header-group; + } + tr, + img { + page-break-inside: avoid; + } + img { + max-width: 100% !important; + } + @page { + margin: 2cm .5cm; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } + .navbar { + display: none; + } + .table td, + .table th { + background-color: #fff !important; + } + .btn > .caret, + .dropup > .btn > .caret { + border-top-color: #000 !important; + } + .label { + border: 1px solid #000; + } + .table { + border-collapse: collapse !important; + } + .table-bordered th, + .table-bordered td { + border: 1px solid #ddd !important; + } +} + +*, +*:before, +*:after { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +html { + font-size: 62.5%; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +body { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 1.428571429; + color: #333333; + background-color: #ffffff; +} + +input, +button, +select, +textarea { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +button, +input, +select[multiple], +textarea { + background-image: none; +} + +a { + color: #428bca; + text-decoration: none; +} + +a:hover, +a:focus { + color: #2a6496; + text-decoration: underline; +} + +a:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +img { + vertical-align: middle; +} + +.img-responsive { + display: block; + height: auto; + max-width: 100%; +} + +.img-rounded { + border-radius: 6px; +} + +.img-thumbnail { + display: inline-block; + height: auto; + max-width: 100%; + padding: 4px; + line-height: 1.428571429; + background-color: #ffffff; + border: 1px solid #dddddd; + border-radius: 4px; + -webkit-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; +} + +.img-circle { + border-radius: 50%; +} + +hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-top: 1px solid #eeeeee; +} + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0 0 0 0); + border: 0; +} + +p { + margin: 0 0 10px; +} + +.lead { + margin-bottom: 20px; + font-size: 16.099999999999998px; + font-weight: 200; + line-height: 1.4; +} + +@media (min-width: 768px) { + .lead { + font-size: 21px; + } +} + +small { + font-size: 85%; +} + +cite { + font-style: normal; +} + +.text-muted { + color: #999999; +} + +.text-primary { + color: #428bca; +} + +.text-warning { + color: #c09853; +} + +.text-danger { + color: #b94a48; +} + +.text-success { + color: #468847; +} + +.text-info { + color: #3a87ad; +} + +.text-left { + text-align: left; +} + +.text-right { + text-align: right; +} + +.text-center { + text-align: center; +} + +h1, +h2, +h3, +h4, +h5, +h6, +.h1, +.h2, +.h3, +.h4, +.h5, +.h6 { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-weight: 500; + line-height: 1.1; +} + +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small, +.h1 small, +.h2 small, +.h3 small, +.h4 small, +.h5 small, +.h6 small { + font-weight: normal; + line-height: 1; + color: #999999; +} + +h1, +h2, +h3 { + margin-top: 20px; + margin-bottom: 10px; +} + +h4, +h5, +h6 { + margin-top: 10px; + margin-bottom: 10px; +} + +h1, +.h1 { + font-size: 36px; +} + +h2, +.h2 { + font-size: 30px; +} + +h3, +.h3 { + font-size: 24px; +} + +h4, +.h4 { + font-size: 18px; +} + +h5, +.h5 { + font-size: 14px; +} + +h6, +.h6 { + font-size: 12px; +} + +h1 small, +.h1 small { + font-size: 24px; +} + +h2 small, +.h2 small { + font-size: 18px; +} + +h3 small, +.h3 small, +h4 small, +.h4 small { + font-size: 14px; +} + +.page-header { + padding-bottom: 9px; + margin: 40px 0 20px; + border-bottom: 1px solid #eeeeee; +} + +ul, +ol { + margin-top: 0; + margin-bottom: 10px; +} + +ul ul, +ol ul, +ul ol, +ol ol { + margin-bottom: 0; +} + +.list-unstyled { + padding-left: 0; + list-style: none; +} + +.list-inline { + padding-left: 0; + list-style: none; +} + +.list-inline > li { + display: inline-block; + padding-right: 5px; + padding-left: 5px; +} + +dl { + margin-bottom: 20px; +} + +dt, +dd { + line-height: 1.428571429; +} + +dt { + font-weight: bold; +} + +dd { + margin-left: 0; +} + +@media (min-width: 768px) { + .dl-horizontal dt { + float: left; + width: 160px; + overflow: hidden; + clear: left; + text-align: right; + text-overflow: ellipsis; + white-space: nowrap; + } + .dl-horizontal dd { + margin-left: 180px; + } + .dl-horizontal dd:before, + .dl-horizontal dd:after { + display: table; + content: " "; + } + .dl-horizontal dd:after { + clear: both; + } + .dl-horizontal dd:before, + .dl-horizontal dd:after { + display: table; + content: " "; + } + .dl-horizontal dd:after { + clear: both; + } +} + +abbr[title], +abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted #999999; +} + +abbr.initialism { + font-size: 90%; + text-transform: uppercase; +} + +blockquote { + padding: 10px 20px; + margin: 0 0 20px; + border-left: 5px solid #eeeeee; +} + +blockquote p { + font-size: 17.5px; + font-weight: 300; + line-height: 1.25; +} + +blockquote p:last-child { + margin-bottom: 0; +} + +blockquote small { + display: block; + line-height: 1.428571429; + color: #999999; +} + +blockquote small:before { + content: '\2014 \00A0'; +} + +blockquote.pull-right { + padding-right: 15px; + padding-left: 0; + border-right: 5px solid #eeeeee; + border-left: 0; +} + +blockquote.pull-right p, +blockquote.pull-right small { + text-align: right; +} + +blockquote.pull-right small:before { + content: ''; +} + +blockquote.pull-right small:after { + content: '\00A0 \2014'; +} + +q:before, +q:after, +blockquote:before, +blockquote:after { + content: ""; +} + +address { + display: block; + margin-bottom: 20px; + font-style: normal; + line-height: 1.428571429; +} + +code, +pre { + font-family: Monaco, Menlo, Consolas, "Courier New", monospace; +} + +code { + padding: 2px 4px; + font-size: 90%; + color: #c7254e; + white-space: nowrap; + background-color: #f9f2f4; + border-radius: 4px; +} + +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 1.428571429; + color: #333333; + word-break: break-all; + word-wrap: break-word; + background-color: #f5f5f5; + border: 1px solid #cccccc; + border-radius: 4px; +} + +pre.prettyprint { + margin-bottom: 20px; +} + +pre code { + padding: 0; + font-size: inherit; + color: inherit; + white-space: pre-wrap; + background-color: transparent; + border: 0; +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} + +.container { + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} + +.container:before, +.container:after { + display: table; + content: " "; +} + +.container:after { + clear: both; +} + +.container:before, +.container:after { + display: table; + content: " "; +} + +.container:after { + clear: both; +} + +.row { + margin-right: -15px; + margin-left: -15px; +} + +.row:before, +.row:after { + display: table; + content: " "; +} + +.row:after { + clear: both; +} + +.row:before, +.row:after { + display: table; + content: " "; +} + +.row:after { + clear: both; +} + +.col-xs-1, +.col-xs-2, +.col-xs-3, +.col-xs-4, +.col-xs-5, +.col-xs-6, +.col-xs-7, +.col-xs-8, +.col-xs-9, +.col-xs-10, +.col-xs-11, +.col-xs-12, +.col-sm-1, +.col-sm-2, +.col-sm-3, +.col-sm-4, +.col-sm-5, +.col-sm-6, +.col-sm-7, +.col-sm-8, +.col-sm-9, +.col-sm-10, +.col-sm-11, +.col-sm-12, +.col-md-1, +.col-md-2, +.col-md-3, +.col-md-4, +.col-md-5, +.col-md-6, +.col-md-7, +.col-md-8, +.col-md-9, +.col-md-10, +.col-md-11, +.col-md-12, +.col-lg-1, +.col-lg-2, +.col-lg-3, +.col-lg-4, +.col-lg-5, +.col-lg-6, +.col-lg-7, +.col-lg-8, +.col-lg-9, +.col-lg-10, +.col-lg-11, +.col-lg-12 { + position: relative; + min-height: 1px; + padding-right: 15px; + padding-left: 15px; +} + +.col-xs-1, +.col-xs-2, +.col-xs-3, +.col-xs-4, +.col-xs-5, +.col-xs-6, +.col-xs-7, +.col-xs-8, +.col-xs-9, +.col-xs-10, +.col-xs-11 { + float: left; +} + +.col-xs-1 { + width: 8.333333333333332%; +} + +.col-xs-2 { + width: 16.666666666666664%; +} + +.col-xs-3 { + width: 25%; +} + +.col-xs-4 { + width: 33.33333333333333%; +} + +.col-xs-5 { + width: 41.66666666666667%; +} + +.col-xs-6 { + width: 50%; +} + +.col-xs-7 { + width: 58.333333333333336%; +} + +.col-xs-8 { + width: 66.66666666666666%; +} + +.col-xs-9 { + width: 75%; +} + +.col-xs-10 { + width: 83.33333333333334%; +} + +.col-xs-11 { + width: 91.66666666666666%; +} + +.col-xs-12 { + width: 100%; +} + +@media (min-width: 768px) { + .container { + max-width: 750px; + } + .col-sm-1, + .col-sm-2, + .col-sm-3, + .col-sm-4, + .col-sm-5, + .col-sm-6, + .col-sm-7, + .col-sm-8, + .col-sm-9, + .col-sm-10, + .col-sm-11 { + float: left; + } + .col-sm-1 { + width: 8.333333333333332%; + } + .col-sm-2 { + width: 16.666666666666664%; + } + .col-sm-3 { + width: 25%; + } + .col-sm-4 { + width: 33.33333333333333%; + } + .col-sm-5 { + width: 41.66666666666667%; + } + .col-sm-6 { + width: 50%; + } + .col-sm-7 { + width: 58.333333333333336%; + } + .col-sm-8 { + width: 66.66666666666666%; + } + .col-sm-9 { + width: 75%; + } + .col-sm-10 { + width: 83.33333333333334%; + } + .col-sm-11 { + width: 91.66666666666666%; + } + .col-sm-12 { + width: 100%; + } + .col-sm-push-1 { + left: 8.333333333333332%; + } + .col-sm-push-2 { + left: 16.666666666666664%; + } + .col-sm-push-3 { + left: 25%; + } + .col-sm-push-4 { + left: 33.33333333333333%; + } + .col-sm-push-5 { + left: 41.66666666666667%; + } + .col-sm-push-6 { + left: 50%; + } + .col-sm-push-7 { + left: 58.333333333333336%; + } + .col-sm-push-8 { + left: 66.66666666666666%; + } + .col-sm-push-9 { + left: 75%; + } + .col-sm-push-10 { + left: 83.33333333333334%; + } + .col-sm-push-11 { + left: 91.66666666666666%; + } + .col-sm-pull-1 { + right: 8.333333333333332%; + } + .col-sm-pull-2 { + right: 16.666666666666664%; + } + .col-sm-pull-3 { + right: 25%; + } + .col-sm-pull-4 { + right: 33.33333333333333%; + } + .col-sm-pull-5 { + right: 41.66666666666667%; + } + .col-sm-pull-6 { + right: 50%; + } + .col-sm-pull-7 { + right: 58.333333333333336%; + } + .col-sm-pull-8 { + right: 66.66666666666666%; + } + .col-sm-pull-9 { + right: 75%; + } + .col-sm-pull-10 { + right: 83.33333333333334%; + } + .col-sm-pull-11 { + right: 91.66666666666666%; + } + .col-sm-offset-1 { + margin-left: 8.333333333333332%; + } + .col-sm-offset-2 { + margin-left: 16.666666666666664%; + } + .col-sm-offset-3 { + margin-left: 25%; + } + .col-sm-offset-4 { + margin-left: 33.33333333333333%; + } + .col-sm-offset-5 { + margin-left: 41.66666666666667%; + } + .col-sm-offset-6 { + margin-left: 50%; + } + .col-sm-offset-7 { + margin-left: 58.333333333333336%; + } + .col-sm-offset-8 { + margin-left: 66.66666666666666%; + } + .col-sm-offset-9 { + margin-left: 75%; + } + .col-sm-offset-10 { + margin-left: 83.33333333333334%; + } + .col-sm-offset-11 { + margin-left: 91.66666666666666%; + } +} + +@media (min-width: 992px) { + .container { + max-width: 970px; + } + .col-md-1, + .col-md-2, + .col-md-3, + .col-md-4, + .col-md-5, + .col-md-6, + .col-md-7, + .col-md-8, + .col-md-9, + .col-md-10, + .col-md-11 { + float: left; + } + .col-md-1 { + width: 8.333333333333332%; + } + .col-md-2 { + width: 16.666666666666664%; + } + .col-md-3 { + width: 25%; + } + .col-md-4 { + width: 33.33333333333333%; + } + .col-md-5 { + width: 41.66666666666667%; + } + .col-md-6 { + width: 50%; + } + .col-md-7 { + width: 58.333333333333336%; + } + .col-md-8 { + width: 66.66666666666666%; + } + .col-md-9 { + width: 75%; + } + .col-md-10 { + width: 83.33333333333334%; + } + .col-md-11 { + width: 91.66666666666666%; + } + .col-md-12 { + width: 100%; + } + .col-md-push-0 { + left: auto; + } + .col-md-push-1 { + left: 8.333333333333332%; + } + .col-md-push-2 { + left: 16.666666666666664%; + } + .col-md-push-3 { + left: 25%; + } + .col-md-push-4 { + left: 33.33333333333333%; + } + .col-md-push-5 { + left: 41.66666666666667%; + } + .col-md-push-6 { + left: 50%; + } + .col-md-push-7 { + left: 58.333333333333336%; + } + .col-md-push-8 { + left: 66.66666666666666%; + } + .col-md-push-9 { + left: 75%; + } + .col-md-push-10 { + left: 83.33333333333334%; + } + .col-md-push-11 { + left: 91.66666666666666%; + } + .col-md-pull-0 { + right: auto; + } + .col-md-pull-1 { + right: 8.333333333333332%; + } + .col-md-pull-2 { + right: 16.666666666666664%; + } + .col-md-pull-3 { + right: 25%; + } + .col-md-pull-4 { + right: 33.33333333333333%; + } + .col-md-pull-5 { + right: 41.66666666666667%; + } + .col-md-pull-6 { + right: 50%; + } + .col-md-pull-7 { + right: 58.333333333333336%; + } + .col-md-pull-8 { + right: 66.66666666666666%; + } + .col-md-pull-9 { + right: 75%; + } + .col-md-pull-10 { + right: 83.33333333333334%; + } + .col-md-pull-11 { + right: 91.66666666666666%; + } + .col-md-offset-0 { + margin-left: 0; + } + .col-md-offset-1 { + margin-left: 8.333333333333332%; + } + .col-md-offset-2 { + margin-left: 16.666666666666664%; + } + .col-md-offset-3 { + margin-left: 25%; + } + .col-md-offset-4 { + margin-left: 33.33333333333333%; + } + .col-md-offset-5 { + margin-left: 41.66666666666667%; + } + .col-md-offset-6 { + margin-left: 50%; + } + .col-md-offset-7 { + margin-left: 58.333333333333336%; + } + .col-md-offset-8 { + margin-left: 66.66666666666666%; + } + .col-md-offset-9 { + margin-left: 75%; + } + .col-md-offset-10 { + margin-left: 83.33333333333334%; + } + .col-md-offset-11 { + margin-left: 91.66666666666666%; + } +} + +@media (min-width: 1200px) { + .container { + max-width: 1170px; + } + .col-lg-1, + .col-lg-2, + .col-lg-3, + .col-lg-4, + .col-lg-5, + .col-lg-6, + .col-lg-7, + .col-lg-8, + .col-lg-9, + .col-lg-10, + .col-lg-11 { + float: left; + } + .col-lg-1 { + width: 8.333333333333332%; + } + .col-lg-2 { + width: 16.666666666666664%; + } + .col-lg-3 { + width: 25%; + } + .col-lg-4 { + width: 33.33333333333333%; + } + .col-lg-5 { + width: 41.66666666666667%; + } + .col-lg-6 { + width: 50%; + } + .col-lg-7 { + width: 58.333333333333336%; + } + .col-lg-8 { + width: 66.66666666666666%; + } + .col-lg-9 { + width: 75%; + } + .col-lg-10 { + width: 83.33333333333334%; + } + .col-lg-11 { + width: 91.66666666666666%; + } + .col-lg-12 { + width: 100%; + } + .col-lg-push-0 { + left: auto; + } + .col-lg-push-1 { + left: 8.333333333333332%; + } + .col-lg-push-2 { + left: 16.666666666666664%; + } + .col-lg-push-3 { + left: 25%; + } + .col-lg-push-4 { + left: 33.33333333333333%; + } + .col-lg-push-5 { + left: 41.66666666666667%; + } + .col-lg-push-6 { + left: 50%; + } + .col-lg-push-7 { + left: 58.333333333333336%; + } + .col-lg-push-8 { + left: 66.66666666666666%; + } + .col-lg-push-9 { + left: 75%; + } + .col-lg-push-10 { + left: 83.33333333333334%; + } + .col-lg-push-11 { + left: 91.66666666666666%; + } + .col-lg-pull-0 { + right: auto; + } + .col-lg-pull-1 { + right: 8.333333333333332%; + } + .col-lg-pull-2 { + right: 16.666666666666664%; + } + .col-lg-pull-3 { + right: 25%; + } + .col-lg-pull-4 { + right: 33.33333333333333%; + } + .col-lg-pull-5 { + right: 41.66666666666667%; + } + .col-lg-pull-6 { + right: 50%; + } + .col-lg-pull-7 { + right: 58.333333333333336%; + } + .col-lg-pull-8 { + right: 66.66666666666666%; + } + .col-lg-pull-9 { + right: 75%; + } + .col-lg-pull-10 { + right: 83.33333333333334%; + } + .col-lg-pull-11 { + right: 91.66666666666666%; + } + .col-lg-offset-0 { + margin-left: 0; + } + .col-lg-offset-1 { + margin-left: 8.333333333333332%; + } + .col-lg-offset-2 { + margin-left: 16.666666666666664%; + } + .col-lg-offset-3 { + margin-left: 25%; + } + .col-lg-offset-4 { + margin-left: 33.33333333333333%; + } + .col-lg-offset-5 { + margin-left: 41.66666666666667%; + } + .col-lg-offset-6 { + margin-left: 50%; + } + .col-lg-offset-7 { + margin-left: 58.333333333333336%; + } + .col-lg-offset-8 { + margin-left: 66.66666666666666%; + } + .col-lg-offset-9 { + margin-left: 75%; + } + .col-lg-offset-10 { + margin-left: 83.33333333333334%; + } + .col-lg-offset-11 { + margin-left: 91.66666666666666%; + } +} + +table { + max-width: 100%; + background-color: transparent; +} + +th { + text-align: left; +} + +.table { + width: 100%; + margin-bottom: 20px; +} + +.table thead > tr > th, +.table tbody > tr > th, +.table tfoot > tr > th, +.table thead > tr > td, +.table tbody > tr > td, +.table tfoot > tr > td { + padding: 8px; + line-height: 1.428571429; + vertical-align: top; + border-top: 1px solid #dddddd; +} + +.table thead > tr > th { + vertical-align: bottom; + border-bottom: 2px solid #dddddd; +} + +.table caption + thead tr:first-child th, +.table colgroup + thead tr:first-child th, +.table thead:first-child tr:first-child th, +.table caption + thead tr:first-child td, +.table colgroup + thead tr:first-child td, +.table thead:first-child tr:first-child td { + border-top: 0; +} + +.table tbody + tbody { + border-top: 2px solid #dddddd; +} + +.table .table { + background-color: #ffffff; +} + +.table-condensed thead > tr > th, +.table-condensed tbody > tr > th, +.table-condensed tfoot > tr > th, +.table-condensed thead > tr > td, +.table-condensed tbody > tr > td, +.table-condensed tfoot > tr > td { + padding: 5px; +} + +.table-bordered { + border: 1px solid #dddddd; +} + +.table-bordered > thead > tr > th, +.table-bordered > tbody > tr > th, +.table-bordered > tfoot > tr > th, +.table-bordered > thead > tr > td, +.table-bordered > tbody > tr > td, +.table-bordered > tfoot > tr > td { + border: 1px solid #dddddd; +} + +.table-bordered > thead > tr > th, +.table-bordered > thead > tr > td { + border-bottom-width: 2px; +} + +.table-striped > tbody > tr:nth-child(odd) > td, +.table-striped > tbody > tr:nth-child(odd) > th { + background-color: #f9f9f9; +} + +.table-hover > tbody > tr:hover > td, +.table-hover > tbody > tr:hover > th { + background-color: #f5f5f5; +} + +table col[class*="col-"] { + display: table-column; + float: none; +} + +table td[class*="col-"], +table th[class*="col-"] { + display: table-cell; + float: none; +} + +.table > thead > tr > td.active, +.table > tbody > tr > td.active, +.table > tfoot > tr > td.active, +.table > thead > tr > th.active, +.table > tbody > tr > th.active, +.table > tfoot > tr > th.active, +.table > thead > tr.active > td, +.table > tbody > tr.active > td, +.table > tfoot > tr.active > td, +.table > thead > tr.active > th, +.table > tbody > tr.active > th, +.table > tfoot > tr.active > th { + background-color: #f5f5f5; +} + +.table > thead > tr > td.success, +.table > tbody > tr > td.success, +.table > tfoot > tr > td.success, +.table > thead > tr > th.success, +.table > tbody > tr > th.success, +.table > tfoot > tr > th.success, +.table > thead > tr.success > td, +.table > tbody > tr.success > td, +.table > tfoot > tr.success > td, +.table > thead > tr.success > th, +.table > tbody > tr.success > th, +.table > tfoot > tr.success > th { + background-color: #dff0d8; + border-color: #d6e9c6; +} + +.table-hover > tbody > tr > td.success:hover, +.table-hover > tbody > tr > th.success:hover, +.table-hover > tbody > tr.success:hover > td { + background-color: #d0e9c6; + border-color: #c9e2b3; +} + +.table > thead > tr > td.danger, +.table > tbody > tr > td.danger, +.table > tfoot > tr > td.danger, +.table > thead > tr > th.danger, +.table > tbody > tr > th.danger, +.table > tfoot > tr > th.danger, +.table > thead > tr.danger > td, +.table > tbody > tr.danger > td, +.table > tfoot > tr.danger > td, +.table > thead > tr.danger > th, +.table > tbody > tr.danger > th, +.table > tfoot > tr.danger > th { + background-color: #f2dede; + border-color: #eed3d7; +} + +.table-hover > tbody > tr > td.danger:hover, +.table-hover > tbody > tr > th.danger:hover, +.table-hover > tbody > tr.danger:hover > td { + background-color: #ebcccc; + border-color: #e6c1c7; +} + +.table > thead > tr > td.warning, +.table > tbody > tr > td.warning, +.table > tfoot > tr > td.warning, +.table > thead > tr > th.warning, +.table > tbody > tr > th.warning, +.table > tfoot > tr > th.warning, +.table > thead > tr.warning > td, +.table > tbody > tr.warning > td, +.table > tfoot > tr.warning > td, +.table > thead > tr.warning > th, +.table > tbody > tr.warning > th, +.table > tfoot > tr.warning > th { + background-color: #fcf8e3; + border-color: #fbeed5; +} + +.table-hover > tbody > tr > td.warning:hover, +.table-hover > tbody > tr > th.warning:hover, +.table-hover > tbody > tr.warning:hover > td { + background-color: #faf2cc; + border-color: #f8e5be; +} + +@media (max-width: 768px) { + .table-responsive { + width: 100%; + margin-bottom: 15px; + overflow-x: scroll; + overflow-y: hidden; + border: 1px solid #dddddd; + } + .table-responsive > .table { + margin-bottom: 0; + background-color: #fff; + } + .table-responsive > .table > thead > tr > th, + .table-responsive > .table > tbody > tr > th, + .table-responsive > .table > tfoot > tr > th, + .table-responsive > .table > thead > tr > td, + .table-responsive > .table > tbody > tr > td, + .table-responsive > .table > tfoot > tr > td { + white-space: nowrap; + } + .table-responsive > .table-bordered { + border: 0; + } + .table-responsive > .table-bordered > thead > tr > th:first-child, + .table-responsive > .table-bordered > tbody > tr > th:first-child, + .table-responsive > .table-bordered > tfoot > tr > th:first-child, + .table-responsive > .table-bordered > thead > tr > td:first-child, + .table-responsive > .table-bordered > tbody > tr > td:first-child, + .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; + } + .table-responsive > .table-bordered > thead > tr > th:last-child, + .table-responsive > .table-bordered > tbody > tr > th:last-child, + .table-responsive > .table-bordered > tfoot > tr > th:last-child, + .table-responsive > .table-bordered > thead > tr > td:last-child, + .table-responsive > .table-bordered > tbody > tr > td:last-child, + .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; + } + .table-responsive > .table-bordered > thead > tr:last-child > th, + .table-responsive > .table-bordered > tbody > tr:last-child > th, + .table-responsive > .table-bordered > tfoot > tr:last-child > th, + .table-responsive > .table-bordered > thead > tr:last-child > td, + .table-responsive > .table-bordered > tbody > tr:last-child > td, + .table-responsive > .table-bordered > tfoot > tr:last-child > td { + border-bottom: 0; + } +} + +fieldset { + padding: 0; + margin: 0; + border: 0; +} + +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 21px; + line-height: inherit; + color: #333333; + border: 0; + border-bottom: 1px solid #e5e5e5; +} + +label { + display: inline-block; + margin-bottom: 5px; + font-weight: bold; +} + +input[type="search"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; + /* IE8-9 */ + + line-height: normal; +} + +input[type="file"] { + display: block; +} + +select[multiple], +select[size] { + height: auto; +} + +select optgroup { + font-family: inherit; + font-size: inherit; + font-style: inherit; +} + +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +input[type="number"]::-webkit-outer-spin-button, +input[type="number"]::-webkit-inner-spin-button { + height: auto; +} + +.form-control:-moz-placeholder { + color: #999999; +} + +.form-control::-moz-placeholder { + color: #999999; +} + +.form-control:-ms-input-placeholder { + color: #999999; +} + +.form-control::-webkit-input-placeholder { + color: #999999; +} + +.form-control { + display: block; + width: 100%; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.428571429; + color: #555555; + vertical-align: middle; + background-color: #ffffff; + border: 1px solid #cccccc; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; + transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; +} + +.form-control:focus { + border-color: #66afe9; + outline: 0; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); +} + +.form-control[disabled], +.form-control[readonly], +fieldset[disabled] .form-control { + cursor: not-allowed; + background-color: #eeeeee; +} + +textarea.form-control { + height: auto; +} + +.form-group { + margin-bottom: 15px; +} + +.radio, +.checkbox { + display: block; + min-height: 20px; + padding-left: 20px; + margin-top: 10px; + margin-bottom: 10px; + vertical-align: middle; +} + +.radio label, +.checkbox label { + display: inline; + margin-bottom: 0; + font-weight: normal; + cursor: pointer; +} + +.radio input[type="radio"], +.radio-inline input[type="radio"], +.checkbox input[type="checkbox"], +.checkbox-inline input[type="checkbox"] { + float: left; + margin-left: -20px; +} + +.radio + .radio, +.checkbox + .checkbox { + margin-top: -5px; +} + +.radio-inline, +.checkbox-inline { + display: inline-block; + padding-left: 20px; + margin-bottom: 0; + font-weight: normal; + vertical-align: middle; + cursor: pointer; +} + +.radio-inline + .radio-inline, +.checkbox-inline + .checkbox-inline { + margin-top: 0; + margin-left: 10px; +} + +input[type="radio"][disabled], +input[type="checkbox"][disabled], +.radio[disabled], +.radio-inline[disabled], +.checkbox[disabled], +.checkbox-inline[disabled], +fieldset[disabled] input[type="radio"], +fieldset[disabled] input[type="checkbox"], +fieldset[disabled] .radio, +fieldset[disabled] .radio-inline, +fieldset[disabled] .checkbox, +fieldset[disabled] .checkbox-inline { + cursor: not-allowed; +} + +.input-sm { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} + +select.input-sm { + height: 30px; + line-height: 30px; +} + +textarea.input-sm { + height: auto; +} + +.input-lg { + height: 45px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} + +select.input-lg { + height: 45px; + line-height: 45px; +} + +textarea.input-lg { + height: auto; +} + +.has-warning .help-block, +.has-warning .control-label { + color: #c09853; +} + +.has-warning .form-control { + border-color: #c09853; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.has-warning .form-control:focus { + border-color: #a47e3c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; +} + +.has-warning .input-group-addon { + color: #c09853; + background-color: #fcf8e3; + border-color: #c09853; +} + +.has-error .help-block, +.has-error .control-label { + color: #b94a48; +} + +.has-error .form-control { + border-color: #b94a48; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.has-error .form-control:focus { + border-color: #953b39; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; +} + +.has-error .input-group-addon { + color: #b94a48; + background-color: #f2dede; + border-color: #b94a48; +} + +.has-success .help-block, +.has-success .control-label { + color: #468847; +} + +.has-success .form-control { + border-color: #468847; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.has-success .form-control:focus { + border-color: #356635; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; +} + +.has-success .input-group-addon { + color: #468847; + background-color: #dff0d8; + border-color: #468847; +} + +.form-control-static { + padding-top: 7px; + margin-bottom: 0; +} + +.help-block { + display: block; + margin-top: 5px; + margin-bottom: 10px; + color: #737373; +} + +@media (min-width: 768px) { + .form-inline .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .form-control { + display: inline-block; + } + .form-inline .radio, + .form-inline .checkbox { + display: inline-block; + padding-left: 0; + margin-top: 0; + margin-bottom: 0; + } + .form-inline .radio input[type="radio"], + .form-inline .checkbox input[type="checkbox"] { + float: none; + margin-left: 0; + } +} + +.form-horizontal .control-label, +.form-horizontal .radio, +.form-horizontal .checkbox, +.form-horizontal .radio-inline, +.form-horizontal .checkbox-inline { + padding-top: 7px; + margin-top: 0; + margin-bottom: 0; +} + +.form-horizontal .form-group { + margin-right: -15px; + margin-left: -15px; +} + +.form-horizontal .form-group:before, +.form-horizontal .form-group:after { + display: table; + content: " "; +} + +.form-horizontal .form-group:after { + clear: both; +} + +.form-horizontal .form-group:before, +.form-horizontal .form-group:after { + display: table; + content: " "; +} + +.form-horizontal .form-group:after { + clear: both; +} + +@media (min-width: 768px) { + .form-horizontal .control-label { + text-align: right; + } +} + +.btn { + display: inline-block; + padding: 6px 12px; + margin-bottom: 0; + font-size: 14px; + font-weight: normal; + line-height: 1.428571429; + text-align: center; + white-space: nowrap; + vertical-align: middle; + cursor: pointer; + border: 1px solid transparent; + border-radius: 4px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + -o-user-select: none; + user-select: none; +} + +.btn:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +.btn:hover, +.btn:focus { + color: #333333; + text-decoration: none; +} + +.btn:active, +.btn.active { + background-image: none; + outline: 0; + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} + +.btn.disabled, +.btn[disabled], +fieldset[disabled] .btn { + pointer-events: none; + cursor: not-allowed; + opacity: 0.65; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + box-shadow: none; +} + +.btn-default { + color: #333333; + background-color: #ffffff; + border-color: #cccccc; +} + +.btn-default:hover, +.btn-default:focus, +.btn-default:active, +.btn-default.active, +.open .dropdown-toggle.btn-default { + color: #333333; + background-color: #ebebeb; + border-color: #adadad; +} + +.btn-default:active, +.btn-default.active, +.open .dropdown-toggle.btn-default { + background-image: none; +} + +.btn-default.disabled, +.btn-default[disabled], +fieldset[disabled] .btn-default, +.btn-default.disabled:hover, +.btn-default[disabled]:hover, +fieldset[disabled] .btn-default:hover, +.btn-default.disabled:focus, +.btn-default[disabled]:focus, +fieldset[disabled] .btn-default:focus, +.btn-default.disabled:active, +.btn-default[disabled]:active, +fieldset[disabled] .btn-default:active, +.btn-default.disabled.active, +.btn-default[disabled].active, +fieldset[disabled] .btn-default.active { + background-color: #ffffff; + border-color: #cccccc; +} + +.btn-primary { + color: #ffffff; + background-color: #428bca; + border-color: #357ebd; +} + +.btn-primary:hover, +.btn-primary:focus, +.btn-primary:active, +.btn-primary.active, +.open .dropdown-toggle.btn-primary { + color: #ffffff; + background-color: #3276b1; + border-color: #285e8e; +} + +.btn-primary:active, +.btn-primary.active, +.open .dropdown-toggle.btn-primary { + background-image: none; +} + +.btn-primary.disabled, +.btn-primary[disabled], +fieldset[disabled] .btn-primary, +.btn-primary.disabled:hover, +.btn-primary[disabled]:hover, +fieldset[disabled] .btn-primary:hover, +.btn-primary.disabled:focus, +.btn-primary[disabled]:focus, +fieldset[disabled] .btn-primary:focus, +.btn-primary.disabled:active, +.btn-primary[disabled]:active, +fieldset[disabled] .btn-primary:active, +.btn-primary.disabled.active, +.btn-primary[disabled].active, +fieldset[disabled] .btn-primary.active { + background-color: #428bca; + border-color: #357ebd; +} + +.btn-warning { + color: #ffffff; + background-color: #f0ad4e; + border-color: #eea236; +} + +.btn-warning:hover, +.btn-warning:focus, +.btn-warning:active, +.btn-warning.active, +.open .dropdown-toggle.btn-warning { + color: #ffffff; + background-color: #ed9c28; + border-color: #d58512; +} + +.btn-warning:active, +.btn-warning.active, +.open .dropdown-toggle.btn-warning { + background-image: none; +} + +.btn-warning.disabled, +.btn-warning[disabled], +fieldset[disabled] .btn-warning, +.btn-warning.disabled:hover, +.btn-warning[disabled]:hover, +fieldset[disabled] .btn-warning:hover, +.btn-warning.disabled:focus, +.btn-warning[disabled]:focus, +fieldset[disabled] .btn-warning:focus, +.btn-warning.disabled:active, +.btn-warning[disabled]:active, +fieldset[disabled] .btn-warning:active, +.btn-warning.disabled.active, +.btn-warning[disabled].active, +fieldset[disabled] .btn-warning.active { + background-color: #f0ad4e; + border-color: #eea236; +} + +.btn-danger { + color: #ffffff; + background-color: #d9534f; + border-color: #d43f3a; +} + +.btn-danger:hover, +.btn-danger:focus, +.btn-danger:active, +.btn-danger.active, +.open .dropdown-toggle.btn-danger { + color: #ffffff; + background-color: #d2322d; + border-color: #ac2925; +} + +.btn-danger:active, +.btn-danger.active, +.open .dropdown-toggle.btn-danger { + background-image: none; +} + +.btn-danger.disabled, +.btn-danger[disabled], +fieldset[disabled] .btn-danger, +.btn-danger.disabled:hover, +.btn-danger[disabled]:hover, +fieldset[disabled] .btn-danger:hover, +.btn-danger.disabled:focus, +.btn-danger[disabled]:focus, +fieldset[disabled] .btn-danger:focus, +.btn-danger.disabled:active, +.btn-danger[disabled]:active, +fieldset[disabled] .btn-danger:active, +.btn-danger.disabled.active, +.btn-danger[disabled].active, +fieldset[disabled] .btn-danger.active { + background-color: #d9534f; + border-color: #d43f3a; +} + +.btn-success { + color: #ffffff; + background-color: #5cb85c; + border-color: #4cae4c; +} + +.btn-success:hover, +.btn-success:focus, +.btn-success:active, +.btn-success.active, +.open .dropdown-toggle.btn-success { + color: #ffffff; + background-color: #47a447; + border-color: #398439; +} + +.btn-success:active, +.btn-success.active, +.open .dropdown-toggle.btn-success { + background-image: none; +} + +.btn-success.disabled, +.btn-success[disabled], +fieldset[disabled] .btn-success, +.btn-success.disabled:hover, +.btn-success[disabled]:hover, +fieldset[disabled] .btn-success:hover, +.btn-success.disabled:focus, +.btn-success[disabled]:focus, +fieldset[disabled] .btn-success:focus, +.btn-success.disabled:active, +.btn-success[disabled]:active, +fieldset[disabled] .btn-success:active, +.btn-success.disabled.active, +.btn-success[disabled].active, +fieldset[disabled] .btn-success.active { + background-color: #5cb85c; + border-color: #4cae4c; +} + +.btn-info { + color: #ffffff; + background-color: #5bc0de; + border-color: #46b8da; +} + +.btn-info:hover, +.btn-info:focus, +.btn-info:active, +.btn-info.active, +.open .dropdown-toggle.btn-info { + color: #ffffff; + background-color: #39b3d7; + border-color: #269abc; +} + +.btn-info:active, +.btn-info.active, +.open .dropdown-toggle.btn-info { + background-image: none; +} + +.btn-info.disabled, +.btn-info[disabled], +fieldset[disabled] .btn-info, +.btn-info.disabled:hover, +.btn-info[disabled]:hover, +fieldset[disabled] .btn-info:hover, +.btn-info.disabled:focus, +.btn-info[disabled]:focus, +fieldset[disabled] .btn-info:focus, +.btn-info.disabled:active, +.btn-info[disabled]:active, +fieldset[disabled] .btn-info:active, +.btn-info.disabled.active, +.btn-info[disabled].active, +fieldset[disabled] .btn-info.active { + background-color: #5bc0de; + border-color: #46b8da; +} + +.btn-link { + font-weight: normal; + color: #428bca; + cursor: pointer; + border-radius: 0; +} + +.btn-link, +.btn-link:active, +.btn-link[disabled], +fieldset[disabled] .btn-link { + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; +} + +.btn-link, +.btn-link:hover, +.btn-link:focus, +.btn-link:active { + border-color: transparent; +} + +.btn-link:hover, +.btn-link:focus { + color: #2a6496; + text-decoration: underline; + background-color: transparent; +} + +.btn-link[disabled]:hover, +fieldset[disabled] .btn-link:hover, +.btn-link[disabled]:focus, +fieldset[disabled] .btn-link:focus { + color: #999999; + text-decoration: none; +} + +.btn-lg { + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} + +.btn-sm, +.btn-xs { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} + +.btn-xs { + padding: 1px 5px; +} + +.btn-block { + display: block; + width: 100%; + padding-right: 0; + padding-left: 0; +} + +.btn-block + .btn-block { + margin-top: 5px; +} + +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} + +.fade { + opacity: 0; + -webkit-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; +} + +.fade.in { + opacity: 1; +} + +.collapse { + display: none; +} + +.collapse.in { + display: block; +} + +.collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition: height 0.35s ease; + transition: height 0.35s ease; +} + +@font-face { + font-family: 'Glyphicons Halflings'; + src: url('../fonts/glyphicons-halflings-regular.eot'); + src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg'); +} + +.glyphicon { + position: relative; + top: 1px; + display: inline-block; + font-family: 'Glyphicons Halflings'; + -webkit-font-smoothing: antialiased; + font-style: normal; + font-weight: normal; + line-height: 1; +} + +.glyphicon-asterisk:before { + content: "\2a"; +} + +.glyphicon-plus:before { + content: "\2b"; +} + +.glyphicon-euro:before { + content: "\20ac"; +} + +.glyphicon-minus:before { + content: "\2212"; +} + +.glyphicon-cloud:before { + content: "\2601"; +} + +.glyphicon-envelope:before { + content: "\2709"; +} + +.glyphicon-pencil:before { + content: "\270f"; +} + +.glyphicon-glass:before { + content: "\e001"; +} + +.glyphicon-music:before { + content: "\e002"; +} + +.glyphicon-search:before { + content: "\e003"; +} + +.glyphicon-heart:before { + content: "\e005"; +} + +.glyphicon-star:before { + content: "\e006"; +} + +.glyphicon-star-empty:before { + content: "\e007"; +} + +.glyphicon-user:before { + content: "\e008"; +} + +.glyphicon-film:before { + content: "\e009"; +} + +.glyphicon-th-large:before { + content: "\e010"; +} + +.glyphicon-th:before { + content: "\e011"; +} + +.glyphicon-th-list:before { + content: "\e012"; +} + +.glyphicon-ok:before { + content: "\e013"; +} + +.glyphicon-remove:before { + content: "\e014"; +} + +.glyphicon-zoom-in:before { + content: "\e015"; +} + +.glyphicon-zoom-out:before { + content: "\e016"; +} + +.glyphicon-off:before { + content: "\e017"; +} + +.glyphicon-signal:before { + content: "\e018"; +} + +.glyphicon-cog:before { + content: "\e019"; +} + +.glyphicon-trash:before { + content: "\e020"; +} + +.glyphicon-home:before { + content: "\e021"; +} + +.glyphicon-file:before { + content: "\e022"; +} + +.glyphicon-time:before { + content: "\e023"; +} + +.glyphicon-road:before { + content: "\e024"; +} + +.glyphicon-download-alt:before { + content: "\e025"; +} + +.glyphicon-download:before { + content: "\e026"; +} + +.glyphicon-upload:before { + content: "\e027"; +} + +.glyphicon-inbox:before { + content: "\e028"; +} + +.glyphicon-play-circle:before { + content: "\e029"; +} + +.glyphicon-repeat:before { + content: "\e030"; +} + +.glyphicon-refresh:before { + content: "\e031"; +} + +.glyphicon-list-alt:before { + content: "\e032"; +} + +.glyphicon-flag:before { + content: "\e034"; +} + +.glyphicon-headphones:before { + content: "\e035"; +} + +.glyphicon-volume-off:before { + content: "\e036"; +} + +.glyphicon-volume-down:before { + content: "\e037"; +} + +.glyphicon-volume-up:before { + content: "\e038"; +} + +.glyphicon-qrcode:before { + content: "\e039"; +} + +.glyphicon-barcode:before { + content: "\e040"; +} + +.glyphicon-tag:before { + content: "\e041"; +} + +.glyphicon-tags:before { + content: "\e042"; +} + +.glyphicon-book:before { + content: "\e043"; +} + +.glyphicon-print:before { + content: "\e045"; +} + +.glyphicon-font:before { + content: "\e047"; +} + +.glyphicon-bold:before { + content: "\e048"; +} + +.glyphicon-italic:before { + content: "\e049"; +} + +.glyphicon-text-height:before { + content: "\e050"; +} + +.glyphicon-text-width:before { + content: "\e051"; +} + +.glyphicon-align-left:before { + content: "\e052"; +} + +.glyphicon-align-center:before { + content: "\e053"; +} + +.glyphicon-align-right:before { + content: "\e054"; +} + +.glyphicon-align-justify:before { + content: "\e055"; +} + +.glyphicon-list:before { + content: "\e056"; +} + +.glyphicon-indent-left:before { + content: "\e057"; +} + +.glyphicon-indent-right:before { + content: "\e058"; +} + +.glyphicon-facetime-video:before { + content: "\e059"; +} + +.glyphicon-picture:before { + content: "\e060"; +} + +.glyphicon-map-marker:before { + content: "\e062"; +} + +.glyphicon-adjust:before { + content: "\e063"; +} + +.glyphicon-tint:before { + content: "\e064"; +} + +.glyphicon-edit:before { + content: "\e065"; +} + +.glyphicon-share:before { + content: "\e066"; +} + +.glyphicon-check:before { + content: "\e067"; +} + +.glyphicon-move:before { + content: "\e068"; +} + +.glyphicon-step-backward:before { + content: "\e069"; +} + +.glyphicon-fast-backward:before { + content: "\e070"; +} + +.glyphicon-backward:before { + content: "\e071"; +} + +.glyphicon-play:before { + content: "\e072"; +} + +.glyphicon-pause:before { + content: "\e073"; +} + +.glyphicon-stop:before { + content: "\e074"; +} + +.glyphicon-forward:before { + content: "\e075"; +} + +.glyphicon-fast-forward:before { + content: "\e076"; +} + +.glyphicon-step-forward:before { + content: "\e077"; +} + +.glyphicon-eject:before { + content: "\e078"; +} + +.glyphicon-chevron-left:before { + content: "\e079"; +} + +.glyphicon-chevron-right:before { + content: "\e080"; +} + +.glyphicon-plus-sign:before { + content: "\e081"; +} + +.glyphicon-minus-sign:before { + content: "\e082"; +} + +.glyphicon-remove-sign:before { + content: "\e083"; +} + +.glyphicon-ok-sign:before { + content: "\e084"; +} + +.glyphicon-question-sign:before { + content: "\e085"; +} + +.glyphicon-info-sign:before { + content: "\e086"; +} + +.glyphicon-screenshot:before { + content: "\e087"; +} + +.glyphicon-remove-circle:before { + content: "\e088"; +} + +.glyphicon-ok-circle:before { + content: "\e089"; +} + +.glyphicon-ban-circle:before { + content: "\e090"; +} + +.glyphicon-arrow-left:before { + content: "\e091"; +} + +.glyphicon-arrow-right:before { + content: "\e092"; +} + +.glyphicon-arrow-up:before { + content: "\e093"; +} + +.glyphicon-arrow-down:before { + content: "\e094"; +} + +.glyphicon-share-alt:before { + content: "\e095"; +} + +.glyphicon-resize-full:before { + content: "\e096"; +} + +.glyphicon-resize-small:before { + content: "\e097"; +} + +.glyphicon-exclamation-sign:before { + content: "\e101"; +} + +.glyphicon-gift:before { + content: "\e102"; +} + +.glyphicon-leaf:before { + content: "\e103"; +} + +.glyphicon-eye-open:before { + content: "\e105"; +} + +.glyphicon-eye-close:before { + content: "\e106"; +} + +.glyphicon-warning-sign:before { + content: "\e107"; +} + +.glyphicon-plane:before { + content: "\e108"; +} + +.glyphicon-random:before { + content: "\e110"; +} + +.glyphicon-comment:before { + content: "\e111"; +} + +.glyphicon-magnet:before { + content: "\e112"; +} + +.glyphicon-chevron-up:before { + content: "\e113"; +} + +.glyphicon-chevron-down:before { + content: "\e114"; +} + +.glyphicon-retweet:before { + content: "\e115"; +} + +.glyphicon-shopping-cart:before { + content: "\e116"; +} + +.glyphicon-folder-close:before { + content: "\e117"; +} + +.glyphicon-folder-open:before { + content: "\e118"; +} + +.glyphicon-resize-vertical:before { + content: "\e119"; +} + +.glyphicon-resize-horizontal:before { + content: "\e120"; +} + +.glyphicon-hdd:before { + content: "\e121"; +} + +.glyphicon-bullhorn:before { + content: "\e122"; +} + +.glyphicon-certificate:before { + content: "\e124"; +} + +.glyphicon-thumbs-up:before { + content: "\e125"; +} + +.glyphicon-thumbs-down:before { + content: "\e126"; +} + +.glyphicon-hand-right:before { + content: "\e127"; +} + +.glyphicon-hand-left:before { + content: "\e128"; +} + +.glyphicon-hand-up:before { + content: "\e129"; +} + +.glyphicon-hand-down:before { + content: "\e130"; +} + +.glyphicon-circle-arrow-right:before { + content: "\e131"; +} + +.glyphicon-circle-arrow-left:before { + content: "\e132"; +} + +.glyphicon-circle-arrow-up:before { + content: "\e133"; +} + +.glyphicon-circle-arrow-down:before { + content: "\e134"; +} + +.glyphicon-globe:before { + content: "\e135"; +} + +.glyphicon-tasks:before { + content: "\e137"; +} + +.glyphicon-filter:before { + content: "\e138"; +} + +.glyphicon-fullscreen:before { + content: "\e140"; +} + +.glyphicon-dashboard:before { + content: "\e141"; +} + +.glyphicon-heart-empty:before { + content: "\e143"; +} + +.glyphicon-link:before { + content: "\e144"; +} + +.glyphicon-phone:before { + content: "\e145"; +} + +.glyphicon-usd:before { + content: "\e148"; +} + +.glyphicon-gbp:before { + content: "\e149"; +} + +.glyphicon-sort:before { + content: "\e150"; +} + +.glyphicon-sort-by-alphabet:before { + content: "\e151"; +} + +.glyphicon-sort-by-alphabet-alt:before { + content: "\e152"; +} + +.glyphicon-sort-by-order:before { + content: "\e153"; +} + +.glyphicon-sort-by-order-alt:before { + content: "\e154"; +} + +.glyphicon-sort-by-attributes:before { + content: "\e155"; +} + +.glyphicon-sort-by-attributes-alt:before { + content: "\e156"; +} + +.glyphicon-unchecked:before { + content: "\e157"; +} + +.glyphicon-expand:before { + content: "\e158"; +} + +.glyphicon-collapse-down:before { + content: "\e159"; +} + +.glyphicon-collapse-up:before { + content: "\e160"; +} + +.glyphicon-log-in:before { + content: "\e161"; +} + +.glyphicon-flash:before { + content: "\e162"; +} + +.glyphicon-log-out:before { + content: "\e163"; +} + +.glyphicon-new-window:before { + content: "\e164"; +} + +.glyphicon-record:before { + content: "\e165"; +} + +.glyphicon-save:before { + content: "\e166"; +} + +.glyphicon-open:before { + content: "\e167"; +} + +.glyphicon-saved:before { + content: "\e168"; +} + +.glyphicon-import:before { + content: "\e169"; +} + +.glyphicon-export:before { + content: "\e170"; +} + +.glyphicon-send:before { + content: "\e171"; +} + +.glyphicon-floppy-disk:before { + content: "\e172"; +} + +.glyphicon-floppy-saved:before { + content: "\e173"; +} + +.glyphicon-floppy-remove:before { + content: "\e174"; +} + +.glyphicon-floppy-save:before { + content: "\e175"; +} + +.glyphicon-floppy-open:before { + content: "\e176"; +} + +.glyphicon-credit-card:before { + content: "\e177"; +} + +.glyphicon-transfer:before { + content: "\e178"; +} + +.glyphicon-cutlery:before { + content: "\e179"; +} + +.glyphicon-header:before { + content: "\e180"; +} + +.glyphicon-compressed:before { + content: "\e181"; +} + +.glyphicon-earphone:before { + content: "\e182"; +} + +.glyphicon-phone-alt:before { + content: "\e183"; +} + +.glyphicon-tower:before { + content: "\e184"; +} + +.glyphicon-stats:before { + content: "\e185"; +} + +.glyphicon-sd-video:before { + content: "\e186"; +} + +.glyphicon-hd-video:before { + content: "\e187"; +} + +.glyphicon-subtitles:before { + content: "\e188"; +} + +.glyphicon-sound-stereo:before { + content: "\e189"; +} + +.glyphicon-sound-dolby:before { + content: "\e190"; +} + +.glyphicon-sound-5-1:before { + content: "\e191"; +} + +.glyphicon-sound-6-1:before { + content: "\e192"; +} + +.glyphicon-sound-7-1:before { + content: "\e193"; +} + +.glyphicon-copyright-mark:before { + content: "\e194"; +} + +.glyphicon-registration-mark:before { + content: "\e195"; +} + +.glyphicon-cloud-download:before { + content: "\e197"; +} + +.glyphicon-cloud-upload:before { + content: "\e198"; +} + +.glyphicon-tree-conifer:before { + content: "\e199"; +} + +.glyphicon-tree-deciduous:before { + content: "\e200"; +} + +.glyphicon-briefcase:before { + content: "\1f4bc"; +} + +.glyphicon-calendar:before { + content: "\1f4c5"; +} + +.glyphicon-pushpin:before { + content: "\1f4cc"; +} + +.glyphicon-paperclip:before { + content: "\1f4ce"; +} + +.glyphicon-camera:before { + content: "\1f4f7"; +} + +.glyphicon-lock:before { + content: "\1f512"; +} + +.glyphicon-bell:before { + content: "\1f514"; +} + +.glyphicon-bookmark:before { + content: "\1f516"; +} + +.glyphicon-fire:before { + content: "\1f525"; +} + +.glyphicon-wrench:before { + content: "\1f527"; +} + +.caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: 4px solid #000000; + border-right: 4px solid transparent; + border-bottom: 0 dotted; + border-left: 4px solid transparent; + content: ""; +} + +.dropdown { + position: relative; +} + +.dropdown-toggle:focus { + outline: 0; +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + font-size: 14px; + list-style: none; + background-color: #ffffff; + border: 1px solid #cccccc; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 4px; + -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + background-clip: padding-box; +} + +.dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.dropdown-menu .divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; +} + +.dropdown-menu > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 1.428571429; + color: #333333; + white-space: nowrap; +} + +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus { + color: #ffffff; + text-decoration: none; + background-color: #428bca; +} + +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + color: #ffffff; + text-decoration: none; + background-color: #428bca; + outline: 0; +} + +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + color: #999999; +} + +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + text-decoration: none; + cursor: not-allowed; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.open > .dropdown-menu { + display: block; +} + +.open > a { + outline: 0; +} + +.dropdown-header { + display: block; + padding: 3px 20px; + font-size: 12px; + line-height: 1.428571429; + color: #999999; +} + +.dropdown-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 990; +} + +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} + +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + border-top: 0 dotted; + border-bottom: 4px solid #000000; + content: ""; +} + +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px; +} + +@media (min-width: 768px) { + .navbar-right .dropdown-menu { + right: 0; + left: auto; + } +} + +.btn-default .caret { + border-top-color: #333333; +} + +.btn-primary .caret, +.btn-success .caret, +.btn-warning .caret, +.btn-danger .caret, +.btn-info .caret { + border-top-color: #fff; +} + +.dropup .btn-default .caret { + border-bottom-color: #333333; +} + +.dropup .btn-primary .caret, +.dropup .btn-success .caret, +.dropup .btn-warning .caret, +.dropup .btn-danger .caret, +.dropup .btn-info .caret { + border-bottom-color: #fff; +} + +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-block; + vertical-align: middle; +} + +.btn-group > .btn, +.btn-group-vertical > .btn { + position: relative; + float: left; +} + +.btn-group > .btn:hover, +.btn-group-vertical > .btn:hover, +.btn-group > .btn:focus, +.btn-group-vertical > .btn:focus, +.btn-group > .btn:active, +.btn-group-vertical > .btn:active, +.btn-group > .btn.active, +.btn-group-vertical > .btn.active { + z-index: 2; +} + +.btn-group > .btn:focus, +.btn-group-vertical > .btn:focus { + outline: none; +} + +.btn-group .btn + .btn, +.btn-group .btn + .btn-group, +.btn-group .btn-group + .btn, +.btn-group .btn-group + .btn-group { + margin-left: -1px; +} + +.btn-toolbar:before, +.btn-toolbar:after { + display: table; + content: " "; +} + +.btn-toolbar:after { + clear: both; +} + +.btn-toolbar:before, +.btn-toolbar:after { + display: table; + content: " "; +} + +.btn-toolbar:after { + clear: both; +} + +.btn-toolbar .btn-group { + float: left; +} + +.btn-toolbar > .btn + .btn, +.btn-toolbar > .btn-group + .btn, +.btn-toolbar > .btn + .btn-group, +.btn-toolbar > .btn-group + .btn-group { + margin-left: 5px; +} + +.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0; +} + +.btn-group > .btn:first-child { + margin-left: 0; +} + +.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.btn-group > .btn:last-child:not(:first-child), +.btn-group > .dropdown-toggle:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} + +.btn-group > .btn-group { + float: left; +} + +.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} + +.btn-group > .btn-group:first-child > .btn:last-child, +.btn-group > .btn-group:first-child > .dropdown-toggle { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.btn-group > .btn-group:last-child > .btn:first-child { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} + +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} + +.btn-group-xs > .btn { + padding: 5px 10px; + padding: 1px 5px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} + +.btn-group-sm > .btn { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} + +.btn-group-lg > .btn { + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} + +.btn-group > .btn + .dropdown-toggle { + padding-right: 8px; + padding-left: 8px; +} + +.btn-group > .btn-lg + .dropdown-toggle { + padding-right: 12px; + padding-left: 12px; +} + +.btn-group.open .dropdown-toggle { + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} + +.btn .caret { + margin-left: 0; +} + +.btn-lg .caret { + border-width: 5px 5px 0; + border-bottom-width: 0; +} + +.dropup .btn-lg .caret { + border-width: 0 5px 5px; +} + +.btn-group-vertical > .btn, +.btn-group-vertical > .btn-group { + display: block; + float: none; + width: 100%; + max-width: 100%; +} + +.btn-group-vertical > .btn-group:before, +.btn-group-vertical > .btn-group:after { + display: table; + content: " "; +} + +.btn-group-vertical > .btn-group:after { + clear: both; +} + +.btn-group-vertical > .btn-group:before, +.btn-group-vertical > .btn-group:after { + display: table; + content: " "; +} + +.btn-group-vertical > .btn-group:after { + clear: both; +} + +.btn-group-vertical > .btn-group > .btn { + float: none; +} + +.btn-group-vertical > .btn + .btn, +.btn-group-vertical > .btn + .btn-group, +.btn-group-vertical > .btn-group + .btn, +.btn-group-vertical > .btn-group + .btn-group { + margin-top: -1px; + margin-left: 0; +} + +.btn-group-vertical > .btn:not(:first-child):not(:last-child) { + border-radius: 0; +} + +.btn-group-vertical > .btn:first-child:not(:last-child) { + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.btn-group-vertical > .btn:last-child:not(:first-child) { + border-top-right-radius: 0; + border-bottom-left-radius: 4px; + border-top-left-radius: 0; +} + +.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} + +.btn-group-vertical > .btn-group:first-child > .btn:last-child, +.btn-group-vertical > .btn-group:first-child > .dropdown-toggle { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.btn-group-vertical > .btn-group:last-child > .btn:first-child { + border-top-right-radius: 0; + border-top-left-radius: 0; +} + +.btn-group-justified { + display: table; + width: 100%; + border-collapse: separate; + table-layout: fixed; +} + +.btn-group-justified .btn { + display: table-cell; + float: none; + width: 1%; +} + +[data-toggle="buttons"] > .btn > input[type="radio"], +[data-toggle="buttons"] > .btn > input[type="checkbox"] { + display: none; +} + +.input-group { + position: relative; + display: table; + border-collapse: separate; +} + +.input-group.col { + float: none; + padding-right: 0; + padding-left: 0; +} + +.input-group .form-control { + width: 100%; + margin-bottom: 0; +} + +.input-group-lg > .form-control, +.input-group-lg > .input-group-addon, +.input-group-lg > .input-group-btn > .btn { + height: 45px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} + +select.input-group-lg > .form-control, +select.input-group-lg > .input-group-addon, +select.input-group-lg > .input-group-btn > .btn { + height: 45px; + line-height: 45px; +} + +textarea.input-group-lg > .form-control, +textarea.input-group-lg > .input-group-addon, +textarea.input-group-lg > .input-group-btn > .btn { + height: auto; +} + +.input-group-sm > .form-control, +.input-group-sm > .input-group-addon, +.input-group-sm > .input-group-btn > .btn { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} + +select.input-group-sm > .form-control, +select.input-group-sm > .input-group-addon, +select.input-group-sm > .input-group-btn > .btn { + height: 30px; + line-height: 30px; +} + +textarea.input-group-sm > .form-control, +textarea.input-group-sm > .input-group-addon, +textarea.input-group-sm > .input-group-btn > .btn { + height: auto; +} + +.input-group-addon, +.input-group-btn, +.input-group .form-control { + display: table-cell; +} + +.input-group-addon:not(:first-child):not(:last-child), +.input-group-btn:not(:first-child):not(:last-child), +.input-group .form-control:not(:first-child):not(:last-child) { + border-radius: 0; +} + +.input-group-addon, +.input-group-btn { + width: 1%; + white-space: nowrap; + vertical-align: middle; +} + +.input-group-addon { + padding: 6px 12px; + font-size: 14px; + font-weight: normal; + line-height: 1; + text-align: center; + background-color: #eeeeee; + border: 1px solid #cccccc; + border-radius: 4px; +} + +.input-group-addon.input-sm { + padding: 5px 10px; + font-size: 12px; + border-radius: 3px; +} + +.input-group-addon.input-lg { + padding: 10px 16px; + font-size: 18px; + border-radius: 6px; +} + +.input-group-addon input[type="radio"], +.input-group-addon input[type="checkbox"] { + margin-top: 0; +} + +.input-group .form-control:first-child, +.input-group-addon:first-child, +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .dropdown-toggle, +.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.input-group-addon:first-child { + border-right: 0; +} + +.input-group .form-control:last-child, +.input-group-addon:last-child, +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .dropdown-toggle, +.input-group-btn:first-child > .btn:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} + +.input-group-addon:last-child { + border-left: 0; +} + +.input-group-btn { + position: relative; + white-space: nowrap; +} + +.input-group-btn > .btn { + position: relative; +} + +.input-group-btn > .btn + .btn { + margin-left: -4px; +} + +.input-group-btn > .btn:hover, +.input-group-btn > .btn:active { + z-index: 2; +} + +.nav { + padding-left: 0; + margin-bottom: 0; + list-style: none; +} + +.nav:before, +.nav:after { + display: table; + content: " "; +} + +.nav:after { + clear: both; +} + +.nav:before, +.nav:after { + display: table; + content: " "; +} + +.nav:after { + clear: both; +} + +.nav > li { + position: relative; + display: block; +} + +.nav > li > a { + position: relative; + display: block; + padding: 10px 15px; +} + +.nav > li > a:hover, +.nav > li > a:focus { + text-decoration: none; + background-color: #eeeeee; +} + +.nav > li.disabled > a { + color: #999999; +} + +.nav > li.disabled > a:hover, +.nav > li.disabled > a:focus { + color: #999999; + text-decoration: none; + cursor: not-allowed; + background-color: transparent; +} + +.nav .open > a, +.nav .open > a:hover, +.nav .open > a:focus { + background-color: #eeeeee; + border-color: #428bca; +} + +.nav .nav-divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; +} + +.nav > li > a > img { + max-width: none; +} + +.nav-tabs { + border-bottom: 1px solid #dddddd; +} + +.nav-tabs > li { + float: left; + margin-bottom: -1px; +} + +.nav-tabs > li > a { + margin-right: 2px; + line-height: 1.428571429; + border: 1px solid transparent; + border-radius: 4px 4px 0 0; +} + +.nav-tabs > li > a:hover { + border-color: #eeeeee #eeeeee #dddddd; +} + +.nav-tabs > li.active > a, +.nav-tabs > li.active > a:hover, +.nav-tabs > li.active > a:focus { + color: #555555; + cursor: default; + background-color: #ffffff; + border: 1px solid #dddddd; + border-bottom-color: transparent; +} + +.nav-tabs.nav-justified { + width: 100%; + border-bottom: 0; +} + +.nav-tabs.nav-justified > li { + float: none; +} + +.nav-tabs.nav-justified > li > a { + text-align: center; +} + +@media (min-width: 768px) { + .nav-tabs.nav-justified > li { + display: table-cell; + width: 1%; + } +} + +.nav-tabs.nav-justified > li > a { + margin-right: 0; + border-bottom: 1px solid #dddddd; +} + +.nav-tabs.nav-justified > .active > a { + border-bottom-color: #ffffff; +} + +.nav-pills > li { + float: left; +} + +.nav-pills > li > a { + border-radius: 5px; +} + +.nav-pills > li + li { + margin-left: 2px; +} + +.nav-pills > li.active > a, +.nav-pills > li.active > a:hover, +.nav-pills > li.active > a:focus { + color: #ffffff; + background-color: #428bca; +} + +.nav-stacked > li { + float: none; +} + +.nav-stacked > li + li { + margin-top: 2px; + margin-left: 0; +} + +.nav-justified { + width: 100%; +} + +.nav-justified > li { + float: none; +} + +.nav-justified > li > a { + text-align: center; +} + +@media (min-width: 768px) { + .nav-justified > li { + display: table-cell; + width: 1%; + } +} + +.nav-tabs-justified { + border-bottom: 0; +} + +.nav-tabs-justified > li > a { + margin-right: 0; + border-bottom: 1px solid #dddddd; +} + +.nav-tabs-justified > .active > a { + border-bottom-color: #ffffff; +} + +.tabbable:before, +.tabbable:after { + display: table; + content: " "; +} + +.tabbable:after { + clear: both; +} + +.tabbable:before, +.tabbable:after { + display: table; + content: " "; +} + +.tabbable:after { + clear: both; +} + +.tab-content > .tab-pane, +.pill-content > .pill-pane { + display: none; +} + +.tab-content > .active, +.pill-content > .active { + display: block; +} + +.nav .caret { + border-top-color: #428bca; + border-bottom-color: #428bca; +} + +.nav a:hover .caret { + border-top-color: #2a6496; + border-bottom-color: #2a6496; +} + +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-right-radius: 0; + border-top-left-radius: 0; +} + +.navbar { + position: relative; + z-index: 1000; + min-height: 50px; + margin-bottom: 20px; + border: 1px solid transparent; +} + +.navbar:before, +.navbar:after { + display: table; + content: " "; +} + +.navbar:after { + clear: both; +} + +.navbar:before, +.navbar:after { + display: table; + content: " "; +} + +.navbar:after { + clear: both; +} + +@media (min-width: 768px) { + .navbar { + border-radius: 4px; + } +} + +.navbar-header:before, +.navbar-header:after { + display: table; + content: " "; +} + +.navbar-header:after { + clear: both; +} + +.navbar-header:before, +.navbar-header:after { + display: table; + content: " "; +} + +.navbar-header:after { + clear: both; +} + +@media (min-width: 768px) { + .navbar-header { + float: left; + } +} + +.navbar-collapse { + max-height: 340px; + padding-right: 15px; + padding-left: 15px; + overflow-x: visible; + border-top: 1px solid transparent; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); + -webkit-overflow-scrolling: touch; +} + +.navbar-collapse:before, +.navbar-collapse:after { + display: table; + content: " "; +} + +.navbar-collapse:after { + clear: both; +} + +.navbar-collapse:before, +.navbar-collapse:after { + display: table; + content: " "; +} + +.navbar-collapse:after { + clear: both; +} + +.navbar-collapse.in { + overflow-y: auto; +} + +@media (min-width: 768px) { + .navbar-collapse { + width: auto; + border-top: 0; + box-shadow: none; + } + .navbar-collapse.collapse { + display: block !important; + height: auto !important; + padding-bottom: 0; + overflow: visible !important; + } + .navbar-collapse.in { + overflow-y: visible; + } + .navbar-collapse .navbar-nav.navbar-left:first-child { + margin-left: -15px; + } + .navbar-collapse .navbar-nav.navbar-right:last-child { + margin-right: -15px; + } + .navbar-collapse .navbar-text:last-child { + margin-right: 0; + } +} + +.container > .navbar-header, +.container > .navbar-collapse { + margin-right: -15px; + margin-left: -15px; +} + +@media (min-width: 768px) { + .container > .navbar-header, + .container > .navbar-collapse { + margin-right: 0; + margin-left: 0; + } +} + +.navbar-static-top { + border-width: 0 0 1px; +} + +@media (min-width: 768px) { + .navbar-static-top { + border-radius: 0; + } +} + +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + border-width: 0 0 1px; +} + +@media (min-width: 768px) { + .navbar-fixed-top, + .navbar-fixed-bottom { + border-radius: 0; + } +} + +.navbar-fixed-top { + top: 0; + z-index: 1030; +} + +.navbar-fixed-bottom { + bottom: 0; + margin-bottom: 0; +} + +.navbar-brand { + float: left; + padding: 15px 15px; + font-size: 18px; + line-height: 20px; +} + +.navbar-brand:hover, +.navbar-brand:focus { + text-decoration: none; +} + +@media (min-width: 768px) { + .navbar > .container .navbar-brand { + margin-left: -15px; + } +} + +.navbar-toggle { + position: relative; + float: right; + padding: 9px 10px; + margin-top: 8px; + margin-right: 15px; + margin-bottom: 8px; + background-color: transparent; + border: 1px solid transparent; + border-radius: 4px; +} + +.navbar-toggle .icon-bar { + display: block; + width: 22px; + height: 2px; + border-radius: 1px; +} + +.navbar-toggle .icon-bar + .icon-bar { + margin-top: 4px; +} + +@media (min-width: 768px) { + .navbar-toggle { + display: none; + } +} + +.navbar-nav { + margin: 7.5px -15px; +} + +.navbar-nav > li > a { + padding-top: 10px; + padding-bottom: 10px; + line-height: 20px; +} + +@media (max-width: 767px) { + .navbar-nav .open .dropdown-menu { + position: static; + float: none; + width: auto; + margin-top: 0; + background-color: transparent; + border: 0; + box-shadow: none; + } + .navbar-nav .open .dropdown-menu > li > a, + .navbar-nav .open .dropdown-menu .dropdown-header { + padding: 5px 15px 5px 25px; + } + .navbar-nav .open .dropdown-menu > li > a { + line-height: 20px; + } + .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-nav .open .dropdown-menu > li > a:focus { + background-image: none; + } +} + +@media (min-width: 768px) { + .navbar-nav { + float: left; + margin: 0; + } + .navbar-nav > li { + float: left; + } + .navbar-nav > li > a { + padding-top: 15px; + padding-bottom: 15px; + } +} + +@media (min-width: 768px) { + .navbar-left { + float: left !important; + } + .navbar-right { + float: right !important; + } +} + +.navbar-form { + padding: 10px 15px; + margin-top: 8px; + margin-right: -15px; + margin-bottom: 8px; + margin-left: -15px; + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); +} + +@media (min-width: 768px) { + .navbar-form .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .form-control { + display: inline-block; + } + .navbar-form .radio, + .navbar-form .checkbox { + display: inline-block; + padding-left: 0; + margin-top: 0; + margin-bottom: 0; + } + .navbar-form .radio input[type="radio"], + .navbar-form .checkbox input[type="checkbox"] { + float: none; + margin-left: 0; + } +} + +@media (max-width: 767px) { + .navbar-form .form-group { + margin-bottom: 5px; + } +} + +@media (min-width: 768px) { + .navbar-form { + width: auto; + padding-top: 0; + padding-bottom: 0; + margin-right: 0; + margin-left: 0; + border: 0; + -webkit-box-shadow: none; + box-shadow: none; + } +} + +.navbar-nav > li > .dropdown-menu { + margin-top: 0; + border-top-right-radius: 0; + border-top-left-radius: 0; +} + +.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.navbar-nav.pull-right > li > .dropdown-menu, +.navbar-nav > li > .dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.navbar-btn { + margin-top: 8px; + margin-bottom: 8px; +} + +.navbar-text { + float: left; + margin-top: 15px; + margin-bottom: 15px; +} + +@media (min-width: 768px) { + .navbar-text { + margin-right: 15px; + margin-left: 15px; + } +} + +.navbar-default { + background-color: #f8f8f8; + border-color: #e7e7e7; +} + +.navbar-default .navbar-brand { + color: #777777; +} + +.navbar-default .navbar-brand:hover, +.navbar-default .navbar-brand:focus { + color: #5e5e5e; + background-color: transparent; +} + +.navbar-default .navbar-text { + color: #777777; +} + +.navbar-default .navbar-nav > li > a { + color: #777777; +} + +.navbar-default .navbar-nav > li > a:hover, +.navbar-default .navbar-nav > li > a:focus { + color: #333333; + background-color: transparent; +} + +.navbar-default .navbar-nav > .active > a, +.navbar-default .navbar-nav > .active > a:hover, +.navbar-default .navbar-nav > .active > a:focus { + color: #555555; + background-color: #e7e7e7; +} + +.navbar-default .navbar-nav > .disabled > a, +.navbar-default .navbar-nav > .disabled > a:hover, +.navbar-default .navbar-nav > .disabled > a:focus { + color: #cccccc; + background-color: transparent; +} + +.navbar-default .navbar-toggle { + border-color: #dddddd; +} + +.navbar-default .navbar-toggle:hover, +.navbar-default .navbar-toggle:focus { + background-color: #dddddd; +} + +.navbar-default .navbar-toggle .icon-bar { + background-color: #cccccc; +} + +.navbar-default .navbar-collapse, +.navbar-default .navbar-form { + border-color: #e6e6e6; +} + +.navbar-default .navbar-nav > .dropdown > a:hover .caret, +.navbar-default .navbar-nav > .dropdown > a:focus .caret { + border-top-color: #333333; + border-bottom-color: #333333; +} + +.navbar-default .navbar-nav > .open > a, +.navbar-default .navbar-nav > .open > a:hover, +.navbar-default .navbar-nav > .open > a:focus { + color: #555555; + background-color: #e7e7e7; +} + +.navbar-default .navbar-nav > .open > a .caret, +.navbar-default .navbar-nav > .open > a:hover .caret, +.navbar-default .navbar-nav > .open > a:focus .caret { + border-top-color: #555555; + border-bottom-color: #555555; +} + +.navbar-default .navbar-nav > .dropdown > a .caret { + border-top-color: #777777; + border-bottom-color: #777777; +} + +@media (max-width: 767px) { + .navbar-default .navbar-nav .open .dropdown-menu > li > a { + color: #777777; + } + .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { + color: #333333; + background-color: transparent; + } + .navbar-default .navbar-nav .open .dropdown-menu > .active > a, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #555555; + background-color: #e7e7e7; + } + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #cccccc; + background-color: transparent; + } +} + +.navbar-default .navbar-link { + color: #777777; +} + +.navbar-default .navbar-link:hover { + color: #333333; +} + +.navbar-inverse { + background-color: #222222; + border-color: #080808; +} + +.navbar-inverse .navbar-brand { + color: #999999; +} + +.navbar-inverse .navbar-brand:hover, +.navbar-inverse .navbar-brand:focus { + color: #ffffff; + background-color: transparent; +} + +.navbar-inverse .navbar-text { + color: #999999; +} + +.navbar-inverse .navbar-nav > li > a { + color: #999999; +} + +.navbar-inverse .navbar-nav > li > a:hover, +.navbar-inverse .navbar-nav > li > a:focus { + color: #ffffff; + background-color: transparent; +} + +.navbar-inverse .navbar-nav > .active > a, +.navbar-inverse .navbar-nav > .active > a:hover, +.navbar-inverse .navbar-nav > .active > a:focus { + color: #ffffff; + background-color: #080808; +} + +.navbar-inverse .navbar-nav > .disabled > a, +.navbar-inverse .navbar-nav > .disabled > a:hover, +.navbar-inverse .navbar-nav > .disabled > a:focus { + color: #444444; + background-color: transparent; +} + +.navbar-inverse .navbar-toggle { + border-color: #333333; +} + +.navbar-inverse .navbar-toggle:hover, +.navbar-inverse .navbar-toggle:focus { + background-color: #333333; +} + +.navbar-inverse .navbar-toggle .icon-bar { + background-color: #ffffff; +} + +.navbar-inverse .navbar-collapse, +.navbar-inverse .navbar-form { + border-color: #101010; +} + +.navbar-inverse .navbar-nav > .open > a, +.navbar-inverse .navbar-nav > .open > a:hover, +.navbar-inverse .navbar-nav > .open > a:focus { + color: #ffffff; + background-color: #080808; +} + +.navbar-inverse .navbar-nav > .dropdown > a:hover .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.navbar-inverse .navbar-nav > .dropdown > a .caret { + border-top-color: #999999; + border-bottom-color: #999999; +} + +.navbar-inverse .navbar-nav > .open > a .caret, +.navbar-inverse .navbar-nav > .open > a:hover .caret, +.navbar-inverse .navbar-nav > .open > a:focus .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +@media (max-width: 767px) { + .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { + border-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { + color: #999999; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { + color: #ffffff; + background-color: transparent; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #ffffff; + background-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #444444; + background-color: transparent; + } +} + +.navbar-inverse .navbar-link { + color: #999999; +} + +.navbar-inverse .navbar-link:hover { + color: #ffffff; +} + +.breadcrumb { + padding: 8px 15px; + margin-bottom: 20px; + list-style: none; + background-color: #f5f5f5; + border-radius: 4px; +} + +.breadcrumb > li { + display: inline-block; +} + +.breadcrumb > li + li:before { + padding: 0 5px; + color: #cccccc; + content: "/\00a0"; +} + +.breadcrumb > .active { + color: #999999; +} + +.pagination { + display: inline-block; + padding-left: 0; + margin: 20px 0; + border-radius: 4px; +} + +.pagination > li { + display: inline; +} + +.pagination > li > a, +.pagination > li > span { + position: relative; + float: left; + padding: 6px 12px; + margin-left: -1px; + line-height: 1.428571429; + text-decoration: none; + background-color: #ffffff; + border: 1px solid #dddddd; +} + +.pagination > li:first-child > a, +.pagination > li:first-child > span { + margin-left: 0; + border-bottom-left-radius: 4px; + border-top-left-radius: 4px; +} + +.pagination > li:last-child > a, +.pagination > li:last-child > span { + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; +} + +.pagination > li > a:hover, +.pagination > li > span:hover, +.pagination > li > a:focus, +.pagination > li > span:focus { + background-color: #eeeeee; +} + +.pagination > .active > a, +.pagination > .active > span, +.pagination > .active > a:hover, +.pagination > .active > span:hover, +.pagination > .active > a:focus, +.pagination > .active > span:focus { + z-index: 2; + color: #ffffff; + cursor: default; + background-color: #428bca; + border-color: #428bca; +} + +.pagination > .disabled > span, +.pagination > .disabled > a, +.pagination > .disabled > a:hover, +.pagination > .disabled > a:focus { + color: #999999; + cursor: not-allowed; + background-color: #ffffff; + border-color: #dddddd; +} + +.pagination-lg > li > a, +.pagination-lg > li > span { + padding: 10px 16px; + font-size: 18px; +} + +.pagination-lg > li:first-child > a, +.pagination-lg > li:first-child > span { + border-bottom-left-radius: 6px; + border-top-left-radius: 6px; +} + +.pagination-lg > li:last-child > a, +.pagination-lg > li:last-child > span { + border-top-right-radius: 6px; + border-bottom-right-radius: 6px; +} + +.pagination-sm > li > a, +.pagination-sm > li > span { + padding: 5px 10px; + font-size: 12px; +} + +.pagination-sm > li:first-child > a, +.pagination-sm > li:first-child > span { + border-bottom-left-radius: 3px; + border-top-left-radius: 3px; +} + +.pagination-sm > li:last-child > a, +.pagination-sm > li:last-child > span { + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} + +.pager { + padding-left: 0; + margin: 20px 0; + text-align: center; + list-style: none; +} + +.pager:before, +.pager:after { + display: table; + content: " "; +} + +.pager:after { + clear: both; +} + +.pager:before, +.pager:after { + display: table; + content: " "; +} + +.pager:after { + clear: both; +} + +.pager li { + display: inline; +} + +.pager li > a, +.pager li > span { + display: inline-block; + padding: 5px 14px; + background-color: #ffffff; + border: 1px solid #dddddd; + border-radius: 15px; +} + +.pager li > a:hover, +.pager li > a:focus { + text-decoration: none; + background-color: #eeeeee; +} + +.pager .next > a, +.pager .next > span { + float: right; +} + +.pager .previous > a, +.pager .previous > span { + float: left; +} + +.pager .disabled > a, +.pager .disabled > a:hover, +.pager .disabled > a:focus, +.pager .disabled > span { + color: #999999; + cursor: not-allowed; + background-color: #ffffff; +} + +.label { + display: inline; + padding: .2em .6em .3em; + font-size: 75%; + font-weight: bold; + line-height: 1; + color: #ffffff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: .25em; +} + +.label[href]:hover, +.label[href]:focus { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} + +.label:empty { + display: none; +} + +.label-default { + background-color: #999999; +} + +.label-default[href]:hover, +.label-default[href]:focus { + background-color: #808080; +} + +.label-primary { + background-color: #428bca; +} + +.label-primary[href]:hover, +.label-primary[href]:focus { + background-color: #3071a9; +} + +.label-success { + background-color: #5cb85c; +} + +.label-success[href]:hover, +.label-success[href]:focus { + background-color: #449d44; +} + +.label-info { + background-color: #5bc0de; +} + +.label-info[href]:hover, +.label-info[href]:focus { + background-color: #31b0d5; +} + +.label-warning { + background-color: #f0ad4e; +} + +.label-warning[href]:hover, +.label-warning[href]:focus { + background-color: #ec971f; +} + +.label-danger { + background-color: #d9534f; +} + +.label-danger[href]:hover, +.label-danger[href]:focus { + background-color: #c9302c; +} + +.badge { + display: inline-block; + min-width: 10px; + padding: 3px 7px; + font-size: 12px; + font-weight: bold; + line-height: 1; + color: #ffffff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + background-color: #999999; + border-radius: 10px; +} + +.badge:empty { + display: none; +} + +a.badge:hover, +a.badge:focus { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} + +.btn .badge { + position: relative; + top: -1px; +} + +a.list-group-item.active > .badge, +.nav-pills > .active > a > .badge { + color: #428bca; + background-color: #ffffff; +} + +.nav-pills > li > a > .badge { + margin-left: 3px; +} + +.jumbotron { + padding: 30px; + margin-bottom: 30px; + font-size: 21px; + font-weight: 200; + line-height: 2.1428571435; + color: inherit; + background-color: #eeeeee; +} + +.jumbotron h1 { + line-height: 1; + color: inherit; +} + +.jumbotron p { + line-height: 1.4; +} + +.container .jumbotron { + border-radius: 6px; +} + +@media screen and (min-width: 768px) { + .jumbotron { + padding-top: 48px; + padding-bottom: 48px; + } + .container .jumbotron { + padding-right: 60px; + padding-left: 60px; + } + .jumbotron h1 { + font-size: 63px; + } +} + +.thumbnail { + display: inline-block; + display: block; + height: auto; + max-width: 100%; + padding: 4px; + line-height: 1.428571429; + background-color: #ffffff; + border: 1px solid #dddddd; + border-radius: 4px; + -webkit-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; +} + +.thumbnail > img { + display: block; + height: auto; + max-width: 100%; +} + +a.thumbnail:hover, +a.thumbnail:focus { + border-color: #428bca; +} + +.thumbnail > img { + margin-right: auto; + margin-left: auto; +} + +.thumbnail .caption { + padding: 9px; + color: #333333; +} + +.alert { + padding: 15px; + margin-bottom: 20px; + border: 1px solid transparent; + border-radius: 4px; +} + +.alert h4 { + margin-top: 0; + color: inherit; +} + +.alert .alert-link { + font-weight: bold; +} + +.alert > p, +.alert > ul { + margin-bottom: 0; +} + +.alert > p + p { + margin-top: 5px; +} + +.alert-dismissable { + padding-right: 35px; +} + +.alert-dismissable .close { + position: relative; + top: -2px; + right: -21px; + color: inherit; +} + +.alert-success { + color: #468847; + background-color: #dff0d8; + border-color: #d6e9c6; +} + +.alert-success hr { + border-top-color: #c9e2b3; +} + +.alert-success .alert-link { + color: #356635; +} + +.alert-info { + color: #3a87ad; + background-color: #d9edf7; + border-color: #bce8f1; +} + +.alert-info hr { + border-top-color: #a6e1ec; +} + +.alert-info .alert-link { + color: #2d6987; +} + +.alert-warning { + color: #c09853; + background-color: #fcf8e3; + border-color: #fbeed5; +} + +.alert-warning hr { + border-top-color: #f8e5be; +} + +.alert-warning .alert-link { + color: #a47e3c; +} + +.alert-danger { + color: #b94a48; + background-color: #f2dede; + border-color: #eed3d7; +} + +.alert-danger hr { + border-top-color: #e6c1c7; +} + +.alert-danger .alert-link { + color: #953b39; +} + +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-moz-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-o-keyframes progress-bar-stripes { + from { + background-position: 0 0; + } + to { + background-position: 40px 0; + } +} + +@keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +.progress { + height: 20px; + margin-bottom: 20px; + overflow: hidden; + background-color: #f5f5f5; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); +} + +.progress-bar { + float: left; + width: 0; + height: 100%; + font-size: 12px; + color: #ffffff; + text-align: center; + background-color: #428bca; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -webkit-transition: width 0.6s ease; + transition: width 0.6s ease; +} + +.progress-striped .progress-bar { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 40px 40px; +} + +.progress.active .progress-bar { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -moz-animation: progress-bar-stripes 2s linear infinite; + -ms-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} + +.progress-bar-success { + background-color: #5cb85c; +} + +.progress-striped .progress-bar-success { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-bar-info { + background-color: #5bc0de; +} + +.progress-striped .progress-bar-info { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-bar-warning { + background-color: #f0ad4e; +} + +.progress-striped .progress-bar-warning { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-bar-danger { + background-color: #d9534f; +} + +.progress-striped .progress-bar-danger { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.media, +.media-body { + overflow: hidden; + zoom: 1; +} + +.media, +.media .media { + margin-top: 15px; +} + +.media:first-child { + margin-top: 0; +} + +.media-object { + display: block; +} + +.media-heading { + margin: 0 0 5px; +} + +.media > .pull-left { + margin-right: 10px; +} + +.media > .pull-right { + margin-left: 10px; +} + +.media-list { + padding-left: 0; + list-style: none; +} + +.list-group { + padding-left: 0; + margin-bottom: 20px; +} + +.list-group-item { + position: relative; + display: block; + padding: 10px 15px; + margin-bottom: -1px; + background-color: #ffffff; + border: 1px solid #dddddd; +} + +.list-group-item:first-child { + border-top-right-radius: 4px; + border-top-left-radius: 4px; +} + +.list-group-item:last-child { + margin-bottom: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} + +.list-group-item > .badge { + float: right; +} + +.list-group-item > .badge + .badge { + margin-right: 5px; +} + +a.list-group-item { + color: #555555; +} + +a.list-group-item .list-group-item-heading { + color: #333333; +} + +a.list-group-item:hover, +a.list-group-item:focus { + text-decoration: none; + background-color: #f5f5f5; +} + +.list-group-item.active, +.list-group-item.active:hover, +.list-group-item.active:focus { + z-index: 2; + color: #ffffff; + background-color: #428bca; + border-color: #428bca; +} + +.list-group-item.active .list-group-item-heading, +.list-group-item.active:hover .list-group-item-heading, +.list-group-item.active:focus .list-group-item-heading { + color: inherit; +} + +.list-group-item.active .list-group-item-text, +.list-group-item.active:hover .list-group-item-text, +.list-group-item.active:focus .list-group-item-text { + color: #e1edf7; +} + +.list-group-item-heading { + margin-top: 0; + margin-bottom: 5px; +} + +.list-group-item-text { + margin-bottom: 0; + line-height: 1.3; +} + +.panel { + margin-bottom: 20px; + background-color: #ffffff; + border: 1px solid transparent; + border-radius: 4px; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); +} + +.panel-body { + padding: 15px; +} + +.panel-body:before, +.panel-body:after { + display: table; + content: " "; +} + +.panel-body:after { + clear: both; +} + +.panel-body:before, +.panel-body:after { + display: table; + content: " "; +} + +.panel-body:after { + clear: both; +} + +.panel > .list-group { + margin-bottom: 0; +} + +.panel > .list-group .list-group-item { + border-width: 1px 0; +} + +.panel > .list-group .list-group-item:first-child { + border-top-right-radius: 0; + border-top-left-radius: 0; +} + +.panel > .list-group .list-group-item:last-child { + border-bottom: 0; +} + +.panel-heading + .list-group .list-group-item:first-child { + border-top-width: 0; +} + +.panel > .table { + margin-bottom: 0; +} + +.panel > .panel-body + .table { + border-top: 1px solid #dddddd; +} + +.panel-heading { + padding: 10px 15px; + border-bottom: 1px solid transparent; + border-top-right-radius: 3px; + border-top-left-radius: 3px; +} + +.panel-title { + margin-top: 0; + margin-bottom: 0; + font-size: 16px; +} + +.panel-title > a { + color: inherit; +} + +.panel-footer { + padding: 10px 15px; + background-color: #f5f5f5; + border-top: 1px solid #dddddd; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} + +.panel-group .panel { + margin-bottom: 0; + overflow: hidden; + border-radius: 4px; +} + +.panel-group .panel + .panel { + margin-top: 5px; +} + +.panel-group .panel-heading { + border-bottom: 0; +} + +.panel-group .panel-heading + .panel-collapse .panel-body { + border-top: 1px solid #dddddd; +} + +.panel-group .panel-footer { + border-top: 0; +} + +.panel-group .panel-footer + .panel-collapse .panel-body { + border-bottom: 1px solid #dddddd; +} + +.panel-default { + border-color: #dddddd; +} + +.panel-default > .panel-heading { + color: #333333; + background-color: #f5f5f5; + border-color: #dddddd; +} + +.panel-default > .panel-heading + .panel-collapse .panel-body { + border-top-color: #dddddd; +} + +.panel-default > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #dddddd; +} + +.panel-primary { + border-color: #428bca; +} + +.panel-primary > .panel-heading { + color: #ffffff; + background-color: #428bca; + border-color: #428bca; +} + +.panel-primary > .panel-heading + .panel-collapse .panel-body { + border-top-color: #428bca; +} + +.panel-primary > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #428bca; +} + +.panel-success { + border-color: #d6e9c6; +} + +.panel-success > .panel-heading { + color: #468847; + background-color: #dff0d8; + border-color: #d6e9c6; +} + +.panel-success > .panel-heading + .panel-collapse .panel-body { + border-top-color: #d6e9c6; +} + +.panel-success > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #d6e9c6; +} + +.panel-warning { + border-color: #fbeed5; +} + +.panel-warning > .panel-heading { + color: #c09853; + background-color: #fcf8e3; + border-color: #fbeed5; +} + +.panel-warning > .panel-heading + .panel-collapse .panel-body { + border-top-color: #fbeed5; +} + +.panel-warning > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #fbeed5; +} + +.panel-danger { + border-color: #eed3d7; +} + +.panel-danger > .panel-heading { + color: #b94a48; + background-color: #f2dede; + border-color: #eed3d7; +} + +.panel-danger > .panel-heading + .panel-collapse .panel-body { + border-top-color: #eed3d7; +} + +.panel-danger > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #eed3d7; +} + +.panel-info { + border-color: #bce8f1; +} + +.panel-info > .panel-heading { + color: #3a87ad; + background-color: #d9edf7; + border-color: #bce8f1; +} + +.panel-info > .panel-heading + .panel-collapse .panel-body { + border-top-color: #bce8f1; +} + +.panel-info > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #bce8f1; +} + +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #e3e3e3; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); +} + +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0.15); +} + +.well-lg { + padding: 24px; + border-radius: 6px; +} + +.well-sm { + padding: 9px; + border-radius: 3px; +} + +.close { + float: right; + font-size: 21px; + font-weight: bold; + line-height: 1; + color: #000000; + text-shadow: 0 1px 0 #ffffff; + opacity: 0.2; + filter: alpha(opacity=20); +} + +.close:hover, +.close:focus { + color: #000000; + text-decoration: none; + cursor: pointer; + opacity: 0.5; + filter: alpha(opacity=50); +} + +button.close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; +} + +.modal-open { + overflow: hidden; +} + +body.modal-open, +.modal-open .navbar-fixed-top, +.modal-open .navbar-fixed-bottom { + margin-right: 15px; +} + +.modal { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + display: none; + overflow: auto; + overflow-y: scroll; +} + +.modal.fade .modal-dialog { + -webkit-transform: translate(0, -25%); + -ms-transform: translate(0, -25%); + transform: translate(0, -25%); + -webkit-transition: -webkit-transform 0.3s ease-out; + -moz-transition: -moz-transform 0.3s ease-out; + -o-transition: -o-transform 0.3s ease-out; + transition: transform 0.3s ease-out; +} + +.modal.in .modal-dialog { + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); +} + +.modal-dialog { + z-index: 1050; + width: auto; + padding: 10px; + margin-right: auto; + margin-left: auto; +} + +.modal-content { + position: relative; + background-color: #ffffff; + border: 1px solid #999999; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 6px; + outline: none; + -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); + box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); + background-clip: padding-box; +} + +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1030; + background-color: #000000; +} + +.modal-backdrop.fade { + opacity: 0; + filter: alpha(opacity=0); +} + +.modal-backdrop.in { + opacity: 0.5; + filter: alpha(opacity=50); +} + +.modal-header { + min-height: 16.428571429px; + padding: 15px; + border-bottom: 1px solid #e5e5e5; +} + +.modal-header .close { + margin-top: -2px; +} + +.modal-title { + margin: 0; + line-height: 1.428571429; +} + +.modal-body { + position: relative; + padding: 20px; +} + +.modal-footer { + padding: 19px 20px 20px; + margin-top: 15px; + text-align: right; + border-top: 1px solid #e5e5e5; +} + +.modal-footer:before, +.modal-footer:after { + display: table; + content: " "; +} + +.modal-footer:after { + clear: both; +} + +.modal-footer:before, +.modal-footer:after { + display: table; + content: " "; +} + +.modal-footer:after { + clear: both; +} + +.modal-footer .btn + .btn { + margin-bottom: 0; + margin-left: 5px; +} + +.modal-footer .btn-group .btn + .btn { + margin-left: -1px; +} + +.modal-footer .btn-block + .btn-block { + margin-left: 0; +} + +@media screen and (min-width: 768px) { + .modal-dialog { + right: auto; + left: 50%; + width: 600px; + padding-top: 30px; + padding-bottom: 30px; + } + .modal-content { + -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); + } +} + +.tooltip { + position: absolute; + z-index: 1030; + display: block; + font-size: 12px; + line-height: 1.4; + opacity: 0; + filter: alpha(opacity=0); + visibility: visible; +} + +.tooltip.in { + opacity: 0.9; + filter: alpha(opacity=90); +} + +.tooltip.top { + padding: 5px 0; + margin-top: -3px; +} + +.tooltip.right { + padding: 0 5px; + margin-left: 3px; +} + +.tooltip.bottom { + padding: 5px 0; + margin-top: 3px; +} + +.tooltip.left { + padding: 0 5px; + margin-left: -3px; +} + +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #ffffff; + text-align: center; + text-decoration: none; + background-color: #000000; + border-radius: 4px; +} + +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-top-color: #000000; + border-width: 5px 5px 0; +} + +.tooltip.top-left .tooltip-arrow { + bottom: 0; + left: 5px; + border-top-color: #000000; + border-width: 5px 5px 0; +} + +.tooltip.top-right .tooltip-arrow { + right: 5px; + bottom: 0; + border-top-color: #000000; + border-width: 5px 5px 0; +} + +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-right-color: #000000; + border-width: 5px 5px 5px 0; +} + +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-left-color: #000000; + border-width: 5px 0 5px 5px; +} + +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-bottom-color: #000000; + border-width: 0 5px 5px; +} + +.tooltip.bottom-left .tooltip-arrow { + top: 0; + left: 5px; + border-bottom-color: #000000; + border-width: 0 5px 5px; +} + +.tooltip.bottom-right .tooltip-arrow { + top: 0; + right: 5px; + border-bottom-color: #000000; + border-width: 0 5px 5px; +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1010; + display: none; + max-width: 276px; + padding: 1px; + text-align: left; + white-space: normal; + background-color: #ffffff; + border: 1px solid #cccccc; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + background-clip: padding-box; +} + +.popover.top { + margin-top: -10px; +} + +.popover.right { + margin-left: 10px; +} + +.popover.bottom { + margin-top: 10px; +} + +.popover.left { + margin-left: -10px; +} + +.popover-title { + padding: 8px 14px; + margin: 0; + font-size: 14px; + font-weight: normal; + line-height: 18px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-radius: 5px 5px 0 0; +} + +.popover-content { + padding: 9px 14px; +} + +.popover .arrow, +.popover .arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.popover .arrow { + border-width: 11px; +} + +.popover .arrow:after { + border-width: 10px; + content: ""; +} + +.popover.top .arrow { + bottom: -11px; + left: 50%; + margin-left: -11px; + border-top-color: #999999; + border-top-color: rgba(0, 0, 0, 0.25); + border-bottom-width: 0; +} + +.popover.top .arrow:after { + bottom: 1px; + margin-left: -10px; + border-top-color: #ffffff; + border-bottom-width: 0; + content: " "; +} + +.popover.right .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-right-color: #999999; + border-right-color: rgba(0, 0, 0, 0.25); + border-left-width: 0; +} + +.popover.right .arrow:after { + bottom: -10px; + left: 1px; + border-right-color: #ffffff; + border-left-width: 0; + content: " "; +} + +.popover.bottom .arrow { + top: -11px; + left: 50%; + margin-left: -11px; + border-bottom-color: #999999; + border-bottom-color: rgba(0, 0, 0, 0.25); + border-top-width: 0; +} + +.popover.bottom .arrow:after { + top: 1px; + margin-left: -10px; + border-bottom-color: #ffffff; + border-top-width: 0; + content: " "; +} + +.popover.left .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-left-color: #999999; + border-left-color: rgba(0, 0, 0, 0.25); + border-right-width: 0; +} + +.popover.left .arrow:after { + right: 1px; + bottom: -10px; + border-left-color: #ffffff; + border-right-width: 0; + content: " "; +} + +.carousel { + position: relative; +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} + +.carousel-inner > .item { + position: relative; + display: none; + -webkit-transition: 0.6s ease-in-out left; + transition: 0.6s ease-in-out left; +} + +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { + display: block; + height: auto; + max-width: 100%; + line-height: 1; +} + +.carousel-inner > .active, +.carousel-inner > .next, +.carousel-inner > .prev { + display: block; +} + +.carousel-inner > .active { + left: 0; +} + +.carousel-inner > .next, +.carousel-inner > .prev { + position: absolute; + top: 0; + width: 100%; +} + +.carousel-inner > .next { + left: 100%; +} + +.carousel-inner > .prev { + left: -100%; +} + +.carousel-inner > .next.left, +.carousel-inner > .prev.right { + left: 0; +} + +.carousel-inner > .active.left { + left: -100%; +} + +.carousel-inner > .active.right { + left: 100%; +} + +.carousel-control { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 15%; + font-size: 20px; + color: #ffffff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); + opacity: 0.5; + filter: alpha(opacity=50); +} + +.carousel-control.left { + background-image: -webkit-gradient(linear, 0 top, 100% top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0.0001))); + background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.5) 0), color-stop(rgba(0, 0, 0, 0.0001) 100%)); + background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.5) 0, rgba(0, 0, 0, 0.0001) 100%); + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0, rgba(0, 0, 0, 0.0001) 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); +} + +.carousel-control.right { + right: 0; + left: auto; + background-image: -webkit-gradient(linear, 0 top, 100% top, from(rgba(0, 0, 0, 0.0001)), to(rgba(0, 0, 0, 0.5))); + background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.0001) 0), color-stop(rgba(0, 0, 0, 0.5) 100%)); + background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0, rgba(0, 0, 0, 0.5) 100%); + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0, rgba(0, 0, 0, 0.5) 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); +} + +.carousel-control:hover, +.carousel-control:focus { + color: #ffffff; + text-decoration: none; + opacity: 0.9; + filter: alpha(opacity=90); +} + +.carousel-control .icon-prev, +.carousel-control .icon-next, +.carousel-control .glyphicon-chevron-left, +.carousel-control .glyphicon-chevron-right { + position: absolute; + top: 50%; + left: 50%; + z-index: 5; + display: inline-block; +} + +.carousel-control .icon-prev, +.carousel-control .icon-next { + width: 20px; + height: 20px; + margin-top: -10px; + margin-left: -10px; + font-family: serif; +} + +.carousel-control .icon-prev:before { + content: '\2039'; +} + +.carousel-control .icon-next:before { + content: '\203a'; +} + +.carousel-indicators { + position: absolute; + bottom: 10px; + left: 50%; + z-index: 15; + width: 60%; + padding-left: 0; + margin-left: -30%; + text-align: center; + list-style: none; +} + +.carousel-indicators li { + display: inline-block; + width: 10px; + height: 10px; + margin: 1px; + text-indent: -999px; + cursor: pointer; + border: 1px solid #ffffff; + border-radius: 10px; +} + +.carousel-indicators .active { + width: 12px; + height: 12px; + margin: 0; + background-color: #ffffff; +} + +.carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #ffffff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); +} + +.carousel-caption .btn { + text-shadow: none; +} + +@media screen and (min-width: 768px) { + .carousel-control .icon-prev, + .carousel-control .icon-next { + width: 30px; + height: 30px; + margin-top: -15px; + margin-left: -15px; + font-size: 30px; + } + .carousel-caption { + right: 20%; + left: 20%; + padding-bottom: 30px; + } + .carousel-indicators { + bottom: 20px; + } +} + +.clearfix:before, +.clearfix:after { + display: table; + content: " "; +} + +.clearfix:after { + clear: both; +} + +.pull-right { + float: right !important; +} + +.pull-left { + float: left !important; +} + +.hide { + display: none !important; +} + +.show { + display: block !important; +} + +.invisible { + visibility: hidden; +} + +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.affix { + position: fixed; +} + +@-ms-viewport { + width: device-width; +} + +@media screen and (max-width: 400px) { + @-ms-viewport { + width: 320px; + } +} + +.hidden { + display: none !important; + visibility: hidden !important; +} + +.visible-xs { + display: none !important; +} + +tr.visible-xs { + display: none !important; +} + +th.visible-xs, +td.visible-xs { + display: none !important; +} + +@media (max-width: 767px) { + .visible-xs { + display: block !important; + } + tr.visible-xs { + display: table-row !important; + } + th.visible-xs, + td.visible-xs { + display: table-cell !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-xs.visible-sm { + display: block !important; + } + tr.visible-xs.visible-sm { + display: table-row !important; + } + th.visible-xs.visible-sm, + td.visible-xs.visible-sm { + display: table-cell !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-xs.visible-md { + display: block !important; + } + tr.visible-xs.visible-md { + display: table-row !important; + } + th.visible-xs.visible-md, + td.visible-xs.visible-md { + display: table-cell !important; + } +} + +@media (min-width: 1200px) { + .visible-xs.visible-lg { + display: block !important; + } + tr.visible-xs.visible-lg { + display: table-row !important; + } + th.visible-xs.visible-lg, + td.visible-xs.visible-lg { + display: table-cell !important; + } +} + +.visible-sm { + display: none !important; +} + +tr.visible-sm { + display: none !important; +} + +th.visible-sm, +td.visible-sm { + display: none !important; +} + +@media (max-width: 767px) { + .visible-sm.visible-xs { + display: block !important; + } + tr.visible-sm.visible-xs { + display: table-row !important; + } + th.visible-sm.visible-xs, + td.visible-sm.visible-xs { + display: table-cell !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm { + display: block !important; + } + tr.visible-sm { + display: table-row !important; + } + th.visible-sm, + td.visible-sm { + display: table-cell !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-sm.visible-md { + display: block !important; + } + tr.visible-sm.visible-md { + display: table-row !important; + } + th.visible-sm.visible-md, + td.visible-sm.visible-md { + display: table-cell !important; + } +} + +@media (min-width: 1200px) { + .visible-sm.visible-lg { + display: block !important; + } + tr.visible-sm.visible-lg { + display: table-row !important; + } + th.visible-sm.visible-lg, + td.visible-sm.visible-lg { + display: table-cell !important; + } +} + +.visible-md { + display: none !important; +} + +tr.visible-md { + display: none !important; +} + +th.visible-md, +td.visible-md { + display: none !important; +} + +@media (max-width: 767px) { + .visible-md.visible-xs { + display: block !important; + } + tr.visible-md.visible-xs { + display: table-row !important; + } + th.visible-md.visible-xs, + td.visible-md.visible-xs { + display: table-cell !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-md.visible-sm { + display: block !important; + } + tr.visible-md.visible-sm { + display: table-row !important; + } + th.visible-md.visible-sm, + td.visible-md.visible-sm { + display: table-cell !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md { + display: block !important; + } + tr.visible-md { + display: table-row !important; + } + th.visible-md, + td.visible-md { + display: table-cell !important; + } +} + +@media (min-width: 1200px) { + .visible-md.visible-lg { + display: block !important; + } + tr.visible-md.visible-lg { + display: table-row !important; + } + th.visible-md.visible-lg, + td.visible-md.visible-lg { + display: table-cell !important; + } +} + +.visible-lg { + display: none !important; +} + +tr.visible-lg { + display: none !important; +} + +th.visible-lg, +td.visible-lg { + display: none !important; +} + +@media (max-width: 767px) { + .visible-lg.visible-xs { + display: block !important; + } + tr.visible-lg.visible-xs { + display: table-row !important; + } + th.visible-lg.visible-xs, + td.visible-lg.visible-xs { + display: table-cell !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-lg.visible-sm { + display: block !important; + } + tr.visible-lg.visible-sm { + display: table-row !important; + } + th.visible-lg.visible-sm, + td.visible-lg.visible-sm { + display: table-cell !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-lg.visible-md { + display: block !important; + } + tr.visible-lg.visible-md { + display: table-row !important; + } + th.visible-lg.visible-md, + td.visible-lg.visible-md { + display: table-cell !important; + } +} + +@media (min-width: 1200px) { + .visible-lg { + display: block !important; + } + tr.visible-lg { + display: table-row !important; + } + th.visible-lg, + td.visible-lg { + display: table-cell !important; + } +} + +.hidden-xs { + display: block !important; +} + +tr.hidden-xs { + display: table-row !important; +} + +th.hidden-xs, +td.hidden-xs { + display: table-cell !important; +} + +@media (max-width: 767px) { + .hidden-xs { + display: none !important; + } + tr.hidden-xs { + display: none !important; + } + th.hidden-xs, + td.hidden-xs { + display: none !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .hidden-xs.hidden-sm { + display: none !important; + } + tr.hidden-xs.hidden-sm { + display: none !important; + } + th.hidden-xs.hidden-sm, + td.hidden-xs.hidden-sm { + display: none !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-xs.hidden-md { + display: none !important; + } + tr.hidden-xs.hidden-md { + display: none !important; + } + th.hidden-xs.hidden-md, + td.hidden-xs.hidden-md { + display: none !important; + } +} + +@media (min-width: 1200px) { + .hidden-xs.hidden-lg { + display: none !important; + } + tr.hidden-xs.hidden-lg { + display: none !important; + } + th.hidden-xs.hidden-lg, + td.hidden-xs.hidden-lg { + display: none !important; + } +} + +.hidden-sm { + display: block !important; +} + +tr.hidden-sm { + display: table-row !important; +} + +th.hidden-sm, +td.hidden-sm { + display: table-cell !important; +} + +@media (max-width: 767px) { + .hidden-sm.hidden-xs { + display: none !important; + } + tr.hidden-sm.hidden-xs { + display: none !important; + } + th.hidden-sm.hidden-xs, + td.hidden-sm.hidden-xs { + display: none !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .hidden-sm { + display: none !important; + } + tr.hidden-sm { + display: none !important; + } + th.hidden-sm, + td.hidden-sm { + display: none !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-sm.hidden-md { + display: none !important; + } + tr.hidden-sm.hidden-md { + display: none !important; + } + th.hidden-sm.hidden-md, + td.hidden-sm.hidden-md { + display: none !important; + } +} + +@media (min-width: 1200px) { + .hidden-sm.hidden-lg { + display: none !important; + } + tr.hidden-sm.hidden-lg { + display: none !important; + } + th.hidden-sm.hidden-lg, + td.hidden-sm.hidden-lg { + display: none !important; + } +} + +.hidden-md { + display: block !important; +} + +tr.hidden-md { + display: table-row !important; +} + +th.hidden-md, +td.hidden-md { + display: table-cell !important; +} + +@media (max-width: 767px) { + .hidden-md.hidden-xs { + display: none !important; + } + tr.hidden-md.hidden-xs { + display: none !important; + } + th.hidden-md.hidden-xs, + td.hidden-md.hidden-xs { + display: none !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .hidden-md.hidden-sm { + display: none !important; + } + tr.hidden-md.hidden-sm { + display: none !important; + } + th.hidden-md.hidden-sm, + td.hidden-md.hidden-sm { + display: none !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-md { + display: none !important; + } + tr.hidden-md { + display: none !important; + } + th.hidden-md, + td.hidden-md { + display: none !important; + } +} + +@media (min-width: 1200px) { + .hidden-md.hidden-lg { + display: none !important; + } + tr.hidden-md.hidden-lg { + display: none !important; + } + th.hidden-md.hidden-lg, + td.hidden-md.hidden-lg { + display: none !important; + } +} + +.hidden-lg { + display: block !important; +} + +tr.hidden-lg { + display: table-row !important; +} + +th.hidden-lg, +td.hidden-lg { + display: table-cell !important; +} + +@media (max-width: 767px) { + .hidden-lg.hidden-xs { + display: none !important; + } + tr.hidden-lg.hidden-xs { + display: none !important; + } + th.hidden-lg.hidden-xs, + td.hidden-lg.hidden-xs { + display: none !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .hidden-lg.hidden-sm { + display: none !important; + } + tr.hidden-lg.hidden-sm { + display: none !important; + } + th.hidden-lg.hidden-sm, + td.hidden-lg.hidden-sm { + display: none !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-lg.hidden-md { + display: none !important; + } + tr.hidden-lg.hidden-md { + display: none !important; + } + th.hidden-lg.hidden-md, + td.hidden-lg.hidden-md { + display: none !important; + } +} + +@media (min-width: 1200px) { + .hidden-lg { + display: none !important; + } + tr.hidden-lg { + display: none !important; + } + th.hidden-lg, + td.hidden-lg { + display: none !important; + } +} + +.visible-print { + display: none !important; +} + +tr.visible-print { + display: none !important; +} + +th.visible-print, +td.visible-print { + display: none !important; +} + +@media print { + .visible-print { + display: block !important; + } + tr.visible-print { + display: table-row !important; + } + th.visible-print, + td.visible-print { + display: table-cell !important; + } + .hidden-print { + display: none !important; + } + tr.hidden-print { + display: none !important; + } + th.hidden-print, + td.hidden-print { + display: none !important; + } +} \ No newline at end of file diff --git a/public/css/bootstrap.min.css b/public/css/bootstrap.min.css new file mode 100644 index 00000000..a553c4f5 --- /dev/null +++ b/public/css/bootstrap.min.css @@ -0,0 +1,9 @@ +/*! + * Bootstrap v3.0.0 + * + * Copyright 2013 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world by @mdo and @fat. + *//*! normalize.css v2.1.0 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{margin:.67em 0;font-size:2em}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}hr{height:0;-moz-box-sizing:content-box;box-sizing:content-box}mark{color:#000;background:#ff0}code,kbd,pre,samp{font-family:monospace,serif;font-size:1em}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid #c0c0c0}legend{padding:0;border:0}button,input,select,textarea{margin:0;font-family:inherit;font-size:100%}button,input{line-height:normal}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{padding:0;box-sizing:border-box}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}@page{margin:2cm .5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}*,*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.428571429;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}button,input,select[multiple],textarea{background-image:none}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}img{vertical-align:middle}.img-responsive{display:block;height:auto;max-width:100%}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;height:auto;max-width:100%;padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16.099999999999998px;font-weight:200;line-height:1.4}@media(min-width:768px){.lead{font-size:21px}}small{font-size:85%}cite{font-style:normal}.text-muted{color:#999}.text-primary{color:#428bca}.text-warning{color:#c09853}.text-danger{color:#b94a48}.text-success{color:#468847}.text-info{color:#3a87ad}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:500;line-height:1.1}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{margin-top:20px;margin-bottom:10px}h4,h5,h6{margin-top:10px;margin-bottom:10px}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}h1 small,.h1 small{font-size:24px}h2 small,.h2 small{font-size:18px}h3 small,.h3 small,h4 small,.h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-bottom:20px}dt,dd{line-height:1.428571429}dt{font-weight:bold}dd{margin-left:0}@media(min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}.dl-horizontal dd:before,.dl-horizontal dd:after{display:table;content:" "}.dl-horizontal dd:after{clear:both}.dl-horizontal dd:before,.dl-horizontal dd:after{display:table;content:" "}.dl-horizontal dd:after{clear:both}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{font-size:17.5px;font-weight:300;line-height:1.25}blockquote p:last-child{margin-bottom:0}blockquote small{display:block;line-height:1.428571429;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:1.428571429}code,pre{font-family:Monaco,Menlo,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;white-space:nowrap;background-color:#f9f2f4;border-radius:4px}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.428571429;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.container:before,.container:after{display:table;content:" "}.container:after{clear:both}.container:before,.container:after{display:table;content:" "}.container:after{clear:both}.row{margin-right:-15px;margin-left:-15px}.row:before,.row:after{display:table;content:" "}.row:after{clear:both}.row:before,.row:after{display:table;content:" "}.row:after{clear:both}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11{float:left}.col-xs-1{width:8.333333333333332%}.col-xs-2{width:16.666666666666664%}.col-xs-3{width:25%}.col-xs-4{width:33.33333333333333%}.col-xs-5{width:41.66666666666667%}.col-xs-6{width:50%}.col-xs-7{width:58.333333333333336%}.col-xs-8{width:66.66666666666666%}.col-xs-9{width:75%}.col-xs-10{width:83.33333333333334%}.col-xs-11{width:91.66666666666666%}.col-xs-12{width:100%}@media(min-width:768px){.container{max-width:750px}.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11{float:left}.col-sm-1{width:8.333333333333332%}.col-sm-2{width:16.666666666666664%}.col-sm-3{width:25%}.col-sm-4{width:33.33333333333333%}.col-sm-5{width:41.66666666666667%}.col-sm-6{width:50%}.col-sm-7{width:58.333333333333336%}.col-sm-8{width:66.66666666666666%}.col-sm-9{width:75%}.col-sm-10{width:83.33333333333334%}.col-sm-11{width:91.66666666666666%}.col-sm-12{width:100%}.col-sm-push-1{left:8.333333333333332%}.col-sm-push-2{left:16.666666666666664%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.33333333333333%}.col-sm-push-5{left:41.66666666666667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.333333333333336%}.col-sm-push-8{left:66.66666666666666%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.33333333333334%}.col-sm-push-11{left:91.66666666666666%}.col-sm-pull-1{right:8.333333333333332%}.col-sm-pull-2{right:16.666666666666664%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.33333333333333%}.col-sm-pull-5{right:41.66666666666667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.333333333333336%}.col-sm-pull-8{right:66.66666666666666%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.33333333333334%}.col-sm-pull-11{right:91.66666666666666%}.col-sm-offset-1{margin-left:8.333333333333332%}.col-sm-offset-2{margin-left:16.666666666666664%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.33333333333333%}.col-sm-offset-5{margin-left:41.66666666666667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.333333333333336%}.col-sm-offset-8{margin-left:66.66666666666666%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.33333333333334%}.col-sm-offset-11{margin-left:91.66666666666666%}}@media(min-width:992px){.container{max-width:970px}.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11{float:left}.col-md-1{width:8.333333333333332%}.col-md-2{width:16.666666666666664%}.col-md-3{width:25%}.col-md-4{width:33.33333333333333%}.col-md-5{width:41.66666666666667%}.col-md-6{width:50%}.col-md-7{width:58.333333333333336%}.col-md-8{width:66.66666666666666%}.col-md-9{width:75%}.col-md-10{width:83.33333333333334%}.col-md-11{width:91.66666666666666%}.col-md-12{width:100%}.col-md-push-0{left:auto}.col-md-push-1{left:8.333333333333332%}.col-md-push-2{left:16.666666666666664%}.col-md-push-3{left:25%}.col-md-push-4{left:33.33333333333333%}.col-md-push-5{left:41.66666666666667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.333333333333336%}.col-md-push-8{left:66.66666666666666%}.col-md-push-9{left:75%}.col-md-push-10{left:83.33333333333334%}.col-md-push-11{left:91.66666666666666%}.col-md-pull-0{right:auto}.col-md-pull-1{right:8.333333333333332%}.col-md-pull-2{right:16.666666666666664%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.33333333333333%}.col-md-pull-5{right:41.66666666666667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.333333333333336%}.col-md-pull-8{right:66.66666666666666%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.33333333333334%}.col-md-pull-11{right:91.66666666666666%}.col-md-offset-0{margin-left:0}.col-md-offset-1{margin-left:8.333333333333332%}.col-md-offset-2{margin-left:16.666666666666664%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.33333333333333%}.col-md-offset-5{margin-left:41.66666666666667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.333333333333336%}.col-md-offset-8{margin-left:66.66666666666666%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.33333333333334%}.col-md-offset-11{margin-left:91.66666666666666%}}@media(min-width:1200px){.container{max-width:1170px}.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11{float:left}.col-lg-1{width:8.333333333333332%}.col-lg-2{width:16.666666666666664%}.col-lg-3{width:25%}.col-lg-4{width:33.33333333333333%}.col-lg-5{width:41.66666666666667%}.col-lg-6{width:50%}.col-lg-7{width:58.333333333333336%}.col-lg-8{width:66.66666666666666%}.col-lg-9{width:75%}.col-lg-10{width:83.33333333333334%}.col-lg-11{width:91.66666666666666%}.col-lg-12{width:100%}.col-lg-push-0{left:auto}.col-lg-push-1{left:8.333333333333332%}.col-lg-push-2{left:16.666666666666664%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.33333333333333%}.col-lg-push-5{left:41.66666666666667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.333333333333336%}.col-lg-push-8{left:66.66666666666666%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.33333333333334%}.col-lg-push-11{left:91.66666666666666%}.col-lg-pull-0{right:auto}.col-lg-pull-1{right:8.333333333333332%}.col-lg-pull-2{right:16.666666666666664%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.33333333333333%}.col-lg-pull-5{right:41.66666666666667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.333333333333336%}.col-lg-pull-8{right:66.66666666666666%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.33333333333334%}.col-lg-pull-11{right:91.66666666666666%}.col-lg-offset-0{margin-left:0}.col-lg-offset-1{margin-left:8.333333333333332%}.col-lg-offset-2{margin-left:16.666666666666664%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.33333333333333%}.col-lg-offset-5{margin-left:41.66666666666667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.333333333333336%}.col-lg-offset-8{margin-left:66.66666666666666%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.33333333333334%}.col-lg-offset-11{margin-left:91.66666666666666%}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:20px}.table thead>tr>th,.table tbody>tr>th,.table tfoot>tr>th,.table thead>tr>td,.table tbody>tr>td,.table tfoot>tr>td{padding:8px;line-height:1.428571429;vertical-align:top;border-top:1px solid #ddd}.table thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table caption+thead tr:first-child th,.table colgroup+thead tr:first-child th,.table thead:first-child tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed thead>tr>th,.table-condensed tbody>tr>th,.table-condensed tfoot>tr>th,.table-condensed thead>tr>td,.table-condensed tbody>tr>td,.table-condensed tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*="col-"]{display:table-column;float:none}table td[class*="col-"],table th[class*="col-"]{display:table-cell;float:none}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8;border-color:#d6e9c6}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td{background-color:#d0e9c6;border-color:#c9e2b3}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede;border-color:#eed3d7}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td{background-color:#ebcccc;border-color:#e6c1c7}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3;border-color:#fbeed5}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td{background-color:#faf2cc;border-color:#f8e5be}@media(max-width:768px){.table-responsive{width:100%;margin-bottom:15px;overflow-x:scroll;overflow-y:hidden;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0;background-color:#fff}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>thead>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>thead>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}select[multiple],select[size]{height:auto}select optgroup{font-family:inherit;font-size:inherit;font-style:inherit}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}input[type="number"]::-webkit-outer-spin-button,input[type="number"]::-webkit-inner-spin-button{height:auto}.form-control:-moz-placeholder{color:#999}.form-control::-moz-placeholder{color:#999}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.428571429;color:#555;vertical-align:middle;background-color:#fff;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee}textarea.form-control{height:auto}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:20px;padding-left:20px;margin-top:10px;margin-bottom:10px;vertical-align:middle}.radio label,.checkbox label{display:inline;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{float:left;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;font-weight:normal;vertical-align:middle;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled],.checkbox-inline[disabled],fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm{height:auto}.input-lg{height:45px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:45px;line-height:45px}textarea.input-lg{height:auto}.has-warning .help-block,.has-warning .control-label{color:#c09853}.has-warning .form-control{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.has-warning .input-group-addon{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.has-error .help-block,.has-error .control-label{color:#b94a48}.has-error .form-control{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.has-error .input-group-addon{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.has-success .help-block,.has-success .control-label{color:#468847}.has-success .form-control{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.has-success .input-group-addon{color:#468847;background-color:#dff0d8;border-color:#468847}.form-control-static{padding-top:7px;margin-bottom:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media(min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block}.form-inline .radio,.form-inline .checkbox{display:inline-block;padding-left:0;margin-top:0;margin-bottom:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:none;margin-left:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}.form-horizontal .form-group:before,.form-horizontal .form-group:after{display:table;content:" "}.form-horizontal .form-group:after{clear:both}.form-horizontal .form-group:before,.form-horizontal .form-group:after{display:table;content:" "}.form-horizontal .form-group:after{clear:both}@media(min-width:768px){.form-horizontal .control-label{text-align:right}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:normal;line-height:1.428571429;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;border:1px solid transparent;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-link{font-weight:normal;color:#428bca;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999;text-decoration:none}.btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-xs{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs{padding:1px 5px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';-webkit-font-smoothing:antialiased;font-style:normal;font-weight:normal;line-height:1}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-print:before{content:"\e045"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-briefcase:before{content:"\1f4bc"}.glyphicon-calendar:before{content:"\1f4c5"}.glyphicon-pushpin:before{content:"\1f4cc"}.glyphicon-paperclip:before{content:"\1f4ce"}.glyphicon-camera:before{content:"\1f4f7"}.glyphicon-lock:before{content:"\1f512"}.glyphicon-bell:before{content:"\1f514"}.glyphicon-bookmark:before{content:"\1f516"}.glyphicon-fire:before{content:"\1f525"}.glyphicon-wrench:before{content:"\1f527"}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid #000;border-right:4px solid transparent;border-bottom:0 dotted;border-left:4px solid transparent;content:""}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.428571429;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{color:#fff;text-decoration:none;background-color:#428bca}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#428bca;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#999}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0 dotted;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media(min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}}.btn-default .caret{border-top-color:#333}.btn-primary .caret,.btn-success .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret{border-top-color:#fff}.dropup .btn-default .caret{border-bottom-color:#333}.dropup .btn-primary .caret,.dropup .btn-success .caret,.dropup .btn-warning .caret,.dropup .btn-danger .caret,.dropup .btn-info .caret{border-bottom-color:#fff}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar:before,.btn-toolbar:after{display:table;content:" "}.btn-toolbar:after{clear:both}.btn-toolbar:before,.btn-toolbar:after{display:table;content:" "}.btn-toolbar:after{clear:both}.btn-toolbar .btn-group{float:left}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group,.btn-toolbar>.btn-group+.btn-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group-xs>.btn{padding:5px 10px;padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{display:table;content:" "}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{display:table;content:" "}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-right-radius:0;border-bottom-left-radius:4px;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child>.btn:last-child,.btn-group-vertical>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;border-collapse:separate;table-layout:fixed}.btn-group-justified .btn{display:table-cell;float:none;width:1%}[data-toggle="buttons"]>.btn>input[type="radio"],[data-toggle="buttons"]>.btn>input[type="checkbox"]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group.col{float:none;padding-right:0;padding-left:0}.input-group .form-control{width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:45px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:45px;line-height:45px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:normal;line-height:1;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-4px}.input-group-btn>.btn:hover,.input-group-btn>.btn:active{z-index:2}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav:before,.nav:after{display:table;content:" "}.nav:after{clear:both}.nav:before,.nav:after{display:table;content:" "}.nav:after{clear:both}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.428571429;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center}@media(min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}}.nav-tabs.nav-justified>li>a{margin-right:0;border-bottom:1px solid #ddd}.nav-tabs.nav-justified>.active>a{border-bottom-color:#fff}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:5px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center}@media(min-width:768px){.nav-justified>li{display:table-cell;width:1%}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-bottom:1px solid #ddd}.nav-tabs-justified>.active>a{border-bottom-color:#fff}.tabbable:before,.tabbable:after{display:table;content:" "}.tabbable:after{clear:both}.tabbable:before,.tabbable:after{display:table;content:" "}.tabbable:after{clear:both}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.nav .caret{border-top-color:#428bca;border-bottom-color:#428bca}.nav a:hover .caret{border-top-color:#2a6496;border-bottom-color:#2a6496}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;z-index:1000;min-height:50px;margin-bottom:20px;border:1px solid transparent}.navbar:before,.navbar:after{display:table;content:" "}.navbar:after{clear:both}.navbar:before,.navbar:after{display:table;content:" "}.navbar:after{clear:both}@media(min-width:768px){.navbar{border-radius:4px}}.navbar-header:before,.navbar-header:after{display:table;content:" "}.navbar-header:after{clear:both}.navbar-header:before,.navbar-header:after{display:table;content:" "}.navbar-header:after{clear:both}@media(min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;padding-right:15px;padding-left:15px;overflow-x:visible;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse:before,.navbar-collapse:after{display:table;content:" "}.navbar-collapse:after{clear:both}.navbar-collapse:before,.navbar-collapse:after{display:table;content:" "}.navbar-collapse:after{clear:both}.navbar-collapse.in{overflow-y:auto}@media(min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-collapse .navbar-nav.navbar-left:first-child{margin-left:-15px}.navbar-collapse .navbar-nav.navbar-right:last-child{margin-right:-15px}.navbar-collapse .navbar-text:last-child{margin-right:0}}.container>.navbar-header,.container>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media(min-width:768px){.container>.navbar-header,.container>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{border-width:0 0 1px}@media(min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;border-width:0 0 1px}@media(min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;z-index:1030}.navbar-fixed-bottom{bottom:0;margin-bottom:0}.navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media(min-width:768px){.navbar>.container .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;border:1px solid transparent;border-radius:4px}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media(min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media(max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media(min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}@media(min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}@media(min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;padding-left:0;margin-top:0;margin-bottom:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{float:none;margin-left:0}}@media(max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media(min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-nav.pull-right>li>.dropdown-menu,.navbar-nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-text{float:left;margin-top:15px;margin-bottom:15px}@media(min-width:768px){.navbar-text{margin-right:15px;margin-left:15px}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#ccc}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e6e6e6}.navbar-default .navbar-nav>.dropdown>a:hover .caret,.navbar-default .navbar-nav>.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.open>a .caret,.navbar-default .navbar-nav>.open>a:hover .caret,.navbar-default .navbar-nav>.open>a:focus .caret{border-top-color:#555;border-bottom-color:#555}.navbar-default .navbar-nav>.dropdown>a .caret{border-top-color:#777;border-bottom-color:#777}@media(max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a{color:#999}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.dropdown>a:hover .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-nav>.dropdown>a .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .navbar-nav>.open>a .caret,.navbar-inverse .navbar-nav>.open>a:hover .caret,.navbar-inverse .navbar-nav>.open>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}@media(max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.428571429;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{background-color:#eee}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;cursor:default;background-color:#428bca;border-color:#428bca}.pagination>.disabled>span,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager:before,.pager:after{display:table;content:" "}.pager:after{clear:both}.pager:before,.pager:after{display:table;content:" "}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:hover,.label[href]:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.label-default{background-color:#999}.label-default[href]:hover,.label-default[href]:focus{background-color:#808080}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#999;border-radius:10px}.badge:empty{display:none}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.btn .badge{position:relative;top:-1px}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;font-size:21px;font-weight:200;line-height:2.1428571435;color:inherit;background-color:#eee}.jumbotron h1{line-height:1;color:inherit}.jumbotron p{line-height:1.4}.container .jumbotron{border-radius:6px}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-right:60px;padding-left:60px}.jumbotron h1{font-size:63px}}.thumbnail{display:inline-block;display:block;height:auto;max-width:100%;padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img{display:block;height:auto;max-width:100%}a.thumbnail:hover,a.thumbnail:focus{border-color:#428bca}.thumbnail>img{margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#356635}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#2d6987}.alert-warning{color:#c09853;background-color:#fcf8e3;border-color:#fbeed5}.alert-warning hr{border-top-color:#f8e5be}.alert-warning .alert-link{color:#a47e3c}.alert-danger{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-danger hr{border-top-color:#e6c1c7}.alert-danger .alert-link{color:#953b39}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-body:before,.panel-body:after{display:table;content:" "}.panel-body:after{clear:both}.panel-body:before,.panel-body:after{display:table;content:" "}.panel-body:after{clear:both}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0}.panel>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel>.list-group .list-group-item:last-child{border-bottom:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table{margin-bottom:0}.panel>.panel-body+.table{border-top:1px solid #ddd}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-title{margin-top:0;margin-bottom:0;font-size:16px}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-group .panel{margin-bottom:0;overflow:hidden;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-warning{border-color:#fbeed5}.panel-warning>.panel-heading{color:#c09853;background-color:#fcf8e3;border-color:#fbeed5}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#fbeed5}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#fbeed5}.panel-danger{border-color:#eed3d7}.panel-danger>.panel-heading{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#eed3d7}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#eed3d7}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}body.modal-open,.modal-open .navbar-fixed-top,.modal-open .navbar-fixed-bottom{margin-right:15px}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;display:none;overflow:auto;overflow-y:scroll}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.modal-dialog{z-index:1050;width:auto;padding:10px;margin-right:auto;margin-left:auto}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);background-clip:padding-box}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{min-height:16.428571429px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.428571429}.modal-body{position:relative;padding:20px}.modal-footer{padding:19px 20px 20px;margin-top:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer:before,.modal-footer:after{display:table;content:" "}.modal-footer:after{clear:both}.modal-footer:before,.modal-footer:after{display:table;content:" "}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media screen and (min-width:768px){.modal-dialog{right:auto;left:50%;width:600px;padding-top:30px;padding-bottom:30px}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}}.tooltip{position:absolute;z-index:1030;display:block;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.top-right .tooltip-arrow{right:5px;bottom:0;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-bottom-color:#000;border-width:0 5px 5px}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0;content:" "}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0;content:" "}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0;content:" "}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0;content:" "}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;height:auto;max-width:100%;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6);opacity:.5;filter:alpha(opacity=50)}.carousel-control.left{background-image:-webkit-gradient(linear,0 top,100% top,from(rgba(0,0,0,0.5)),to(rgba(0,0,0,0.0001)));background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,0.5) 0),color-stop(rgba(0,0,0,0.0001) 100%));background-image:-moz-linear-gradient(left,rgba(0,0,0,0.5) 0,rgba(0,0,0,0.0001) 100%);background-image:linear-gradient(to right,rgba(0,0,0,0.5) 0,rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000',endColorstr='#00000000',GradientType=1)}.carousel-control.right{right:0;left:auto;background-image:-webkit-gradient(linear,0 top,100% top,from(rgba(0,0,0,0.0001)),to(rgba(0,0,0,0.5)));background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,0.0001) 0),color-stop(rgba(0,0,0,0.5) 100%));background-image:-moz-linear-gradient(left,rgba(0,0,0,0.0001) 0,rgba(0,0,0,0.5) 100%);background-image:linear-gradient(to right,rgba(0,0,0,0.0001) 0,rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000',endColorstr='#80000000',GradientType=1)}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;left:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after{display:table;content:" "}.clearfix:after{clear:both}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.affix{position:fixed}@-ms-viewport{width:device-width}@media screen and (max-width:400px){@-ms-viewport{width:320px}}.hidden{display:none!important;visibility:hidden!important}.visible-xs{display:none!important}tr.visible-xs{display:none!important}th.visible-xs,td.visible-xs{display:none!important}@media(max-width:767px){.visible-xs{display:block!important}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-xs.visible-sm{display:block!important}tr.visible-xs.visible-sm{display:table-row!important}th.visible-xs.visible-sm,td.visible-xs.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-xs.visible-md{display:block!important}tr.visible-xs.visible-md{display:table-row!important}th.visible-xs.visible-md,td.visible-xs.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-xs.visible-lg{display:block!important}tr.visible-xs.visible-lg{display:table-row!important}th.visible-xs.visible-lg,td.visible-xs.visible-lg{display:table-cell!important}}.visible-sm{display:none!important}tr.visible-sm{display:none!important}th.visible-sm,td.visible-sm{display:none!important}@media(max-width:767px){.visible-sm.visible-xs{display:block!important}tr.visible-sm.visible-xs{display:table-row!important}th.visible-sm.visible-xs,td.visible-sm.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-sm{display:block!important}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-sm.visible-md{display:block!important}tr.visible-sm.visible-md{display:table-row!important}th.visible-sm.visible-md,td.visible-sm.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-sm.visible-lg{display:block!important}tr.visible-sm.visible-lg{display:table-row!important}th.visible-sm.visible-lg,td.visible-sm.visible-lg{display:table-cell!important}}.visible-md{display:none!important}tr.visible-md{display:none!important}th.visible-md,td.visible-md{display:none!important}@media(max-width:767px){.visible-md.visible-xs{display:block!important}tr.visible-md.visible-xs{display:table-row!important}th.visible-md.visible-xs,td.visible-md.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-md.visible-sm{display:block!important}tr.visible-md.visible-sm{display:table-row!important}th.visible-md.visible-sm,td.visible-md.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-md{display:block!important}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-md.visible-lg{display:block!important}tr.visible-md.visible-lg{display:table-row!important}th.visible-md.visible-lg,td.visible-md.visible-lg{display:table-cell!important}}.visible-lg{display:none!important}tr.visible-lg{display:none!important}th.visible-lg,td.visible-lg{display:none!important}@media(max-width:767px){.visible-lg.visible-xs{display:block!important}tr.visible-lg.visible-xs{display:table-row!important}th.visible-lg.visible-xs,td.visible-lg.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-lg.visible-sm{display:block!important}tr.visible-lg.visible-sm{display:table-row!important}th.visible-lg.visible-sm,td.visible-lg.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-lg.visible-md{display:block!important}tr.visible-lg.visible-md{display:table-row!important}th.visible-lg.visible-md,td.visible-lg.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-lg{display:block!important}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}.hidden-xs{display:block!important}tr.hidden-xs{display:table-row!important}th.hidden-xs,td.hidden-xs{display:table-cell!important}@media(max-width:767px){.hidden-xs{display:none!important}tr.hidden-xs{display:none!important}th.hidden-xs,td.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-xs.hidden-sm{display:none!important}tr.hidden-xs.hidden-sm{display:none!important}th.hidden-xs.hidden-sm,td.hidden-xs.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-xs.hidden-md{display:none!important}tr.hidden-xs.hidden-md{display:none!important}th.hidden-xs.hidden-md,td.hidden-xs.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-xs.hidden-lg{display:none!important}tr.hidden-xs.hidden-lg{display:none!important}th.hidden-xs.hidden-lg,td.hidden-xs.hidden-lg{display:none!important}}.hidden-sm{display:block!important}tr.hidden-sm{display:table-row!important}th.hidden-sm,td.hidden-sm{display:table-cell!important}@media(max-width:767px){.hidden-sm.hidden-xs{display:none!important}tr.hidden-sm.hidden-xs{display:none!important}th.hidden-sm.hidden-xs,td.hidden-sm.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}tr.hidden-sm{display:none!important}th.hidden-sm,td.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-sm.hidden-md{display:none!important}tr.hidden-sm.hidden-md{display:none!important}th.hidden-sm.hidden-md,td.hidden-sm.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-sm.hidden-lg{display:none!important}tr.hidden-sm.hidden-lg{display:none!important}th.hidden-sm.hidden-lg,td.hidden-sm.hidden-lg{display:none!important}}.hidden-md{display:block!important}tr.hidden-md{display:table-row!important}th.hidden-md,td.hidden-md{display:table-cell!important}@media(max-width:767px){.hidden-md.hidden-xs{display:none!important}tr.hidden-md.hidden-xs{display:none!important}th.hidden-md.hidden-xs,td.hidden-md.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-md.hidden-sm{display:none!important}tr.hidden-md.hidden-sm{display:none!important}th.hidden-md.hidden-sm,td.hidden-md.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}tr.hidden-md{display:none!important}th.hidden-md,td.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-md.hidden-lg{display:none!important}tr.hidden-md.hidden-lg{display:none!important}th.hidden-md.hidden-lg,td.hidden-md.hidden-lg{display:none!important}}.hidden-lg{display:block!important}tr.hidden-lg{display:table-row!important}th.hidden-lg,td.hidden-lg{display:table-cell!important}@media(max-width:767px){.hidden-lg.hidden-xs{display:none!important}tr.hidden-lg.hidden-xs{display:none!important}th.hidden-lg.hidden-xs,td.hidden-lg.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-lg.hidden-sm{display:none!important}tr.hidden-lg.hidden-sm{display:none!important}th.hidden-lg.hidden-sm,td.hidden-lg.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-lg.hidden-md{display:none!important}tr.hidden-lg.hidden-md{display:none!important}th.hidden-lg.hidden-md,td.hidden-lg.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-lg{display:none!important}tr.hidden-lg{display:none!important}th.hidden-lg,td.hidden-lg{display:none!important}}.visible-print{display:none!important}tr.visible-print{display:none!important}th.visible-print,td.visible-print{display:none!important}@media print{.visible-print{display:block!important}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}.hidden-print{display:none!important}tr.hidden-print{display:none!important}th.hidden-print,td.hidden-print{display:none!important}} \ No newline at end of file diff --git a/public/css/jquery.jqplot.css b/public/css/jquery.jqplot.css new file mode 100644 index 00000000..f6768a6a --- /dev/null +++ b/public/css/jquery.jqplot.css @@ -0,0 +1,259 @@ +/*rules for the plot target div. These will be cascaded down to all plot elements according to css rules*/ +.jqplot-target { + position: relative; + color: #666666; + font-family: "Trebuchet MS", Arial, Helvetica, sans-serif; + font-size: 1em; +/* height: 300px; + width: 400px;*/ +} + +/*rules applied to all axes*/ +.jqplot-axis { + font-size: 0.75em; +} + +.jqplot-xaxis { + margin-top: 10px; +} + +.jqplot-x2axis { + margin-bottom: 10px; +} + +.jqplot-yaxis { + margin-right: 10px; +} + +.jqplot-y2axis, .jqplot-y3axis, .jqplot-y4axis, .jqplot-y5axis, .jqplot-y6axis, .jqplot-y7axis, .jqplot-y8axis, .jqplot-y9axis, .jqplot-yMidAxis { + margin-left: 10px; + margin-right: 10px; +} + +/*rules applied to all axis tick divs*/ +.jqplot-axis-tick, .jqplot-xaxis-tick, .jqplot-yaxis-tick, .jqplot-x2axis-tick, .jqplot-y2axis-tick, .jqplot-y3axis-tick, .jqplot-y4axis-tick, .jqplot-y5axis-tick, .jqplot-y6axis-tick, .jqplot-y7axis-tick, .jqplot-y8axis-tick, .jqplot-y9axis-tick, .jqplot-yMidAxis-tick { + position: absolute; + white-space: pre; +} + + +.jqplot-xaxis-tick { + top: 0px; + /* initial position untill tick is drawn in proper place */ + left: 15px; +/* padding-top: 10px;*/ + vertical-align: top; +} + +.jqplot-x2axis-tick { + bottom: 0px; + /* initial position untill tick is drawn in proper place */ + left: 15px; +/* padding-bottom: 10px;*/ + vertical-align: bottom; +} + +.jqplot-yaxis-tick { + right: 0px; + /* initial position untill tick is drawn in proper place */ + top: 15px; +/* padding-right: 10px;*/ + text-align: right; +} + +.jqplot-yaxis-tick.jqplot-breakTick { + right: -20px; + margin-right: 0px; + padding:1px 5px 1px 5px; + /*background-color: white;*/ + z-index: 2; + font-size: 1.5em; +} + +.jqplot-y2axis-tick, .jqplot-y3axis-tick, .jqplot-y4axis-tick, .jqplot-y5axis-tick, .jqplot-y6axis-tick, .jqplot-y7axis-tick, .jqplot-y8axis-tick, .jqplot-y9axis-tick { + left: 0px; + /* initial position untill tick is drawn in proper place */ + top: 15px; +/* padding-left: 10px;*/ +/* padding-right: 15px;*/ + text-align: left; +} + +.jqplot-yMidAxis-tick { + text-align: center; + white-space: nowrap; +} + +.jqplot-xaxis-label { + margin-top: 10px; + font-size: 11pt; + position: absolute; +} + +.jqplot-x2axis-label { + margin-bottom: 10px; + font-size: 11pt; + position: absolute; +} + +.jqplot-yaxis-label { + margin-right: 10px; +/* text-align: center;*/ + font-size: 11pt; + position: absolute; +} + +.jqplot-yMidAxis-label { + font-size: 11pt; + position: absolute; +} + +.jqplot-y2axis-label, .jqplot-y3axis-label, .jqplot-y4axis-label, .jqplot-y5axis-label, .jqplot-y6axis-label, .jqplot-y7axis-label, .jqplot-y8axis-label, .jqplot-y9axis-label { +/* text-align: center;*/ + font-size: 11pt; + margin-left: 10px; + position: absolute; +} + +.jqplot-meterGauge-tick { + font-size: 0.75em; + color: #999999; +} + +.jqplot-meterGauge-label { + font-size: 1em; + color: #999999; +} + +table.jqplot-table-legend { + margin-top: 12px; + margin-bottom: 12px; + margin-left: 12px; + margin-right: 12px; +} + +table.jqplot-table-legend, table.jqplot-cursor-legend { + background-color: rgba(255,255,255,0.6); + border: 1px solid #cccccc; + position: absolute; + font-size: 0.75em; +} + +td.jqplot-table-legend { + vertical-align:middle; +} + +/* +These rules could be used instead of assigning +element styles and relying on js object properties. +*/ + +/* +td.jqplot-table-legend-swatch { + padding-top: 0.5em; + text-align: center; +} + +tr.jqplot-table-legend:first td.jqplot-table-legend-swatch { + padding-top: 0px; +} +*/ + +td.jqplot-seriesToggle:hover, td.jqplot-seriesToggle:active { + cursor: pointer; +} + +.jqplot-table-legend .jqplot-series-hidden { + text-decoration: line-through; +} + +div.jqplot-table-legend-swatch-outline { + border: 1px solid #cccccc; + padding:1px; +} + +div.jqplot-table-legend-swatch { + width:0px; + height:0px; + border-top-width: 5px; + border-bottom-width: 5px; + border-left-width: 6px; + border-right-width: 6px; + border-top-style: solid; + border-bottom-style: solid; + border-left-style: solid; + border-right-style: solid; +} + +.jqplot-title { + top: 0px; + left: 0px; + padding-bottom: 0.5em; + font-size: 1.2em; +} + +table.jqplot-cursor-tooltip { + border: 1px solid #cccccc; + font-size: 0.75em; +} + + +.jqplot-cursor-tooltip { + border: 1px solid #cccccc; + font-size: 0.75em; + white-space: nowrap; + background: rgba(208,208,208,0.5); + padding: 1px; +} + +.jqplot-highlighter-tooltip, .jqplot-canvasOverlay-tooltip { + border: 1px solid #cccccc; + font-size: 0.75em; + white-space: nowrap; + background: rgba(208,208,208,0.5); + padding: 1px; +} + +.jqplot-point-label { + font-size: 0.75em; + z-index: 2; +} + +td.jqplot-cursor-legend-swatch { + vertical-align: middle; + text-align: center; +} + +div.jqplot-cursor-legend-swatch { + width: 1.2em; + height: 0.7em; +} + +.jqplot-error { +/* Styles added to the plot target container when there is an error go here.*/ + text-align: center; +} + +.jqplot-error-message { +/* Styling of the custom error message div goes here.*/ + position: relative; + top: 46%; + display: inline-block; +} + +div.jqplot-bubble-label { + font-size: 0.8em; +/* background: rgba(90%, 90%, 90%, 0.15);*/ + padding-left: 2px; + padding-right: 2px; + color: rgb(20%, 20%, 20%); +} + +div.jqplot-bubble-label.jqplot-bubble-label-highlight { + background: rgba(90%, 90%, 90%, 0.7); +} + +div.jqplot-noData-container { + text-align: center; + background-color: rgba(96%, 96%, 96%, 0.3); +} diff --git a/public/css/jquery.jqplot.min.css b/public/css/jquery.jqplot.min.css new file mode 100644 index 00000000..0f84835b --- /dev/null +++ b/public/css/jquery.jqplot.min.css @@ -0,0 +1 @@ +.jqplot-target{position:relative;color:#666;font-family:"Trebuchet MS",Arial,Helvetica,sans-serif;font-size:1em}.jqplot-axis{font-size:.75em}.jqplot-xaxis{margin-top:10px}.jqplot-x2axis{margin-bottom:10px}.jqplot-yaxis{margin-right:10px}.jqplot-y2axis,.jqplot-y3axis,.jqplot-y4axis,.jqplot-y5axis,.jqplot-y6axis,.jqplot-y7axis,.jqplot-y8axis,.jqplot-y9axis,.jqplot-yMidAxis{margin-left:10px;margin-right:10px}.jqplot-axis-tick,.jqplot-xaxis-tick,.jqplot-yaxis-tick,.jqplot-x2axis-tick,.jqplot-y2axis-tick,.jqplot-y3axis-tick,.jqplot-y4axis-tick,.jqplot-y5axis-tick,.jqplot-y6axis-tick,.jqplot-y7axis-tick,.jqplot-y8axis-tick,.jqplot-y9axis-tick,.jqplot-yMidAxis-tick{position:absolute;white-space:pre}.jqplot-xaxis-tick{top:0;left:15px;vertical-align:top}.jqplot-x2axis-tick{bottom:0;left:15px;vertical-align:bottom}.jqplot-yaxis-tick{right:0;top:15px;text-align:right}.jqplot-yaxis-tick.jqplot-breakTick{right:-20px;margin-right:0;padding:1px 5px 1px 5px;z-index:2;font-size:1.5em}.jqplot-y2axis-tick,.jqplot-y3axis-tick,.jqplot-y4axis-tick,.jqplot-y5axis-tick,.jqplot-y6axis-tick,.jqplot-y7axis-tick,.jqplot-y8axis-tick,.jqplot-y9axis-tick{left:0;top:15px;text-align:left}.jqplot-yMidAxis-tick{text-align:center;white-space:nowrap}.jqplot-xaxis-label{margin-top:10px;font-size:11pt;position:absolute}.jqplot-x2axis-label{margin-bottom:10px;font-size:11pt;position:absolute}.jqplot-yaxis-label{margin-right:10px;font-size:11pt;position:absolute}.jqplot-yMidAxis-label{font-size:11pt;position:absolute}.jqplot-y2axis-label,.jqplot-y3axis-label,.jqplot-y4axis-label,.jqplot-y5axis-label,.jqplot-y6axis-label,.jqplot-y7axis-label,.jqplot-y8axis-label,.jqplot-y9axis-label{font-size:11pt;margin-left:10px;position:absolute}.jqplot-meterGauge-tick{font-size:.75em;color:#999}.jqplot-meterGauge-label{font-size:1em;color:#999}table.jqplot-table-legend{margin-top:12px;margin-bottom:12px;margin-left:12px;margin-right:12px}table.jqplot-table-legend,table.jqplot-cursor-legend{background-color:rgba(255,255,255,0.6);border:1px solid #ccc;position:absolute;font-size:.75em}td.jqplot-table-legend{vertical-align:middle}td.jqplot-seriesToggle:hover,td.jqplot-seriesToggle:active{cursor:pointer}.jqplot-table-legend .jqplot-series-hidden{text-decoration:line-through}div.jqplot-table-legend-swatch-outline{border:1px solid #ccc;padding:1px}div.jqplot-table-legend-swatch{width:0;height:0;border-top-width:5px;border-bottom-width:5px;border-left-width:6px;border-right-width:6px;border-top-style:solid;border-bottom-style:solid;border-left-style:solid;border-right-style:solid}.jqplot-title{top:0;left:0;padding-bottom:.5em;font-size:1.2em}table.jqplot-cursor-tooltip{border:1px solid #ccc;font-size:.75em}.jqplot-cursor-tooltip{border:1px solid #ccc;font-size:.75em;white-space:nowrap;background:rgba(208,208,208,0.5);padding:1px}.jqplot-highlighter-tooltip,.jqplot-canvasOverlay-tooltip{border:1px solid #ccc;font-size:.75em;white-space:nowrap;background:rgba(208,208,208,0.5);padding:1px}.jqplot-point-label{font-size:.75em;z-index:2}td.jqplot-cursor-legend-swatch{vertical-align:middle;text-align:center}div.jqplot-cursor-legend-swatch{width:1.2em;height:.7em}.jqplot-error{text-align:center}.jqplot-error-message{position:relative;top:46%;display:inline-block}div.jqplot-bubble-label{font-size:.8em;padding-left:2px;padding-right:2px;color:rgb(20%,20%,20%)}div.jqplot-bubble-label.jqplot-bubble-label-highlight{background:rgba(90%,90%,90%,0.7)}div.jqplot-noData-container{text-align:center;background-color:rgba(96%,96%,96%,0.3)} \ No newline at end of file diff --git a/public/css/style.css b/public/css/style.css new file mode 100644 index 00000000..bddab135 --- /dev/null +++ b/public/css/style.css @@ -0,0 +1,37 @@ +body { + padding-top: 60px; + padding-bottom: 40px; +} + +.zf-green { + color: #68b604; +} + +.btn-success { + background-color: #57a900; + background-image: -moz-linear-gradient(top, #70d900, #57a900); + background-image: -ms-linear-gradient(top, #70d900, #57a900); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#70d900), to(#57a900)); + background-image: -webkit-linear-gradient(top, #70d900, #57a900); + background-image: -o-linear-gradient(top, #70d900, #57a900); + background-image: linear-gradient(top, #70d900, #57a900); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#70d900', endColorstr='#57a900', GradientType=0); +} + +.btn-success:hover, +.btn-success:active, +.btn-success.active, +.btn-success.disabled, +.btn-success[disabled] { + background-color: #57a900; +} + +.btn-success:active, .btn-success.active { + background-color: #57a900; +} + +div.container a.brand { + background: url("../img/zf2-logo.png") no-repeat scroll 0 10px transparent; + margin-left: 0; + padding: 8px 20px 12px 40px; +} diff --git a/public/fonts/glyphicons-halflings-regular.eot b/public/fonts/glyphicons-halflings-regular.eot new file mode 100644 index 00000000..87eaa434 Binary files /dev/null and b/public/fonts/glyphicons-halflings-regular.eot differ diff --git a/public/fonts/glyphicons-halflings-regular.svg b/public/fonts/glyphicons-halflings-regular.svg new file mode 100644 index 00000000..5fee0685 --- /dev/null +++ b/public/fonts/glyphicons-halflings-regular.svg @@ -0,0 +1,228 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/fonts/glyphicons-halflings-regular.ttf b/public/fonts/glyphicons-halflings-regular.ttf new file mode 100644 index 00000000..be784dc1 Binary files /dev/null and b/public/fonts/glyphicons-halflings-regular.ttf differ diff --git a/public/fonts/glyphicons-halflings-regular.woff b/public/fonts/glyphicons-halflings-regular.woff new file mode 100644 index 00000000..2cc3e485 Binary files /dev/null and b/public/fonts/glyphicons-halflings-regular.woff differ diff --git a/public/img/favicon.ico b/public/img/favicon.ico new file mode 100644 index 00000000..17f11990 Binary files /dev/null and b/public/img/favicon.ico differ diff --git a/public/img/zf2-logo.png b/public/img/zf2-logo.png new file mode 100644 index 00000000..03c8dae1 Binary files /dev/null and b/public/img/zf2-logo.png differ diff --git a/public/index.php b/public/index.php new file mode 100644 index 00000000..b7612db7 --- /dev/null +++ b/public/index.php @@ -0,0 +1,25 @@ +run(); + diff --git a/public/js/bootstrap.js b/public/js/bootstrap.js new file mode 100644 index 00000000..2c642571 --- /dev/null +++ b/public/js/bootstrap.js @@ -0,0 +1,1999 @@ +/** +* bootstrap.js v3.0.0 by @fat and @mdo +* Copyright 2013 Twitter Inc. +* http://www.apache.org/licenses/LICENSE-2.0 +*/ +if (!jQuery) { throw new Error("Bootstrap requires jQuery") } + +/* ======================================================================== + * Bootstrap: transition.js v3.0.0 + * http://twbs.github.com/bootstrap/javascript.html#transitions + * ======================================================================== + * Copyright 2013 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ======================================================================== */ + + ++function ($) { "use strict"; + + // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/) + // ============================================================ + + function transitionEnd() { + var el = document.createElement('bootstrap') + + var transEndEventNames = { + 'WebkitTransition' : 'webkitTransitionEnd' + , 'MozTransition' : 'transitionend' + , 'OTransition' : 'oTransitionEnd otransitionend' + , 'transition' : 'transitionend' + } + + for (var name in transEndEventNames) { + if (el.style[name] !== undefined) { + return { end: transEndEventNames[name] } + } + } + } + + // http://blog.alexmaccaw.com/css-transitions + $.fn.emulateTransitionEnd = function (duration) { + var called = false, $el = this + $(this).one($.support.transition.end, function () { called = true }) + var callback = function () { if (!called) $($el).trigger($.support.transition.end) } + setTimeout(callback, duration) + return this + } + + $(function () { + $.support.transition = transitionEnd() + }) + +}(window.jQuery); + +/* ======================================================================== + * Bootstrap: alert.js v3.0.0 + * http://twbs.github.com/bootstrap/javascript.html#alerts + * ======================================================================== + * Copyright 2013 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ======================================================================== */ + + ++function ($) { "use strict"; + + // ALERT CLASS DEFINITION + // ====================== + + var dismiss = '[data-dismiss="alert"]' + var Alert = function (el) { + $(el).on('click', dismiss, this.close) + } + + Alert.prototype.close = function (e) { + var $this = $(this) + var selector = $this.attr('data-target') + + if (!selector) { + selector = $this.attr('href') + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 + } + + var $parent = $(selector) + + if (e) e.preventDefault() + + if (!$parent.length) { + $parent = $this.hasClass('alert') ? $this : $this.parent() + } + + $parent.trigger(e = $.Event('close.bs.alert')) + + if (e.isDefaultPrevented()) return + + $parent.removeClass('in') + + function removeElement() { + $parent.trigger('closed.bs.alert').remove() + } + + $.support.transition && $parent.hasClass('fade') ? + $parent + .one($.support.transition.end, removeElement) + .emulateTransitionEnd(150) : + removeElement() + } + + + // ALERT PLUGIN DEFINITION + // ======================= + + var old = $.fn.alert + + $.fn.alert = function (option) { + return this.each(function () { + var $this = $(this) + var data = $this.data('bs.alert') + + if (!data) $this.data('bs.alert', (data = new Alert(this))) + if (typeof option == 'string') data[option].call($this) + }) + } + + $.fn.alert.Constructor = Alert + + + // ALERT NO CONFLICT + // ================= + + $.fn.alert.noConflict = function () { + $.fn.alert = old + return this + } + + + // ALERT DATA-API + // ============== + + $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close) + +}(window.jQuery); + +/* ======================================================================== + * Bootstrap: button.js v3.0.0 + * http://twbs.github.com/bootstrap/javascript.html#buttons + * ======================================================================== + * Copyright 2013 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ======================================================================== */ + + ++function ($) { "use strict"; + + // BUTTON PUBLIC CLASS DEFINITION + // ============================== + + var Button = function (element, options) { + this.$element = $(element) + this.options = $.extend({}, Button.DEFAULTS, options) + } + + Button.DEFAULTS = { + loadingText: 'loading...' + } + + Button.prototype.setState = function (state) { + var d = 'disabled' + var $el = this.$element + var val = $el.is('input') ? 'val' : 'html' + var data = $el.data() + + state = state + 'Text' + + if (!data.resetText) $el.data('resetText', $el[val]()) + + $el[val](data[state] || this.options[state]) + + // push to event loop to allow forms to submit + setTimeout(function () { + state == 'loadingText' ? + $el.addClass(d).attr(d, d) : + $el.removeClass(d).removeAttr(d); + }, 0) + } + + Button.prototype.toggle = function () { + var $parent = this.$element.closest('[data-toggle="buttons"]') + + if ($parent.length) { + var $input = this.$element.find('input') + .prop('checked', !this.$element.hasClass('active')) + .trigger('change') + if ($input.prop('type') === 'radio') $parent.find('.active').removeClass('active') + } + + this.$element.toggleClass('active') + } + + + // BUTTON PLUGIN DEFINITION + // ======================== + + var old = $.fn.button + + $.fn.button = function (option) { + return this.each(function () { + var $this = $(this) + var data = $this.data('bs.button') + var options = typeof option == 'object' && option + + if (!data) $this.data('bs.button', (data = new Button(this, options))) + + if (option == 'toggle') data.toggle() + else if (option) data.setState(option) + }) + } + + $.fn.button.Constructor = Button + + + // BUTTON NO CONFLICT + // ================== + + $.fn.button.noConflict = function () { + $.fn.button = old + return this + } + + + // BUTTON DATA-API + // =============== + + $(document).on('click.bs.button.data-api', '[data-toggle^=button]', function (e) { + var $btn = $(e.target) + if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn') + $btn.button('toggle') + e.preventDefault() + }) + +}(window.jQuery); + +/* ======================================================================== + * Bootstrap: carousel.js v3.0.0 + * http://twbs.github.com/bootstrap/javascript.html#carousel + * ======================================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ======================================================================== */ + + ++function ($) { "use strict"; + + // CAROUSEL CLASS DEFINITION + // ========================= + + var Carousel = function (element, options) { + this.$element = $(element) + this.$indicators = this.$element.find('.carousel-indicators') + this.options = options + this.paused = + this.sliding = + this.interval = + this.$active = + this.$items = null + + this.options.pause == 'hover' && this.$element + .on('mouseenter', $.proxy(this.pause, this)) + .on('mouseleave', $.proxy(this.cycle, this)) + } + + Carousel.DEFAULTS = { + interval: 5000 + , pause: 'hover' + , wrap: true + } + + Carousel.prototype.cycle = function (e) { + e || (this.paused = false) + + this.interval && clearInterval(this.interval) + + this.options.interval + && !this.paused + && (this.interval = setInterval($.proxy(this.next, this), this.options.interval)) + + return this + } + + Carousel.prototype.getActiveIndex = function () { + this.$active = this.$element.find('.item.active') + this.$items = this.$active.parent().children() + + return this.$items.index(this.$active) + } + + Carousel.prototype.to = function (pos) { + var that = this + var activeIndex = this.getActiveIndex() + + if (pos > (this.$items.length - 1) || pos < 0) return + + if (this.sliding) return this.$element.one('slid', function () { that.to(pos) }) + if (activeIndex == pos) return this.pause().cycle() + + return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos])) + } + + Carousel.prototype.pause = function (e) { + e || (this.paused = true) + + if (this.$element.find('.next, .prev').length && $.support.transition.end) { + this.$element.trigger($.support.transition.end) + this.cycle(true) + } + + this.interval = clearInterval(this.interval) + + return this + } + + Carousel.prototype.next = function () { + if (this.sliding) return + return this.slide('next') + } + + Carousel.prototype.prev = function () { + if (this.sliding) return + return this.slide('prev') + } + + Carousel.prototype.slide = function (type, next) { + var $active = this.$element.find('.item.active') + var $next = next || $active[type]() + var isCycling = this.interval + var direction = type == 'next' ? 'left' : 'right' + var fallback = type == 'next' ? 'first' : 'last' + var that = this + + if (!$next.length) { + if (!this.options.wrap) return + $next = this.$element.find('.item')[fallback]() + } + + this.sliding = true + + isCycling && this.pause() + + var e = $.Event('slide.bs.carousel', { relatedTarget: $next[0], direction: direction }) + + if ($next.hasClass('active')) return + + if (this.$indicators.length) { + this.$indicators.find('.active').removeClass('active') + this.$element.one('slid', function () { + var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()]) + $nextIndicator && $nextIndicator.addClass('active') + }) + } + + if ($.support.transition && this.$element.hasClass('slide')) { + this.$element.trigger(e) + if (e.isDefaultPrevented()) return + $next.addClass(type) + $next[0].offsetWidth // force reflow + $active.addClass(direction) + $next.addClass(direction) + $active + .one($.support.transition.end, function () { + $next.removeClass([type, direction].join(' ')).addClass('active') + $active.removeClass(['active', direction].join(' ')) + that.sliding = false + setTimeout(function () { that.$element.trigger('slid') }, 0) + }) + .emulateTransitionEnd(600) + } else { + this.$element.trigger(e) + if (e.isDefaultPrevented()) return + $active.removeClass('active') + $next.addClass('active') + this.sliding = false + this.$element.trigger('slid') + } + + isCycling && this.cycle() + + return this + } + + + // CAROUSEL PLUGIN DEFINITION + // ========================== + + var old = $.fn.carousel + + $.fn.carousel = function (option) { + return this.each(function () { + var $this = $(this) + var data = $this.data('bs.carousel') + var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option) + var action = typeof option == 'string' ? option : options.slide + + if (!data) $this.data('bs.carousel', (data = new Carousel(this, options))) + if (typeof option == 'number') data.to(option) + else if (action) data[action]() + else if (options.interval) data.pause().cycle() + }) + } + + $.fn.carousel.Constructor = Carousel + + + // CAROUSEL NO CONFLICT + // ==================== + + $.fn.carousel.noConflict = function () { + $.fn.carousel = old + return this + } + + + // CAROUSEL DATA-API + // ================= + + $(document).on('click.bs.carousel.data-api', '[data-slide], [data-slide-to]', function (e) { + var $this = $(this), href + var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 + var options = $.extend({}, $target.data(), $this.data()) + var slideIndex = $this.attr('data-slide-to') + if (slideIndex) options.interval = false + + $target.carousel(options) + + if (slideIndex = $this.attr('data-slide-to')) { + $target.data('bs.carousel').to(slideIndex) + } + + e.preventDefault() + }) + + $(window).on('load', function () { + $('[data-ride="carousel"]').each(function () { + var $carousel = $(this) + $carousel.carousel($carousel.data()) + }) + }) + +}(window.jQuery); + +/* ======================================================================== + * Bootstrap: collapse.js v3.0.0 + * http://twbs.github.com/bootstrap/javascript.html#collapse + * ======================================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ======================================================================== */ + + ++function ($) { "use strict"; + + // COLLAPSE PUBLIC CLASS DEFINITION + // ================================ + + var Collapse = function (element, options) { + this.$element = $(element) + this.options = $.extend({}, Collapse.DEFAULTS, options) + this.transitioning = null + + if (this.options.parent) this.$parent = $(this.options.parent) + if (this.options.toggle) this.toggle() + } + + Collapse.DEFAULTS = { + toggle: true + } + + Collapse.prototype.dimension = function () { + var hasWidth = this.$element.hasClass('width') + return hasWidth ? 'width' : 'height' + } + + Collapse.prototype.show = function () { + if (this.transitioning || this.$element.hasClass('in')) return + + var startEvent = $.Event('show.bs.collapse') + this.$element.trigger(startEvent) + if (startEvent.isDefaultPrevented()) return + + var actives = this.$parent && this.$parent.find('> .panel > .in') + + if (actives && actives.length) { + var hasData = actives.data('bs.collapse') + if (hasData && hasData.transitioning) return + actives.collapse('hide') + hasData || actives.data('bs.collapse', null) + } + + var dimension = this.dimension() + + this.$element + .removeClass('collapse') + .addClass('collapsing') + [dimension](0) + + this.transitioning = 1 + + var complete = function () { + this.$element + .removeClass('collapsing') + .addClass('in') + [dimension]('auto') + this.transitioning = 0 + this.$element.trigger('shown.bs.collapse') + } + + if (!$.support.transition) return complete.call(this) + + var scrollSize = $.camelCase(['scroll', dimension].join('-')) + + this.$element + .one($.support.transition.end, $.proxy(complete, this)) + .emulateTransitionEnd(350) + [dimension](this.$element[0][scrollSize]) + } + + Collapse.prototype.hide = function () { + if (this.transitioning || !this.$element.hasClass('in')) return + + var startEvent = $.Event('hide.bs.collapse') + this.$element.trigger(startEvent) + if (startEvent.isDefaultPrevented()) return + + var dimension = this.dimension() + + this.$element + [dimension](this.$element[dimension]()) + [0].offsetHeight + + this.$element + .addClass('collapsing') + .removeClass('collapse') + .removeClass('in') + + this.transitioning = 1 + + var complete = function () { + this.transitioning = 0 + this.$element + .trigger('hidden.bs.collapse') + .removeClass('collapsing') + .addClass('collapse') + } + + if (!$.support.transition) return complete.call(this) + + this.$element + [dimension](0) + .one($.support.transition.end, $.proxy(complete, this)) + .emulateTransitionEnd(350) + } + + Collapse.prototype.toggle = function () { + this[this.$element.hasClass('in') ? 'hide' : 'show']() + } + + + // COLLAPSE PLUGIN DEFINITION + // ========================== + + var old = $.fn.collapse + + $.fn.collapse = function (option) { + return this.each(function () { + var $this = $(this) + var data = $this.data('bs.collapse') + var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option) + + if (!data) $this.data('bs.collapse', (data = new Collapse(this, options))) + if (typeof option == 'string') data[option]() + }) + } + + $.fn.collapse.Constructor = Collapse + + + // COLLAPSE NO CONFLICT + // ==================== + + $.fn.collapse.noConflict = function () { + $.fn.collapse = old + return this + } + + + // COLLAPSE DATA-API + // ================= + + $(document).on('click.bs.collapse.data-api', '[data-toggle=collapse]', function (e) { + var $this = $(this), href + var target = $this.attr('data-target') + || e.preventDefault() + || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7 + var $target = $(target) + var data = $target.data('bs.collapse') + var option = data ? 'toggle' : $this.data() + var parent = $this.attr('data-parent') + var $parent = parent && $(parent) + + if (!data || !data.transitioning) { + if ($parent) $parent.find('[data-toggle=collapse][data-parent="' + parent + '"]').not($this).addClass('collapsed') + $this[$target.hasClass('in') ? 'addClass' : 'removeClass']('collapsed') + } + + $target.collapse(option) + }) + +}(window.jQuery); + +/* ======================================================================== + * Bootstrap: dropdown.js v3.0.0 + * http://twbs.github.com/bootstrap/javascript.html#dropdowns + * ======================================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ======================================================================== */ + + ++function ($) { "use strict"; + + // DROPDOWN CLASS DEFINITION + // ========================= + + var backdrop = '.dropdown-backdrop' + var toggle = '[data-toggle=dropdown]' + var Dropdown = function (element) { + var $el = $(element).on('click.bs.dropdown', this.toggle) + } + + Dropdown.prototype.toggle = function (e) { + var $this = $(this) + + if ($this.is('.disabled, :disabled')) return + + var $parent = getParent($this) + var isActive = $parent.hasClass('open') + + clearMenus() + + if (!isActive) { + if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) { + // if mobile we we use a backdrop because click events don't delegate + $('