diff --git a/.claude/settings.local.json b/.claude/settings.local.json deleted file mode 100644 index c0e8397..0000000 --- a/.claude/settings.local.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "permissions": { - "allow": [ - "WebFetch(domain:bephpug.de)", - "WebFetch(domain:berlinphp.github.io)", - "WebFetch(domain:www.bephpug.de)", - "Bash(mkdir:*)", - "Bash(curl:*)", - "Bash(zola serve:*)", - "Bash(git add:*)", - "mcp__playwright__browser_navigate", - "WebFetch(domain:www.meetup.com)", - "Bash(rg:*)", - "Bash(zola build:*)", - "WebFetch(domain:127.0.0.1)", - "Bash(grep:*)", - "Bash(cp:*)", - "Bash(cat:*)" - ], - "deny": [], - "defaultMode": "acceptEdits" - } -} \ No newline at end of file diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..3658dbb --- /dev/null +++ b/.editorconfig @@ -0,0 +1,14 @@ +root = true + +[*] +charset = utf-8 +indent_size = 4 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true + +[*.md] +trim_trailing_whitespace = false + +[*.yml] +indent_size = 2 diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml deleted file mode 100644 index ac9c943..0000000 --- a/.github/workflows/deploy.yml +++ /dev/null @@ -1,60 +0,0 @@ -name: Deploy Zola site to GitHub Pages - -on: - push: - branches: - - main - pull_request: - -jobs: - build: - runs-on: ubuntu-latest - if: github.ref != 'refs/heads/main' - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Setup Zola - uses: taiki-e/install-action@v2 - with: - tool: zola@0.21.0 - - - name: Build site - run: zola build - - - name: Check internal links - run: zola check - - deploy: - runs-on: ubuntu-latest - if: github.ref == 'refs/heads/main' - permissions: - contents: read - pages: write - id-token: write - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Setup Zola - uses: taiki-e/install-action@v2 - with: - tool: zola@0.21.0 - - - name: Build site - run: zola build - - - name: Setup Pages - uses: actions/configure-pages@v4 - - - name: Upload artifact - uses: actions/upload-pages-artifact@v3 - with: - path: ./public - - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v4 \ No newline at end of file diff --git a/.gitignore b/.gitignore index 28e16ef..6f8572e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,22 +1,2 @@ -# Zola build output -public/ - -# OS generated files -.DS_Store -.DS_Store? -._* -.Spotlight-V100 -.Trashes -ehthumbs.db -Thumbs.db - -# Editor files -*.swp -*.swo -*~ -.vscode/ -.idea/ - -# Temporary files -*.tmp -*.temp \ No newline at end of file +/_site +.idea diff --git a/CLAUDE.md b/CLAUDE.md deleted file mode 100644 index 9af2095..0000000 --- a/CLAUDE.md +++ /dev/null @@ -1,161 +0,0 @@ -# CLAUDE.md - -This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. - -## Project Overview - -This is the **Berlin PHP Usergroup** website built with **Zola** static site generator. The site was migrated from Jekyll and focuses on showcasing meetup events, talks, and community information. - -**Key Architecture Decisions:** -- **Zola SSG**: Uses Zola for fast static site generation -- **Bulma CSS**: All styling uses Bulma framework (NEVER use Tailwind CSS) -- **Event-Centric**: Content is organized around meetup events with rich metadata -- **English Content**: Events and pages support only English - -## Essential Commands - -```bash -# Development server -zola serve --port 8082 - -# Build for production -zola build - -# Check internal links -zola check -``` - -## Content Structure & Architecture - -### Events Architecture -Events are the core content type with a specific structure: - -**Directory Structure:** -``` -content/events/ -├── _index.md # Events listing page (paginated, 20 per page) -└── YYYY-MM-DD-topic1-topic2-topic3/ - └── index.md # Individual event page -``` - -**Event Frontmatter Schema:** -```toml -+++ -title = "Event Title" -description = "SEO description" -date = "YYYY-MM-DD" - -[taxonomies] -speaker = ["Speaker Name 1", "Speaker Name 2"] -topic = ["Topic1", "Topic2"] - -[extra] -location = "Venue Name" -+++ -``` - -### Taxonomies System -The site uses two main taxonomies defined in `config.toml`: -- `speaker`: Links events by speakers (generates `/speaker/` pages) -- `topic`: Links events by topics (generates `/topic/` pages) - -### Template Architecture -- `base.html`: Main layout with Bulma navbar, footer, meta tags -- `events.html`: Event listing with pagination and sidebar -- `event.html`: Individual event page template -- `taxonomy_list.html`: Lists all speakers/tags -- `taxonomy_single.html`: Shows all events for a specific speaker/topic - -## CSS Framework: Bulma Only - -**CRITICAL**: This site uses **Bulma CSS framework exclusively**. - -**Bulma Classes to Use:** -- Layout: `container`, `columns`, `column`, `section` -- Components: `box`, `tag`, `button`, `pagination` -- Typography: `title is-1`, `subtitle`, `content` -- Styling: `is-primary`, `is-light`, `is-php` (custom), `is-magenta` (custom) - -**Color System:** -All colors are defined in `static/styles.css` as CSS custom properties based on the Berlin PHP brand palette: - -```css -:root { - --dark-charcoal: #333333; /* Dark gray/black */ - --dark-blue: #4F5B93; /* Primary brand blue */ - --php-blue: #8892BF; /* Light PHP blue */ - --orange-red: #F75900; /* Bright orange accent */ - --warning-yellow: #FFAA00; /* Warning/highlight yellow */ - --light-gray: #F2F2F2; /* Background gray */ - --dark-magenta-color: #793862; /* Speaker tags magenta */ -} -``` - -**Tag Color Usage:** -- `.tag.is-php` - Light blue (`--php-blue`) for topic/technology tags -- `.tag.is-magenta` - Magenta (`--dark-magenta-color`) for speaker tags -- `.tag.is-warning` - Yellow (`--warning-yellow`) for warnings/important items -- `.tag.is-highlight` - Orange (`--orange-red`) for special highlights -- `.tag.is-dark` - Dark (`--dark-charcoal`) for secondary elements - -**Assets:** -- CSS: `static/lib/bulma.min.css` + `static/styles.css` -- Branding: `static/logo.svg`, `static/social-banner.png` - -## Event Migration Process - -When migrating events from old Jekyll site (`/home/dazz/Code/berlinphp/berlinphp.github.com.git/_posts/`): - -1. Convert Jekyll frontmatter (YAML) to Zola (TOML) -2. Transform speaker list to `[taxonomies]` format -3. Move `date` from `[extra]` to main frontmatter for pages -4. **Event Slug Pattern**: Create SEO-friendly directory structure: `content/events/YYYY-MM-DD-topic1-topic2-topic3/index.md` - - Use main topics/technologies from the event talks - - Lowercase with hyphens instead of spaces - - Examples: `2012-03-06-e-commerce-shop-systems/`, `2012-04-03-pimcore-zend-php54-createjs/` -5. Preserve bilingual content (English + German sections), but in most cases the site will only display English content. -6. **Link Replacements**: Replace `[co.up](http://www.bephpug.de/location.html)` links with plain text "co.up" - these external links are outdated and should be simplified to just the venue name. -7. **Location Format**: Use full venue details in frontmatter: `location = "co.up Coworking Space, Adalbertstr. 7-8, 10999 Berlin"` instead of just "co.up" for better SEO and user information. -8. **HTML File Conversion**: Starting from June 2013, posts are in HTML format. Convert HTML structure to Markdown format while preserving content, apply same migration rules as MD files. - - Use individual talk sections: `## Talk 1: Title` (no bold formatting) - - Speaker name as linked line: `by [Speaker Name](twitter_link)` placed AFTER description if description exists, otherwise directly after title - - Include talk descriptions when available from HTML content - - No "English/Deutsch" section headers for HTML-converted events - - Skip empty slots, only create talks for filled content - -## Configuration Notes - -**config.toml Key Settings:** -- Taxonomies: `speaker` and `topic` with RSS feeds enabled -- Pagination: Events paginated at 20 per page -- Feeds: RSS enabled for main content and taxonomies -- Social: Mastodon, GitHub, Flickr integration configured - -**Build Settings:** -- SASS compilation enabled -- HTML minification enabled -- Search index generation enabled -- Syntax highlighting with "base16-ocean-dark" theme - -## Development Workflow - -1. **Local Development**: Use `zola serve --port 8082` for live reload -2. **Content Creation**: Follow event directory structure exactly -3. **Styling**: Only use Bulma classes, extend with `static/styles.css` if needed -4. **Templates**: Maintain Bulma compatibility across all templates -5. **Testing**: Check with `zola check` before deployment - -## Site Structure - -**Content Sections:** -- `/`: Homepage with hero and recent events -- `/events/`: Paginated archive of all meetups -- `/speaker/`: Taxonomy pages for speakers -- `/topic/`: Taxonomy pages for topics -- `/pages/`: Static pages (contact, imprint, etc.) - -**Static Assets in `/static/`:** -- Bulma CSS framework -- Custom site styles -- Brand assets (logos, social banner) -- Favicon and icons \ No newline at end of file diff --git a/static/CNAME b/CNAME similarity index 100% rename from static/CNAME rename to CNAME diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..053c27d --- /dev/null +++ b/Gemfile @@ -0,0 +1,2 @@ +source 'https://rubygems.org' +gem 'github-pages' diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 0000000..5d34fd2 --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,276 @@ +GEM + remote: https://rubygems.org/ + specs: + activesupport (4.2.10) + i18n (~> 0.7) + minitest (~> 5.1) + thread_safe (~> 0.3, >= 0.3.4) + tzinfo (~> 1.1) + addressable (2.8.0) + public_suffix (>= 2.0.2, < 5.0) + coffee-script (2.4.1) + coffee-script-source + execjs + coffee-script-source (1.11.1) + colorator (1.1.0) + commonmarker (0.17.9) + ruby-enum (~> 0.5) + concurrent-ruby (1.1.9) + dnsruby (1.61.7) + simpleidn (~> 0.1) + em-websocket (0.5.2) + eventmachine (>= 0.12.9) + http_parser.rb (~> 0.6.0) + ethon (0.14.0) + ffi (>= 1.15.0) + eventmachine (1.2.7) + execjs (2.7.0) + faraday (1.8.0) + faraday-em_http (~> 1.0) + faraday-em_synchrony (~> 1.0) + faraday-excon (~> 1.1) + faraday-httpclient (~> 1.0.1) + faraday-net_http (~> 1.0) + faraday-net_http_persistent (~> 1.1) + faraday-patron (~> 1.0) + faraday-rack (~> 1.0) + multipart-post (>= 1.2, < 3) + ruby2_keywords (>= 0.0.4) + faraday-em_http (1.0.0) + faraday-em_synchrony (1.0.0) + faraday-excon (1.1.0) + faraday-httpclient (1.0.1) + faraday-net_http (1.0.1) + faraday-net_http_persistent (1.2.0) + faraday-patron (1.0.0) + faraday-rack (1.0.0) + ffi (1.15.4) + forwardable-extended (2.6.0) + gemoji (3.0.0) + github-pages (186) + activesupport (= 4.2.10) + github-pages-health-check (= 1.8.1) + jekyll (= 3.7.3) + jekyll-avatar (= 0.5.0) + jekyll-coffeescript (= 1.1.1) + jekyll-commonmark-ghpages (= 0.1.5) + jekyll-default-layout (= 0.1.4) + jekyll-feed (= 0.9.3) + jekyll-gist (= 1.5.0) + jekyll-github-metadata (= 2.9.4) + jekyll-mentions (= 1.3.0) + jekyll-optional-front-matter (= 0.3.0) + jekyll-paginate (= 1.1.0) + jekyll-readme-index (= 0.2.0) + jekyll-redirect-from (= 0.13.0) + jekyll-relative-links (= 0.5.3) + jekyll-remote-theme (= 0.3.1) + jekyll-sass-converter (= 1.5.2) + jekyll-seo-tag (= 2.4.0) + jekyll-sitemap (= 1.2.0) + jekyll-swiss (= 0.4.0) + jekyll-theme-architect (= 0.1.1) + jekyll-theme-cayman (= 0.1.1) + jekyll-theme-dinky (= 0.1.1) + jekyll-theme-hacker (= 0.1.1) + jekyll-theme-leap-day (= 0.1.1) + jekyll-theme-merlot (= 0.1.1) + jekyll-theme-midnight (= 0.1.1) + jekyll-theme-minimal (= 0.1.1) + jekyll-theme-modernist (= 0.1.1) + jekyll-theme-primer (= 0.5.3) + jekyll-theme-slate (= 0.1.1) + jekyll-theme-tactile (= 0.1.1) + jekyll-theme-time-machine (= 0.1.1) + jekyll-titles-from-headings (= 0.5.1) + jemoji (= 0.9.0) + kramdown (= 1.16.2) + liquid (= 4.0.0) + listen (= 3.1.5) + mercenary (~> 0.3) + minima (= 2.4.1) + nokogiri (>= 1.8.2, < 2.0) + rouge (= 2.2.1) + terminal-table (~> 1.4) + github-pages-health-check (1.8.1) + addressable (~> 2.3) + dnsruby (~> 1.60) + octokit (~> 4.0) + public_suffix (~> 2.0) + typhoeus (~> 1.3) + html-pipeline (2.8.1) + activesupport (>= 2) + nokogiri (>= 1.4) + http_parser.rb (0.6.0) + i18n (0.9.5) + concurrent-ruby (~> 1.0) + jekyll (3.7.3) + addressable (~> 2.4) + colorator (~> 1.0) + em-websocket (~> 0.5) + i18n (~> 0.7) + jekyll-sass-converter (~> 1.0) + jekyll-watch (~> 2.0) + kramdown (~> 1.14) + liquid (~> 4.0) + mercenary (~> 0.3.3) + pathutil (~> 0.9) + rouge (>= 1.7, < 4) + safe_yaml (~> 1.0) + jekyll-avatar (0.5.0) + jekyll (~> 3.0) + jekyll-coffeescript (1.1.1) + coffee-script (~> 2.2) + coffee-script-source (~> 1.11.1) + jekyll-commonmark (1.2.0) + commonmarker (~> 0.14) + jekyll (>= 3.0, < 4.0) + jekyll-commonmark-ghpages (0.1.5) + commonmarker (~> 0.17.6) + jekyll-commonmark (~> 1) + rouge (~> 2) + jekyll-default-layout (0.1.4) + jekyll (~> 3.0) + jekyll-feed (0.9.3) + jekyll (~> 3.3) + jekyll-gist (1.5.0) + octokit (~> 4.2) + jekyll-github-metadata (2.9.4) + jekyll (~> 3.1) + octokit (~> 4.0, != 4.4.0) + jekyll-mentions (1.3.0) + activesupport (~> 4.0) + html-pipeline (~> 2.3) + jekyll (~> 3.0) + jekyll-optional-front-matter (0.3.0) + jekyll (~> 3.0) + jekyll-paginate (1.1.0) + jekyll-readme-index (0.2.0) + jekyll (~> 3.0) + jekyll-redirect-from (0.13.0) + jekyll (~> 3.3) + jekyll-relative-links (0.5.3) + jekyll (~> 3.3) + jekyll-remote-theme (0.3.1) + jekyll (~> 3.5) + rubyzip (>= 1.2.1, < 3.0) + jekyll-sass-converter (1.5.2) + sass (~> 3.4) + jekyll-seo-tag (2.4.0) + jekyll (~> 3.3) + jekyll-sitemap (1.2.0) + jekyll (~> 3.3) + jekyll-swiss (0.4.0) + jekyll-theme-architect (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-cayman (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-dinky (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-hacker (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-leap-day (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-merlot (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-midnight (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-minimal (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-modernist (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-primer (0.5.3) + jekyll (~> 3.5) + jekyll-github-metadata (~> 2.9) + jekyll-seo-tag (~> 2.0) + jekyll-theme-slate (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-tactile (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-time-machine (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-titles-from-headings (0.5.1) + jekyll (~> 3.3) + jekyll-watch (2.2.1) + listen (~> 3.0) + jemoji (0.9.0) + activesupport (~> 4.0, >= 4.2.9) + gemoji (~> 3.0) + html-pipeline (~> 2.2) + jekyll (~> 3.0) + kramdown (1.16.2) + liquid (4.0.0) + listen (3.1.5) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + ruby_dep (~> 1.2) + mercenary (0.3.6) + mini_portile2 (2.8.5) + minima (2.4.1) + jekyll (~> 3.5) + jekyll-feed (~> 0.9) + jekyll-seo-tag (~> 2.1) + minitest (5.11.3) + multipart-post (2.1.1) + nokogiri (1.15.6) + mini_portile2 (~> 2.8.2) + racc (~> 1.4) + octokit (4.21.0) + faraday (>= 0.9) + sawyer (~> 0.8.0, >= 0.5.3) + pathutil (0.16.2) + forwardable-extended (~> 2.6) + public_suffix (2.0.5) + racc (1.7.3) + rb-fsevent (0.11.0) + rb-inotify (0.10.1) + ffi (~> 1.0) + rouge (2.2.1) + ruby-enum (0.7.2) + i18n + ruby2_keywords (0.0.5) + ruby_dep (1.5.0) + rubyzip (2.0.0) + safe_yaml (1.0.5) + sass (3.7.4) + sass-listen (~> 4.0.0) + sass-listen (4.0.0) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + sawyer (0.8.2) + addressable (>= 2.3.5) + faraday (> 0.8, < 2.0) + simpleidn (0.2.1) + unf (~> 0.1.4) + terminal-table (1.8.0) + unicode-display_width (~> 1.1, >= 1.1.1) + thread_safe (0.3.6) + typhoeus (1.4.0) + ethon (>= 0.9.0) + tzinfo (1.2.10) + thread_safe (~> 0.1) + unf (0.1.4) + unf_ext + unf_ext (0.0.8) + unicode-display_width (1.4.0) + +PLATFORMS + ruby + +DEPENDENCIES + github-pages + +BUNDLED WITH + 1.16.2 diff --git a/README.md b/README.md new file mode 100644 index 0000000..0afbae2 --- /dev/null +++ b/README.md @@ -0,0 +1,11 @@ +Berlin PHP Usergroup - bephpug +==================================== + +Homepage: http://www.bephpug.de/ + +Twitter: @bephpug + +### setup + + 1. `bundle install` + 2. `bundle exec jekyll serve` diff --git a/_backup/bootstrap-2.0.1.zip b/_backup/bootstrap-2.0.1.zip new file mode 100644 index 0000000..f102cd9 Binary files /dev/null and b/_backup/bootstrap-2.0.1.zip differ diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..a121495 --- /dev/null +++ b/_config.yml @@ -0,0 +1,11 @@ +highlighter: rouge +url: http://www.bephpug.de +name: Berlin PHP Usergroup +timezone: Europe/Berlin +markdown: kramdown +future: true +meetupbutton: 3764k5il39e0tsdvm7l04gomc # live +#meetupbutton: ukhtv4jccfm8lo5rguqrgp78qo # local + +exclude: + - .editorconfig diff --git a/_includes/nav.html b/_includes/nav.html new file mode 100644 index 0000000..47e30c2 --- /dev/null +++ b/_includes/nav.html @@ -0,0 +1,35 @@ + diff --git a/_layouts/default.html b/_layouts/default.html new file mode 100644 index 0000000..854b7da --- /dev/null +++ b/_layouts/default.html @@ -0,0 +1,131 @@ + + + + + + + {% if page.title %} + {{ page.title }} - Berlin PHP Usergroup + {% else %} + Berlin PHP Usergroup + {% endif %} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+{% include nav.html %} +
+
+
+ +{% if page.url != '/index.html' %} + +
+
+
+
+ +

{{ page.title }} /

+

{{ page.subtitle }}

+
+
+
+
+{% endif %} + + {{ content }} + + + + + + + + + + + + + + + + diff --git a/_layouts/post-slots.html b/_layouts/post-slots.html new file mode 100644 index 0000000..4b791cc --- /dev/null +++ b/_layouts/post-slots.html @@ -0,0 +1,38 @@ +--- +layout: default +subtitle: Archived +--- + +
+
+ +{{ content }} + +
+
+
+ +
+ + + comments powered by Disqus + +
+
+
+ +
+
+   +
+
diff --git a/_layouts/post.html b/_layouts/post.html new file mode 100644 index 0000000..39ad5af --- /dev/null +++ b/_layouts/post.html @@ -0,0 +1,12 @@ +--- +layout: default +subtitle: Archived +--- + +
+
+
+ {{ content }} +
+
+
diff --git a/_posts/2012-02-16-welcome-to-our-new-home.md b/_posts/2012-02-16-welcome-to-our-new-home.md new file mode 100644 index 0000000..27181d4 --- /dev/null +++ b/_posts/2012-02-16-welcome-to-our-new-home.md @@ -0,0 +1,35 @@ +--- +layout: post +title: Welcome to our new home / Willkommen auf unserer neuen Seite +archive: active +tags: bephpug +--- + +### English + +We managed to migrate the old wiki to a new home finally. This comes with all +new Github Pages hotness, which means it's easy for you to participate if anything +has to be done. Also it should be a lot easier to get all the details of upcoming +and past meetups. + +[Checkout the source on Github](https://github.com/berlinphp/berlinphp.github.com) +if you want to help out. We're always happy about contributions, be it some better texts, +your uploaded slides or some design fixes. + +This also marks the start of a bilingual site, as we got a lot of requests from +non-native people that want to join our meetups. + +### Deutsch + +Endlich haben wir es geschafft das alte Wiki auf sein neues zu Hause zu migrieren. +Wir benutzen nun Github Pages, sodass es euch ein leichtes ist an der Seite teilzunehmen, +wenn irgendwas getan werden muss. Außerdem sollte die Seite nun wesentlich übersichtlicher +sein und alle Details der vergangenen und kommendenden Treffen gut zu finden sein. + +[Der Code ist Github](https://github.com/berlinphp/berlinphp.github.com) wenn du +helfen möchtest. Wir freuen uns über jede noch so kleine Hilfe, sei es die +Verbesserung der Texte, das Hinzufügen der Folien oder auch Verschönerungen +des Designs. + +Auf Grund vieler Nachfragen englisch-sprachiger Interessierter, wird die Seite +ab sofort auch bilingual sein. diff --git a/_posts/2012-02-17-how-to-contribute.md b/_posts/2012-02-17-how-to-contribute.md new file mode 100644 index 0000000..2f20130 --- /dev/null +++ b/_posts/2012-02-17-how-to-contribute.md @@ -0,0 +1,58 @@ +--- +layout: post +title: How to contribute? / Wie kann ich helfen? +archive: active +tags: bephpug +--- + +### English + +Our new page is [hosted on Github](https://github.com/berlinphp/berlinphp.github.com) +and is using their awesome [Github Pages](http://pages.github.com/) feature together +with the static site generator [Jekyll](https://github.com/mojombo/jekyll). + +The easiest way to contribute is to simply ignore all that and just use +Github's [Fork & Edit feature](https://github.com/blog/844-forking-with-the-edit-button). +Just head to [our repo](https://github.com/berlinphp/berlinphp.github.com), find the +file you want to edit, click "Fork & Edit", make your changes, commit them and +submit the Pull Request. We'll make sure to merge these changes as soon as +possible. + +If you want to make more complex changes, you have to fork the complete repository, +edit away, commit & push the changes and open up a pull request. + +If you want to see the site locally, just follow these steps: + +1. Make sure that you have Ruby on your machine. +2. Install Jekyll with: `gem install jekyll` +3. run `jekyll --server` in the project folder +4. point your browser to [http://localhost:4000](http://localhost:4000) +5. You should see the site with all your changes + +Happy forking and editing, we love to see your contributions! + +### Deutsch + +Unsere neue Site [liegt auf Github](https://github.com/berlinphp/berlinphp.github.com) +und benutzt deren tolles [Github Pages](http://pages.github.com/) Feature zusammen mit +[Jekyll](https://github.com/mojombo/jekyll) um statische Seiten zu generieren. + +Der einfachste Weg zur Seite beizutragen ist Githubs +[Fork & Edit Feature](https://github.com/blog/844-forking-with-the-edit-button) +zu benutzen. Dazu musst du einfach auf [unser Repository](https://github.com/berlinphp/berlinphp.github.com) +gehen, bei der Datei die du editieren willst auf "Fork & Edit" benutzen, deine +Änderungen machen, speichern und den Pull Request absenden. Wir werden versuchen den so schnell wie +möglich zu mergen. + +Für komplexere Änderungen musst du das komplette Repository forken, die +Änderungen machen, comitten, pushen und den Pull Request öffnen. + +If you want to see the site locally, just follow these steps: + +1. Stelle sicher das Ruby auf deinem Computer installiert ist. +2. Installiere Jekyll mit: `gem install jekyll` +3. Führe `jekyll --server` im Projektverzeichnis aus +4. Gehe mit deinem Browser auf [http://localhost:4000](http://localhost:4000) +5. Du solltest nun die Seite mit all deinen Änderungen sehen + +Wir freuen uns auf eure Teilnahme. diff --git a/content/events/2012-03-06-e-commerce-systems/index.md b/_posts/2012-03-06-march-2012-meetup.md similarity index 63% rename from content/events/2012-03-06-e-commerce-systems/index.md rename to _posts/2012-03-06-march-2012-meetup.md index 396fd52..aaacfe6 100644 --- a/content/events/2012-03-06-e-commerce-systems/index.md +++ b/_posts/2012-03-06-march-2012-meetup.md @@ -1,17 +1,11 @@ -+++ -title = "Meetup on March, 6th 2012 // Treffen am 6. März 2012" -description = "March 2012 meetup focused on shop systems with talks about various e-commerce platforms including Sylius, OXID, Magento, osCommerce, and TYPO3." -date = "2012-03-06" +--- +layout: post +title: Meetup on March, 6th 2012 / Treffen am 6. März 2012 +archive: active +tags: bephpug +--- -[taxonomies] -speaker = ["Daniel Fahlke", "Thomas Lohner", "Martin Rothenberger", "Fabian Blechschmidt", "Markus Will", "Nicole Cordes"] -topic = ["E-commerce", "Shop Systems", "Sylius", "OXID", "Magento", "osCommerce", "TYPO3"] - -[extra] -location = "co.up Coworking Space, Adalbertstr. 7-8, 10999 Berlin" -+++ - -## English +### English This month's meetup has a focus on shop systems. Nearly everybody dealt with them at some point and there are countless e-commerce systems around. @@ -21,19 +15,19 @@ shopping systems. So far the following shop systems will be presented: * "Sylius" by Daniel Fahlke -* "OXID" by Thomas Lohner - [Slides](2012-03-06_thomas.lohner_oxid.pdf) +* "OXID" by Thomas Lohner * "Magento Commerce & Magento Enterprise" by Martin Rothenberger * "Preview to Magento 2" by Fabian Blechschmidt * "osCommerce 2.x and a sneak peak into 3.x" by Markus Will * "TYPO3 shopping solutions" by Nicole Cordes -As usual the meetup will be at co.up +As usual the meetup will be at [co.up](http://www.bephpug.de/location.html) and drinks will be available for a small fee. We'll meet on March, 6th at 7pm, the talks start around 7:30pm. Happy to see you there! -## Deutsch +### Deutsch Nahezu jeder hat mal mit Shoppingsystemen zu tun gehabt oder immer noch damit zu tun und den Überblick über die Systeme zu behalten ist nahezu unmöglich. @@ -43,13 +37,13 @@ einige Shopsysteme vor. Bisher haben wir folgende Vorträge: * "Sylius" von Daniel Fahlke -* "OXID" von Thomas Lohner - [Slides](2012-03-06_thomas.lohner_oxid.pdf) +* "OXID" von Thomas Lohner * "Magento Commerce & Magento Enterprise" von Martin Rothenberger * "Preview to Magento 2" von Fabian Blechschmidt * "osCommerce 2.x und Ausblick auf 3.x" von Markus Will * "TYPO3 Shoplösungen" von Nicole Cordes -Wie immer treffen wir uns bei co.up, +Wie immer treffen wir uns bei [co.up](http://www.bephpug.de/location.html), Getränke sind gegen ein kleines Entgelt zu haben. Wir treffen uns am 6. März um 19 Uhr, die Vorträge beginnen gegen 19:30. diff --git a/_posts/2012-04-03-april-2012.md b/_posts/2012-04-03-april-2012.md new file mode 100644 index 0000000..3948786 --- /dev/null +++ b/_posts/2012-04-03-april-2012.md @@ -0,0 +1,31 @@ +--- +layout: post +title: Meetup on the 3rd April, 2012 // Treffen am 3. April, 2012 +archive: active +tags: bephpug +--- + +### English + + * [pimcore](http://www.pimcore.org/) by Christoph Luehr + * zf2 components: Zend\Cache, Zend\Serializer, Zend\EventManager, Zend\Stdlib\ErrorHandler by Marc Bennewitz + * An Introduction to PHP 5.4 by Martin Holzhauer + * [CreateJS](http://createjs.org/) by Henri Bergius + +We meet at [co.up](http://www.bephpug.de/location.html) as always, drinks are +available for a small fee. The meetup starts at 7pm, talks start at 7:30pm. + +Looking forward to seeing all of you. + +### Deutsch + + * [pimcore](http://www.pimcore.org/) von Christoph Luehr + * zf2-Komponenten vorgestellt: Zend\Cache, Zend\Serializer, Zend\EventManager, Zend\Stdlib\ErrorHandler von Marc Bennewitz + * Einführung in PHP 5.4 von Martin Holzhauer + * Einführung in [CreateJS](http://createjs.org) von Henri Bergius + +Wie immer treffen wir uns bei [co.up](http://www.bephpug.de/location.html), +Getränke sind gegen ein kleines Entgelt zu haben. +Wir treffen uns um 19:00 Uhr, die Vorträge beginnen gegen 19:30 Uhr. + +Wir freuen uns auf euch. diff --git a/_posts/2012-06-05-june.md b/_posts/2012-06-05-june.md new file mode 100644 index 0000000..ff2fc27 --- /dev/null +++ b/_posts/2012-06-05-june.md @@ -0,0 +1,29 @@ +--- +layout: post +title: Meetup on the 5th June, 2012 // Treffen am 5. Juni, 2012 +archive: active +tags: bephpug +--- + +### English + + * Ulf Wendel (Oracle): PoC: HTTP, JSON, JavaScript, Map & Reduce built-in to MySQL + * Kore Nordmann (Qafoo): [BSOAD](https://github.com/Qafoo/bsoad) + * Guests from the IPC PHP Conference in Berlin + +We meet at [co.up](http://www.bephpug.de/location.html) as always, drinks are +available for a small fee. The meetup starts at 7pm, talks start at 7:30pm. + +Looking forward to seeing all of you. + +### Deutsch + + * Ulf Wendel (MySQL/Oracle): PoC: HTTP, JSON, JavaScript, Map & Reduce built-in to MySQL + * Kore Nordmann (Qafoo): [BSOAD](https://github.com/Qafoo/bsoad) + * Gäste von der IPC PHP Konferenz in Berlin + +Wie immer treffen wir uns bei [co.up](http://www.bephpug.de/location.html), +Getränke sind gegen ein kleines Entgelt zu haben. +Wir treffen uns um 19:00 Uhr, die Vorträge beginnen gegen 19:30 Uhr. + +Wir freuen uns auf euch. diff --git a/_posts/2012-07-03-july.md b/_posts/2012-07-03-july.md new file mode 100644 index 0000000..8e921fa --- /dev/null +++ b/_posts/2012-07-03-july.md @@ -0,0 +1,33 @@ +--- +layout: post +title: Meetup on the 3rd July, 2012 // Treffen am 3. Juli, 2012 +archive: active +tags: bephpug +--- + +### English + + * Daniel Fahlke: Webbased IRC (including POC code) + * Jan Lehnardt: + * Password Hashing Best Practices + * Introduction to [ext/couchbase](http://pecl.php.net/package/couchbase) + * Nikolas Martens: Walk the line - A relentless approach to transparent persistence + +We meet at [co.up](http://www.bephpug.de/location.html) as always, drinks are +available for a small fee. The meetup starts at 7pm, talks start at 7:30pm. + +Looking forward to seeing all of you. + +### Deutsch + + * Daniel Fahlke: IRC für den Browser (Mit Beispiel-Code!) + * Jan Lehnardt: + * Passwörter richtig verschlüsseln + * Einführung in [ext/couchbase](http://pecl.php.net/package/couchbase) + * Nikolas Martens: Walk the line - Ein kompromissloser Ansatz für transparente Persistenz + +Wie immer treffen wir uns bei [co.up](http://www.bephpug.de/location.html), +Getränke sind gegen ein kleines Entgelt zu haben. +Wir treffen uns um 19:00 Uhr, die Vorträge beginnen gegen 19:30 Uhr. + +Wir freuen uns auf euch. diff --git a/_posts/2012-08-07-august.md b/_posts/2012-08-07-august.md new file mode 100644 index 0000000..c213267 --- /dev/null +++ b/_posts/2012-08-07-august.md @@ -0,0 +1,31 @@ +--- +layout: post +title: Meetup on the 7th August, 2012 // Treffen am 7. August, 2012 +archive: active +tags: bephpug +--- + +### English + + * Michael Krenz: Cache Busting with PHP + * A short intro on "cache busting" or "asset fingerprinting", a technique from RoR that allows you to set far-future cache expiry dates for static files and still have the browser re-load them whenever they change. The same method can easily be used with PHP. + * Leander Damme: Dependency management with Composer + * Quick practical introduction to Composer: Managing your project dependencies, autoloading and installation. + +We meet at [co.up](http://www.bephpug.de/location.html) as always, drinks are +available for a small fee. The meetup starts at 7pm, talks start at 7:30pm. + +Looking forward to seeing all of you. + +### Deutsch + + * Michael Krenz: Cache Busting mit PHP + * Kurze Einführung in "Cache-Busting" oder "Asset-Fingerprinting", ein aus RoR bekanntes Verfahren, bei dem statische Dateien so aufbereitet werden, dass sie trotz einem weit in der Zukunft liegenden Cache-Ablaufdatum bei jeder Änderung an der Datei erneut vom Browser geladen werden. Das Verfahren lässt sich leicht auf PHP übertragen. + * Leander Damme: Dependency management mit Composer + * Kurze praktische Einführung in Composer: Abhängigkeiten, Autoloading und installation. + +Wie immer treffen wir uns bei [co.up](http://www.bephpug.de/location.html), +Getränke sind gegen ein kleines Entgelt zu haben. +Wir treffen uns um 19:00 Uhr, die Vorträge beginnen gegen 19:30 Uhr. + +Wir freuen uns auf euch. diff --git a/_posts/2012-11-06-november.md b/_posts/2012-11-06-november.md new file mode 100644 index 0000000..f26c6bd --- /dev/null +++ b/_posts/2012-11-06-november.md @@ -0,0 +1,31 @@ +--- +layout: post +title: Meetup on the 6th November, 2012 // Treffen am 6. November, 2012 +archive: active +tags: bephpug +--- + +### English + + * [Volker Dusch](http://twitter.com/__edorian): Nginx and php-fpm — the webserver you might actually like + * [Till Klampaeckel](http://twitter.com/klimpong): Using statsd to collect metrics in your applications, charting the results with Librato + * [fortrabbit](http://fortrabbit.com/): Introduction to the PHP PaaS + * [Gordon Franke](http://nevalon.de): PHP libraries you should know + +We meet at [co.up](http://www.bephpug.de/location.html) as always, drinks are +available for a small fee. The meetup starts at 7pm, talks start at 7:30pm. + +Looking forward to seeing all of you. + +### Deutsch + + * [Volker Dusch](http://twitter.com/__edorian): Nginx und php-fpm + * [Till Klampaeckel](http://twitter.com/klimpong): Mit StatsD Metriken aus der Anwendungen sammeln, und mit Librato Graphen bauen + * [fortrabbit](http://fortrabbit.com/): Vorstellung der Plattform + * [Gordon Franke](http://nevalon.de): PHP Bibliotheken die man kennen sollte + +Wie immer treffen wir uns bei [co.up](http://www.bephpug.de/location.html), +Getränke sind gegen ein kleines Entgelt zu haben. +Wir treffen uns um 19:00 Uhr, die Vorträge beginnen gegen 19:30 Uhr. + +Wir freuen uns auf euch. diff --git a/_posts/2012-12-04-december.md b/_posts/2012-12-04-december.md new file mode 100644 index 0000000..163bb4a --- /dev/null +++ b/_posts/2012-12-04-december.md @@ -0,0 +1,29 @@ +--- +layout: post +title: Meetup on the 4th December, 2012 // Treffen am 4. Dezember, 2012 +archive: active +tags: bephpug +--- + +### English + + * [David Soria Parra](http://blog.experimentalworks.net/): PHP 5.5 + * [Timon Schroeter](http://www.php-entwickler-berlin.de): Dependency Injection for Beginners + * [Christoph Luehr](http://www.r-pentomino.de): Brace for impact - how to survive TV ads + +We meet at [co.up](http://www.bephpug.de/location.html) as always, drinks are +available for a small fee. The meetup starts at 7pm, talks start at 7:30pm. + +Looking forward to seeing all of you. + +### Deutsch + + * [David Soria Parra](http://blog.experimentalworks.net/): PHP 5.5 + * [Timon Schroeter](http://www.php-entwickler-berlin.de): Dependency Injection für Beginner + * [Christoph Luehr](http://www.r-pentomino.de): Wie überlebt meine Seite Trafficspitzen? + +Wie immer treffen wir uns bei [co.up](http://www.bephpug.de/location.html), +Getränke sind gegen ein kleines Entgelt zu haben. +Wir treffen uns um 19:00 Uhr, die Vorträge beginnen gegen 19:30 Uhr. + +Wir freuen uns auf euch. diff --git a/_posts/2013-02-05-february.md b/_posts/2013-02-05-february.md new file mode 100644 index 0000000..969a88a --- /dev/null +++ b/_posts/2013-02-05-february.md @@ -0,0 +1,29 @@ +--- +layout: post +title: Meetup on the 5th February, 2013 // Treffen am 5. Februar, 2013 +archive: active +tags: bephpug +--- + +### English + + * [Robert Reiz](http://robert-reiz.com): VersionEye + * [Martin Holzhauer](https://twitter.com/woodworker): PHP Application Architecture + * [Volker Dusch](https://twitter.com/__edorian): PHPUnit - Some Practices + +We meet at [co.up](http://www.bephpug.de/location.html) as always, drinks are +available for a small fee. The meetup starts at 7pm, talks start at 7:30pm. + +Looking forward to seeing all of you. + +### Deutsch + + * [Robert Reiz](http://robert-reiz.com): VersionEye + * [Martin Holzhauer](https://twitter.com/woodworker): PHP Application Architecture + * [Volker Dusch](https://twitter.com/__edorian): PHPUnit - Some Practices + +Wie immer treffen wir uns bei [co.up](http://www.bephpug.de/location.html), +Getränke sind gegen ein kleines Entgelt zu haben. +Wir treffen uns um 19:00 Uhr, die Vorträge beginnen gegen 19:30 Uhr. + +Wir freuen uns auf euch. diff --git a/_posts/2013-03-05-march.md b/_posts/2013-03-05-march.md new file mode 100644 index 0000000..aedede1 --- /dev/null +++ b/_posts/2013-03-05-march.md @@ -0,0 +1,29 @@ +--- +layout: post +title: Meetup on the 5th March, 2013 // Treffen am 5. März, 2013 +archive: active +tags: bephpug +--- + +### English + + * [Michael Scholl](http://sch0ll.de): Application development with Zend Framework 2 + * [Timon Schroeter](http://www.php-schulung.de): Introduction to Forms & Validators in Symfony 2 + * [Nikolas Martens](https://github.com/rtens): Template Animation using RDFa + +We meet at [co.up](http://www.bephpug.de/location.html) as always, drinks are +available for a small fee. The meetup starts at 7pm, talks start at 7:30pm. + +Looking forward to seeing all of you. + +### Deutsch + + * [Michael Scholl](http://sch0ll.de): Anwendungen mit Zend Framework 2 entwickeln + * [Timon Schroeter](http://www.php-schulung.de): Einführung in Formulare und Validatoren in Symfony 2 + * [Nikolas Martens](https://github.com/rtens): Template Animationen mit RDFa + +Wie immer treffen wir uns bei [co.up](http://www.bephpug.de/location.html), +Getränke sind gegen ein kleines Entgelt zu haben. +Wir treffen uns um 19:00 Uhr, die Vorträge beginnen gegen 19:30 Uhr. + +Wir freuen uns auf euch. diff --git a/_posts/2013-04-02-april.md b/_posts/2013-04-02-april.md new file mode 100644 index 0000000..1d95d2f --- /dev/null +++ b/_posts/2013-04-02-april.md @@ -0,0 +1,27 @@ +--- +layout: post +title: Meetup on the 2nd April, 2013 // Treffen am 2. April, 2013 +archive: active +tags: bephpug +--- + +### English + + * [Franz Liedke](http://www.develophp.org): Introduction to the Laravel framework + * [Christoph Luehr](http://www.r-pentomino.de): Rags to Riches - Vagrant for PHP + +We meet at [co.up](http://www.bephpug.de/location.html) as always, drinks are +available for a small fee. The meetup starts at 7pm, talks start at 7:30pm. + +Looking forward to seeing all of you. + +### Deutsch + + * [Franz Liedke](http://www.develophp.org): Einführung in das Laravel framework + * [Christoph Luehr](http://www.r-pentomino.de): Rags to Riches - Vagrant for PHP + +Wie immer treffen wir uns bei [co.up](http://www.bephpug.de/location.html), +Getränke sind gegen ein kleines Entgelt zu haben. +Wir treffen uns um 19:00 Uhr, die Vorträge beginnen gegen 19:30 Uhr. + +Wir freuen uns auf euch. diff --git a/_posts/2013-05-07-may.md b/_posts/2013-05-07-may.md new file mode 100644 index 0000000..fb75218 --- /dev/null +++ b/_posts/2013-05-07-may.md @@ -0,0 +1,25 @@ +--- +layout: post +title: Meetup on the 7th May, 2013 // Treffen am 7. Mai, 2013 +archive: active +tags: bephpug +--- + +### English + + * [Nikolas Martens](http://rtens.org): BDD - TDD done right + +We meet at [co.up](http://www.bephpug.de/location.html) as always, drinks are +available for a small fee. The meetup starts at 7pm, talks start at 7:30pm. + +Looking forward to seeing all of you. + +### Deutsch + + * [Nikolas Martens](http://rtens.org): BDD - das bessere TDD + +Wie immer treffen wir uns bei [co.up](http://www.bephpug.de/location.html), +Getränke sind gegen ein kleines Entgelt zu haben. +Wir treffen uns um 19:00 Uhr, die Vorträge beginnen gegen 19:30 Uhr. + +Wir freuen uns auf euch. diff --git a/_posts/2013-06-04-june.html b/_posts/2013-06-04-june.html new file mode 100644 index 0000000..a892302 --- /dev/null +++ b/_posts/2013-06-04-june.html @@ -0,0 +1,27 @@ +--- +layout: post-slots +title: Meetup on the 4th of June, 2013 +datetitle: June 4th, 2013 +published: true +--- + +
+ {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} +

What's wrong with php?

+

 

+

Ole Michaelis

+
+ +
+ {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} +

Controlling Arduino with PHP

+

(15 min.)

+

Thomas Weinert

+
+ +
+ {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} +

Typo3 Flow

+

 

+

Robert Lemke

+
diff --git a/_posts/2013-07-02-july.html b/_posts/2013-07-02-july.html new file mode 100644 index 0000000..d05665e --- /dev/null +++ b/_posts/2013-07-02-july.html @@ -0,0 +1,55 @@ +--- +layout: post-slots +title: Meetup on the 2nd of July, 2013 +datetitle: July 2nd, 2013 +published: true +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Your (coding) standard matters

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

+ A short dicussion of current pratices surrounding two of PHPs quality assurance tools: + PHPCS and PHPMD
+ Let's discuss what value they provide for your teams and how to configure them to your liking. +

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Volker Dusch

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Devtools

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Tools for the daily developer work

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Martin Holzhauer

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Character Building

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Fun with charsets and encodings

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Christoph Lühr

+ +
diff --git a/_posts/2013-08-01-august.html b/_posts/2013-08-01-august.html new file mode 100644 index 0000000..027817c --- /dev/null +++ b/_posts/2013-08-01-august.html @@ -0,0 +1,53 @@ +--- +layout: post-slots +title: Meetup on the 31st of July, 2013 +datetitle: 31.07. 2013 +published: true +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Why You Can't Test

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Chris Hartjes risks annoying his wife by giving a talk while on vacation, talking about 7 obstacles he sees towards testing your PHP code.

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Chris Hartjes

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Logging everything in Real-Time

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

In this talk you'll see how you can build up a central log management solution with opensource tools like Logstash and Graylog2 to analyze all the log messages your application creates in real-time.

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Bastian Hofmann

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Hard work? I'll do it later.

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

What is queuing and why it improves your life? Introduction to offloading tasks with the new Bernard queue.

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Ulrich Kautz

+ +
+ + diff --git a/_posts/2013-09-03-september.html b/_posts/2013-09-03-september.html new file mode 100644 index 0000000..899cae7 --- /dev/null +++ b/_posts/2013-09-03-september.html @@ -0,0 +1,56 @@ +--- +layout: post-slots +title: Meetup on the 3rd of september, 2013 +datetitle: September 3rd, 2013 +published: true +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

The QB extension: Performing computationally intensive tasks in PHP

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

While PHP is an excellent language for building complex web application, it imposes certain limitations. Writing code that performs low-level, computationally intensive tasks in PHP is generally impractical--it'd simply be too slow. The QB extension addresses this particular weakness of PHP. By translating Zend opcodes and executing them through a statically typed virtual machine, QB offers an order-of-magnitude gain in performance. The added power allows PHP programmers do things they were unable to do before, such as complex pixel-level image manipulation.

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Chung Leong

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Silex - Why 'less' can be so much more

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

A framework talk to fill the void - Still going to be fun :)

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Volker Dusch

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ + diff --git a/_posts/2013-10-01-october.html b/_posts/2013-10-01-october.html new file mode 100644 index 0000000..b911e6e --- /dev/null +++ b/_posts/2013-10-01-october.html @@ -0,0 +1,57 @@ +--- +layout: post-slots +title: Meetup on the 1st of October, 2013 +datetitle: October 1st, 2013 +published: true +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Extending composer

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Introducing composer's new plugin API with real-world use-cases.

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Till Klampäckel

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Small steps - the magic of TDD

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

In a live coding session, I will make an algorithmic problem solves itself using test-driven development.

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Nikolas Martens

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ diff --git a/_posts/2013-11-06-november.html b/_posts/2013-11-06-november.html new file mode 100644 index 0000000..f52d7cd --- /dev/null +++ b/_posts/2013-11-06-november.html @@ -0,0 +1,56 @@ +--- +layout: post-slots +title: Meetup on the 6th of November, 2013 +datetitle: November 6th, 2013 +published: true +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

CDNs can be free, cheap or expensive

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Content delivery networks used to be technically advanced but expensive solutions used by big corporations only. Nowadays there's players with cheap offers (like Amazon CloudFront) and even free offers (like Google's unlimited free beta of the Pagespeed CDN). This talk includes a live demo of how CloudFront and Pagespeed CDN are configured and a discussion of their respective pros and cons. Participants may want to apply for a free Pagespeed CDN invitation in advance, b.c. it takes a couple of days to be invited.

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Timon Schroeter

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Don't Be Stupid, Grasp Solid

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} + + + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Anthony Ferrara

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
diff --git a/_posts/2013-12-03-december.html b/_posts/2013-12-03-december.html new file mode 100644 index 0000000..dc8f72e --- /dev/null +++ b/_posts/2013-12-03-december.html @@ -0,0 +1,55 @@ +--- +layout: post-slots +title: Meetup on the 3rd of December, 2013 +datetitle: December 3rd, 2013 +published: true +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Highly connected data with Neo4j

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Introducing the Neo4j graph database and the available php libraries to use.

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Christophe Willemsen

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Validating JSON with JSON Schema

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Introduction to validation with JSON Schema and an implementation in PHP

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Anne-Julia Scheuermann

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This slot could be yours!
 

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ diff --git a/_posts/2014-01-07-january.html b/_posts/2014-01-07-january.html new file mode 100644 index 0000000..7cfff49 --- /dev/null +++ b/_posts/2014-01-07-january.html @@ -0,0 +1,61 @@ +--- +layout: post-slots +title: Meetup on the 7th of January, 2014 +datetitle: January 7th, 2014 +published: true +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

PHP-GTK - It still exists

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

+ What is GTK, how to get it working and how it looks. + Also a look into the future of PHP GUI development. +

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Daniel Fahlke aka Flyingmana

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Fishbowl

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Let's do a Fishbowl! Topic to be discussed at the meet-up!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Till Klampäckel

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ + diff --git a/_posts/2014-02-04-february.html b/_posts/2014-02-04-february.html new file mode 100644 index 0000000..c0dc8e9 --- /dev/null +++ b/_posts/2014-02-04-february.html @@ -0,0 +1,57 @@ +--- +layout: post-slots +title: Meetup on the 4th of February, 2014 +datetitle: February 4th, 2013 +published: true +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + +

Abstract Machines

+ +

From cellular automata to turing machines...

+ +

Igor Wiedler

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Small Steps - The Magic of TDD (sudoku edition)

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Programming is magic! Watch live, as I make a + Sudoku solver + jump out of an empty TDD hat.

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Nikolas Martens

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ + diff --git a/_posts/2014-03-04-march.html b/_posts/2014-03-04-march.html new file mode 100644 index 0000000..47bbd16 --- /dev/null +++ b/_posts/2014-03-04-march.html @@ -0,0 +1,93 @@ +--- +layout: post-slots +title: Meetup on the 4th of March, 2013 +datetitle: March 4th, 2013 +published: true +--- + + +
+
+

PHP Framework Special

+
+
+ +
+ + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot (max. 15 minutes)

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+

Symfony2

+

A brief introduction to Symfony2, the popular PHP MVC framework

+

Eike Send

+
+ +
+

Magento as a Framework

+

A brief introduction to Magento, the popular e-commerce system, and why it is a very advanced framework

+

Daniel Fahlke aka Flyingmana

+
+ +
+

+
+ + +
+

Apigility

+

A short overview of the REST and RPC services generator framework. Apigility is based on ZF2.

+

Jörg Ohnheiser

+
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #5 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot (max. 15 minutes)

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #6 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot (max. 15 minutes)

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
diff --git a/_posts/2014-04-01-april.html b/_posts/2014-04-01-april.html new file mode 100644 index 0000000..5c70910 --- /dev/null +++ b/_posts/2014-04-01-april.html @@ -0,0 +1,57 @@ +--- +layout: post-slots +title: Meetup on the 1st of April, 2014 +datetitle: April 1st, 2014 +published: true +lanyrd: http://lanyrd.com/2014/berlin-php-usergroup-april/ +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

WTF.php

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This is wy we love PHP!

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

+ Martin Holzhauer + Volker Dusch +

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Concrete Machines

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Computers!!! How do they work?

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Igor Wiedler

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

How to write PHP

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

nothing more

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Daniel Fahlke aka Flyingmana

+ +
+ + diff --git a/_posts/2014-05-06-may.html b/_posts/2014-05-06-may.html new file mode 100644 index 0000000..8b7e359 --- /dev/null +++ b/_posts/2014-05-06-may.html @@ -0,0 +1,49 @@ +--- +layout: post-slots +title: Meetup on the 6th of May, 2014 +datetitle: May 6th, 2014 +published: true +--- + +
+
+ +

Profiling with Xdebug and xhProf

+

I will show how to install both PHP extensions and how the profiling works.

+

Nicole Cordes

+ +
+ +
+
+

Multi-Model Databases

+

In many modern applications the database side is realized using polyglot persistence – store each data format (graphs, documents, etc.) in an appropriate separate database. This approach yields several benefits, databases are optimized for their specific duty, however there are also drawbacks:

+ +

A multi-model database is not restricted to one data format, but can cope with several of them. In this talk i will present how a multi-model database can be used in a polyglot persistence setup and how it will reduce the effort drastically.

+ +

Michael Hackstein

+ +
+ +
+
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Introducing dox

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Your friendly neighbourhood browser for executable specification.

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Nikolas Martens

+ +
+ diff --git a/_posts/2014-06-03-june.html b/_posts/2014-06-03-june.html new file mode 100644 index 0000000..9a06305 --- /dev/null +++ b/_posts/2014-06-03-june.html @@ -0,0 +1,80 @@ +--- +layout: post-slots +title: Meetup on the 3rd of June, 2014 +datetitle: June 3rd, 2014 +published: true +--- + +
+
+
+

IPC Special

+

We are guests at the IPC at the Maritim proArte

+

Registration needed (Deadline: Monday 23:59)

+
+
+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

PHP on Heroku

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Hot off the presses, Heroku now officially supports PHP, with deep Composer integration, a choice of Apache or Nginx as the web server, and the ability to run apps locally using Foreman.

+

This presentation will give an overview of features and usage, with a lot of brave live demoing in between.

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

David Zuelke

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

TBA (PHPUnit)

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

tba

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Sebastian Bergmann

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

TBA (Architecture)

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

tba

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Stefan Priebsch

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

TBA (Security)

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

tba

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Arne Blankerts

+ +
diff --git a/_posts/2014-07-01-july.html b/_posts/2014-07-01-july.html new file mode 100644 index 0000000..72ff67d --- /dev/null +++ b/_posts/2014-07-01-july.html @@ -0,0 +1,56 @@ +--- +layout: post-slots +title: Meetup on the 1st of July, 2014 +datetitle: July 1st, 2014 +published: true +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Technical debt

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Every dangerous reason you should never know

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Daniel Fahlke aka Flyingmana

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Extending PHP

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

How to mount a rocket launcher on the back of an elephant.

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Richard Wossal

+ +
+ + diff --git a/_posts/2014-08-05-july.html b/_posts/2014-08-05-july.html new file mode 100644 index 0000000..fc30727 --- /dev/null +++ b/_posts/2014-08-05-july.html @@ -0,0 +1,38 @@ +--- +layout: post-slots +title: Meetup on the 5th of August, 2014 +datetitle: August 5th, 2014 +published: true +--- + +
+ +

PHPixie framework

+

Why you should try to develop in PHPixie and how cool version 3 is going to be.

+

Roman

+ +
+ +
+ {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + +
+ +
+ +

Reasoned PHP

+

Use logic to run your programs backwards!

+

Igor

+ +
diff --git a/_posts/2014-09-02-september.html b/_posts/2014-09-02-september.html new file mode 100644 index 0000000..b86a556 --- /dev/null +++ b/_posts/2014-09-02-september.html @@ -0,0 +1,41 @@ +--- +layout: post-slots +title: Meetup on the 2nd of September, 2014 +datetitle: September 2nd, 2014 +published: true +--- + +
+ +

Jentin MVC Framework

+

Lightweight MVC framework

+

Steffen Zeidler

+ +
+ +
+ +

Nomen est Omen

+

About Naming Things!

+

Anne-Julia Scheuermann

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Task management with xkdl

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

A few words about my experiences with this pet project.

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Nikolas Martens

+ +
+ + diff --git a/_posts/2014-10-07-october.html b/_posts/2014-10-07-october.html new file mode 100644 index 0000000..b981d7a --- /dev/null +++ b/_posts/2014-10-07-october.html @@ -0,0 +1,52 @@ +--- +layout: post-slots +title: Meetup on the 7th of October, 2014 +datetitle: October 7th, 2014 +published: true +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Developer’s Mental Health

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

EDD [Experience Driven Development]

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Michael Scholl

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Very Rapid Prototyping with WAToKi

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

I would like to talk about WAToKi - my Web Application Tool Kit + - and how it enables me to develop web applications incrementally.

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Nikolas Martens

+ +
+ +
+ +

End the war on tabs

+ +

Some content to fill the blank

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Igor

+ +
+ + diff --git a/_posts/2014-11-04-november.html b/_posts/2014-11-04-november.html new file mode 100644 index 0000000..46b596c --- /dev/null +++ b/_posts/2014-11-04-november.html @@ -0,0 +1,41 @@ +--- +layout: post-slots +title: Meetup on the 4th of November, 2014 +datetitle: November 4th, 2014 +published: true +--- + +
+

Surviving your Frontend

+

The frontend code is often treated like a step child and after a while things get messy and complicated. In 2014 there is a lot of things and toys a developer can do and use to avoid dying in 'brownfield hell'. I'd like to share some of my insights

+

Sebastian Schürmann

+
+ +
+ {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} +

Zero to Hero

+

How to automate web server setups - Case study & demo.

+

Christoph Lühr
+ (basilicom) +

+
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ + diff --git a/_posts/2014-12-02-december.html b/_posts/2014-12-02-december.html new file mode 100644 index 0000000..ffe42a4 --- /dev/null +++ b/_posts/2014-12-02-december.html @@ -0,0 +1,51 @@ +--- +layout: post-slots +title: Meetup on the 2nd of December, 2014 +datetitle: December 2nd, 2014 +published: true +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Some random profiling tips

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Locating performance issues in a LAMP stack

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Dracony

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Introducing Qrator

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

The DDD friendly admin interface.

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Nikolas Martens

+ +
+ +
λ
+

Higher Order Programming

+

+ Higher order functions are functions that accept functions as arguments, + or that return functions, or both. Can we find better abstractions in PHP? +

+

@mathiasverraes

+
+ + diff --git a/_posts/2015-01-28-january-special.html b/_posts/2015-01-28-january-special.html new file mode 100644 index 0000000..1bb0371 --- /dev/null +++ b/_posts/2015-01-28-january-special.html @@ -0,0 +1,39 @@ +--- +layout: post-slots +title: Meetup on the 28th of January, 2015 +datetitle: January 28th, 2015 +published: true +--- + +

WurstCon & Guests Special

+

January 28th, 2015

+ +
+

+
+ + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

WurstCon Europe

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

WurstCon

+ +
+ +
+

+
+
+
+

bephpug Special Location:

+
ResearchGate GmbH
+
Invalidenstraße 115
+
10115 Berlin
+
+ + diff --git a/_posts/2015-02-03-february.html b/_posts/2015-02-03-february.html new file mode 100644 index 0000000..06f131a --- /dev/null +++ b/_posts/2015-02-03-february.html @@ -0,0 +1,64 @@ +--- +layout: post-slots +title: Meetup on the 3rd of February, 2015 +datetitle: February 3rd, 2015 +published: true +meetupdate: 2015-02-03 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Introduction to RabbitMQ

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Do you need to process thousands of images in the background for your web app?

+ +

Do you need to share data across multiple applications, probably written in different languages and sitting at different servers?

+ +

Your real time data feed is becoming slow because you are polling the database constantly for new data updates?

+ +

Do you need to scale information processing during peek times?

+ +

What about deploying new features with zero downtime? If any of these problems sound familiar then you probably need to use messaging in your application.

+ +

In this talk I will introduce RabbitMQ, a messaging and queue server that can help us tackle those problems. We will learn the benefits of a Queue Server and see how to integrate messaging into our applications. With this talk we hope that the term 'decoupling' gets a new, broader, meaning.

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Alvaro Videla

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

A CouchDB replication endpoint in PHP

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This talk shows how I implemented a replication endpoint for the CouchDB replication protocol in PHP. This makes it possible to use about any backend as a synchronization point for Offline-First HTML5 applications powered by tools like PouchDB or TouchDB.

+

You will also be able to replicate a CouchDB database into a MySQL database or vice-versa. The growing amount of endpoints for this protocol in different languages and environments suggests that the CouchDB replication protocol might evolve as a standard for eventual consistent multi-master replication.

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Kore Nordmann

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Composer update

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Slimmed down version of my FOSDEM talk "Dependency Management with Composer: PHP Reinvented". Covers some random composer advice, semver, version constraints and composer update options. Short and sweet. Followed by ask anything you ever wanted to know about Composer and maybe some answers if I or the audience know them.

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Nils Adermann

+ +
+ diff --git a/_posts/2015-03-03-march.html b/_posts/2015-03-03-march.html new file mode 100644 index 0000000..e013830 --- /dev/null +++ b/_posts/2015-03-03-march.html @@ -0,0 +1,54 @@ +--- +layout: post-slots +title: Meetup on the 3rd of March, 2015 +datetitle: March 3rd, 2015 +published: true +meetupdate: 2015-03-03 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Developing with Pimcore

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Mad Men's Guide to Fun & Profit

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + +

Christoph Lühr

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Design Patterns with PHP!

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Design Patterns and anti-patterns explained (hopefully) in a practical way!

+ + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Anthony Bieber

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Design Patterns: Abstract Factory

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

A pilot episode of what can become a reguar feature.

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Tim Bezhashvyly

+ +
diff --git a/_posts/2015-04-07-april.html b/_posts/2015-04-07-april.html new file mode 100644 index 0000000..9e62fc0 --- /dev/null +++ b/_posts/2015-04-07-april.html @@ -0,0 +1,58 @@ +--- +layout: post-slots +title: Meetup on the 7th of April, 2015 +datetitle: April 7th, 2015 +published: true +meetupdate: 2015-04-07 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

PHPixie 3 ORM

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

The best of two worlds

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Dracony

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Monads in PHP

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

What are Monads and how can they improve your code? (Explained without Haskell syntax)

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Leon Weidauer

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Design Patterns: Decorator Pattern

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

The next design patterns discussion will cover decorator pattern.

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Tim Bezhashvyly

+ +
+ + diff --git a/_posts/2015-05-05-may.html b/_posts/2015-05-05-may.html new file mode 100644 index 0000000..a1fc267 --- /dev/null +++ b/_posts/2015-05-05-may.html @@ -0,0 +1,57 @@ +--- +layout: post-slots +title: Meetup on the 5th of May, 2015 +datetitle: May 5th, 2015 +published: true +meetupdate: 2015-05-05 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Being hacked is not fun

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Some tips on recovering

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Dracony

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Writing effective scenarios

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Description of effective scenarios in Gherkin for testing.

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Iain Cambridge

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Design Patterns: Strategy

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Next episode of design patterns series covers strategy pattern.

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Tim Bezhashvyly

+ +
+ diff --git a/_posts/2015-06-09-june.html b/_posts/2015-06-09-june.html new file mode 100644 index 0000000..95db324 --- /dev/null +++ b/_posts/2015-06-09-june.html @@ -0,0 +1,60 @@ +--- +layout: post-slots +title: Meetup on the 9th of June, 2015 +datetitle: June 9th, 2015 +published: true +meetupdate: 2015-06-09 +--- + + +

IPC 2015 Special

+

June 9th, 2015

+ +
+

+
+ + +
+ +

Profiling with Tideways

+ +

+ + +

Tobias Schlitt

+ +
+ +
+ +

API Tips from the Frontline

+ +

+ +

Anna Filina

+ +
+ +
+ +

Beyond Design Patterns

+ +

+ +

Anthony Ferrara

+ +
+ + +
+

+
+
+
+

bephpug Special Location:

+
ResearchGate GmbH
+
Invalidenstraße 115
+
10115 Berlin
+
Directions from the IPC Location
+
diff --git a/_posts/2015-07-07-july.html b/_posts/2015-07-07-july.html new file mode 100644 index 0000000..ea312e9 --- /dev/null +++ b/_posts/2015-07-07-july.html @@ -0,0 +1,37 @@ +--- +layout: post-slots +title: Meetup on the 7th of July, 2015 +datetitle: July 7th, 2015 +published: true +meetupdate: 2015-07-07 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + +

Push, don't poll

+ +

Using Websockets to give users real-time feedback. With tips from production, we'll try to answer how to use them, what it will bring to your users, how it will change your application and what impact it will have on your infrastructure.

+ +

+ Vojtěch Vondra +

+ +
+ +
+

JSON by the other elephant

+

PostgreSQL built-in JSON functionality

+

Stefanie J. Stölting

+ +
+ +
+

Design Patterns: Command

+

Next episode of design patterns series covers command pattern.

+

Tim Bezhashvyly

+ +
+ + diff --git a/_posts/2015-08-04-august.html b/_posts/2015-08-04-august.html new file mode 100644 index 0000000..52592c7 --- /dev/null +++ b/_posts/2015-08-04-august.html @@ -0,0 +1,49 @@ +--- +layout: post-slots +title: Meetup on the 4th of August, 2015 +datetitle: August 4th, 2015 +published: true +meetupdate: 2015-08-04 +--- + +
+

The Pyramid is a Lie

+

Trying to consolidate integration and unit testing with a multi-level approach.

+

Nikolas Martens

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

DESIGN PATTERNS: Chain of Responsibility, Registry, Null Object

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Next episode of design patterns series

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Tim Bezhashvyly

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

PHPixie 3.0

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

It's finally done!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Dracony

+ +
+ + diff --git a/_posts/2015-09-01-september.html b/_posts/2015-09-01-september.html new file mode 100644 index 0000000..a26accf --- /dev/null +++ b/_posts/2015-09-01-september.html @@ -0,0 +1,52 @@ +--- +layout: post-slots +title: Meetup on the 1st of September, 2015 +datetitle: September 1st, 2015 +published: true +meetupdate: 2015-09-01 +--- + +
+ +

One database to rule 'em all

+ +

PostgreSQL Foreign Data Wrapper in action

+

Stefanie J. Stölting

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Twital template engine

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Feel power of Twig using an AngularJS-like syntax

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Asmir Mustafic

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Design Patterns: Builder, Value Objects

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

"Creation is always ugly."

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Tim Bezhashvyly

+ +
diff --git a/_posts/2015-10-06-october.html b/_posts/2015-10-06-october.html new file mode 100644 index 0000000..4c57dcc --- /dev/null +++ b/_posts/2015-10-06-october.html @@ -0,0 +1,50 @@ +--- +layout: post-slots +title: Meetup on the 6th of October, 2015 +datetitle: 10 6th, 2015 +published: false +meetupdate: 2015-00-00 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Zend OPcache

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

To be announced

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Stephan Hohmann

+ +
+ +
+ +{% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} +

One database to rule 'em all

+ +

PostgreSQL Foreign Data Wrapper in action

+

Stefanie J. Stölting

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
diff --git a/_posts/2015-11-03-november.html b/_posts/2015-11-03-november.html new file mode 100644 index 0000000..e8ad340 --- /dev/null +++ b/_posts/2015-11-03-november.html @@ -0,0 +1,50 @@ +--- +layout: post-slots +title: Meetup on the 3rd of November, 2015 +datetitle: November 3rd, 2015 +published: true +meetupdate: 2015-11-03 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} +

One database to rule 'em all

+ +

PostgreSQL Foreign Data Wrapper in action

+

Stefanie J. Stölting

+ +
+ +
+ +

PHP Opcache (... and how to migrate away from APC)

+ +

+ More than two year have passed since PHP 5.5 got released, introducing + opcache as a built-in opcode cache. Yet most knowledge concerning it is a + mishmash of hearsay, wishful thinking and outright fud. This talk atempts + to shed some light on this otherwise poorly covered topic. +

+ +

Stephan Hohmann

+
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} + +

Design Patterns: Builder, Value Objects

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

"Creation is always ugly."

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Tim Bezhashvyly

+ +
diff --git a/_posts/2015-12-01-december.md b/_posts/2015-12-01-december.md new file mode 100644 index 0000000..0756716 --- /dev/null +++ b/_posts/2015-12-01-december.md @@ -0,0 +1,57 @@ +--- +layout: post-slots +title: Meetup on the 1st of December 2015 +datetitle: December 1st, 2015 +published: true +meetupdate: 2015-12-01 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Neural Networks in 20 minutes

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

It's really that simple

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Dracony

+
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Development with External Dependencies

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

How to manage and to stabilize external dependencies

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Alexander M. Turek

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Question & Answer round to Magento2

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Or me talking boring stuff, if there are no Questions

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Flyingmana

+ +
diff --git a/_posts/2016-01-05-january.md b/_posts/2016-01-05-january.md new file mode 100644 index 0000000..503e28b --- /dev/null +++ b/_posts/2016-01-05-january.md @@ -0,0 +1,64 @@ +--- +layout: post-slots +title: Meetup on the 5th of January, 2016 +datetitle: January 5th, 2016 +published: true +meetupdate: 2016-01-05 +--- + + +

January Meetup cancelled, soory. See you 2016-02-02

+
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Security in your dev environment

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

and why everything of it is bad

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

@Flyingmana

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ + diff --git a/_posts/2016-02-02-february.md b/_posts/2016-02-02-february.md new file mode 100644 index 0000000..d4584b8 --- /dev/null +++ b/_posts/2016-02-02-february.md @@ -0,0 +1,63 @@ +--- +layout: post-slots +title: Meetup on the 2nd of February, 2016 +datetitle: February 2nd, 2016 +published: true +meetupdate: 2016-02-02 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ + diff --git a/_posts/2016-03-01-march.md b/_posts/2016-03-01-march.md new file mode 100644 index 0000000..7d663a5 --- /dev/null +++ b/_posts/2016-03-01-march.md @@ -0,0 +1,53 @@ +--- +layout: post-slots +title: Meetup on the 1st of March, 2016 +datetitle: March 1st, 2016 +published: true +meetupdate: 2016-03-01 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

RAML

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Designing RESTful APIs with RAML

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Damijan Cavar

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Doctrine and MongoDB (in Symfony)

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

A short introduction how use MongoDB in Doctrine (and Symfony)

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Erik

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

HTTP/2 Introduction

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Short introduction to HTTP/2 and what it changes for web development

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Bastian Hofmann

+ +
+ diff --git a/_posts/2016-04-05-april.md b/_posts/2016-04-05-april.md new file mode 100644 index 0000000..a8b5eeb --- /dev/null +++ b/_posts/2016-04-05-april.md @@ -0,0 +1,58 @@ +--- +layout: post-slots +title: Meetup on the 5th of April, 2016 +datetitle: April 5th, 2016 +published: true +meetupdate: 2016-04-05 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Feature Toggles

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Preventing a mess when transitioning to a new feature

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Denis Brumann

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Cloudflare to the rescue

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

How to use Cloudflare to bail yourself out of techincal debt.

+ + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Iain Cambridge

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ + diff --git a/_posts/2016-05-03-may.md b/_posts/2016-05-03-may.md new file mode 100644 index 0000000..f775d82 --- /dev/null +++ b/_posts/2016-05-03-may.md @@ -0,0 +1,55 @@ +--- +layout: post-slots +title: Meetup on the 3rd of May, 2016 +datetitle: May 3rd, 2016 +published: true +meetupdate: 2016-05-03 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Buzzwords 101

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

A run through and explainations of some of the buzzwords used daily

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Iain Cambridge

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

SOLID inheritance

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

An introduction to the Liskov Substitution Principle

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Jeroen De Dauw

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Optimizing Nested Set

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Still better than Closure Table

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Dracony

+ +
diff --git a/_posts/2016-06-07-june.md b/_posts/2016-06-07-june.md new file mode 100644 index 0000000..7e78148 --- /dev/null +++ b/_posts/2016-06-07-june.md @@ -0,0 +1,61 @@ +--- +layout: post-slots +title: Meetup on the 7th of June, 2015 +datetitle: June 7th, 2015 +published: true +meetupdate: 2015-06-07 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Use Case Driven Development in Symfony

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Reflecting the use cases of applications in the code and introducing a bundle that will make it easier to do in Symfony.

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Bartosz Zasada

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ diff --git a/_posts/2016-07-05-july.html b/_posts/2016-07-05-july.html new file mode 100644 index 0000000..25f989a --- /dev/null +++ b/_posts/2016-07-05-july.html @@ -0,0 +1,64 @@ +--- +layout: post-slots +title: Meetup on the 5th of July, 2016 +datetitle: July 5th, 2016 +published: true +meetupdate: 2016-07-05 +cancelled: NO TALKS :-( +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ + diff --git a/_posts/2016-08-02-august.html b/_posts/2016-08-02-august.html new file mode 100644 index 0000000..5c3f38f --- /dev/null +++ b/_posts/2016-08-02-august.html @@ -0,0 +1,39 @@ +--- +layout: post-slots +title: Meetup on the 2nd of August, 2016 +datetitle: August 2nd, 2016 +published: true +meetupdate: 2016-08-02 +#meetupid: 232409781 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Logging with Elastichsearch Logstash Kibana in a secured (and complicated) server environment

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

In this talk I want to present how my company is intruducing the ELK-stack for logging in as secured environment with different hosting providers. I'll show you some of problems that occured and how we solved it.

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Erik

+ +
+ +
+

Twital template engine

+

Feel power of Twig using an AngularJS-like syntax, keeping your templates XML valid and readable!

+

Asmir Mustafic

+
+ +
+

Docker For Development

+

Brief introduction to Docker and how it can replace vagrant boxes for smooth development workflows.

+

Pedro Gil

+
+ + diff --git a/_posts/2016-09-06-september.html b/_posts/2016-09-06-september.html new file mode 100644 index 0000000..5a278f2 --- /dev/null +++ b/_posts/2016-09-06-september.html @@ -0,0 +1,64 @@ +--- +layout: post-slots +title: Meetup on the 6th of September, 2016 +datetitle: September 6th, 2016 +published: true +meetupdate: 2016-09-06 +cancelled: NO TALKS :-( +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ + diff --git a/_posts/2016-10-04-october.html b/_posts/2016-10-04-october.html new file mode 100644 index 0000000..37fc16c --- /dev/null +++ b/_posts/2016-10-04-october.html @@ -0,0 +1,53 @@ +--- +layout: post-slots +title: Meetup on the 4th of October, 2016 +datetitle: October 4th, 2016 +published: true +meetupdate: 2016-10-04 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} +

SOAP is beautiful (again)

+

Enjoy using legacy SOAP webservices with a brand new SOAP client

+

Asmir Mustafic

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Parse the GithubArchive for Fun(improvised)

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

What Data it has, where it comes from, and how to play with it.

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ + diff --git a/_posts/2016-11-01-november.html b/_posts/2016-11-01-november.html new file mode 100644 index 0000000..87c0afc --- /dev/null +++ b/_posts/2016-11-01-november.html @@ -0,0 +1,41 @@ +--- +layout: post-slots +title: Meetup on the 1st of November, 2016 +datetitle: November 1st, 2016 +published: true +meetupdate: 2016-11-01 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} +

SOAP is beautiful (again)

+

Enjoy using legacy SOAP webservices with a brand new SOAP client

+

Asmir Mustafic

+ +
+ +
+

Siesta ORM for php7

+

Stored procedure based object relational mapper for php7

+

Gregor Müller

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Parse the GithubArchive for Fun(improvised)

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

What Data it has, where it comes from, and how to play with it.

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Daniel Fahlke aka Flyingmana

+ +
+ diff --git a/_posts/2016-12-06-december.html b/_posts/2016-12-06-december.html new file mode 100644 index 0000000..e4a0545 --- /dev/null +++ b/_posts/2016-12-06-december.html @@ -0,0 +1,61 @@ +--- +layout: post-slots +title: Meetup on the 6th of December, 2016 +datetitle: December 6th, 2016 +published: true +meetupdate: 2016-12-06 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Functional Programming Principles in PHP

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Taking a look at common FP principles and if/how they can be applied to PHP.

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Kai Sassnowski

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Solving the hardest problem in IT

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Introduction to Lizards & Pumpkins and techniques we are using and why.

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Fabian Blechschmidt

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Vorstellung TURBOPY Framework

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Einführung in Architektur und Konzepte des noSQL Publishing Frameworks

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Johannes Reichardt

+ +
+ + diff --git a/_posts/2017-01-03-january.html b/_posts/2017-01-03-january.html new file mode 100644 index 0000000..9c66e47 --- /dev/null +++ b/_posts/2017-01-03-january.html @@ -0,0 +1,62 @@ +--- +layout: post-slots +title: Meetup on the 3rd of January, 2017 +datetitle: January 3rd, 2017 +published: true +meetupdate: 2017-01-03 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ diff --git a/_posts/2017-02-07-february.html b/_posts/2017-02-07-february.html new file mode 100644 index 0000000..04f7c54 --- /dev/null +++ b/_posts/2017-02-07-february.html @@ -0,0 +1,58 @@ +--- +layout: post-slots +title: Meetup on the 7th of February, 2017 +datetitle: February 7th, 2017 +published: true +meetupdate: 2017-02-07 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Implementing the Clean Architecture

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Story of using the CC in an OS PHP project. read the abstract

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

@JeroenDeDauw from @WikimediaDE

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Silex 2

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Whats New, Whats different, how to implement User Accounts

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Daniel Fahlke aka @Flyingmana

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

A Beginner's guide to Complex Data Types

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

An introduction on how to spot composite types hiding in your code and ways to model and persist them

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Denis Brumann

+ +
diff --git a/_posts/2017-03-07-march.html b/_posts/2017-03-07-march.html new file mode 100644 index 0000000..7e0fac6 --- /dev/null +++ b/_posts/2017-03-07-march.html @@ -0,0 +1,61 @@ +--- +layout: post-slots +title: Meetup on the 7th of March, 2017 +datetitle: March 7th, 2017 +published: true +meetupdate: 2017-03-01 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Demystifying Dependency Injection Containers

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Taking a closer look at how DI-Containers work by writing our own.

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Kai Sassnowski

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Dockerized CI-Pipeline for PHP Applications

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Introducing the VOTUM approach based on Gitlab-CI and Docker

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

+ Bernd Alter & + David Sauer +

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

LXD System Containers

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Virtualized PHP Environments

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Christoph Lühr

+ +
+ + diff --git a/_posts/2017-04-04-april.md b/_posts/2017-04-04-april.md new file mode 100644 index 0000000..219feee --- /dev/null +++ b/_posts/2017-04-04-april.md @@ -0,0 +1,65 @@ +--- +layout: post-slots +title: Meetup on the 4th of April, 2017 +datetitle: April 4th, 2017 +published: true +meetupdate: 2017-04-04 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

IceHawk - a PHP 7+ micro framework

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

An introduction of IceHawk and its CQRS approach for HTTP based web applications.

+ + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Holger Woltersdorf

+ +
+ +
+ +

Static Sites in PHP? Simple With Statie

+ +

What to use to manage open-source websites, with community and PHP? Like Pehapkari.cz? I will show a tool, that is easy to scale, use and explain - Statie. It will stay simple, I promise. Free "https" included.

+ +

Tomas Votruba

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Architecture Kata

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

How can we learn to create better architectures?

+ + {% comment %} REMOVE NEXT LINE: +

Submit your talk now

+{% endcomment %} + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Frank Sons

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #4 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

PHPUnit & Selenium made easy

+ +

Not only unit tests but also end-to-end tests in real browser are important part of test automation and test pyramid So let's have a look how to easily write and run Selenium functional tests using PHPUnit and Steward.

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Ondrej Machulda

+ +
diff --git a/_posts/2017-05-02-may.md b/_posts/2017-05-02-may.md new file mode 100644 index 0000000..4e2b020 --- /dev/null +++ b/_posts/2017-05-02-may.md @@ -0,0 +1,28 @@ +--- +layout: post-slots +title: Meetup on the 2nd of May 2017 +datetitle: May 2nd, 2017 +published: true +meetupdate: 2017-05-02 +cancelled: no talks +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

May Meetup Cancelled

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

We are looking for talks for the June Meetup

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +                  

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ + diff --git a/_posts/2017-06-06-june.md b/_posts/2017-06-06-june.md new file mode 100644 index 0000000..8570d49 --- /dev/null +++ b/_posts/2017-06-06-june.md @@ -0,0 +1,53 @@ +--- +layout: post-slots +title: Meetup on the 6th of June, 2017 +datetitle: June 6th, 2017 +published: true +meetupdate: 2017-06-06 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Microservices

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Lessons learned building for a 100 Mio revenue company

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Stephan Schulze

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Deploy your app with Docker

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Personal experience with Docker and workflow used to run collabout.com

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Asmir Mustafic

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

The Bus Factor

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

We will talk about how to share knowledge about a project within a team.

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ diff --git a/_posts/2017-07-04-july.html b/_posts/2017-07-04-july.html new file mode 100644 index 0000000..f757c25 --- /dev/null +++ b/_posts/2017-07-04-july.html @@ -0,0 +1,54 @@ +--- +layout: post-slots +title: Meetup on the 4th of July, 2017 +datetitle: July 4th, 2017 +published: true +meetupdate: 2017-07-04 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

PHP - The past and the future

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

+ A talk about the history of PHP as a technology, + a programming language and a part of the whole technological infrastructure and the OSS world. +

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Ran Argaman

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

High Performance FastCGI

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Stephan Hohmann

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Introducing Nextcloud

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

and inviting you to its conference

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Arthur Schiwon

+ +
+ + diff --git a/_posts/2017-08-01-august.html b/_posts/2017-08-01-august.html new file mode 100644 index 0000000..c84097d --- /dev/null +++ b/_posts/2017-08-01-august.html @@ -0,0 +1,61 @@ +--- +layout: post-slots +title: Meetup on the 1st of August, 2017 +datetitle: August 1st, 2017 +published: true +meetupdate: 2017-08-01 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

TDD in Action

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

History and concepts of TDD; why it is needed; Tools & integration examples. Audience: beginners+intermediate.

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Kifah Abbad

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Phpactor: Lightweight refactoring and intellisense

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Phpactor is a console application which + works both as a standalone tool offering a Unix way of + refactoring and introspecting your code, and as a lightweight + intellisense (auto-completion etc.) solution for editors + such as VIM.

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

dantleech

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ + diff --git a/_posts/2017-09-05-september.html b/_posts/2017-09-05-september.html new file mode 100644 index 0000000..843d4e3 --- /dev/null +++ b/_posts/2017-09-05-september.html @@ -0,0 +1,64 @@ +--- +layout: post-slots +title: Meetup on the 5th of September 2017 +datetitle: September 5th, 2017 +published: true +meetupdate: 2017-09-05 +cancelled: NO TALKS :-( +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ + diff --git a/_posts/2017-11-07-november.html b/_posts/2017-11-07-november.html new file mode 100644 index 0000000..58ef898 --- /dev/null +++ b/_posts/2017-11-07-november.html @@ -0,0 +1,63 @@ +--- +layout: post-slots +title: Meetup on the 7th of November, 2017 +datetitle: November 7th, 2017 +published: true +meetupdate: 2017-11-07 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

REST and GraphQL: What, How and Why

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

What they are, how they differ and when to use each, or both.

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Marco Petersen

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

jms/serializer in 2017

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

+ jms/serializer is one of the most popular serialization libraries available for PHP with more than 14M downloads. + This talk will present an overview of what is and how the library has changed in the last years. +

+ + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Asmir Mustafic

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

PHP + Business = Money!

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

+ PHP isn't cool anymore and that's why love it! I'll talk about how PHP helps us speed up the business feedback loops + at Wayfair and what are the pros and cons for the big company. +

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Martin Hlavac

+ +
+ + diff --git a/_posts/2017-12-05-december.html b/_posts/2017-12-05-december.html new file mode 100644 index 0000000..6716c56 --- /dev/null +++ b/_posts/2017-12-05-december.html @@ -0,0 +1,59 @@ +--- +layout: post-slots +title: Meetup on the 5th of December, 2017 +datetitle: December 5th, 2017 +published: true +meetupdate: 2017-12-05 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Recruiting, Recruiter, and how to find Developers

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Learn about all sides of the table, and how to solve this problem

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Daniel Fahlke aka @Flyingmana

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Microcaching

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

For when all else fails …

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Stephan Hohmann

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ + diff --git a/_posts/2018-02-06-februray.md b/_posts/2018-02-06-februray.md new file mode 100644 index 0000000..49adabc --- /dev/null +++ b/_posts/2018-02-06-februray.md @@ -0,0 +1,56 @@ +--- +layout: post-slots +title: Meetup on the 6th of Feb, 2018 +datetitle: Feb 6th, 2018 +published: true +meetupdate: 2018-02-06 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Let's Connect

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Operate your own free software VPN service. From +development to production deployment (with PHP).

+ +

François Kooman

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

ValueObjects

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Simple objects that let us pass value and type together throughout out codebase, making the data integrity issues thing of the past.

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Martin Hlavac

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Teaser: Swoole in 5 Minutes

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Blazingly-Fast, Event-Driven, Asynchronous PHP

+ + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Christoph Luehr

+ +
+ diff --git a/_posts/2018-03-06-march.md b/_posts/2018-03-06-march.md new file mode 100644 index 0000000..bdfd822 --- /dev/null +++ b/_posts/2018-03-06-march.md @@ -0,0 +1,54 @@ +--- +layout: post-slots +title: Meetup on the 6th of Mar, 2018 +datetitle: Mar 6th, 2018 +published: true +meetupdate: 2018-03-06 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

How to find the best PHP position

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

... which fits your skills perfect

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Alexander Kley

+

Kai Niehues

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Creating a J-Meter

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

with Pipelines and Generators in PHP

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Daniel Leech

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Self-contained System (SCS)

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

... with a practical example (based on Lumen)

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Sebastian Sellmeier

+ +
+ diff --git a/_posts/2018-04-03-april.md b/_posts/2018-04-03-april.md new file mode 100644 index 0000000..5be2b25 --- /dev/null +++ b/_posts/2018-04-03-april.md @@ -0,0 +1,51 @@ +--- +layout: post-slots +title: Meetup on the 3rd of April, 2018 +datetitle: Apr 3rd, 2018 +published: true +meetupdate: 2018-04-03 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

DevOps Culture

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

... and Lean Software development

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Stephan Schulze

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Symfony Flex - Introduction

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Basic's + Howto private Recipe Server

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Sebastian Sellmeier

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

How code reviews should not be done

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Erik Witthauer

+
diff --git a/_posts/2018-06-05-june.md b/_posts/2018-06-05-june.md new file mode 100644 index 0000000..2cf032b --- /dev/null +++ b/_posts/2018-06-05-june.md @@ -0,0 +1,57 @@ +--- +layout: post-slots +title: Meetup on the 5th of June, 2018 +datetitle: June 5th, 2018 +published: true +meetupdate: 2018-06-05 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

How to OOP

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

A primer for novice developers

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Marco Petersen

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Writing Testable Code

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Practical talk about what is a testable code and how to write it.

We will go though multiple examples of not testable code, make it testable and finally write phpunit tests together.

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Martin Hlavac

+ +
+ +
+ +

Instant Upgrades with Rector

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Before composer, we downloaded packages manually. But how do you upgrade to newer framework version? Still manually? +

+In non-PHP world, Google and Facebook already use such instant upgrade tools. Thanks to nikic/php-parser a door opened in PHP for such a tool ...and Rector was born. +

+I’ll show you how Rector handles 80 % of boring upgrades for you - in 1 CLI command. +

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Tomas Votruba

+
diff --git a/_posts/2018-07-03-july.md b/_posts/2018-07-03-july.md new file mode 100644 index 0000000..a0ff013 --- /dev/null +++ b/_posts/2018-07-03-july.md @@ -0,0 +1,57 @@ +--- +layout: post-slots +title: Meetup on the 3rd of July, 2018 +datetitle: July 3rd, 2018 +published: true +meetupdate: 2018-07-03 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Migrating to Symfony Flex

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

A quick walkthrough for upgrading your Symfony 2/3 application to the new Flex structure

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Denis Brumann

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

PHP Next

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

What will be hot and new in PHP!

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Martin Holzhauer

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Woman in IT

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

A History 101

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Daniel Fahlke aka @Flyingmana

+ +
+ diff --git a/_posts/2018-08-07-august.md b/_posts/2018-08-07-august.md new file mode 100644 index 0000000..bf9d59e --- /dev/null +++ b/_posts/2018-08-07-august.md @@ -0,0 +1,54 @@ +--- +layout: post-slots +title: Meetup on the 7th of August, 2018 +datetitle: August 7th, 2015 +published: true +meetupdate: 2018-08-07 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Why frameworks suck

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

How PHP frameworks violates OOP and make our code so much bound to the framework

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Damnjan Jovanovic

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

GraphQL and code generation

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

How code generation helps us at AMBOSS to keep our GraphQL API implementation consistent to schema definition

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Aleksandr Obukhov, Lead Backend Engineer at AMBOSS GmbH

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

CQRS and Event Sourcing with PHP

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

An overview of the benefits of CQRS and Event Sourcing. An alternative to typical relational database model.

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Marcelo Santos

+ +
diff --git a/_posts/2018-09-04-september.md b/_posts/2018-09-04-september.md new file mode 100644 index 0000000..5afde9b --- /dev/null +++ b/_posts/2018-09-04-september.md @@ -0,0 +1,62 @@ +--- +layout: post-slots +title: Meetup on the 4th of September, 2018 +datetitle: September 4th, 2015 +published: true +meetupdate: 2018-09-04 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Ascending to the Rank of WordPress Developer

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Achieving high performance with technology agnostic component driven development.

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Philip Bennett

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

From Legacy To Laravel: A Refactoring Journey

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

So you have a large, often messy, sometimes convoluted legacy PHP code base. +There's no framework, no routing, no templates. Hard to maintain, even harder to extend. + +So, how do you clean up your act? +A complete rewrite? Almost certainly doomed to fail at a startup with limited resources, financial pressure and endless feature requests. +Extract things step by step? Really hard with an entangled code base without sane boundaries.

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Christopher Fuchs (ready2order)

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
diff --git a/_posts/2018-10-02-october.md b/_posts/2018-10-02-october.md new file mode 100644 index 0000000..a47f8d5 --- /dev/null +++ b/_posts/2018-10-02-october.md @@ -0,0 +1,25 @@ +--- +layout: post-slots +title: Meetup on the 2nd of October, 2018 +datetitle: October 2nd, 2015 +published: true +meetupdate: 2018-10-02 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

OCTOBER MEETUP CANCELLED DUE TO LACK OF TALKS!

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

See you in November

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk (for November) now!

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
diff --git a/_posts/2018-11-06-november.md b/_posts/2018-11-06-november.md new file mode 100644 index 0000000..3a5b02b --- /dev/null +++ b/_posts/2018-11-06-november.md @@ -0,0 +1,61 @@ +--- +layout: post-slots +title: Meetup on the 6th of November, 2018 +datetitle: November 6th, 2015 +published: true +meetupdate: 2018-11-06 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
diff --git a/_posts/2018-12-04-december.md b/_posts/2018-12-04-december.md new file mode 100644 index 0000000..b3b993a --- /dev/null +++ b/_posts/2018-12-04-december.md @@ -0,0 +1,53 @@ +--- +layout: post-slots +title: Meetup on the 4th of December, 2018 +datetitle: December 4th, 2018 +published: true +meetupdate: 2018-12-04 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Tracy: an addictive tool to ease debugging

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Log, dump and visualize errors, debug AJAX requests or automatically fix typos in your code with a single click - Demo included!

+ + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

David Grudl

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Enumerating behaviour: End of ifs and switches in PHP?

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Current PHP enumerations are outdated for usage in domain models. Is there something better?

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Jan Kuchař

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

PHPStan Under the Hood

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Close look at PHPStan's type system and how does it utilize trinary logic to reason about many dynamic aspects of PHP.

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Jan Tvrdík

+ +
diff --git a/_posts/2019-02-05-februrary.md b/_posts/2019-02-05-februrary.md new file mode 100644 index 0000000..8456ed9 --- /dev/null +++ b/_posts/2019-02-05-februrary.md @@ -0,0 +1,42 @@ +--- +layout: post-slots +title: Meetup on the 5th of February, 2019 +datetitle: Feb 5th, 2019 +published: true +meetupdate: 2019-02-05 +--- + +
+ +

Bloom filters, PHP and Big data

+

Discover what are Bloom-Filters and how can they be used for big data computation

+

Asmir Mustafic

+ +
+ +
+ +

Getting started with PHP on AWS Lambda

+

A small introduction to getting started with PHP on AWS Lambda and some usage scenarios

+

Thomas Bley

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ diff --git a/_posts/2019-03-05-march.html b/_posts/2019-03-05-march.html new file mode 100644 index 0000000..99b1fde --- /dev/null +++ b/_posts/2019-03-05-march.html @@ -0,0 +1,59 @@ +--- +layout: post-slots +title: Meetup on the 5th of March, 2019 +datetitle: March 5th, 2019 +published: true +meetupdate: 2019-03-05 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

CRDT G-Counter

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

...or how can you build a small distributed system with PHP

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Alessandro Balasco

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Monolith turns API Gateway

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

How we converted our legacy monolith application into our modern API Gateway.

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Hafiz Abdul Rehman

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Crossword generator - the beginning of AI?

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

How to start building a crossword generator in PHP.

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Marco hanczuch

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ diff --git a/_posts/2019-04-02-april.html b/_posts/2019-04-02-april.html new file mode 100644 index 0000000..50d9177 --- /dev/null +++ b/_posts/2019-04-02-april.html @@ -0,0 +1,64 @@ +--- +layout: post-slots +title: Meetup on the 2nd of April, 2019 +datetitle: April 2nd, 2019 +published: true +meetupdate: 2019-04-02 +cancelled: No Talks :( +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ + diff --git a/_posts/2019-05-07-may.html b/_posts/2019-05-07-may.html new file mode 100644 index 0000000..a50a7b2 --- /dev/null +++ b/_posts/2019-05-07-may.html @@ -0,0 +1,72 @@ +--- +layout: post-slots +title: Meetup on the 7th of May, 2019 +datetitle: May 7th, 2019 +published: true +meetupdate: 2019-05-07 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Symfony Flex - Reloaded

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

+ Since the start of Symfony Flex several things changed. I will give you a short + overview about Symfony Flex, the features and why it is cool to use it! In the + end, we will create our own recipe and have a look at the different possibilities + to publish recipes. +

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Sebastian Sellmeier

+
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Consumer-Driven Contract Testing

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

What are contracts? Who are my consumers? Does my service solves problems as requested?
+ Reliable communication paths between applications are key in a distributed service architechture.
+ While more and more agility leads to evolution and transformation of software and products, it is still required to keep an eye on compatibility and consumer requirements ...but what if they change?
+ I would like to introduce you this powerful framework and show you how it can help to ensure the development of sustainable APIs.

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Eduardo Iriarte | Software Engineer @ Ratepay GmbH

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Test drive your API with functional tests in Behat

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

While there are many test tools that guarantee the health of code units, only + BDD oriented test scenarios ensure that also humans understand what's going on + in your application. We're using Behat to write feature tests for our api-platform based API + and it saved our life on Friday night deployments more than once. In this talk Stefan demonstrates how +

+

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Stefan Adolf | Developer Ambassador @ Turbine Kreuzberg

+ +
+ + diff --git a/_posts/2019-06-04-june.html b/_posts/2019-06-04-june.html new file mode 100644 index 0000000..93cc822 --- /dev/null +++ b/_posts/2019-06-04-june.html @@ -0,0 +1,93 @@ +--- +layout: post-slots +title: Meetup on the 4th of June, 2019 +datetitle: June 4th, 2019 +published: true +meetupdate: 2019-06-04 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TALK TITLE: {% endcomment %} +

Git Fu Development

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

+ Everybody was Git Fu developing, those bugs came fast as lightning. + In fact it was a little bit frightening, but they fought with expert rebasing. + There were funky Developers from funky everywhere. + They were merging bend up, they where merging bend down. + It is a special developer art, and everybody knew their part. + For my friend, ain’t your head is detached. Then im guiding you to a clean state. + Everybody was Git Fu developing, those problems where solved fast as lightning. + Want to sing along and master your Git Fu. Listen to this lecture of sensei Sebastian +

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Sebastian

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Iterators and Generators

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

An introduction to Iterators and Generators in PHP including tips and examples.

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Jeroen De Dauw

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

NOT NULL

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

+ Null in PHP. + How we get used to null, what is alternatives, and why we should look at the alternative for god sake. + Null object pattern, exceptions, polymorphism and other alternative ways to deal with nothing. +

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Damnjan

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Alternative(s) to PHP arrays

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

+ DataStructures extenstion as replacement for PHP arrays. +

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Alexander Guz

+ +
+ + diff --git a/_posts/2019-07-02-july.html b/_posts/2019-07-02-july.html new file mode 100644 index 0000000..6730577 --- /dev/null +++ b/_posts/2019-07-02-july.html @@ -0,0 +1,60 @@ +--- +layout: post-slots +title: Meetup on the 2nd of July, 2019 +datetitle: July 2nd, 2019 +published: true +meetupdate: 2019-07-02 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Ports and Adapters 101

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Introduction to Ports and Adapters architecture

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Zvonimir Spajic

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

What's new in Symfony 4.3

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Symfony 4.3 is out let's have a look what new features and components it brought.

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Hafiz Abdul Rehman

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

PHP Debugging - Going Deeper with GDB

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

+ GDB for PHP Developers - a small look into whats comes after XDebug. +

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Martin Holzhauer

+ +
+ + diff --git a/_posts/2019-08-06-august.html b/_posts/2019-08-06-august.html new file mode 100644 index 0000000..30a3752 --- /dev/null +++ b/_posts/2019-08-06-august.html @@ -0,0 +1,63 @@ +--- +layout: post-slots +title: Meetup on the 6th of August, 2019 +datetitle: August 6th, 2019 +published: true +meetupdate: 2019-08-06 +cancelled: NO TALKS :-( +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ + diff --git a/_posts/2019-09-03-september.html b/_posts/2019-09-03-september.html new file mode 100644 index 0000000..9ce9c61 --- /dev/null +++ b/_posts/2019-09-03-september.html @@ -0,0 +1,60 @@ +--- +layout: post-slots +title: Meetup on the 3rd of September, 2019 +datetitle: September 3rd, 2019 +published: true +meetupdate: 2019-09-03 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Introduction to Traefik on Docker Swarm

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Traefik, a reverse proxy for the container world!

+ + +

Asmir Mustafic

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Maestro and Satellite Repositories

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

The principles of package design encourage the application of the single responsiblity principle to repositories, however the trade off is often that you or your team become less productive. Is it possible to have your cake and eat it?

+

This talk presents an arduous adventure with single-responsiblity-packages and the tool I'm creating to manage them.

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Daniel Leech

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

The State of PHP & Laravel

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

I am attending Laracon EU later this week. Will highlight and summarize the takeaways from this conference - how PHP and Laravel moving forward, what new things to expect.

+

Will also cover how we can scale a Laravel app easily focusing on Event & Queues.

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Muhammad Sumon Molla Selim

+ +
+ + diff --git a/_posts/2019-10-01-october.html b/_posts/2019-10-01-october.html new file mode 100644 index 0000000..b93f9bc --- /dev/null +++ b/_posts/2019-10-01-october.html @@ -0,0 +1,64 @@ +--- +layout: post-slots +title: Meetup on the 1st of October, 2019 +datetitle: October 1st, 2019 +published: true +meetupdate: 2019-10-01 +cancelled: No Talks :( +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ + diff --git a/_posts/2019-11-05-november.html b/_posts/2019-11-05-november.html new file mode 100644 index 0000000..6b4b54a --- /dev/null +++ b/_posts/2019-11-05-november.html @@ -0,0 +1,57 @@ +--- +layout: post-slots +title: Meetup on the 5th of November, 2019 +datetitle: November 5th, 2019 +published: true +meetupdate: 2019-11-05 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Understanding Git

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Git is a standard tool for version control these days so we all use it daily. And we all understand it. Or do we?

+ +

Let's face it - git is hard. And one of the main reasons for this is that it's UI is full of leaky abstractions. That is why to get comfortable with git one must gain some understanding of how git works "under the hood". So in this talk, we're gonna do exactly that and see how gits data model works, how git handles branching and what staging area really is.

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Zvonimir Spajic

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Mutation Testing!

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Have you ever wanted to testing super powers? Well mutations could be your ticket!

+

In this talk we'll be looking at how to check your unit tests rock or suck. We'll be using mutation testing to test your test. A must know for anyone who comes into contact with unit tests.

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Billie Thompson

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Introduction to Frontend Testing

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

With Puppeteer and Jest

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Daniel Fahlke aka Flyingmana

+ +
+ + diff --git a/_posts/2019-12-03-december.html b/_posts/2019-12-03-december.html new file mode 100644 index 0000000..e756cd1 --- /dev/null +++ b/_posts/2019-12-03-december.html @@ -0,0 +1,60 @@ +--- +layout: post-slots +title: Meetup on the 3rd of December, 2019 +datetitle: December 3rd, 2019 +published: true +meetupdate: 2019-12-03 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Get, set... NO

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

+ Cargo cult programming is defined by Wikipedia as "Ritual inclusion of code or program structures that serve no real purpose." +

+

+ One ritual, deeply embedded into the hearts and minds of many software developers is the creation of getters and setter on entities. It' so widespread that IDEs have tools to do it automatically. +

+

+ Why do we do it? Does it serve some purpose or is it just a cargo cult programming ritual? +

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Zvonimir Spajic

+ +
+ +
+ +

5 ways to write better mocks

+

Tips on how to write better test doubles (often referred to as mocks in PHP-land). Cats included.

+

@JeroenDeDauw

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ + diff --git a/_posts/2020-01-07-january.md b/_posts/2020-01-07-january.md new file mode 100644 index 0000000..3897ecc --- /dev/null +++ b/_posts/2020-01-07-january.md @@ -0,0 +1,62 @@ +--- +layout: post-slots +title: Meetup on the 7th of January, 2020 +datetitle: January 7th, 2020 +published: true +cancelled: No Talks :( +meetupdate: 2020-01-07 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ diff --git a/_posts/2020-02-04-february.html b/_posts/2020-02-04-february.html new file mode 100644 index 0000000..3736740 --- /dev/null +++ b/_posts/2020-02-04-february.html @@ -0,0 +1,59 @@ +--- +layout: post-slots +title: Meetup on the 4th of February, 2020 +datetitle: February 4th, 2020 +published: true +meetupdate: 2020-02-04 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Exploring Async PHP

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

As PHP programmers we are used to waiting for network I/O, in general we may not even consider any other option. But why wait? Why not jump on board the Async bullet-train and experience life in the fast lane and give Go and NodeJS a run for the money. This talk will aim to make the audience aware of the benefits, opportunities, and pitfalls of asynchronous programming in PHP, and guide them through the native functionality, frameworks and PHP extensions though which it can be facilitated.

+ + + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Daniel Leech

+
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
diff --git a/_posts/2020-03-03-march.md b/_posts/2020-03-03-march.md new file mode 100644 index 0000000..aeb8205 --- /dev/null +++ b/_posts/2020-03-03-march.md @@ -0,0 +1,50 @@ +--- +layout: post-slots +title: Meetup on the 3rd of March, 2020 +datetitle: March 3rd, 2020 +published: true +meetupdate: 2020-03-03 +--- + +
+ +

Make Your Own Template Engine (MYOTE)

+

A simple, but very powerful template engine inspired by Plates with full +theming support and multi UI language support built-in.

+

François Kooman

+ +
+ +
+ +

Reset --hard your fear

+ +

Many developers have a fear of git reset command because of its reputation for being dangerous.

+ +

While it is true that the reset command can be dangerous and cause you to lose your changes like tears in the rain, as it is with many fears, it's mostly based on a lack of understanding.

+ +

So let's give your fear of the reset command an antidote - a proper understanding of how git reset works.

+ +

Zvonimir Spajic

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Containers as VMs

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

+ I've been exploring WeaveWorks' footloose ("Containers which look like VMs") for local development and CI. + My talk is most likely going to be a (hopefully bug-free) live-demo of how I installed and use footloose. + And if this works too well, then we can look at footloose' integration with Ignite (AWS FireCracker). +

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Till Klampäckel

+ +
+ diff --git a/_posts/2020-04-07-april.md b/_posts/2020-04-07-april.md new file mode 100644 index 0000000..6096fce --- /dev/null +++ b/_posts/2020-04-07-april.md @@ -0,0 +1,59 @@ +--- +layout: post-slots +title: Meetup on the 7th of April, 2020 +datetitle: April 7th, 2015 +published: true +cancelled: co.up community event space is closed. +meetupdate: 2020-04-07 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

DevOps best practice: Infrastructure as code (IaC), learn the benefits

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

When you begin to handle the code that defines your infrastructure the same way you treat your application code, great things happen. Come find out exactly what benefits await you, and how to start following this best practice.

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Robert Douglass

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
diff --git a/_posts/2020-05-05-may.md b/_posts/2020-05-05-may.md new file mode 100644 index 0000000..82072c2 --- /dev/null +++ b/_posts/2020-05-05-may.md @@ -0,0 +1,61 @@ +--- +layout: post-slots +title: Meetup on the 5th of May, 2020 +datetitle: May 5th, 2015 +published: false +meetupdate: 2020-05-05 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
diff --git a/_posts/2020-06-02-june.md b/_posts/2020-06-02-june.md new file mode 100644 index 0000000..3be1c01 --- /dev/null +++ b/_posts/2020-06-02-june.md @@ -0,0 +1,61 @@ +--- +layout: post-slots +title: Meetup on the 2nd of June, 2020 +datetitle: June 2nd, 2015 +published: false +meetupdate: 2020-06-02 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
diff --git a/_posts/2020-07-07-july.md b/_posts/2020-07-07-july.md new file mode 100644 index 0000000..7a61143 --- /dev/null +++ b/_posts/2020-07-07-july.md @@ -0,0 +1,61 @@ +--- +layout: post-slots +title: Meetup on the 7th of July, 2020 +datetitle: July 7th, 2015 +published: false +meetupdate: 2020-07-07 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
diff --git a/_posts/2020-08-04-august.md b/_posts/2020-08-04-august.md new file mode 100644 index 0000000..a4a451f --- /dev/null +++ b/_posts/2020-08-04-august.md @@ -0,0 +1,61 @@ +--- +layout: post-slots +title: Meetup on the 4th of August, 2020 +datetitle: August 4th, 2015 +published: false +meetupdate: 2020-08-04 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
diff --git a/_posts/2020-09-01-september.md b/_posts/2020-09-01-september.md new file mode 100644 index 0000000..763849e --- /dev/null +++ b/_posts/2020-09-01-september.md @@ -0,0 +1,61 @@ +--- +layout: post-slots +title: Meetup on the 1st of September, 2020 +datetitle: September 1st, 2015 +published: false +meetupdate: 2020-09-01 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
diff --git a/_posts/2020-10-06-october.md b/_posts/2020-10-06-october.md new file mode 100644 index 0000000..f51eafe --- /dev/null +++ b/_posts/2020-10-06-october.md @@ -0,0 +1,61 @@ +--- +layout: post-slots +title: Meetup on the 6th of October, 2020 +datetitle: October 6th, 2015 +published: false +meetupdate: 2020-10-06 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
diff --git a/_posts/2020-11-03-november.md b/_posts/2020-11-03-november.md new file mode 100644 index 0000000..0e65804 --- /dev/null +++ b/_posts/2020-11-03-november.md @@ -0,0 +1,61 @@ +--- +layout: post-slots +title: Meetup on the 3rd of November, 2020 +datetitle: November 3rd, 2015 +published: false +meetupdate: 2020-11-03 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
diff --git a/_posts/2020-12-01-december.md b/_posts/2020-12-01-december.md new file mode 100644 index 0000000..daa0375 --- /dev/null +++ b/_posts/2020-12-01-december.md @@ -0,0 +1,61 @@ +--- +layout: post-slots +title: Meetup on the 1st of December, 2020 +datetitle: December 1st, 2015 +published: false +meetupdate: 2020-12-01 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
diff --git a/_posts/2022-05-03-may.md b/_posts/2022-05-03-may.md new file mode 100644 index 0000000..36444c2 --- /dev/null +++ b/_posts/2022-05-03-may.md @@ -0,0 +1,60 @@ +--- +layout: post-slots +title: Meetup on the 3rd of May, 2022 +datetitle: May 3rd, 2022 +published: true +meetupdate: 2022-05-03 +cancelled: NO TALKS :-( +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

CakePHP Test Fixture Factories (framework agnostic)

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

CakePHP is known for featuring a powerful and intuitive convention-based Object Relational Mapper. Thanks to it, we came up with an efficient method to write test fixtures on the fly: the CakePHP Fixture Factories. Tests are fast to write and document ideally your application. While the package can conveniently be embedded in any PHP application, it increases the tests’ speed by offering the possibility to create entities without persistence. https://github.com/vierge-noire/cakephp-fixture-factories

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ diff --git a/_posts/2022-06-07-june.md b/_posts/2022-06-07-june.md new file mode 100644 index 0000000..10750f6 --- /dev/null +++ b/_posts/2022-06-07-june.md @@ -0,0 +1,63 @@ +--- +layout: post-slots +title: Meetup on the 7th of June, 2022 +datetitle: June 7th, 2022 +published: true +meetupdate: 2022-06-07 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

MySQL for E-Commerce

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Advanced topics for MySQL: schema design, indexes, locking, replica usage, + queues, logs, data migration, anonymization, legacy data, server configuration, + etc. +

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Thomas Bley

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

CakePHP Test Fixture Factories (framework agnostic)

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

CakePHP is known for featuring a powerful and intuitive convention-based Object Relational Mapper. + Thanks to that, we came up with an efficient method to write test fixtures on the fly: the CakePHP Fixture Factories. + Tests are fast to write and document ideally your application. + While the package can conveniently be embedded in any PHP application, it increases the tests’ speed by offering the possibility + to create entities without persistence. https://github.com/vierge-noire/cakephp-fixture-factories

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Juan Pablo Ramirez

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ diff --git a/_posts/2023-06-13-june.md b/_posts/2023-06-13-june.md new file mode 100644 index 0000000..78b2cf7 --- /dev/null +++ b/_posts/2023-06-13-june.md @@ -0,0 +1,63 @@ +--- +layout: post-slots +title: Meetup on the 13th of June, 2023 +datetitle: June 13th, 2023 +published: true +meetupdate: 2023-06-13 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Search, Embeddings & Vector-DBs

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Introduction & basic concepts

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} + {% comment %}

Submit your talk now

{% endcomment %} + + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Christoph Lühr

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ + + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
diff --git a/_posts/2023-07-04-july.md b/_posts/2023-07-04-july.md new file mode 100644 index 0000000..2c5bc39 --- /dev/null +++ b/_posts/2023-07-04-july.md @@ -0,0 +1,62 @@ +--- +layout: post-slots +title: Meetup on the 4th of July, 2023 +datetitle: July 4th, 2023 +published: true +meetupdate: 2023-07-04 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

PHP and Google Cloud Functions

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

+ I'll use a simple open-source tool that connects Google's Uptime Checks to Atlassian Statuspage as an example showing you how PHP can be used in Google Cloud Functions and how it can interact with Pub/Sub. We'll walk through the process of building and deploying a PHP 8.1 function. (lightning talk) +

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Tony VLCEK

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ + + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
diff --git a/_posts/2023-08-01-august.md b/_posts/2023-08-01-august.md new file mode 100644 index 0000000..2931692 --- /dev/null +++ b/_posts/2023-08-01-august.md @@ -0,0 +1,50 @@ +--- +layout: post-slots +title: Meetup on the 1st of August, 2023 +datetitle: August 1st, 2023 +published: true +meetupdate: 2023-08-01 +--- + +
+ +

Linux Systems Tools for PHP debugging

+

+ How to use Linux System tooling, like strace and gdb to debug your PHP code + and look deeper into what's going on than userland tools allow you to! +

+ +

Volker Dusch

+ +
+ +
+ +

Redis Bedtime Stories

+

+ 3 Redis short stories. 30000 requests per second. 3 lessons learned. +

+ +

Igor

+ +
+ + + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
diff --git a/_posts/2023-09-05-september.md b/_posts/2023-09-05-september.md new file mode 100644 index 0000000..db13682 --- /dev/null +++ b/_posts/2023-09-05-september.md @@ -0,0 +1,61 @@ +--- +layout: post-slots +title: Meetup on the 5th of September, 2023 +datetitle: September 5th, 2015 +published: true +meetupdate: 2023-09-05 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
diff --git a/_posts/2023-11-07-november.md b/_posts/2023-11-07-november.md new file mode 100644 index 0000000..8675593 --- /dev/null +++ b/_posts/2023-11-07-november.md @@ -0,0 +1,64 @@ +--- +layout: post-slots +title: Meetup on the 7thth of November, 2023 +datetitle: November 7th, 2023 +published: true +meetupdate: 2023-11-07 +cancelled: We got no Talks - but checkout the Symfony Usergroup +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ + diff --git a/_posts/2025-07-23-july.md b/_posts/2025-07-23-july.md new file mode 100644 index 0000000..763f6ba --- /dev/null +++ b/_posts/2025-07-23-july.md @@ -0,0 +1,38 @@ +--- +layout: post-slots +title: Meetup on the 23rd of July, 2025 +datetitle: July 23rd, 2025 +published: true +meetupdate: 2025-07-23 +cancelled: false +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

What's Coming in PHP 8.5

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Join Volker, PHP 8.5 Release Manager, talking about upcoming changes in PHP's November 2025 release.

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Volker Dusch

+ +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Extended Q&A round about all your questions

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

Bring your own questions and those of your friends!

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} +

Volker Dusch

+ +
diff --git a/_posts/_template.html b/_posts/_template.html new file mode 100644 index 0000000..93eb400 --- /dev/null +++ b/_posts/_template.html @@ -0,0 +1,63 @@ +--- +layout: post-slots +title: Meetup on the @@@th of @@@, 2015 +datetitle: @@@ @@@th, 2015 +published: false +meetupdate: 2015-00-00 +--- + +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #1 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #2 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ +
+ + {% comment %} ==== TALK / PRESENTATION - SLOT #3 ==== {% endcomment %} + + {% comment %} TITLE OF YOUR TALK: {% endcomment %} +

Free Slot

+ + {% comment %} SUB-TITLE OR DESCRIPTION: {% endcomment %} +

This 25 minute slot could be yours!

+ + {% comment %} REMOVE NEXT LINE: {% endcomment %} +

Submit your talk now

+ + {% comment %} UNCOMMENT/EDIT NEXT LINE: {% endcomment %} + + +
+ + diff --git a/_tools/newpost.php b/_tools/newpost.php new file mode 100755 index 0000000..cbd808a --- /dev/null +++ b/_tools/newpost.php @@ -0,0 +1,41 @@ +#!/usr/bin/env php +setDate(date("Y"), date("n") + 1, 1); +try { + if (isset($argv[1])) { + $nextDate = new \DateTime($argv[1] . "-01"); + } +} catch (\Exception $e) { + echo "Invliade date 'YYYY-MM'\n"; + exit(); +} + +if ($nextDate->format("w") != 2) { + $nextDate->modify("next tuesday"); +} + +$lines = []; +$lines[] = "---\n"; +$lines[] = "layout: post-slots\n"; +$lines[] = "title: Meetup on the " . $nextDate->format('jS \o\f F, Y') . "\n"; +$lines[] = "datetitle: " . $nextDate->format('F jS, Y') . "\n"; +$lines[] = "published: false\n"; +$lines[] = "meetupdate: " . $nextDate->format('Y-m-d') . "\n"; +$lines[] = "---\n"; + +$postsFolder = __DIR__ . "/../_posts"; + +$template = file($postsFolder . "/_template.html"); + +$newFile = $lines + $template; +$newFileName = $nextDate->format("Y-m-d-") . strtolower($nextDate->format("F")) . ".html"; + +if (file_exists($postsFolder . "/" . $newFileName)) { + echo "File " . $newFileName . " already exists\n"; + exit(); +} + +file_put_contents($postsFolder . "/" . $newFileName, $newFile); +echo "Done writing " . $newFileName . "\n"; diff --git a/archive.html b/archive.html new file mode 100644 index 0000000..ce8a0bb --- /dev/null +++ b/archive.html @@ -0,0 +1,21 @@ +--- +layout: default +title: Archive +subtitle: Peek into the past +--- + +
+
+
+

Previous Meetups

+ +
+
+
diff --git a/assets/bootstrap/css/bootstrap.css b/assets/bootstrap/css/bootstrap.css new file mode 100644 index 0000000..a47a996 --- /dev/null +++ b/assets/bootstrap/css/bootstrap.css @@ -0,0 +1,5553 @@ +/*! + * Bootstrap v2.2.1 + * + * Copyright 2012 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 @twitter by @mdo and @fat. + */ +.clearfix { + *zoom: 1; +} +.clearfix:before, +.clearfix:after { + display: table; + content: ""; + line-height: 0; +} +.clearfix:after { + clear: both; +} +.hide-text { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} +.input-block-level { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +nav, +section { + display: block; +} +audio, +canvas, +video { + display: inline-block; + *display: inline; + *zoom: 1; +} +audio:not([controls]) { + display: none; +} +html { + font-size: 100%; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} +a:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +a:hover, +a:active { + outline: 0; +} +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} +sup { + top: -0.5em; +} +sub { + bottom: -0.25em; +} +img { + /* Responsive images (ensure images don't scale beyond their parents) */ + + max-width: 100%; + /* Part 1: Set a maxium relative to the parent */ + + width: auto\9; + /* IE7-8 need help adjusting responsive images */ + + height: auto; + /* Part 2: Scale the height according to the width, otherwise you get stretching */ + + vertical-align: middle; + border: 0; + -ms-interpolation-mode: bicubic; +} +#map_canvas img, +.google-maps img { + max-width: none; +} +button, +input, +select, +textarea { + margin: 0; + font-size: 100%; + vertical-align: middle; +} +button, +input { + *overflow: visible; + line-height: normal; +} +button::-moz-focus-inner, +input::-moz-focus-inner { + padding: 0; + border: 0; +} +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; + cursor: pointer; +} +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-decoration, +input[type="search"]::-webkit-search-cancel-button { + -webkit-appearance: none; +} +textarea { + overflow: auto; + vertical-align: top; +} +body { + margin: 0; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 20px; + color: #333333; + background-color: #ffffff; +} +a { + color: #0088cc; + text-decoration: none; +} +a:hover { + color: #005580; + text-decoration: underline; +} +.img-rounded { + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} +.img-polaroid { + padding: 4px; + background-color: #fff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); +} +.img-circle { + -webkit-border-radius: 500px; + -moz-border-radius: 500px; + border-radius: 500px; +} +.row { + margin-left: -20px; + *zoom: 1; +} +.row:before, +.row:after { + display: table; + content: ""; + line-height: 0; +} +.row:after { + clear: both; +} +[class*="span"] { + float: left; + min-height: 1px; + margin-left: 20px; +} +.container, +.navbar-static-top .container, +.navbar-fixed-top .container, +.navbar-fixed-bottom .container { + width: 940px; +} +.span12 { + width: 940px; +} +.span11 { + width: 860px; +} +.span10 { + width: 780px; +} +.span9 { + width: 700px; +} +.span8 { + width: 620px; +} +.span7 { + width: 540px; +} +.span6 { + width: 460px; +} +.span5 { + width: 380px; +} +.span4 { + width: 300px; +} +.span3 { + width: 220px; +} +.span2 { + width: 140px; +} +.span1 { + width: 60px; +} +.offset12 { + margin-left: 980px; +} +.offset11 { + margin-left: 900px; +} +.offset10 { + margin-left: 820px; +} +.offset9 { + margin-left: 740px; +} +.offset8 { + margin-left: 660px; +} +.offset7 { + margin-left: 580px; +} +.offset6 { + margin-left: 500px; +} +.offset5 { + margin-left: 420px; +} +.offset4 { + margin-left: 340px; +} +.offset3 { + margin-left: 260px; +} +.offset2 { + margin-left: 180px; +} +.offset1 { + margin-left: 100px; +} +.row-fluid { + width: 100%; + *zoom: 1; +} +.row-fluid:before, +.row-fluid:after { + display: table; + content: ""; + line-height: 0; +} +.row-fluid:after { + clear: both; +} +.row-fluid [class*="span"] { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + float: left; + margin-left: 2.127659574468085%; + *margin-left: 2.074468085106383%; +} +.row-fluid [class*="span"]:first-child { + margin-left: 0; +} +.row-fluid .controls-row [class*="span"] + [class*="span"] { + margin-left: 2.127659574468085%; +} +.row-fluid .span12 { + width: 100%; + *width: 99.94680851063829%; +} +.row-fluid .span11 { + width: 91.48936170212765%; + *width: 91.43617021276594%; +} +.row-fluid .span10 { + width: 82.97872340425532%; + *width: 82.92553191489361%; +} +.row-fluid .span9 { + width: 74.46808510638297%; + *width: 74.41489361702126%; +} +.row-fluid .span8 { + width: 65.95744680851064%; + *width: 65.90425531914893%; +} +.row-fluid .span7 { + width: 57.44680851063829%; + *width: 57.39361702127659%; +} +.row-fluid .span6 { + width: 48.93617021276595%; + *width: 48.88297872340425%; +} +.row-fluid .span5 { + width: 40.42553191489362%; + *width: 40.37234042553192%; +} +.row-fluid .span4 { + width: 31.914893617021278%; + *width: 31.861702127659576%; +} +.row-fluid .span3 { + width: 23.404255319148934%; + *width: 23.351063829787233%; +} +.row-fluid .span2 { + width: 14.893617021276595%; + *width: 14.840425531914894%; +} +.row-fluid .span1 { + width: 6.382978723404255%; + *width: 6.329787234042553%; +} +.row-fluid .offset12 { + margin-left: 104.25531914893617%; + *margin-left: 104.14893617021275%; +} +.row-fluid .offset12:first-child { + margin-left: 102.12765957446808%; + *margin-left: 102.02127659574467%; +} +.row-fluid .offset11 { + margin-left: 95.74468085106382%; + *margin-left: 95.6382978723404%; +} +.row-fluid .offset11:first-child { + margin-left: 93.61702127659574%; + *margin-left: 93.51063829787232%; +} +.row-fluid .offset10 { + margin-left: 87.23404255319149%; + *margin-left: 87.12765957446807%; +} +.row-fluid .offset10:first-child { + margin-left: 85.1063829787234%; + *margin-left: 84.99999999999999%; +} +.row-fluid .offset9 { + margin-left: 78.72340425531914%; + *margin-left: 78.61702127659572%; +} +.row-fluid .offset9:first-child { + margin-left: 76.59574468085106%; + *margin-left: 76.48936170212764%; +} +.row-fluid .offset8 { + margin-left: 70.2127659574468%; + *margin-left: 70.10638297872339%; +} +.row-fluid .offset8:first-child { + margin-left: 68.08510638297872%; + *margin-left: 67.9787234042553%; +} +.row-fluid .offset7 { + margin-left: 61.70212765957446%; + *margin-left: 61.59574468085106%; +} +.row-fluid .offset7:first-child { + margin-left: 59.574468085106375%; + *margin-left: 59.46808510638297%; +} +.row-fluid .offset6 { + margin-left: 53.191489361702125%; + *margin-left: 53.085106382978715%; +} +.row-fluid .offset6:first-child { + margin-left: 51.063829787234035%; + *margin-left: 50.95744680851063%; +} +.row-fluid .offset5 { + margin-left: 44.68085106382979%; + *margin-left: 44.57446808510638%; +} +.row-fluid .offset5:first-child { + margin-left: 42.5531914893617%; + *margin-left: 42.4468085106383%; +} +.row-fluid .offset4 { + margin-left: 36.170212765957444%; + *margin-left: 36.06382978723405%; +} +.row-fluid .offset4:first-child { + margin-left: 34.04255319148936%; + *margin-left: 33.93617021276596%; +} +.row-fluid .offset3 { + margin-left: 27.659574468085104%; + *margin-left: 27.5531914893617%; +} +.row-fluid .offset3:first-child { + margin-left: 25.53191489361702%; + *margin-left: 25.425531914893618%; +} +.row-fluid .offset2 { + margin-left: 19.148936170212764%; + *margin-left: 19.04255319148936%; +} +.row-fluid .offset2:first-child { + margin-left: 17.02127659574468%; + *margin-left: 16.914893617021278%; +} +.row-fluid .offset1 { + margin-left: 10.638297872340425%; + *margin-left: 10.53191489361702%; +} +.row-fluid .offset1:first-child { + margin-left: 8.51063829787234%; + *margin-left: 8.404255319148938%; +} +[class*="span"].hide, +.row-fluid [class*="span"].hide { + display: none; +} +[class*="span"].pull-right, +.row-fluid [class*="span"].pull-right { + float: right; +} +.container { + margin-right: auto; + margin-left: auto; + *zoom: 1; +} +.container:before, +.container:after { + display: table; + content: ""; + line-height: 0; +} +.container:after { + clear: both; +} +.container-fluid { + padding-right: 20px; + padding-left: 20px; + *zoom: 1; +} +.container-fluid:before, +.container-fluid:after { + display: table; + content: ""; + line-height: 0; +} +.container-fluid:after { + clear: both; +} +p { + margin: 0 0 10px; +} +.lead { + margin-bottom: 20px; + font-size: 21px; + font-weight: 200; + line-height: 30px; +} +small { + font-size: 85%; +} +strong { + font-weight: bold; +} +em { + font-style: italic; +} +cite { + font-style: normal; +} +.muted { + color: #999999; +} +.text-warning { + color: #c09853; +} +a.text-warning:hover { + color: #a47e3c; +} +.text-error { + color: #b94a48; +} +a.text-error:hover { + color: #953b39; +} +.text-info { + color: #3a87ad; +} +a.text-info:hover { + color: #2d6987; +} +.text-success { + color: #468847; +} +a.text-success:hover { + color: #356635; +} +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 10px 0; + font-family: inherit; + font-weight: bold; + line-height: 20px; + color: inherit; + text-rendering: optimizelegibility; +} +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small { + font-weight: normal; + line-height: 1; + color: #999999; +} +h1, +h2, +h3 { + line-height: 40px; +} +h1 { + font-size: 38.5px; +} +h2 { + font-size: 31.5px; +} +h3 { + font-size: 24.5px; +} +h4 { + font-size: 17.5px; +} +h5 { + font-size: 14px; +} +h6 { + font-size: 11.9px; +} +h1 small { + font-size: 24.5px; +} +h2 small { + font-size: 17.5px; +} +h3 small { + font-size: 14px; +} +h4 small { + font-size: 14px; +} +.page-header { + padding-bottom: 9px; + margin: 20px 0 30px; + border-bottom: 1px solid #eeeeee; +} +ul, +ol { + padding: 0; + margin: 0 0 10px 25px; +} +ul ul, +ul ol, +ol ol, +ol ul { + margin-bottom: 0; +} +li { + line-height: 20px; +} +ul.unstyled, +ol.unstyled { + margin-left: 0; + list-style: none; +} +dl { + margin-bottom: 20px; +} +dt, +dd { + line-height: 20px; +} +dt { + font-weight: bold; +} +dd { + margin-left: 10px; +} +.dl-horizontal { + *zoom: 1; +} +.dl-horizontal:before, +.dl-horizontal:after { + display: table; + content: ""; + line-height: 0; +} +.dl-horizontal:after { + clear: both; +} +.dl-horizontal dt { + float: left; + width: 160px; + clear: left; + text-align: right; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.dl-horizontal dd { + margin-left: 180px; +} +hr { + margin: 20px 0; + border: 0; + border-top: 1px solid #eeeeee; + border-bottom: 1px solid #ffffff; +} +abbr[title], +abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted #999999; +} +abbr.initialism { + font-size: 90%; + text-transform: uppercase; +} +blockquote { + padding: 0 0 0 15px; + margin: 0 0 20px; + border-left: 5px solid #eeeeee; +} +blockquote p { + margin-bottom: 0; + font-size: 16px; + font-weight: 300; + line-height: 25px; +} +blockquote small { + display: block; + line-height: 20px; + color: #999999; +} +blockquote small:before { + content: '\2014 \00A0'; +} +blockquote.pull-right { + float: 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: 20px; +} +code, +pre { + padding: 0 3px 2px; + font-family: Monaco, Menlo, Consolas, "Courier New", monospace; + font-size: 12px; + color: #333333; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +code { + padding: 2px 4px; + color: #d14; + background-color: #f7f7f9; + border: 1px solid #e1e1e8; +} +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 20px; + word-break: break-all; + word-wrap: break-word; + white-space: pre; + white-space: pre-wrap; + background-color: #f5f5f5; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.15); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +pre.prettyprint { + margin-bottom: 20px; +} +pre code { + padding: 0; + color: inherit; + background-color: transparent; + border: 0; +} +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} +.label, +.badge { + display: inline-block; + padding: 2px 4px; + font-size: 11.844px; + font-weight: bold; + line-height: 14px; + color: #ffffff; + vertical-align: baseline; + white-space: nowrap; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #999999; +} +.label { + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +.badge { + padding-left: 9px; + padding-right: 9px; + -webkit-border-radius: 9px; + -moz-border-radius: 9px; + border-radius: 9px; +} +a.label:hover, +a.badge:hover { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} +.label-important, +.badge-important { + background-color: #b94a48; +} +.label-important[href], +.badge-important[href] { + background-color: #953b39; +} +.label-warning, +.badge-warning { + background-color: #f89406; +} +.label-warning[href], +.badge-warning[href] { + background-color: #c67605; +} +.label-success, +.badge-success { + background-color: #468847; +} +.label-success[href], +.badge-success[href] { + background-color: #356635; +} +.label-info, +.badge-info { + background-color: #3a87ad; +} +.label-info[href], +.badge-info[href] { + background-color: #2d6987; +} +.label-inverse, +.badge-inverse { + background-color: #333333; +} +.label-inverse[href], +.badge-inverse[href] { + background-color: #1a1a1a; +} +.btn .label, +.btn .badge { + position: relative; + top: -1px; +} +.btn-mini .label, +.btn-mini .badge { + top: 0; +} +table { + max-width: 100%; + background-color: transparent; + border-collapse: collapse; + border-spacing: 0; +} +.table { + width: 100%; + margin-bottom: 20px; +} +.table th, +.table td { + padding: 8px; + line-height: 20px; + text-align: left; + vertical-align: top; + border-top: 1px solid #dddddd; +} +.table th { + font-weight: bold; +} +.table thead th { + vertical-align: bottom; +} +.table caption + thead tr:first-child th, +.table caption + thead tr:first-child td, +.table colgroup + thead tr:first-child th, +.table colgroup + thead tr:first-child td, +.table thead:first-child tr:first-child th, +.table thead:first-child tr:first-child td { + border-top: 0; +} +.table tbody + tbody { + border-top: 2px solid #dddddd; +} +.table-condensed th, +.table-condensed td { + padding: 4px 5px; +} +.table-bordered { + border: 1px solid #dddddd; + border-collapse: separate; + *border-collapse: collapse; + border-left: 0; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.table-bordered th, +.table-bordered td { + border-left: 1px solid #dddddd; +} +.table-bordered caption + thead tr:first-child th, +.table-bordered caption + tbody tr:first-child th, +.table-bordered caption + tbody tr:first-child td, +.table-bordered colgroup + thead tr:first-child th, +.table-bordered colgroup + tbody tr:first-child th, +.table-bordered colgroup + tbody tr:first-child td, +.table-bordered thead:first-child tr:first-child th, +.table-bordered tbody:first-child tr:first-child th, +.table-bordered tbody:first-child tr:first-child td { + border-top: 0; +} +.table-bordered thead:first-child tr:first-child th:first-child, +.table-bordered tbody:first-child tr:first-child td:first-child { + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; +} +.table-bordered thead:first-child tr:first-child th:last-child, +.table-bordered tbody:first-child tr:first-child td:last-child { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; +} +.table-bordered thead:last-child tr:last-child th:first-child, +.table-bordered tbody:last-child tr:last-child td:first-child, +.table-bordered tfoot:last-child tr:last-child td:first-child { + -webkit-border-radius: 0 0 0 4px; + -moz-border-radius: 0 0 0 4px; + border-radius: 0 0 0 4px; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; +} +.table-bordered thead:last-child tr:last-child th:last-child, +.table-bordered tbody:last-child tr:last-child td:last-child, +.table-bordered tfoot:last-child tr:last-child td:last-child { + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-bottomright: 4px; +} +.table-bordered caption + thead tr:first-child th:first-child, +.table-bordered caption + tbody tr:first-child td:first-child, +.table-bordered colgroup + thead tr:first-child th:first-child, +.table-bordered colgroup + tbody tr:first-child td:first-child { + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; +} +.table-bordered caption + thead tr:first-child th:last-child, +.table-bordered caption + tbody tr:first-child td:last-child, +.table-bordered colgroup + thead tr:first-child th:last-child, +.table-bordered colgroup + tbody tr:first-child td:last-child { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; +} +.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 td[class*="span"], +table th[class*="span"], +.row-fluid table td[class*="span"], +.row-fluid table th[class*="span"] { + display: table-cell; + float: none; + margin-left: 0; +} +.table td.span1, +.table th.span1 { + float: none; + width: 44px; + margin-left: 0; +} +.table td.span2, +.table th.span2 { + float: none; + width: 124px; + margin-left: 0; +} +.table td.span3, +.table th.span3 { + float: none; + width: 204px; + margin-left: 0; +} +.table td.span4, +.table th.span4 { + float: none; + width: 284px; + margin-left: 0; +} +.table td.span5, +.table th.span5 { + float: none; + width: 364px; + margin-left: 0; +} +.table td.span6, +.table th.span6 { + float: none; + width: 444px; + margin-left: 0; +} +.table td.span7, +.table th.span7 { + float: none; + width: 524px; + margin-left: 0; +} +.table td.span8, +.table th.span8 { + float: none; + width: 604px; + margin-left: 0; +} +.table td.span9, +.table th.span9 { + float: none; + width: 684px; + margin-left: 0; +} +.table td.span10, +.table th.span10 { + float: none; + width: 764px; + margin-left: 0; +} +.table td.span11, +.table th.span11 { + float: none; + width: 844px; + margin-left: 0; +} +.table td.span12, +.table th.span12 { + float: none; + width: 924px; + margin-left: 0; +} +.table tbody tr.success td { + background-color: #dff0d8; +} +.table tbody tr.error td { + background-color: #f2dede; +} +.table tbody tr.warning td { + background-color: #fcf8e3; +} +.table tbody tr.info td { + background-color: #d9edf7; +} +.table-hover tbody tr.success:hover td { + background-color: #d0e9c6; +} +.table-hover tbody tr.error:hover td { + background-color: #ebcccc; +} +.table-hover tbody tr.warning:hover td { + background-color: #faf2cc; +} +.table-hover tbody tr.info:hover td { + background-color: #c4e3f3; +} +form { + margin: 0 0 20px; +} +fieldset { + padding: 0; + margin: 0; + border: 0; +} +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 21px; + line-height: 40px; + color: #333333; + border: 0; + border-bottom: 1px solid #e5e5e5; +} +legend small { + font-size: 15px; + color: #999999; +} +label, +input, +button, +select, +textarea { + font-size: 14px; + font-weight: normal; + line-height: 20px; +} +input, +button, +select, +textarea { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +} +label { + display: block; + margin-bottom: 5px; +} +select, +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +.uneditable-input { + display: inline-block; + height: 20px; + padding: 4px 6px; + margin-bottom: 10px; + font-size: 14px; + line-height: 20px; + color: #555555; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + vertical-align: middle; +} +input, +textarea, +.uneditable-input { + width: 206px; +} +textarea { + height: auto; +} +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +.uneditable-input { + background-color: #ffffff; + border: 1px solid #cccccc; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-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 linear .2s, box-shadow linear .2s; + -moz-transition: border linear .2s, box-shadow linear .2s; + -o-transition: border linear .2s, box-shadow linear .2s; + transition: border linear .2s, box-shadow linear .2s; +} +textarea:focus, +input[type="text"]:focus, +input[type="password"]:focus, +input[type="datetime"]:focus, +input[type="datetime-local"]:focus, +input[type="date"]:focus, +input[type="month"]:focus, +input[type="time"]:focus, +input[type="week"]:focus, +input[type="number"]:focus, +input[type="email"]:focus, +input[type="url"]:focus, +input[type="search"]:focus, +input[type="tel"]:focus, +input[type="color"]:focus, +.uneditable-input:focus { + border-color: rgba(82, 168, 236, 0.8); + outline: 0; + outline: thin dotted \9; + /* IE6-9 */ + + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6); + -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6); +} +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + *margin-top: 0; + /* IE7 */ + + margin-top: 1px \9; + /* IE8-9 */ + + line-height: normal; + cursor: pointer; +} +input[type="file"], +input[type="image"], +input[type="submit"], +input[type="reset"], +input[type="button"], +input[type="radio"], +input[type="checkbox"] { + width: auto; +} +select, +input[type="file"] { + height: 30px; + /* In IE7, the height of the select element cannot be changed by height, only font-size */ + + *margin-top: 4px; + /* For IE7, add top margin to align select with labels */ + + line-height: 30px; +} +select { + width: 220px; + border: 1px solid #cccccc; + background-color: #ffffff; +} +select[multiple], +select[size] { + height: auto; +} +select:focus, +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; +} +.uneditable-input, +.uneditable-textarea { + color: #999999; + background-color: #fcfcfc; + border-color: #cccccc; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + cursor: not-allowed; +} +.uneditable-input { + overflow: hidden; + white-space: nowrap; +} +.uneditable-textarea { + width: auto; + height: auto; +} +input:-moz-placeholder, +textarea:-moz-placeholder { + color: #999999; +} +input:-ms-input-placeholder, +textarea:-ms-input-placeholder { + color: #999999; +} +input::-webkit-input-placeholder, +textarea::-webkit-input-placeholder { + color: #999999; +} +.radio, +.checkbox { + min-height: 20px; + padding-left: 20px; +} +.radio input[type="radio"], +.checkbox input[type="checkbox"] { + float: left; + margin-left: -20px; +} +.controls > .radio:first-child, +.controls > .checkbox:first-child { + padding-top: 5px; +} +.radio.inline, +.checkbox.inline { + display: inline-block; + padding-top: 5px; + margin-bottom: 0; + vertical-align: middle; +} +.radio.inline + .radio.inline, +.checkbox.inline + .checkbox.inline { + margin-left: 10px; +} +.input-mini { + width: 60px; +} +.input-small { + width: 90px; +} +.input-medium { + width: 150px; +} +.input-large { + width: 210px; +} +.input-xlarge { + width: 270px; +} +.input-xxlarge { + width: 530px; +} +input[class*="span"], +select[class*="span"], +textarea[class*="span"], +.uneditable-input[class*="span"], +.row-fluid input[class*="span"], +.row-fluid select[class*="span"], +.row-fluid textarea[class*="span"], +.row-fluid .uneditable-input[class*="span"] { + float: none; + margin-left: 0; +} +.input-append input[class*="span"], +.input-append .uneditable-input[class*="span"], +.input-prepend input[class*="span"], +.input-prepend .uneditable-input[class*="span"], +.row-fluid input[class*="span"], +.row-fluid select[class*="span"], +.row-fluid textarea[class*="span"], +.row-fluid .uneditable-input[class*="span"], +.row-fluid .input-prepend [class*="span"], +.row-fluid .input-append [class*="span"] { + display: inline-block; +} +input, +textarea, +.uneditable-input { + margin-left: 0; +} +.controls-row [class*="span"] + [class*="span"] { + margin-left: 20px; +} +input.span12, textarea.span12, .uneditable-input.span12 { + width: 926px; +} +input.span11, textarea.span11, .uneditable-input.span11 { + width: 846px; +} +input.span10, textarea.span10, .uneditable-input.span10 { + width: 766px; +} +input.span9, textarea.span9, .uneditable-input.span9 { + width: 686px; +} +input.span8, textarea.span8, .uneditable-input.span8 { + width: 606px; +} +input.span7, textarea.span7, .uneditable-input.span7 { + width: 526px; +} +input.span6, textarea.span6, .uneditable-input.span6 { + width: 446px; +} +input.span5, textarea.span5, .uneditable-input.span5 { + width: 366px; +} +input.span4, textarea.span4, .uneditable-input.span4 { + width: 286px; +} +input.span3, textarea.span3, .uneditable-input.span3 { + width: 206px; +} +input.span2, textarea.span2, .uneditable-input.span2 { + width: 126px; +} +input.span1, textarea.span1, .uneditable-input.span1 { + width: 46px; +} +.controls-row { + *zoom: 1; +} +.controls-row:before, +.controls-row:after { + display: table; + content: ""; + line-height: 0; +} +.controls-row:after { + clear: both; +} +.controls-row [class*="span"], +.row-fluid .controls-row [class*="span"] { + float: left; +} +.controls-row .checkbox[class*="span"], +.controls-row .radio[class*="span"] { + padding-top: 5px; +} +input[disabled], +select[disabled], +textarea[disabled], +input[readonly], +select[readonly], +textarea[readonly] { + cursor: not-allowed; + background-color: #eeeeee; +} +input[type="radio"][disabled], +input[type="checkbox"][disabled], +input[type="radio"][readonly], +input[type="checkbox"][readonly] { + background-color: transparent; +} +.control-group.warning > label, +.control-group.warning .help-block, +.control-group.warning .help-inline { + color: #c09853; +} +.control-group.warning .checkbox, +.control-group.warning .radio, +.control-group.warning input, +.control-group.warning select, +.control-group.warning textarea { + color: #c09853; +} +.control-group.warning input, +.control-group.warning select, +.control-group.warning textarea { + border-color: #c09853; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.control-group.warning input:focus, +.control-group.warning select:focus, +.control-group.warning textarea:focus { + border-color: #a47e3c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; + -moz-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; +} +.control-group.warning .input-prepend .add-on, +.control-group.warning .input-append .add-on { + color: #c09853; + background-color: #fcf8e3; + border-color: #c09853; +} +.control-group.error > label, +.control-group.error .help-block, +.control-group.error .help-inline { + color: #b94a48; +} +.control-group.error .checkbox, +.control-group.error .radio, +.control-group.error input, +.control-group.error select, +.control-group.error textarea { + color: #b94a48; +} +.control-group.error input, +.control-group.error select, +.control-group.error textarea { + border-color: #b94a48; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.control-group.error input:focus, +.control-group.error select:focus, +.control-group.error textarea:focus { + border-color: #953b39; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; + -moz-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; +} +.control-group.error .input-prepend .add-on, +.control-group.error .input-append .add-on { + color: #b94a48; + background-color: #f2dede; + border-color: #b94a48; +} +.control-group.success > label, +.control-group.success .help-block, +.control-group.success .help-inline { + color: #468847; +} +.control-group.success .checkbox, +.control-group.success .radio, +.control-group.success input, +.control-group.success select, +.control-group.success textarea { + color: #468847; +} +.control-group.success input, +.control-group.success select, +.control-group.success textarea { + border-color: #468847; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.control-group.success input:focus, +.control-group.success select:focus, +.control-group.success textarea:focus { + border-color: #356635; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; + -moz-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; +} +.control-group.success .input-prepend .add-on, +.control-group.success .input-append .add-on { + color: #468847; + background-color: #dff0d8; + border-color: #468847; +} +.control-group.info > label, +.control-group.info .help-block, +.control-group.info .help-inline { + color: #3a87ad; +} +.control-group.info .checkbox, +.control-group.info .radio, +.control-group.info input, +.control-group.info select, +.control-group.info textarea { + color: #3a87ad; +} +.control-group.info input, +.control-group.info select, +.control-group.info textarea { + border-color: #3a87ad; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.control-group.info input:focus, +.control-group.info select:focus, +.control-group.info textarea:focus { + border-color: #2d6987; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; +} +.control-group.info .input-prepend .add-on, +.control-group.info .input-append .add-on { + color: #3a87ad; + background-color: #d9edf7; + border-color: #3a87ad; +} +input:focus:required:invalid, +textarea:focus:required:invalid, +select:focus:required:invalid { + color: #b94a48; + border-color: #ee5f5b; +} +input:focus:required:invalid:focus, +textarea:focus:required:invalid:focus, +select:focus:required:invalid:focus { + border-color: #e9322d; + -webkit-box-shadow: 0 0 6px #f8b9b7; + -moz-box-shadow: 0 0 6px #f8b9b7; + box-shadow: 0 0 6px #f8b9b7; +} +.form-actions { + padding: 19px 20px 20px; + margin-top: 20px; + margin-bottom: 20px; + background-color: #f5f5f5; + border-top: 1px solid #e5e5e5; + *zoom: 1; +} +.form-actions:before, +.form-actions:after { + display: table; + content: ""; + line-height: 0; +} +.form-actions:after { + clear: both; +} +.help-block, +.help-inline { + color: #595959; +} +.help-block { + display: block; + margin-bottom: 10px; +} +.help-inline { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; + vertical-align: middle; + padding-left: 5px; +} +.input-append, +.input-prepend { + margin-bottom: 5px; + font-size: 0; + white-space: nowrap; +} +.input-append input, +.input-prepend input, +.input-append select, +.input-prepend select, +.input-append .uneditable-input, +.input-prepend .uneditable-input, +.input-append .dropdown-menu, +.input-prepend .dropdown-menu { + font-size: 14px; +} +.input-append input, +.input-prepend input, +.input-append select, +.input-prepend select, +.input-append .uneditable-input, +.input-prepend .uneditable-input { + position: relative; + margin-bottom: 0; + *margin-left: 0; + vertical-align: top; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} +.input-append input:focus, +.input-prepend input:focus, +.input-append select:focus, +.input-prepend select:focus, +.input-append .uneditable-input:focus, +.input-prepend .uneditable-input:focus { + z-index: 2; +} +.input-append .add-on, +.input-prepend .add-on { + display: inline-block; + width: auto; + height: 20px; + min-width: 16px; + padding: 4px 5px; + font-size: 14px; + font-weight: normal; + line-height: 20px; + text-align: center; + text-shadow: 0 1px 0 #ffffff; + background-color: #eeeeee; + border: 1px solid #ccc; +} +.input-append .add-on, +.input-prepend .add-on, +.input-append .btn, +.input-prepend .btn { + vertical-align: top; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.input-append .active, +.input-prepend .active { + background-color: #a9dba9; + border-color: #46a546; +} +.input-prepend .add-on, +.input-prepend .btn { + margin-right: -1px; +} +.input-prepend .add-on:first-child, +.input-prepend .btn:first-child { + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} +.input-append input, +.input-append select, +.input-append .uneditable-input { + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} +.input-append input + .btn-group .btn, +.input-append select + .btn-group .btn, +.input-append .uneditable-input + .btn-group .btn { + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} +.input-append .add-on, +.input-append .btn, +.input-append .btn-group { + margin-left: -1px; +} +.input-append .add-on:last-child, +.input-append .btn:last-child { + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} +.input-prepend.input-append input, +.input-prepend.input-append select, +.input-prepend.input-append .uneditable-input { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.input-prepend.input-append input + .btn-group .btn, +.input-prepend.input-append select + .btn-group .btn, +.input-prepend.input-append .uneditable-input + .btn-group .btn { + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} +.input-prepend.input-append .add-on:first-child, +.input-prepend.input-append .btn:first-child { + margin-right: -1px; + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} +.input-prepend.input-append .add-on:last-child, +.input-prepend.input-append .btn:last-child { + margin-left: -1px; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} +.input-prepend.input-append .btn-group:first-child { + margin-left: 0; +} +input.search-query { + padding-right: 14px; + padding-right: 4px \9; + padding-left: 14px; + padding-left: 4px \9; + /* IE7-8 doesn't have border-radius, so don't indent the padding */ + + margin-bottom: 0; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} +/* Allow for input prepend/append in search forms */ +.form-search .input-append .search-query, +.form-search .input-prepend .search-query { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.form-search .input-append .search-query { + -webkit-border-radius: 14px 0 0 14px; + -moz-border-radius: 14px 0 0 14px; + border-radius: 14px 0 0 14px; +} +.form-search .input-append .btn { + -webkit-border-radius: 0 14px 14px 0; + -moz-border-radius: 0 14px 14px 0; + border-radius: 0 14px 14px 0; +} +.form-search .input-prepend .search-query { + -webkit-border-radius: 0 14px 14px 0; + -moz-border-radius: 0 14px 14px 0; + border-radius: 0 14px 14px 0; +} +.form-search .input-prepend .btn { + -webkit-border-radius: 14px 0 0 14px; + -moz-border-radius: 14px 0 0 14px; + border-radius: 14px 0 0 14px; +} +.form-search input, +.form-inline input, +.form-horizontal input, +.form-search textarea, +.form-inline textarea, +.form-horizontal textarea, +.form-search select, +.form-inline select, +.form-horizontal select, +.form-search .help-inline, +.form-inline .help-inline, +.form-horizontal .help-inline, +.form-search .uneditable-input, +.form-inline .uneditable-input, +.form-horizontal .uneditable-input, +.form-search .input-prepend, +.form-inline .input-prepend, +.form-horizontal .input-prepend, +.form-search .input-append, +.form-inline .input-append, +.form-horizontal .input-append { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; + margin-bottom: 0; + vertical-align: middle; +} +.form-search .hide, +.form-inline .hide, +.form-horizontal .hide { + display: none; +} +.form-search label, +.form-inline label, +.form-search .btn-group, +.form-inline .btn-group { + display: inline-block; +} +.form-search .input-append, +.form-inline .input-append, +.form-search .input-prepend, +.form-inline .input-prepend { + margin-bottom: 0; +} +.form-search .radio, +.form-search .checkbox, +.form-inline .radio, +.form-inline .checkbox { + padding-left: 0; + margin-bottom: 0; + vertical-align: middle; +} +.form-search .radio input[type="radio"], +.form-search .checkbox input[type="checkbox"], +.form-inline .radio input[type="radio"], +.form-inline .checkbox input[type="checkbox"] { + float: left; + margin-right: 3px; + margin-left: 0; +} +.control-group { + margin-bottom: 10px; +} +legend + .control-group { + margin-top: 20px; + -webkit-margin-top-collapse: separate; +} +.form-horizontal .control-group { + margin-bottom: 20px; + *zoom: 1; +} +.form-horizontal .control-group:before, +.form-horizontal .control-group:after { + display: table; + content: ""; + line-height: 0; +} +.form-horizontal .control-group:after { + clear: both; +} +.form-horizontal .control-label { + float: left; + width: 160px; + padding-top: 5px; + text-align: right; +} +.form-horizontal .controls { + *display: inline-block; + *padding-left: 20px; + margin-left: 180px; + *margin-left: 0; +} +.form-horizontal .controls:first-child { + *padding-left: 180px; +} +.form-horizontal .help-block { + margin-bottom: 0; +} +.form-horizontal input + .help-block, +.form-horizontal select + .help-block, +.form-horizontal textarea + .help-block { + margin-top: 10px; +} +.form-horizontal .form-actions { + padding-left: 180px; +} +.btn { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; + padding: 4px 12px; + margin-bottom: 0; + font-size: 14px; + line-height: 20px; + *line-height: 20px; + text-align: center; + vertical-align: middle; + cursor: pointer; + color: #333333; + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); + background-color: #f5f5f5; + background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6)); + background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -o-linear-gradient(top, #ffffff, #e6e6e6); + background-image: linear-gradient(to bottom, #ffffff, #e6e6e6); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0); + border-color: #e6e6e6 #e6e6e6 #bfbfbf; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #e6e6e6; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + border: 1px solid #bbbbbb; + *border: 0; + border-bottom-color: #a2a2a2; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + *margin-left: .3em; + -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); + -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); + box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); +} +.btn:hover, +.btn:active, +.btn.active, +.btn.disabled, +.btn[disabled] { + color: #333333; + background-color: #e6e6e6; + *background-color: #d9d9d9; +} +.btn:active, +.btn.active { + background-color: #cccccc \9; +} +.btn:first-child { + *margin-left: 0; +} +.btn:hover { + color: #333333; + text-decoration: none; + background-color: #e6e6e6; + *background-color: #d9d9d9; + /* Buttons in IE7 don't get borders, so darken on hover */ + + background-position: 0 -15px; + -webkit-transition: background-position 0.1s linear; + -moz-transition: background-position 0.1s linear; + -o-transition: background-position 0.1s linear; + transition: background-position 0.1s linear; +} +.btn:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.btn.active, +.btn:active { + background-color: #e6e6e6; + background-color: #d9d9d9 \9; + background-image: none; + outline: 0; + -webkit-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05); + -moz-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05); + box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05); +} +.btn.disabled, +.btn[disabled] { + cursor: default; + background-color: #e6e6e6; + background-image: none; + opacity: 0.65; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} +.btn-large { + padding: 11px 19px; + font-size: 17.5px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} +.btn-large [class^="icon-"], +.btn-large [class*=" icon-"] { + margin-top: 2px; +} +.btn-small { + padding: 2px 10px; + font-size: 11.9px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +.btn-small [class^="icon-"], +.btn-small [class*=" icon-"] { + margin-top: 0; +} +.btn-mini { + padding: 1px 6px; + font-size: 10.5px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +.btn-block { + display: block; + width: 100%; + padding-left: 0; + padding-right: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +.btn-block + .btn-block { + margin-top: 5px; +} +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} +.btn-primary.active, +.btn-warning.active, +.btn-danger.active, +.btn-success.active, +.btn-info.active, +.btn-inverse.active { + color: rgba(255, 255, 255, 0.75); +} +.btn { + border-color: #c5c5c5; + border-color: rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.25); +} +.btn-primary { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #006dcc; + background-image: -moz-linear-gradient(top, #0088cc, #0044cc); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); + background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); + background-image: -o-linear-gradient(top, #0088cc, #0044cc); + background-image: linear-gradient(to bottom, #0088cc, #0044cc); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0); + border-color: #0044cc #0044cc #002a80; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #0044cc; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.btn-primary:hover, +.btn-primary:active, +.btn-primary.active, +.btn-primary.disabled, +.btn-primary[disabled] { + color: #ffffff; + background-color: #0044cc; + *background-color: #003bb3; +} +.btn-primary:active, +.btn-primary.active { + background-color: #003399 \9; +} +.btn-warning { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #faa732; + background-image: -moz-linear-gradient(top, #fbb450, #f89406); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); + background-image: -webkit-linear-gradient(top, #fbb450, #f89406); + background-image: -o-linear-gradient(top, #fbb450, #f89406); + background-image: linear-gradient(to bottom, #fbb450, #f89406); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0); + border-color: #f89406 #f89406 #ad6704; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #f89406; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.btn-warning:hover, +.btn-warning:active, +.btn-warning.active, +.btn-warning.disabled, +.btn-warning[disabled] { + color: #ffffff; + background-color: #f89406; + *background-color: #df8505; +} +.btn-warning:active, +.btn-warning.active { + background-color: #c67605 \9; +} +.btn-danger { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #da4f49; + background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f)); + background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f); + background-image: -o-linear-gradient(top, #ee5f5b, #bd362f); + background-image: linear-gradient(to bottom, #ee5f5b, #bd362f); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0); + border-color: #bd362f #bd362f #802420; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #bd362f; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.btn-danger:hover, +.btn-danger:active, +.btn-danger.active, +.btn-danger.disabled, +.btn-danger[disabled] { + color: #ffffff; + background-color: #bd362f; + *background-color: #a9302a; +} +.btn-danger:active, +.btn-danger.active { + background-color: #942a25 \9; +} +.btn-success { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #5bb75b; + background-image: -moz-linear-gradient(top, #62c462, #51a351); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351)); + background-image: -webkit-linear-gradient(top, #62c462, #51a351); + background-image: -o-linear-gradient(top, #62c462, #51a351); + background-image: linear-gradient(to bottom, #62c462, #51a351); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0); + border-color: #51a351 #51a351 #387038; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #51a351; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.btn-success:hover, +.btn-success:active, +.btn-success.active, +.btn-success.disabled, +.btn-success[disabled] { + color: #ffffff; + background-color: #51a351; + *background-color: #499249; +} +.btn-success:active, +.btn-success.active { + background-color: #408140 \9; +} +.btn-info { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #49afcd; + background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4)); + background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4); + background-image: -o-linear-gradient(top, #5bc0de, #2f96b4); + background-image: linear-gradient(to bottom, #5bc0de, #2f96b4); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0); + border-color: #2f96b4 #2f96b4 #1f6377; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #2f96b4; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.btn-info:hover, +.btn-info:active, +.btn-info.active, +.btn-info.disabled, +.btn-info[disabled] { + color: #ffffff; + background-color: #2f96b4; + *background-color: #2a85a0; +} +.btn-info:active, +.btn-info.active { + background-color: #24748c \9; +} +.btn-inverse { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #363636; + background-image: -moz-linear-gradient(top, #444444, #222222); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222)); + background-image: -webkit-linear-gradient(top, #444444, #222222); + background-image: -o-linear-gradient(top, #444444, #222222); + background-image: linear-gradient(to bottom, #444444, #222222); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0); + border-color: #222222 #222222 #000000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #222222; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.btn-inverse:hover, +.btn-inverse:active, +.btn-inverse.active, +.btn-inverse.disabled, +.btn-inverse[disabled] { + color: #ffffff; + background-color: #222222; + *background-color: #151515; +} +.btn-inverse:active, +.btn-inverse.active { + background-color: #080808 \9; +} +button.btn, +input[type="submit"].btn { + *padding-top: 3px; + *padding-bottom: 3px; +} +button.btn::-moz-focus-inner, +input[type="submit"].btn::-moz-focus-inner { + padding: 0; + border: 0; +} +button.btn.btn-large, +input[type="submit"].btn.btn-large { + *padding-top: 7px; + *padding-bottom: 7px; +} +button.btn.btn-small, +input[type="submit"].btn.btn-small { + *padding-top: 3px; + *padding-bottom: 3px; +} +button.btn.btn-mini, +input[type="submit"].btn.btn-mini { + *padding-top: 1px; + *padding-bottom: 1px; +} +.btn-link, +.btn-link:active, +.btn-link[disabled] { + background-color: transparent; + background-image: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} +.btn-link { + border-color: transparent; + cursor: pointer; + color: #0088cc; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.btn-link:hover { + color: #005580; + text-decoration: underline; + background-color: transparent; +} +.btn-link[disabled]:hover { + color: #333333; + text-decoration: none; +} +.btn-group { + position: relative; + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; + font-size: 0; + vertical-align: middle; + white-space: nowrap; + *margin-left: .3em; +} +.btn-group:first-child { + *margin-left: 0; +} +.btn-group + .btn-group { + margin-left: 5px; +} +.btn-toolbar { + font-size: 0; + margin-top: 10px; + margin-bottom: 10px; +} +.btn-toolbar .btn + .btn, +.btn-toolbar .btn-group + .btn, +.btn-toolbar .btn + .btn-group { + margin-left: 5px; +} +.btn-group > .btn { + position: relative; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.btn-group > .btn + .btn { + margin-left: -1px; +} +.btn-group > .btn, +.btn-group > .dropdown-menu { + font-size: 14px; +} +.btn-group > .btn-mini { + font-size: 11px; +} +.btn-group > .btn-small { + font-size: 12px; +} +.btn-group > .btn-large { + font-size: 16px; +} +.btn-group > .btn:first-child { + margin-left: 0; + -webkit-border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; + border-top-left-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + border-bottom-left-radius: 4px; +} +.btn-group > .btn:last-child, +.btn-group > .dropdown-toggle { + -webkit-border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; + border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -moz-border-radius-bottomright: 4px; + border-bottom-right-radius: 4px; +} +.btn-group > .btn.large:first-child { + margin-left: 0; + -webkit-border-top-left-radius: 6px; + -moz-border-radius-topleft: 6px; + border-top-left-radius: 6px; + -webkit-border-bottom-left-radius: 6px; + -moz-border-radius-bottomleft: 6px; + border-bottom-left-radius: 6px; +} +.btn-group > .btn.large:last-child, +.btn-group > .large.dropdown-toggle { + -webkit-border-top-right-radius: 6px; + -moz-border-radius-topright: 6px; + border-top-right-radius: 6px; + -webkit-border-bottom-right-radius: 6px; + -moz-border-radius-bottomright: 6px; + border-bottom-right-radius: 6px; +} +.btn-group > .btn:hover, +.btn-group > .btn:focus, +.btn-group > .btn:active, +.btn-group > .btn.active { + z-index: 2; +} +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} +.btn-group > .btn + .dropdown-toggle { + padding-left: 8px; + padding-right: 8px; + -webkit-box-shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); + -moz-box-shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); + box-shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); + *padding-top: 5px; + *padding-bottom: 5px; +} +.btn-group > .btn-mini + .dropdown-toggle { + padding-left: 5px; + padding-right: 5px; + *padding-top: 2px; + *padding-bottom: 2px; +} +.btn-group > .btn-small + .dropdown-toggle { + *padding-top: 5px; + *padding-bottom: 4px; +} +.btn-group > .btn-large + .dropdown-toggle { + padding-left: 12px; + padding-right: 12px; + *padding-top: 7px; + *padding-bottom: 7px; +} +.btn-group.open .dropdown-toggle { + background-image: none; + -webkit-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05); + -moz-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05); + box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05); +} +.btn-group.open .btn.dropdown-toggle { + background-color: #e6e6e6; +} +.btn-group.open .btn-primary.dropdown-toggle { + background-color: #0044cc; +} +.btn-group.open .btn-warning.dropdown-toggle { + background-color: #f89406; +} +.btn-group.open .btn-danger.dropdown-toggle { + background-color: #bd362f; +} +.btn-group.open .btn-success.dropdown-toggle { + background-color: #51a351; +} +.btn-group.open .btn-info.dropdown-toggle { + background-color: #2f96b4; +} +.btn-group.open .btn-inverse.dropdown-toggle { + background-color: #222222; +} +.btn .caret { + margin-top: 8px; + margin-left: 0; +} +.btn-mini .caret, +.btn-small .caret, +.btn-large .caret { + margin-top: 6px; +} +.btn-large .caret { + border-left-width: 5px; + border-right-width: 5px; + border-top-width: 5px; +} +.dropup .btn-large .caret { + border-bottom-width: 5px; +} +.btn-primary .caret, +.btn-warning .caret, +.btn-danger .caret, +.btn-info .caret, +.btn-success .caret, +.btn-inverse .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} +.btn-group-vertical { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; +} +.btn-group-vertical .btn { + display: block; + float: none; + width: 100%; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.btn-group-vertical .btn + .btn { + margin-left: 0; + margin-top: -1px; +} +.btn-group-vertical .btn:first-child { + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} +.btn-group-vertical .btn:last-child { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} +.btn-group-vertical .btn-large:first-child { + -webkit-border-radius: 6px 6px 0 0; + -moz-border-radius: 6px 6px 0 0; + border-radius: 6px 6px 0 0; +} +.btn-group-vertical .btn-large:last-child { + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; +} +.nav { + margin-left: 0; + margin-bottom: 20px; + list-style: none; +} +.nav > li > a { + display: block; +} +.nav > li > a:hover { + text-decoration: none; + background-color: #eeeeee; +} +.nav > .pull-right { + float: right; +} +.nav-header { + display: block; + padding: 3px 15px; + font-size: 11px; + font-weight: bold; + line-height: 20px; + color: #999999; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + text-transform: uppercase; +} +.nav li + .nav-header { + margin-top: 9px; +} +.nav-list { + padding-left: 15px; + padding-right: 15px; + margin-bottom: 0; +} +.nav-list > li > a, +.nav-list .nav-header { + margin-left: -15px; + margin-right: -15px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); +} +.nav-list > li > a { + padding: 3px 15px; +} +.nav-list > .active > a, +.nav-list > .active > a:hover { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); + background-color: #0088cc; +} +.nav-list [class^="icon-"], +.nav-list [class*=" icon-"] { + margin-right: 2px; +} +.nav-list .divider { + *width: 100%; + height: 1px; + margin: 9px 1px; + *margin: -5px 0 5px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; +} +.nav-tabs, +.nav-pills { + *zoom: 1; +} +.nav-tabs:before, +.nav-pills:before, +.nav-tabs:after, +.nav-pills:after { + display: table; + content: ""; + line-height: 0; +} +.nav-tabs:after, +.nav-pills:after { + clear: both; +} +.nav-tabs > li, +.nav-pills > li { + float: left; +} +.nav-tabs > li > a, +.nav-pills > li > a { + padding-right: 12px; + padding-left: 12px; + margin-right: 2px; + line-height: 14px; +} +.nav-tabs { + border-bottom: 1px solid #ddd; +} +.nav-tabs > li { + margin-bottom: -1px; +} +.nav-tabs > li > a { + padding-top: 8px; + padding-bottom: 8px; + line-height: 20px; + border: 1px solid transparent; + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} +.nav-tabs > li > a:hover { + border-color: #eeeeee #eeeeee #dddddd; +} +.nav-tabs > .active > a, +.nav-tabs > .active > a:hover { + color: #555555; + background-color: #ffffff; + border: 1px solid #ddd; + border-bottom-color: transparent; + cursor: default; +} +.nav-pills > li > a { + padding-top: 8px; + padding-bottom: 8px; + margin-top: 2px; + margin-bottom: 2px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} +.nav-pills > .active > a, +.nav-pills > .active > a:hover { + color: #ffffff; + background-color: #0088cc; +} +.nav-stacked > li { + float: none; +} +.nav-stacked > li > a { + margin-right: 0; +} +.nav-tabs.nav-stacked { + border-bottom: 0; +} +.nav-tabs.nav-stacked > li > a { + border: 1px solid #ddd; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.nav-tabs.nav-stacked > li:first-child > a { + -webkit-border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; + border-top-right-radius: 4px; + -webkit-border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; + border-top-left-radius: 4px; +} +.nav-tabs.nav-stacked > li:last-child > a { + -webkit-border-bottom-right-radius: 4px; + -moz-border-radius-bottomright: 4px; + border-bottom-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + border-bottom-left-radius: 4px; +} +.nav-tabs.nav-stacked > li > a:hover { + border-color: #ddd; + z-index: 2; +} +.nav-pills.nav-stacked > li > a { + margin-bottom: 3px; +} +.nav-pills.nav-stacked > li:last-child > a { + margin-bottom: 1px; +} +.nav-tabs .dropdown-menu { + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; +} +.nav-pills .dropdown-menu { + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} +.nav .dropdown-toggle .caret { + border-top-color: #0088cc; + border-bottom-color: #0088cc; + margin-top: 6px; +} +.nav .dropdown-toggle:hover .caret { + border-top-color: #005580; + border-bottom-color: #005580; +} +/* move down carets for tabs */ +.nav-tabs .dropdown-toggle .caret { + margin-top: 8px; +} +.nav .active .dropdown-toggle .caret { + border-top-color: #fff; + border-bottom-color: #fff; +} +.nav-tabs .active .dropdown-toggle .caret { + border-top-color: #555555; + border-bottom-color: #555555; +} +.nav > .dropdown.active > a:hover { + cursor: pointer; +} +.nav-tabs .open .dropdown-toggle, +.nav-pills .open .dropdown-toggle, +.nav > li.dropdown.open.active > a:hover { + color: #ffffff; + background-color: #999999; + border-color: #999999; +} +.nav li.dropdown.open .caret, +.nav li.dropdown.open.active .caret, +.nav li.dropdown.open a:hover .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; + opacity: 1; + filter: alpha(opacity=100); +} +.tabs-stacked .open > a:hover { + border-color: #999999; +} +.tabbable { + *zoom: 1; +} +.tabbable:before, +.tabbable:after { + display: table; + content: ""; + line-height: 0; +} +.tabbable:after { + clear: both; +} +.tab-content { + overflow: auto; +} +.tabs-below > .nav-tabs, +.tabs-right > .nav-tabs, +.tabs-left > .nav-tabs { + border-bottom: 0; +} +.tab-content > .tab-pane, +.pill-content > .pill-pane { + display: none; +} +.tab-content > .active, +.pill-content > .active { + display: block; +} +.tabs-below > .nav-tabs { + border-top: 1px solid #ddd; +} +.tabs-below > .nav-tabs > li { + margin-top: -1px; + margin-bottom: 0; +} +.tabs-below > .nav-tabs > li > a { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} +.tabs-below > .nav-tabs > li > a:hover { + border-bottom-color: transparent; + border-top-color: #ddd; +} +.tabs-below > .nav-tabs > .active > a, +.tabs-below > .nav-tabs > .active > a:hover { + border-color: transparent #ddd #ddd #ddd; +} +.tabs-left > .nav-tabs > li, +.tabs-right > .nav-tabs > li { + float: none; +} +.tabs-left > .nav-tabs > li > a, +.tabs-right > .nav-tabs > li > a { + min-width: 74px; + margin-right: 0; + margin-bottom: 3px; +} +.tabs-left > .nav-tabs { + float: left; + margin-right: 19px; + border-right: 1px solid #ddd; +} +.tabs-left > .nav-tabs > li > a { + margin-right: -1px; + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} +.tabs-left > .nav-tabs > li > a:hover { + border-color: #eeeeee #dddddd #eeeeee #eeeeee; +} +.tabs-left > .nav-tabs .active > a, +.tabs-left > .nav-tabs .active > a:hover { + border-color: #ddd transparent #ddd #ddd; + *border-right-color: #ffffff; +} +.tabs-right > .nav-tabs { + float: right; + margin-left: 19px; + border-left: 1px solid #ddd; +} +.tabs-right > .nav-tabs > li > a { + margin-left: -1px; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} +.tabs-right > .nav-tabs > li > a:hover { + border-color: #eeeeee #eeeeee #eeeeee #dddddd; +} +.tabs-right > .nav-tabs .active > a, +.tabs-right > .nav-tabs .active > a:hover { + border-color: #ddd #ddd #ddd transparent; + *border-left-color: #ffffff; +} +.nav > .disabled > a { + color: #999999; +} +.nav > .disabled > a:hover { + text-decoration: none; + background-color: transparent; + cursor: default; +} +.navbar { + overflow: visible; + margin-bottom: 20px; + color: #777777; + *position: relative; + *z-index: 2; +} +.navbar-inner { + min-height: 40px; + padding-left: 20px; + padding-right: 20px; + background-color: #fafafa; + background-image: -moz-linear-gradient(top, #ffffff, #f2f2f2); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2)); + background-image: -webkit-linear-gradient(top, #ffffff, #f2f2f2); + background-image: -o-linear-gradient(top, #ffffff, #f2f2f2); + background-image: linear-gradient(to bottom, #ffffff, #f2f2f2); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0); + border: 1px solid #d4d4d4; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); + -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); + *zoom: 1; +} +.navbar-inner:before, +.navbar-inner:after { + display: table; + content: ""; + line-height: 0; +} +.navbar-inner:after { + clear: both; +} +.navbar .container { + width: auto; +} +.nav-collapse.collapse { + height: auto; + overflow: visible; +} +.navbar .brand { + float: left; + display: block; + padding: 10px 20px 10px; + margin-left: -20px; + font-size: 20px; + font-weight: 200; + color: #777777; + text-shadow: 0 1px 0 #ffffff; +} +.navbar .brand:hover { + text-decoration: none; +} +.navbar-text { + margin-bottom: 0; + line-height: 40px; +} +.navbar-link { + color: #777777; +} +.navbar-link:hover { + color: #333333; +} +.navbar .divider-vertical { + height: 40px; + margin: 0 9px; + border-left: 1px solid #f2f2f2; + border-right: 1px solid #ffffff; +} +.navbar .btn, +.navbar .btn-group { + margin-top: 5px; +} +.navbar .btn-group .btn, +.navbar .input-prepend .btn, +.navbar .input-append .btn { + margin-top: 0; +} +.navbar-form { + margin-bottom: 0; + *zoom: 1; +} +.navbar-form:before, +.navbar-form:after { + display: table; + content: ""; + line-height: 0; +} +.navbar-form:after { + clear: both; +} +.navbar-form input, +.navbar-form select, +.navbar-form .radio, +.navbar-form .checkbox { + margin-top: 5px; +} +.navbar-form input, +.navbar-form select, +.navbar-form .btn { + display: inline-block; + margin-bottom: 0; +} +.navbar-form input[type="image"], +.navbar-form input[type="checkbox"], +.navbar-form input[type="radio"] { + margin-top: 3px; +} +.navbar-form .input-append, +.navbar-form .input-prepend { + margin-top: 6px; + white-space: nowrap; +} +.navbar-form .input-append input, +.navbar-form .input-prepend input { + margin-top: 0; +} +.navbar-search { + position: relative; + float: left; + margin-top: 5px; + margin-bottom: 0; +} +.navbar-search .search-query { + margin-bottom: 0; + padding: 4px 14px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + font-weight: normal; + line-height: 1; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} +.navbar-static-top { + position: static; + margin-bottom: 0; +} +.navbar-static-top .navbar-inner { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; + margin-bottom: 0; +} +.navbar-fixed-top .navbar-inner, +.navbar-static-top .navbar-inner { + border-width: 0 0 1px; +} +.navbar-fixed-bottom .navbar-inner { + border-width: 1px 0 0; +} +.navbar-fixed-top .navbar-inner, +.navbar-fixed-bottom .navbar-inner { + padding-left: 0; + padding-right: 0; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.navbar-static-top .container, +.navbar-fixed-top .container, +.navbar-fixed-bottom .container { + width: 940px; +} +.navbar-fixed-top { + top: 0; +} +.navbar-fixed-top .navbar-inner, +.navbar-static-top .navbar-inner { + -webkit-box-shadow: 0 1px 10px rgba(0,0,0,.1); + -moz-box-shadow: 0 1px 10px rgba(0,0,0,.1); + box-shadow: 0 1px 10px rgba(0,0,0,.1); +} +.navbar-fixed-bottom { + bottom: 0; +} +.navbar-fixed-bottom .navbar-inner { + -webkit-box-shadow: 0 -1px 10px rgba(0,0,0,.1); + -moz-box-shadow: 0 -1px 10px rgba(0,0,0,.1); + box-shadow: 0 -1px 10px rgba(0,0,0,.1); +} +.navbar .nav { + position: relative; + left: 0; + display: block; + float: left; + margin: 0 10px 0 0; +} +.navbar .nav.pull-right { + float: right; + margin-right: 0; +} +.navbar .nav > li { + float: left; +} +.navbar .nav > li > a { + float: none; + padding: 10px 15px 10px; + color: #777777; + text-decoration: none; + text-shadow: 0 1px 0 #ffffff; +} +.navbar .nav .dropdown-toggle .caret { + margin-top: 8px; +} +.navbar .nav > li > a:focus, +.navbar .nav > li > a:hover { + background-color: transparent; + color: #333333; + text-decoration: none; +} +.navbar .nav > .active > a, +.navbar .nav > .active > a:hover, +.navbar .nav > .active > a:focus { + color: #555555; + text-decoration: none; + background-color: #e5e5e5; + -webkit-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); + -moz-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); +} +.navbar .btn-navbar { + display: none; + float: right; + padding: 7px 10px; + margin-left: 5px; + margin-right: 5px; + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #ededed; + background-image: -moz-linear-gradient(top, #f2f2f2, #e5e5e5); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#e5e5e5)); + background-image: -webkit-linear-gradient(top, #f2f2f2, #e5e5e5); + background-image: -o-linear-gradient(top, #f2f2f2, #e5e5e5); + background-image: linear-gradient(to bottom, #f2f2f2, #e5e5e5); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffe5e5e5', GradientType=0); + border-color: #e5e5e5 #e5e5e5 #bfbfbf; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #e5e5e5; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075); + -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075); + box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075); +} +.navbar .btn-navbar:hover, +.navbar .btn-navbar:active, +.navbar .btn-navbar.active, +.navbar .btn-navbar.disabled, +.navbar .btn-navbar[disabled] { + color: #ffffff; + background-color: #e5e5e5; + *background-color: #d9d9d9; +} +.navbar .btn-navbar:active, +.navbar .btn-navbar.active { + background-color: #cccccc \9; +} +.navbar .btn-navbar .icon-bar { + display: block; + width: 18px; + height: 2px; + background-color: #f5f5f5; + -webkit-border-radius: 1px; + -moz-border-radius: 1px; + border-radius: 1px; + -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); +} +.btn-navbar .icon-bar + .icon-bar { + margin-top: 3px; +} +.navbar .nav > li > .dropdown-menu:before { + content: ''; + display: inline-block; + border-left: 7px solid transparent; + border-right: 7px solid transparent; + border-bottom: 7px solid #ccc; + border-bottom-color: rgba(0, 0, 0, 0.2); + position: absolute; + top: -7px; + left: 9px; +} +.navbar .nav > li > .dropdown-menu:after { + content: ''; + display: inline-block; + border-left: 6px solid transparent; + border-right: 6px solid transparent; + border-bottom: 6px solid #ffffff; + position: absolute; + top: -6px; + left: 10px; +} +.navbar-fixed-bottom .nav > li > .dropdown-menu:before { + border-top: 7px solid #ccc; + border-top-color: rgba(0, 0, 0, 0.2); + border-bottom: 0; + bottom: -7px; + top: auto; +} +.navbar-fixed-bottom .nav > li > .dropdown-menu:after { + border-top: 6px solid #ffffff; + border-bottom: 0; + bottom: -6px; + top: auto; +} +.navbar .nav li.dropdown.open > .dropdown-toggle, +.navbar .nav li.dropdown.active > .dropdown-toggle, +.navbar .nav li.dropdown.open.active > .dropdown-toggle { + background-color: #e5e5e5; + color: #555555; +} +.navbar .nav li.dropdown > .dropdown-toggle .caret { + border-top-color: #777777; + border-bottom-color: #777777; +} +.navbar .nav li.dropdown.open > .dropdown-toggle .caret, +.navbar .nav li.dropdown.active > .dropdown-toggle .caret, +.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret { + border-top-color: #555555; + border-bottom-color: #555555; +} +.navbar .pull-right > li > .dropdown-menu, +.navbar .nav > li > .dropdown-menu.pull-right { + left: auto; + right: 0; +} +.navbar .pull-right > li > .dropdown-menu:before, +.navbar .nav > li > .dropdown-menu.pull-right:before { + left: auto; + right: 12px; +} +.navbar .pull-right > li > .dropdown-menu:after, +.navbar .nav > li > .dropdown-menu.pull-right:after { + left: auto; + right: 13px; +} +.navbar .pull-right > li > .dropdown-menu .dropdown-menu, +.navbar .nav > li > .dropdown-menu.pull-right .dropdown-menu { + left: auto; + right: 100%; + margin-left: 0; + margin-right: -1px; + -webkit-border-radius: 6px 0 6px 6px; + -moz-border-radius: 6px 0 6px 6px; + border-radius: 6px 0 6px 6px; +} +.navbar-inverse { + color: #999999; +} +.navbar-inverse .navbar-inner { + background-color: #1b1b1b; + background-image: -moz-linear-gradient(top, #222222, #111111); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#111111)); + background-image: -webkit-linear-gradient(top, #222222, #111111); + background-image: -o-linear-gradient(top, #222222, #111111); + background-image: linear-gradient(to bottom, #222222, #111111); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0); + border-color: #252525; +} +.navbar-inverse .brand, +.navbar-inverse .nav > li > a { + color: #999999; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} +.navbar-inverse .brand:hover, +.navbar-inverse .nav > li > a:hover { + color: #ffffff; +} +.navbar-inverse .nav > li > a:focus, +.navbar-inverse .nav > li > a:hover { + background-color: transparent; + color: #ffffff; +} +.navbar-inverse .nav .active > a, +.navbar-inverse .nav .active > a:hover, +.navbar-inverse .nav .active > a:focus { + color: #ffffff; + background-color: #111111; +} +.navbar-inverse .navbar-link { + color: #999999; +} +.navbar-inverse .navbar-link:hover { + color: #ffffff; +} +.navbar-inverse .divider-vertical { + border-left-color: #111111; + border-right-color: #222222; +} +.navbar-inverse .nav li.dropdown.open > .dropdown-toggle, +.navbar-inverse .nav li.dropdown.active > .dropdown-toggle, +.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle { + background-color: #111111; + color: #ffffff; +} +.navbar-inverse .nav li.dropdown > .dropdown-toggle .caret { + border-top-color: #999999; + border-bottom-color: #999999; +} +.navbar-inverse .nav li.dropdown.open > .dropdown-toggle .caret, +.navbar-inverse .nav li.dropdown.active > .dropdown-toggle .caret, +.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} +.navbar-inverse .navbar-search .search-query { + color: #ffffff; + background-color: #515151; + border-color: #111111; + -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15); + -moz-box-shadow: inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15); + box-shadow: inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15); + -webkit-transition: none; + -moz-transition: none; + -o-transition: none; + transition: none; +} +.navbar-inverse .navbar-search .search-query:-moz-placeholder { + color: #cccccc; +} +.navbar-inverse .navbar-search .search-query:-ms-input-placeholder { + color: #cccccc; +} +.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder { + color: #cccccc; +} +.navbar-inverse .navbar-search .search-query:focus, +.navbar-inverse .navbar-search .search-query.focused { + padding: 5px 15px; + color: #333333; + text-shadow: 0 1px 0 #ffffff; + background-color: #ffffff; + border: 0; + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + outline: 0; +} +.navbar-inverse .btn-navbar { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #0e0e0e; + background-image: -moz-linear-gradient(top, #151515, #040404); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#151515), to(#040404)); + background-image: -webkit-linear-gradient(top, #151515, #040404); + background-image: -o-linear-gradient(top, #151515, #040404); + background-image: linear-gradient(to bottom, #151515, #040404); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515', endColorstr='#ff040404', GradientType=0); + border-color: #040404 #040404 #000000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #040404; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.navbar-inverse .btn-navbar:hover, +.navbar-inverse .btn-navbar:active, +.navbar-inverse .btn-navbar.active, +.navbar-inverse .btn-navbar.disabled, +.navbar-inverse .btn-navbar[disabled] { + color: #ffffff; + background-color: #040404; + *background-color: #000000; +} +.navbar-inverse .btn-navbar:active, +.navbar-inverse .btn-navbar.active { + background-color: #000000 \9; +} +.breadcrumb { + padding: 8px 15px; + margin: 0 0 20px; + list-style: none; + background-color: #f5f5f5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.breadcrumb li { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; + text-shadow: 0 1px 0 #ffffff; +} +.breadcrumb .divider { + padding: 0 5px; + color: #ccc; +} +.breadcrumb .active { + color: #999999; +} +.pagination { + margin: 20px 0; +} +.pagination ul { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; + margin-left: 0; + margin-bottom: 0; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); +} +.pagination ul > li { + display: inline; +} +.pagination ul > li > a, +.pagination ul > li > span { + float: left; + padding: 4px 12px; + line-height: 20px; + text-decoration: none; + background-color: #ffffff; + border: 1px solid #dddddd; + border-left-width: 0; +} +.pagination ul > li > a:hover, +.pagination ul > .active > a, +.pagination ul > .active > span { + background-color: #f5f5f5; +} +.pagination ul > .active > a, +.pagination ul > .active > span { + color: #999999; + cursor: default; +} +.pagination ul > .disabled > span, +.pagination ul > .disabled > a, +.pagination ul > .disabled > a:hover { + color: #999999; + background-color: transparent; + cursor: default; +} +.pagination ul > li:first-child > a, +.pagination ul > li:first-child > span { + border-left-width: 1px; + -webkit-border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; + border-top-left-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + border-bottom-left-radius: 4px; +} +.pagination ul > li:last-child > a, +.pagination ul > li:last-child > span { + -webkit-border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; + border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -moz-border-radius-bottomright: 4px; + border-bottom-right-radius: 4px; +} +.pagination-centered { + text-align: center; +} +.pagination-right { + text-align: right; +} +.pagination-large ul > li > a, +.pagination-large ul > li > span { + padding: 11px 19px; + font-size: 17.5px; +} +.pagination-large ul > li:first-child > a, +.pagination-large ul > li:first-child > span { + -webkit-border-top-left-radius: 6px; + -moz-border-radius-topleft: 6px; + border-top-left-radius: 6px; + -webkit-border-bottom-left-radius: 6px; + -moz-border-radius-bottomleft: 6px; + border-bottom-left-radius: 6px; +} +.pagination-large ul > li:last-child > a, +.pagination-large ul > li:last-child > span { + -webkit-border-top-right-radius: 6px; + -moz-border-radius-topright: 6px; + border-top-right-radius: 6px; + -webkit-border-bottom-right-radius: 6px; + -moz-border-radius-bottomright: 6px; + border-bottom-right-radius: 6px; +} +.pagination-mini ul > li:first-child > a, +.pagination-small ul > li:first-child > a, +.pagination-mini ul > li:first-child > span, +.pagination-small ul > li:first-child > span { + -webkit-border-top-left-radius: 3px; + -moz-border-radius-topleft: 3px; + border-top-left-radius: 3px; + -webkit-border-bottom-left-radius: 3px; + -moz-border-radius-bottomleft: 3px; + border-bottom-left-radius: 3px; +} +.pagination-mini ul > li:last-child > a, +.pagination-small ul > li:last-child > a, +.pagination-mini ul > li:last-child > span, +.pagination-small ul > li:last-child > span { + -webkit-border-top-right-radius: 3px; + -moz-border-radius-topright: 3px; + border-top-right-radius: 3px; + -webkit-border-bottom-right-radius: 3px; + -moz-border-radius-bottomright: 3px; + border-bottom-right-radius: 3px; +} +.pagination-small ul > li > a, +.pagination-small ul > li > span { + padding: 2px 10px; + font-size: 11.9px; +} +.pagination-mini ul > li > a, +.pagination-mini ul > li > span { + padding: 1px 6px; + font-size: 10.5px; +} +.pager { + margin: 20px 0; + list-style: none; + text-align: center; + *zoom: 1; +} +.pager:before, +.pager:after { + display: table; + content: ""; + line-height: 0; +} +.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; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} +.pager li > a:hover { + text-decoration: none; + background-color: #f5f5f5; +} +.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 > span { + color: #999999; + background-color: #fff; + cursor: default; +} +.thumbnails { + margin-left: -20px; + list-style: none; + *zoom: 1; +} +.thumbnails:before, +.thumbnails:after { + display: table; + content: ""; + line-height: 0; +} +.thumbnails:after { + clear: both; +} +.row-fluid .thumbnails { + margin-left: 0; +} +.thumbnails > li { + float: left; + margin-bottom: 20px; + margin-left: 20px; +} +.thumbnail { + display: block; + padding: 4px; + line-height: 20px; + border: 1px solid #ddd; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + -webkit-transition: all 0.2s ease-in-out; + -moz-transition: all 0.2s ease-in-out; + -o-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; +} +a.thumbnail:hover { + border-color: #0088cc; + -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); +} +.thumbnail > img { + display: block; + max-width: 100%; + margin-left: auto; + margin-right: auto; +} +.thumbnail .caption { + padding: 9px; + color: #555555; +} +.alert { + padding: 8px 35px 8px 14px; + margin-bottom: 20px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + background-color: #fcf8e3; + border: 1px solid #fbeed5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + color: #c09853; +} +.alert h4 { + margin: 0; +} +.alert .close { + position: relative; + top: -2px; + right: -21px; + line-height: 20px; +} +.alert-success { + background-color: #dff0d8; + border-color: #d6e9c6; + color: #468847; +} +.alert-danger, +.alert-error { + background-color: #f2dede; + border-color: #eed3d7; + color: #b94a48; +} +.alert-info { + background-color: #d9edf7; + border-color: #bce8f1; + color: #3a87ad; +} +.alert-block { + padding-top: 14px; + padding-bottom: 14px; +} +.alert-block > p, +.alert-block > ul { + margin-bottom: 0; +} +.alert-block p + p { + margin-top: 5px; +} +@-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; + } +} +@-ms-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 { + overflow: hidden; + height: 20px; + margin-bottom: 20px; + background-color: #f7f7f7; + background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9)); + background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0); + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.progress .bar { + width: 0%; + height: 100%; + color: #ffffff; + float: left; + font-size: 12px; + text-align: center; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #0e90d2; + background-image: -moz-linear-gradient(top, #149bdf, #0480be); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be)); + background-image: -webkit-linear-gradient(top, #149bdf, #0480be); + background-image: -o-linear-gradient(top, #149bdf, #0480be); + background-image: linear-gradient(to bottom, #149bdf, #0480be); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0); + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -moz-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-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: width 0.6s ease; + -moz-transition: width 0.6s ease; + -o-transition: width 0.6s ease; + transition: width 0.6s ease; +} +.progress .bar + .bar { + -webkit-box-shadow: inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15); + -moz-box-shadow: inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15); + box-shadow: inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15); +} +.progress-striped .bar { + background-color: #149bdf; + 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: -o-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); + -webkit-background-size: 40px 40px; + -moz-background-size: 40px 40px; + -o-background-size: 40px 40px; + background-size: 40px 40px; +} +.progress.active .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-danger .bar, +.progress .bar-danger { + background-color: #dd514c; + background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35)); + background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -o-linear-gradient(top, #ee5f5b, #c43c35); + background-image: linear-gradient(to bottom, #ee5f5b, #c43c35); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0); +} +.progress-danger.progress-striped .bar, +.progress-striped .bar-danger { + background-color: #ee5f5b; + 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: -o-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-success .bar, +.progress .bar-success { + background-color: #5eb95e; + background-image: -moz-linear-gradient(top, #62c462, #57a957); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957)); + background-image: -webkit-linear-gradient(top, #62c462, #57a957); + background-image: -o-linear-gradient(top, #62c462, #57a957); + background-image: linear-gradient(to bottom, #62c462, #57a957); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0); +} +.progress-success.progress-striped .bar, +.progress-striped .bar-success { + background-color: #62c462; + 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: -o-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-info .bar, +.progress .bar-info { + background-color: #4bb1cf; + background-image: -moz-linear-gradient(top, #5bc0de, #339bb9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9)); + background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9); + background-image: -o-linear-gradient(top, #5bc0de, #339bb9); + background-image: linear-gradient(to bottom, #5bc0de, #339bb9); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0); +} +.progress-info.progress-striped .bar, +.progress-striped .bar-info { + background-color: #5bc0de; + 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: -o-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-warning .bar, +.progress .bar-warning { + background-color: #faa732; + background-image: -moz-linear-gradient(top, #fbb450, #f89406); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); + background-image: -webkit-linear-gradient(top, #fbb450, #f89406); + background-image: -o-linear-gradient(top, #fbb450, #f89406); + background-image: linear-gradient(to bottom, #fbb450, #f89406); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0); +} +.progress-warning.progress-striped .bar, +.progress-striped .bar-warning { + background-color: #fbb450; + 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: -o-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); +} +.hero-unit { + padding: 60px; + margin-bottom: 30px; + font-size: 18px; + font-weight: 200; + line-height: 30px; + color: inherit; + background-color: #eeeeee; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} +.hero-unit h1 { + margin-bottom: 0; + font-size: 60px; + line-height: 1; + color: inherit; + letter-spacing: -1px; +} +.hero-unit li { + line-height: 30px; +} +.media, +.media-body { + overflow: hidden; + *overflow: visible; + 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 { + margin-left: 0; + list-style: none; +} +.tooltip { + position: absolute; + z-index: 1030; + display: block; + visibility: visible; + padding: 5px; + font-size: 11px; + opacity: 0; + filter: alpha(opacity=0); +} +.tooltip.in { + opacity: 0.8; + filter: alpha(opacity=80); +} +.tooltip.top { + margin-top: -3px; +} +.tooltip.right { + margin-left: 3px; +} +.tooltip.bottom { + margin-top: 3px; +} +.tooltip.left { + margin-left: -3px; +} +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #ffffff; + text-align: center; + text-decoration: none; + background-color: #000000; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-width: 5px 5px 0; + border-top-color: #000000; +} +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-width: 5px 5px 5px 0; + border-right-color: #000000; +} +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-width: 5px 0 5px 5px; + border-left-color: #000000; +} +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000000; +} +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1010; + display: none; + width: 236px; + padding: 1px; + background-color: #ffffff; + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); +} +.popover.top { + margin-top: -10px; +} +.popover.right { + margin-left: 10px; +} +.popover.bottom { + margin-top: 10px; +} +.popover.left { + margin-left: -10px; +} +.popover-title { + margin: 0; + padding: 8px 14px; + font-size: 14px; + font-weight: normal; + line-height: 18px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + -webkit-border-radius: 5px 5px 0 0; + -moz-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; +} +.popover-content { + padding: 9px 14px; +} +.popover-content p, +.popover-content ul, +.popover-content ol { + margin-bottom: 0; +} +.popover .arrow, +.popover .arrow:after { + position: absolute; + display: inline-block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.popover .arrow:after { + content: ""; + z-index: -1; +} +.popover.top .arrow { + bottom: -10px; + left: 50%; + margin-left: -10px; + border-width: 10px 10px 0; + border-top-color: #ffffff; +} +.popover.top .arrow:after { + border-width: 11px 11px 0; + border-top-color: rgba(0, 0, 0, 0.25); + bottom: -1px; + left: -11px; +} +.popover.right .arrow { + top: 50%; + left: -10px; + margin-top: -10px; + border-width: 10px 10px 10px 0; + border-right-color: #ffffff; +} +.popover.right .arrow:after { + border-width: 11px 11px 11px 0; + border-right-color: rgba(0, 0, 0, 0.25); + bottom: -11px; + left: -1px; +} +.popover.bottom .arrow { + top: -10px; + left: 50%; + margin-left: -10px; + border-width: 0 10px 10px; + border-bottom-color: #ffffff; +} +.popover.bottom .arrow:after { + border-width: 0 11px 11px; + border-bottom-color: rgba(0, 0, 0, 0.25); + top: -1px; + left: -11px; +} +.popover.left .arrow { + top: 50%; + right: -10px; + margin-top: -10px; + border-width: 10px 0 10px 10px; + border-left-color: #ffffff; +} +.popover.left .arrow:after { + border-width: 11px 0 11px 11px; + border-left-color: rgba(0, 0, 0, 0.25); + bottom: -11px; + right: -1px; +} +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000000; +} +.modal-backdrop.fade { + opacity: 0; +} +.modal-backdrop, +.modal-backdrop.fade.in { + opacity: 0.8; + filter: alpha(opacity=80); +} +.modal { + position: fixed; + top: 50%; + left: 50%; + z-index: 1050; + width: 560px; + margin: -250px 0 0 -280px; + background-color: #ffffff; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, 0.3); + *border: 1px solid #999; + /* IE6-7 */ + + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; + outline: none; +} +.modal.fade { + -webkit-transition: opacity .3s linear, top .3s ease-out; + -moz-transition: opacity .3s linear, top .3s ease-out; + -o-transition: opacity .3s linear, top .3s ease-out; + transition: opacity .3s linear, top .3s ease-out; + top: -25%; +} +.modal.fade.in { + top: 50%; +} +.modal-header { + padding: 9px 15px; + border-bottom: 1px solid #eee; +} +.modal-header .close { + margin-top: 2px; +} +.modal-header h3 { + margin: 0; + line-height: 30px; +} +.modal-body { + overflow-y: auto; + max-height: 400px; + padding: 15px; +} +.modal-form { + margin-bottom: 0; +} +.modal-footer { + padding: 14px 15px 15px; + margin-bottom: 0; + text-align: right; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; + -webkit-box-shadow: inset 0 1px 0 #ffffff; + -moz-box-shadow: inset 0 1px 0 #ffffff; + box-shadow: inset 0 1px 0 #ffffff; + *zoom: 1; +} +.modal-footer:before, +.modal-footer:after { + display: table; + content: ""; + line-height: 0; +} +.modal-footer:after { + clear: both; +} +.modal-footer .btn + .btn { + margin-left: 5px; + margin-bottom: 0; +} +.modal-footer .btn-group .btn + .btn { + margin-left: -1px; +} +.modal-footer .btn-block + .btn-block { + margin-left: 0; +} +.dropup, +.dropdown { + position: relative; +} +.dropdown-toggle { + *margin-bottom: -3px; +} +.dropdown-toggle:active, +.open .dropdown-toggle { + outline: 0; +} +.caret { + display: inline-block; + width: 0; + height: 0; + vertical-align: top; + border-top: 4px solid #000000; + border-right: 4px solid transparent; + border-left: 4px solid transparent; + content: ""; +} +.dropdown .caret { + margin-top: 8px; + margin-left: 2px; +} +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + list-style: none; + background-color: #ffffff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + *border-right-width: 2px; + *border-bottom-width: 2px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; +} +.dropdown-menu.pull-right { + right: 0; + left: auto; +} +.dropdown-menu .divider { + *width: 100%; + height: 1px; + margin: 9px 1px; + *margin: -5px 0 5px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; +} +.dropdown-menu li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 20px; + color: #333333; + white-space: nowrap; +} +.dropdown-menu li > a:hover, +.dropdown-menu li > a:focus, +.dropdown-submenu:hover > a { + text-decoration: none; + color: #ffffff; + background-color: #0081c2; + background-image: -moz-linear-gradient(top, #0088cc, #0077b3); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3)); + background-image: -webkit-linear-gradient(top, #0088cc, #0077b3); + background-image: -o-linear-gradient(top, #0088cc, #0077b3); + background-image: linear-gradient(to bottom, #0088cc, #0077b3); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0); +} +.dropdown-menu .active > a, +.dropdown-menu .active > a:hover { + color: #333333; + text-decoration: none; + outline: 0; + background-color: #0081c2; + background-image: -moz-linear-gradient(top, #0088cc, #0077b3); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3)); + background-image: -webkit-linear-gradient(top, #0088cc, #0077b3); + background-image: -o-linear-gradient(top, #0088cc, #0077b3); + background-image: linear-gradient(to bottom, #0088cc, #0077b3); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0); +} +.dropdown-menu .disabled > a, +.dropdown-menu .disabled > a:hover { + color: #999999; +} +.dropdown-menu .disabled > a:hover { + text-decoration: none; + background-color: transparent; + background-image: none; + cursor: default; +} +.open { + *z-index: 1000; +} +.open > .dropdown-menu { + display: block; +} +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + border-top: 0; + border-bottom: 4px solid #000000; + content: ""; +} +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px; +} +.dropdown-submenu { + position: relative; +} +.dropdown-submenu > .dropdown-menu { + top: 0; + left: 100%; + margin-top: -6px; + margin-left: -1px; + -webkit-border-radius: 0 6px 6px 6px; + -moz-border-radius: 0 6px 6px 6px; + border-radius: 0 6px 6px 6px; +} +.dropdown-submenu:hover > .dropdown-menu { + display: block; +} +.dropup .dropdown-submenu > .dropdown-menu { + top: auto; + bottom: 0; + margin-top: 0; + margin-bottom: -2px; + -webkit-border-radius: 5px 5px 5px 0; + -moz-border-radius: 5px 5px 5px 0; + border-radius: 5px 5px 5px 0; +} +.dropdown-submenu > a:after { + display: block; + content: " "; + float: right; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; + border-width: 5px 0 5px 5px; + border-left-color: #cccccc; + margin-top: 5px; + margin-right: -10px; +} +.dropdown-submenu:hover > a:after { + border-left-color: #ffffff; +} +.dropdown-submenu.pull-left { + float: none; +} +.dropdown-submenu.pull-left > .dropdown-menu { + left: -100%; + margin-left: 10px; + -webkit-border-radius: 6px 0 6px 6px; + -moz-border-radius: 6px 0 6px 6px; + border-radius: 6px 0 6px 6px; +} +.dropdown .dropdown-menu .nav-header { + padding-left: 20px; + padding-right: 20px; +} +.typeahead { + margin-top: 2px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.accordion { + margin-bottom: 20px; +} +.accordion-group { + margin-bottom: 2px; + border: 1px solid #e5e5e5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.accordion-heading { + border-bottom: 0; +} +.accordion-heading .accordion-toggle { + display: block; + padding: 8px 15px; +} +.accordion-toggle { + cursor: pointer; +} +.accordion-inner { + padding: 9px 15px; + border-top: 1px solid #e5e5e5; +} +.carousel { + position: relative; + margin-bottom: 20px; + line-height: 1; +} +.carousel-inner { + overflow: hidden; + width: 100%; + position: relative; +} +.carousel .item { + display: none; + position: relative; + -webkit-transition: 0.6s ease-in-out left; + -moz-transition: 0.6s ease-in-out left; + -o-transition: 0.6s ease-in-out left; + transition: 0.6s ease-in-out left; +} +.carousel .item > img { + display: block; + line-height: 1; +} +.carousel .active, +.carousel .next, +.carousel .prev { + display: block; +} +.carousel .active { + left: 0; +} +.carousel .next, +.carousel .prev { + position: absolute; + top: 0; + width: 100%; +} +.carousel .next { + left: 100%; +} +.carousel .prev { + left: -100%; +} +.carousel .next.left, +.carousel .prev.right { + left: 0; +} +.carousel .active.left { + left: -100%; +} +.carousel .active.right { + left: 100%; +} +.carousel-control { + position: absolute; + top: 40%; + left: 15px; + width: 40px; + height: 40px; + margin-top: -20px; + font-size: 60px; + font-weight: 100; + line-height: 30px; + color: #ffffff; + text-align: center; + background: #222222; + border: 3px solid #ffffff; + -webkit-border-radius: 23px; + -moz-border-radius: 23px; + border-radius: 23px; + opacity: 0.5; + filter: alpha(opacity=50); +} +.carousel-control.right { + left: auto; + right: 15px; +} +.carousel-control:hover { + color: #ffffff; + text-decoration: none; + opacity: 0.9; + filter: alpha(opacity=90); +} +.carousel-caption { + position: absolute; + left: 0; + right: 0; + bottom: 0; + padding: 15px; + background: #333333; + background: rgba(0, 0, 0, 0.75); +} +.carousel-caption h4, +.carousel-caption p { + color: #ffffff; + line-height: 20px; +} +.carousel-caption h4 { + margin: 0 0 5px; +} +.carousel-caption p { + margin-bottom: 0; +} +.media, +.media-body { + overflow: hidden; + *overflow: visible; + 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 { + margin-left: 0; + list-style: none; +} +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #e3e3e3; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + -moz-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-large { + padding: 24px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} +.well-small { + padding: 9px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +.close { + float: right; + font-size: 20px; + font-weight: bold; + line-height: 20px; + color: #000000; + text-shadow: 0 1px 0 #ffffff; + opacity: 0.2; + filter: alpha(opacity=20); +} +.close:hover { + color: #000000; + text-decoration: none; + cursor: pointer; + opacity: 0.4; + filter: alpha(opacity=40); +} +button.close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; +} +.pull-right { + float: right; +} +.pull-left { + float: left; +} +.hide { + display: none; +} +.show { + display: block; +} +.invisible { + visibility: hidden; +} +.affix { + position: fixed; +} +.fade { + opacity: 0; + -webkit-transition: opacity 0.15s linear; + -moz-transition: opacity 0.15s linear; + -o-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; +} +.fade.in { + opacity: 1; +} +.collapse { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition: height 0.35s ease; + -moz-transition: height 0.35s ease; + -o-transition: height 0.35s ease; + transition: height 0.35s ease; +} +.collapse.in { + height: auto; +} +.hidden { + display: none; + visibility: hidden; +} +.visible-phone { + display: none !important; +} +.visible-tablet { + display: none !important; +} +.hidden-desktop { + display: none !important; +} +.visible-desktop { + display: inherit !important; +} +@media (min-width: 768px) and (max-width: 979px) { + .hidden-desktop { + display: inherit !important; + } + .visible-desktop { + display: none !important ; + } + .visible-tablet { + display: inherit !important; + } + .hidden-tablet { + display: none !important; + } +} +@media (max-width: 767px) { + .hidden-desktop { + display: inherit !important; + } + .visible-desktop { + display: none !important; + } + .visible-phone { + display: inherit !important; + } + .hidden-phone { + display: none !important; + } +} +@media (max-width: 767px) { + body { + padding-left: 20px; + padding-right: 20px; + } + .navbar-fixed-top, + .navbar-fixed-bottom, + .navbar-static-top { + margin-left: -20px; + margin-right: -20px; + } + .container-fluid { + padding: 0; + } + .dl-horizontal dt { + float: none; + clear: none; + width: auto; + text-align: left; + } + .dl-horizontal dd { + margin-left: 0; + } + .container { + width: auto; + } + .row-fluid { + width: 100%; + } + .row, + .thumbnails { + margin-left: 0; + } + .thumbnails > li { + float: none; + margin-left: 0; + } + [class*="span"], + .uneditable-input[class*="span"], + .row-fluid [class*="span"] { + float: none; + display: block; + width: 100%; + margin-left: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .span12, + .row-fluid .span12 { + width: 100%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .row-fluid [class*="offset"]:first-child { + margin-left: 0; + } + .input-large, + .input-xlarge, + .input-xxlarge, + input[class*="span"], + select[class*="span"], + textarea[class*="span"], + .uneditable-input { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .input-prepend input, + .input-append input, + .input-prepend input[class*="span"], + .input-append input[class*="span"] { + display: inline-block; + width: auto; + } + .controls-row [class*="span"] + [class*="span"] { + margin-left: 0; + } + .modal { + position: fixed; + top: 20px; + left: 20px; + right: 20px; + width: auto; + margin: 0; + } + .modal.fade { + top: -100px; + } + .modal.fade.in { + top: 20px; + } +} +@media (max-width: 480px) { + .nav-collapse { + -webkit-transform: translate3d(0, 0, 0); + } + .page-header h1 small { + display: block; + line-height: 20px; + } + input[type="checkbox"], + input[type="radio"] { + border: 1px solid #ccc; + } + .form-horizontal .control-label { + float: none; + width: auto; + padding-top: 0; + text-align: left; + } + .form-horizontal .controls { + margin-left: 0; + } + .form-horizontal .control-list { + padding-top: 0; + } + .form-horizontal .form-actions { + padding-left: 10px; + padding-right: 10px; + } + .media .pull-left, + .media .pull-right { + float: none; + display: block; + margin-bottom: 10px; + } + .media-object { + margin-right: 0; + margin-left: 0; + } + .modal { + top: 10px; + left: 10px; + right: 10px; + } + .modal-header .close { + padding: 10px; + margin: -10px; + } + .carousel-caption { + position: static; + } +} +@media (min-width: 768px) and (max-width: 979px) { + .row { + margin-left: -20px; + *zoom: 1; + } + .row:before, + .row:after { + display: table; + content: ""; + line-height: 0; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + min-height: 1px; + margin-left: 20px; + } + .container, + .navbar-static-top .container, + .navbar-fixed-top .container, + .navbar-fixed-bottom .container { + width: 724px; + } + .span12 { + width: 724px; + } + .span11 { + width: 662px; + } + .span10 { + width: 600px; + } + .span9 { + width: 538px; + } + .span8 { + width: 476px; + } + .span7 { + width: 414px; + } + .span6 { + width: 352px; + } + .span5 { + width: 290px; + } + .span4 { + width: 228px; + } + .span3 { + width: 166px; + } + .span2 { + width: 104px; + } + .span1 { + width: 42px; + } + .offset12 { + margin-left: 764px; + } + .offset11 { + margin-left: 702px; + } + .offset10 { + margin-left: 640px; + } + .offset9 { + margin-left: 578px; + } + .offset8 { + margin-left: 516px; + } + .offset7 { + margin-left: 454px; + } + .offset6 { + margin-left: 392px; + } + .offset5 { + margin-left: 330px; + } + .offset4 { + margin-left: 268px; + } + .offset3 { + margin-left: 206px; + } + .offset2 { + margin-left: 144px; + } + .offset1 { + margin-left: 82px; + } + .row-fluid { + width: 100%; + *zoom: 1; + } + .row-fluid:before, + .row-fluid:after { + display: table; + content: ""; + line-height: 0; + } + .row-fluid:after { + clear: both; + } + .row-fluid [class*="span"] { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + float: left; + margin-left: 2.7624309392265194%; + *margin-left: 2.709239449864817%; + } + .row-fluid [class*="span"]:first-child { + margin-left: 0; + } + .row-fluid .controls-row [class*="span"] + [class*="span"] { + margin-left: 2.7624309392265194%; + } + .row-fluid .span12 { + width: 100%; + *width: 99.94680851063829%; + } + .row-fluid .span11 { + width: 91.43646408839778%; + *width: 91.38327259903608%; + } + .row-fluid .span10 { + width: 82.87292817679558%; + *width: 82.81973668743387%; + } + .row-fluid .span9 { + width: 74.30939226519337%; + *width: 74.25620077583166%; + } + .row-fluid .span8 { + width: 65.74585635359117%; + *width: 65.69266486422946%; + } + .row-fluid .span7 { + width: 57.18232044198895%; + *width: 57.12912895262725%; + } + .row-fluid .span6 { + width: 48.61878453038674%; + *width: 48.56559304102504%; + } + .row-fluid .span5 { + width: 40.05524861878453%; + *width: 40.00205712942283%; + } + .row-fluid .span4 { + width: 31.491712707182323%; + *width: 31.43852121782062%; + } + .row-fluid .span3 { + width: 22.92817679558011%; + *width: 22.87498530621841%; + } + .row-fluid .span2 { + width: 14.3646408839779%; + *width: 14.311449394616199%; + } + .row-fluid .span1 { + width: 5.801104972375691%; + *width: 5.747913483013988%; + } + .row-fluid .offset12 { + margin-left: 105.52486187845304%; + *margin-left: 105.41847889972962%; + } + .row-fluid .offset12:first-child { + margin-left: 102.76243093922652%; + *margin-left: 102.6560479605031%; + } + .row-fluid .offset11 { + margin-left: 96.96132596685082%; + *margin-left: 96.8549429881274%; + } + .row-fluid .offset11:first-child { + margin-left: 94.1988950276243%; + *margin-left: 94.09251204890089%; + } + .row-fluid .offset10 { + margin-left: 88.39779005524862%; + *margin-left: 88.2914070765252%; + } + .row-fluid .offset10:first-child { + margin-left: 85.6353591160221%; + *margin-left: 85.52897613729868%; + } + .row-fluid .offset9 { + margin-left: 79.8342541436464%; + *margin-left: 79.72787116492299%; + } + .row-fluid .offset9:first-child { + margin-left: 77.07182320441989%; + *margin-left: 76.96544022569647%; + } + .row-fluid .offset8 { + margin-left: 71.2707182320442%; + *margin-left: 71.16433525332079%; + } + .row-fluid .offset8:first-child { + margin-left: 68.50828729281768%; + *margin-left: 68.40190431409427%; + } + .row-fluid .offset7 { + margin-left: 62.70718232044199%; + *margin-left: 62.600799341718584%; + } + .row-fluid .offset7:first-child { + margin-left: 59.94475138121547%; + *margin-left: 59.838368402492065%; + } + .row-fluid .offset6 { + margin-left: 54.14364640883978%; + *margin-left: 54.037263430116376%; + } + .row-fluid .offset6:first-child { + margin-left: 51.38121546961326%; + *margin-left: 51.27483249088986%; + } + .row-fluid .offset5 { + margin-left: 45.58011049723757%; + *margin-left: 45.47372751851417%; + } + .row-fluid .offset5:first-child { + margin-left: 42.81767955801105%; + *margin-left: 42.71129657928765%; + } + .row-fluid .offset4 { + margin-left: 37.01657458563536%; + *margin-left: 36.91019160691196%; + } + .row-fluid .offset4:first-child { + margin-left: 34.25414364640884%; + *margin-left: 34.14776066768544%; + } + .row-fluid .offset3 { + margin-left: 28.45303867403315%; + *margin-left: 28.346655695309746%; + } + .row-fluid .offset3:first-child { + margin-left: 25.69060773480663%; + *margin-left: 25.584224756083227%; + } + .row-fluid .offset2 { + margin-left: 19.88950276243094%; + *margin-left: 19.783119783707537%; + } + .row-fluid .offset2:first-child { + margin-left: 17.12707182320442%; + *margin-left: 17.02068884448102%; + } + .row-fluid .offset1 { + margin-left: 11.32596685082873%; + *margin-left: 11.219583872105325%; + } + .row-fluid .offset1:first-child { + margin-left: 8.56353591160221%; + *margin-left: 8.457152932878806%; + } + input, + textarea, + .uneditable-input { + margin-left: 0; + } + .controls-row [class*="span"] + [class*="span"] { + margin-left: 20px; + } + input.span12, textarea.span12, .uneditable-input.span12 { + width: 710px; + } + input.span11, textarea.span11, .uneditable-input.span11 { + width: 648px; + } + input.span10, textarea.span10, .uneditable-input.span10 { + width: 586px; + } + input.span9, textarea.span9, .uneditable-input.span9 { + width: 524px; + } + input.span8, textarea.span8, .uneditable-input.span8 { + width: 462px; + } + input.span7, textarea.span7, .uneditable-input.span7 { + width: 400px; + } + input.span6, textarea.span6, .uneditable-input.span6 { + width: 338px; + } + input.span5, textarea.span5, .uneditable-input.span5 { + width: 276px; + } + input.span4, textarea.span4, .uneditable-input.span4 { + width: 214px; + } + input.span3, textarea.span3, .uneditable-input.span3 { + width: 152px; + } + input.span2, textarea.span2, .uneditable-input.span2 { + width: 90px; + } + input.span1, textarea.span1, .uneditable-input.span1 { + width: 28px; + } +} +@media (min-width: 1200px) { + .row { + margin-left: -30px; + *zoom: 1; + } + .row:before, + .row:after { + display: table; + content: ""; + line-height: 0; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + min-height: 1px; + margin-left: 30px; + } + .container, + .navbar-static-top .container, + .navbar-fixed-top .container, + .navbar-fixed-bottom .container { + width: 1170px; + } + .span12 { + width: 1170px; + } + .span11 { + width: 1070px; + } + .span10 { + width: 970px; + } + .span9 { + width: 870px; + } + .span8 { + width: 770px; + } + .span7 { + width: 670px; + } + .span6 { + width: 570px; + } + .span5 { + width: 470px; + } + .span4 { + width: 370px; + } + .span3 { + width: 270px; + } + .span2 { + width: 170px; + } + .span1 { + width: 70px; + } + .offset12 { + margin-left: 1230px; + } + .offset11 { + margin-left: 1130px; + } + .offset10 { + margin-left: 1030px; + } + .offset9 { + margin-left: 930px; + } + .offset8 { + margin-left: 830px; + } + .offset7 { + margin-left: 730px; + } + .offset6 { + margin-left: 630px; + } + .offset5 { + margin-left: 530px; + } + .offset4 { + margin-left: 430px; + } + .offset3 { + margin-left: 330px; + } + .offset2 { + margin-left: 230px; + } + .offset1 { + margin-left: 130px; + } + .row-fluid { + width: 100%; + *zoom: 1; + } + .row-fluid:before, + .row-fluid:after { + display: table; + content: ""; + line-height: 0; + } + .row-fluid:after { + clear: both; + } + .row-fluid [class*="span"] { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + float: left; + margin-left: 2.564102564102564%; + *margin-left: 2.5109110747408616%; + } + .row-fluid [class*="span"]:first-child { + margin-left: 0; + } + .row-fluid .controls-row [class*="span"] + [class*="span"] { + margin-left: 2.564102564102564%; + } + .row-fluid .span12 { + width: 100%; + *width: 99.94680851063829%; + } + .row-fluid .span11 { + width: 91.45299145299145%; + *width: 91.39979996362975%; + } + .row-fluid .span10 { + width: 82.90598290598291%; + *width: 82.8527914166212%; + } + .row-fluid .span9 { + width: 74.35897435897436%; + *width: 74.30578286961266%; + } + .row-fluid .span8 { + width: 65.81196581196582%; + *width: 65.75877432260411%; + } + .row-fluid .span7 { + width: 57.26495726495726%; + *width: 57.21176577559556%; + } + .row-fluid .span6 { + width: 48.717948717948715%; + *width: 48.664757228587014%; + } + .row-fluid .span5 { + width: 40.17094017094017%; + *width: 40.11774868157847%; + } + .row-fluid .span4 { + width: 31.623931623931625%; + *width: 31.570740134569924%; + } + .row-fluid .span3 { + width: 23.076923076923077%; + *width: 23.023731587561375%; + } + .row-fluid .span2 { + width: 14.52991452991453%; + *width: 14.476723040552828%; + } + .row-fluid .span1 { + width: 5.982905982905983%; + *width: 5.929714493544281%; + } + .row-fluid .offset12 { + margin-left: 105.12820512820512%; + *margin-left: 105.02182214948171%; + } + .row-fluid .offset12:first-child { + margin-left: 102.56410256410257%; + *margin-left: 102.45771958537915%; + } + .row-fluid .offset11 { + margin-left: 96.58119658119658%; + *margin-left: 96.47481360247316%; + } + .row-fluid .offset11:first-child { + margin-left: 94.01709401709402%; + *margin-left: 93.91071103837061%; + } + .row-fluid .offset10 { + margin-left: 88.03418803418803%; + *margin-left: 87.92780505546462%; + } + .row-fluid .offset10:first-child { + margin-left: 85.47008547008548%; + *margin-left: 85.36370249136206%; + } + .row-fluid .offset9 { + margin-left: 79.48717948717949%; + *margin-left: 79.38079650845607%; + } + .row-fluid .offset9:first-child { + margin-left: 76.92307692307693%; + *margin-left: 76.81669394435352%; + } + .row-fluid .offset8 { + margin-left: 70.94017094017094%; + *margin-left: 70.83378796144753%; + } + .row-fluid .offset8:first-child { + margin-left: 68.37606837606839%; + *margin-left: 68.26968539734497%; + } + .row-fluid .offset7 { + margin-left: 62.393162393162385%; + *margin-left: 62.28677941443899%; + } + .row-fluid .offset7:first-child { + margin-left: 59.82905982905982%; + *margin-left: 59.72267685033642%; + } + .row-fluid .offset6 { + margin-left: 53.84615384615384%; + *margin-left: 53.739770867430444%; + } + .row-fluid .offset6:first-child { + margin-left: 51.28205128205128%; + *margin-left: 51.175668303327875%; + } + .row-fluid .offset5 { + margin-left: 45.299145299145295%; + *margin-left: 45.1927623204219%; + } + .row-fluid .offset5:first-child { + margin-left: 42.73504273504273%; + *margin-left: 42.62865975631933%; + } + .row-fluid .offset4 { + margin-left: 36.75213675213675%; + *margin-left: 36.645753773413354%; + } + .row-fluid .offset4:first-child { + margin-left: 34.18803418803419%; + *margin-left: 34.081651209310785%; + } + .row-fluid .offset3 { + margin-left: 28.205128205128204%; + *margin-left: 28.0987452264048%; + } + .row-fluid .offset3:first-child { + margin-left: 25.641025641025642%; + *margin-left: 25.53464266230224%; + } + .row-fluid .offset2 { + margin-left: 19.65811965811966%; + *margin-left: 19.551736679396257%; + } + .row-fluid .offset2:first-child { + margin-left: 17.094017094017094%; + *margin-left: 16.98763411529369%; + } + .row-fluid .offset1 { + margin-left: 11.11111111111111%; + *margin-left: 11.004728132387708%; + } + .row-fluid .offset1:first-child { + margin-left: 8.547008547008547%; + *margin-left: 8.440625568285142%; + } + input, + textarea, + .uneditable-input { + margin-left: 0; + } + .controls-row [class*="span"] + [class*="span"] { + margin-left: 30px; + } + input.span12, textarea.span12, .uneditable-input.span12 { + width: 1156px; + } + input.span11, textarea.span11, .uneditable-input.span11 { + width: 1056px; + } + input.span10, textarea.span10, .uneditable-input.span10 { + width: 956px; + } + input.span9, textarea.span9, .uneditable-input.span9 { + width: 856px; + } + input.span8, textarea.span8, .uneditable-input.span8 { + width: 756px; + } + input.span7, textarea.span7, .uneditable-input.span7 { + width: 656px; + } + input.span6, textarea.span6, .uneditable-input.span6 { + width: 556px; + } + input.span5, textarea.span5, .uneditable-input.span5 { + width: 456px; + } + input.span4, textarea.span4, .uneditable-input.span4 { + width: 356px; + } + input.span3, textarea.span3, .uneditable-input.span3 { + width: 256px; + } + input.span2, textarea.span2, .uneditable-input.span2 { + width: 156px; + } + input.span1, textarea.span1, .uneditable-input.span1 { + width: 56px; + } + .thumbnails { + margin-left: -30px; + } + .thumbnails > li { + margin-left: 30px; + } + .row-fluid .thumbnails { + margin-left: 0; + } +} +@media (max-width: 979px) { + body { + padding-top: 0; + } + .navbar-fixed-top, + .navbar-fixed-bottom { + position: static; + } + .navbar-fixed-top { + margin-bottom: 20px; + } + .navbar-fixed-bottom { + margin-top: 20px; + } + .navbar-fixed-top .navbar-inner, + .navbar-fixed-bottom .navbar-inner { + padding: 5px; + } + .navbar .container { + width: auto; + padding: 0; + } + .navbar .brand { + padding-left: 10px; + padding-right: 10px; + margin: 0 0 0 -5px; + } + .nav-collapse { + clear: both; + } + .nav-collapse .nav { + float: none; + margin: 0 0 10px; + } + .nav-collapse .nav > li { + float: none; + } + .nav-collapse .nav > li > a { + margin-bottom: 2px; + } + .nav-collapse .nav > .divider-vertical { + display: none; + } + .nav-collapse .nav .nav-header { + color: #777777; + text-shadow: none; + } + .nav-collapse .nav > li > a, + .nav-collapse .dropdown-menu a { + padding: 9px 15px; + font-weight: bold; + color: #777777; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + } + .nav-collapse .btn { + padding: 4px 10px 4px; + font-weight: normal; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + } + .nav-collapse .dropdown-menu li + li a { + margin-bottom: 2px; + } + .nav-collapse .nav > li > a:hover, + .nav-collapse .dropdown-menu a:hover { + background-color: #f2f2f2; + } + .navbar-inverse .nav-collapse .nav > li > a, + .navbar-inverse .nav-collapse .dropdown-menu a { + color: #999999; + } + .navbar-inverse .nav-collapse .nav > li > a:hover, + .navbar-inverse .nav-collapse .dropdown-menu a:hover { + background-color: #111111; + } + .nav-collapse.in .btn-group { + margin-top: 5px; + padding: 0; + } + .nav-collapse .dropdown-menu { + position: static; + top: auto; + left: auto; + float: none; + display: none; + max-width: none; + margin: 0 15px; + padding: 0; + background-color: transparent; + border: none; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + } + .nav-collapse .open > .dropdown-menu { + display: block; + } + .nav-collapse .dropdown-menu:before, + .nav-collapse .dropdown-menu:after { + display: none; + } + .nav-collapse .dropdown-menu .divider { + display: none; + } + .nav-collapse .nav > li > .dropdown-menu:before, + .nav-collapse .nav > li > .dropdown-menu:after { + display: none; + } + .nav-collapse .navbar-form, + .nav-collapse .navbar-search { + float: none; + padding: 10px 15px; + margin: 10px 0; + border-top: 1px solid #f2f2f2; + border-bottom: 1px solid #f2f2f2; + -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1); + -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1); + box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1); + } + .navbar-inverse .nav-collapse .navbar-form, + .navbar-inverse .nav-collapse .navbar-search { + border-top-color: #111111; + border-bottom-color: #111111; + } + .navbar .nav-collapse .nav.pull-right { + float: none; + margin-left: 0; + } + .nav-collapse, + .nav-collapse.collapse { + overflow: hidden; + height: 0; + } + .navbar .btn-navbar { + display: block; + } + .navbar-static .navbar-inner { + padding-left: 10px; + padding-right: 10px; + } +} +@media (min-width: 980px) { + .nav-collapse.collapse { + height: auto !important; + overflow: visible !important; + } +} diff --git a/assets/bootstrap/css/bootstrap.min.css b/assets/bootstrap/css/bootstrap.min.css new file mode 100644 index 0000000..b1b9839 --- /dev/null +++ b/assets/bootstrap/css/bootstrap.min.css @@ -0,0 +1,717 @@ +/*! + * Bootstrap v2.2.1 + * + * Copyright 2012 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 @twitter by @mdo and @fat. + */ +.clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0;} +.clearfix:after{clear:both;} +.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;} +.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;} +article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block;} +audio,canvas,video{display:inline-block;*display:inline;*zoom:1;} +audio:not([controls]){display:none;} +html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;} +a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;} +a:hover,a:active{outline:0;} +sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline;} +sup{top:-0.5em;} +sub{bottom:-0.25em;} +img{max-width:100%;width:auto\9;height:auto;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic;} +#map_canvas img,.google-maps img{max-width:none;} +button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle;} +button,input{*overflow:visible;line-height:normal;} +button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0;} +button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer;} +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-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none;} +textarea{overflow:auto;vertical-align:top;} +body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333333;background-color:#ffffff;} +a{color:#0088cc;text-decoration:none;} +a:hover{color:#005580;text-decoration:underline;} +.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;} +.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);-webkit-box-shadow:0 1px 3px rgba(0, 0, 0, 0.1);-moz-box-shadow:0 1px 3px rgba(0, 0, 0, 0.1);box-shadow:0 1px 3px rgba(0, 0, 0, 0.1);} +.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px;} +.row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";line-height:0;} +.row:after{clear:both;} +[class*="span"]{float:left;min-height:1px;margin-left:20px;} +.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px;} +.span12{width:940px;} +.span11{width:860px;} +.span10{width:780px;} +.span9{width:700px;} +.span8{width:620px;} +.span7{width:540px;} +.span6{width:460px;} +.span5{width:380px;} +.span4{width:300px;} +.span3{width:220px;} +.span2{width:140px;} +.span1{width:60px;} +.offset12{margin-left:980px;} +.offset11{margin-left:900px;} +.offset10{margin-left:820px;} +.offset9{margin-left:740px;} +.offset8{margin-left:660px;} +.offset7{margin-left:580px;} +.offset6{margin-left:500px;} +.offset5{margin-left:420px;} +.offset4{margin-left:340px;} +.offset3{margin-left:260px;} +.offset2{margin-left:180px;} +.offset1{margin-left:100px;} +.row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;} +.row-fluid:after{clear:both;} +.row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;} +.row-fluid [class*="span"]:first-child{margin-left:0;} +.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%;} +.row-fluid .span12{width:100%;*width:99.94680851063829%;} +.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%;} +.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%;} +.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%;} +.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%;} +.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%;} +.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%;} +.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%;} +.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%;} +.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%;} +.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%;} +.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%;} +.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%;} +.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%;} +.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%;} +.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%;} +.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%;} +.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%;} +.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%;} +.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%;} +.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%;} +.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%;} +.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%;} +.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%;} +.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%;} +.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%;} +.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%;} +.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%;} +.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%;} +.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%;} +.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%;} +.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%;} +.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%;} +.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%;} +.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%;} +.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%;} +[class*="span"].hide,.row-fluid [class*="span"].hide{display:none;} +[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right;} +.container{margin-right:auto;margin-left:auto;*zoom:1;}.container:before,.container:after{display:table;content:"";line-height:0;} +.container:after{clear:both;} +.container-fluid{padding-right:20px;padding-left:20px;*zoom:1;}.container-fluid:before,.container-fluid:after{display:table;content:"";line-height:0;} +.container-fluid:after{clear:both;} +p{margin:0 0 10px;} +.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px;} +small{font-size:85%;} +strong{font-weight:bold;} +em{font-style:italic;} +cite{font-style:normal;} +.muted{color:#999999;} +.text-warning{color:#c09853;} +a.text-warning:hover{color:#a47e3c;} +.text-error{color:#b94a48;} +a.text-error:hover{color:#953b39;} +.text-info{color:#3a87ad;} +a.text-info:hover{color:#2d6987;} +.text-success{color:#468847;} +a.text-success:hover{color:#356635;} +h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility;}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999999;} +h1,h2,h3{line-height:40px;} +h1{font-size:38.5px;} +h2{font-size:31.5px;} +h3{font-size:24.5px;} +h4{font-size:17.5px;} +h5{font-size:14px;} +h6{font-size:11.9px;} +h1 small{font-size:24.5px;} +h2 small{font-size:17.5px;} +h3 small{font-size:14px;} +h4 small{font-size:14px;} +.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eeeeee;} +ul,ol{padding:0;margin:0 0 10px 25px;} +ul ul,ul ol,ol ol,ol ul{margin-bottom:0;} +li{line-height:20px;} +ul.unstyled,ol.unstyled{margin-left:0;list-style:none;} +dl{margin-bottom:20px;} +dt,dd{line-height:20px;} +dt{font-weight:bold;} +dd{margin-left:10px;} +.dl-horizontal{*zoom:1;}.dl-horizontal:before,.dl-horizontal:after{display:table;content:"";line-height:0;} +.dl-horizontal:after{clear:both;} +.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;} +.dl-horizontal dd{margin-left:180px;} +hr{margin:20px 0;border:0;border-top:1px solid #eeeeee;border-bottom:1px solid #ffffff;} +abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999999;} +abbr.initialism{font-size:90%;text-transform:uppercase;} +blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eeeeee;}blockquote p{margin-bottom:0;font-size:16px;font-weight:300;line-height:25px;} +blockquote small{display:block;line-height:20px;color:#999999;}blockquote small:before{content:'\2014 \00A0';} +blockquote.pull-right{float: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:20px;} +code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} +code{padding:2px 4px;color:#d14;background-color:#f7f7f9;border:1px solid #e1e1e8;} +pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}pre.prettyprint{margin-bottom:20px;} +pre code{padding:0;color:inherit;background-color:transparent;border:0;} +.pre-scrollable{max-height:340px;overflow-y:scroll;} +.label,.badge{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#ffffff;vertical-align:baseline;white-space:nowrap;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#999999;} +.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} +.badge{padding-left:9px;padding-right:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px;} +a.label:hover,a.badge:hover{color:#ffffff;text-decoration:none;cursor:pointer;} +.label-important,.badge-important{background-color:#b94a48;} +.label-important[href],.badge-important[href]{background-color:#953b39;} +.label-warning,.badge-warning{background-color:#f89406;} +.label-warning[href],.badge-warning[href]{background-color:#c67605;} +.label-success,.badge-success{background-color:#468847;} +.label-success[href],.badge-success[href]{background-color:#356635;} +.label-info,.badge-info{background-color:#3a87ad;} +.label-info[href],.badge-info[href]{background-color:#2d6987;} +.label-inverse,.badge-inverse{background-color:#333333;} +.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a;} +.btn .label,.btn .badge{position:relative;top:-1px;} +.btn-mini .label,.btn-mini .badge{top:0;} +table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0;} +.table{width:100%;margin-bottom:20px;}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #dddddd;} +.table th{font-weight:bold;} +.table thead th{vertical-align:bottom;} +.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0;} +.table tbody+tbody{border-top:2px solid #dddddd;} +.table-condensed th,.table-condensed td{padding:4px 5px;} +.table-bordered{border:1px solid #dddddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.table-bordered th,.table-bordered td{border-left:1px solid #dddddd;} +.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0;} +.table-bordered thead:first-child tr:first-child th:first-child,.table-bordered tbody:first-child tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px;} +.table-bordered thead:first-child tr:first-child th:last-child,.table-bordered tbody:first-child tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px;} +.table-bordered thead:last-child tr:last-child th:first-child,.table-bordered tbody:last-child tr:last-child td:first-child,.table-bordered tfoot:last-child tr:last-child td:first-child{-webkit-border-radius:0 0 0 4px;-moz-border-radius:0 0 0 4px;border-radius:0 0 0 4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;} +.table-bordered thead:last-child tr:last-child th:last-child,.table-bordered tbody:last-child tr:last-child td:last-child,.table-bordered tfoot:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;} +.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px;} +.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px;} +.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 td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0;} +.table td.span1,.table th.span1{float:none;width:44px;margin-left:0;} +.table td.span2,.table th.span2{float:none;width:124px;margin-left:0;} +.table td.span3,.table th.span3{float:none;width:204px;margin-left:0;} +.table td.span4,.table th.span4{float:none;width:284px;margin-left:0;} +.table td.span5,.table th.span5{float:none;width:364px;margin-left:0;} +.table td.span6,.table th.span6{float:none;width:444px;margin-left:0;} +.table td.span7,.table th.span7{float:none;width:524px;margin-left:0;} +.table td.span8,.table th.span8{float:none;width:604px;margin-left:0;} +.table td.span9,.table th.span9{float:none;width:684px;margin-left:0;} +.table td.span10,.table th.span10{float:none;width:764px;margin-left:0;} +.table td.span11,.table th.span11{float:none;width:844px;margin-left:0;} +.table td.span12,.table th.span12{float:none;width:924px;margin-left:0;} +.table tbody tr.success td{background-color:#dff0d8;} +.table tbody tr.error td{background-color:#f2dede;} +.table tbody tr.warning td{background-color:#fcf8e3;} +.table tbody tr.info td{background-color:#d9edf7;} +.table-hover tbody tr.success:hover td{background-color:#d0e9c6;} +.table-hover tbody tr.error:hover td{background-color:#ebcccc;} +.table-hover tbody tr.warning:hover td{background-color:#faf2cc;} +.table-hover tbody tr.info:hover td{background-color:#c4e3f3;} +form{margin:0 0 20px;} +fieldset{padding:0;margin:0;border:0;} +legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333333;border:0;border-bottom:1px solid #e5e5e5;}legend small{font-size:15px;color:#999999;} +label,input,button,select,textarea{font-size:14px;font-weight:normal;line-height:20px;} +input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;} +label{display:block;margin-bottom:5px;} +select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555555;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;vertical-align:middle;} +input,textarea,.uneditable-input{width:206px;} +textarea{height:auto;} +textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#ffffff;border:1px solid #cccccc;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-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 linear .2s, box-shadow linear .2s;-moz-transition:border linear .2s, box-shadow linear .2s;-o-transition:border linear .2s, box-shadow linear .2s;transition:border linear .2s, box-shadow linear .2s;}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82, 168, 236, 0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);} +input[type="radio"],input[type="checkbox"]{margin:4px 0 0;*margin-top:0;margin-top:1px \9;line-height:normal;cursor:pointer;} +input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto;} +select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px;} +select{width:220px;border:1px solid #cccccc;background-color:#ffffff;} +select[multiple],select[size]{height:auto;} +select:focus,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;} +.uneditable-input,.uneditable-textarea{color:#999999;background-color:#fcfcfc;border-color:#cccccc;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);cursor:not-allowed;} +.uneditable-input{overflow:hidden;white-space:nowrap;} +.uneditable-textarea{width:auto;height:auto;} +input:-moz-placeholder,textarea:-moz-placeholder{color:#999999;} +input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999999;} +input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999999;} +.radio,.checkbox{min-height:20px;padding-left:20px;} +.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px;} +.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px;} +.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle;} +.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px;} +.input-mini{width:60px;} +.input-small{width:90px;} +.input-medium{width:150px;} +.input-large{width:210px;} +.input-xlarge{width:270px;} +.input-xxlarge{width:530px;} +input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0;} +.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block;} +input,textarea,.uneditable-input{margin-left:0;} +.controls-row [class*="span"]+[class*="span"]{margin-left:20px;} +input.span12, textarea.span12, .uneditable-input.span12{width:926px;} +input.span11, textarea.span11, .uneditable-input.span11{width:846px;} +input.span10, textarea.span10, .uneditable-input.span10{width:766px;} +input.span9, textarea.span9, .uneditable-input.span9{width:686px;} +input.span8, textarea.span8, .uneditable-input.span8{width:606px;} +input.span7, textarea.span7, .uneditable-input.span7{width:526px;} +input.span6, textarea.span6, .uneditable-input.span6{width:446px;} +input.span5, textarea.span5, .uneditable-input.span5{width:366px;} +input.span4, textarea.span4, .uneditable-input.span4{width:286px;} +input.span3, textarea.span3, .uneditable-input.span3{width:206px;} +input.span2, textarea.span2, .uneditable-input.span2{width:126px;} +input.span1, textarea.span1, .uneditable-input.span1{width:46px;} +.controls-row{*zoom:1;}.controls-row:before,.controls-row:after{display:table;content:"";line-height:0;} +.controls-row:after{clear:both;} +.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left;} +.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px;} +input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eeeeee;} +input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent;} +.control-group.warning>label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853;} +.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853;} +.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #dbc59e;-moz-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;} +.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853;} +.control-group.error>label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48;} +.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48;} +.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #d59392;-moz-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;} +.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48;} +.control-group.success>label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847;} +.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847;} +.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7aba7b;-moz-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;} +.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847;} +.control-group.info>label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad;} +.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad;} +.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7ab5d3;} +.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad;} +input:focus:required:invalid,textarea:focus:required:invalid,select:focus:required:invalid{color:#b94a48;border-color:#ee5f5b;}input:focus:required:invalid:focus,textarea:focus:required:invalid:focus,select:focus:required:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7;} +.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1;}.form-actions:before,.form-actions:after{display:table;content:"";line-height:0;} +.form-actions:after{clear:both;} +.help-block,.help-inline{color:#595959;} +.help-block{display:block;margin-bottom:10px;} +.help-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;padding-left:5px;} +.input-append,.input-prepend{margin-bottom:5px;font-size:0;white-space:nowrap;}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu{font-size:14px;} +.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2;} +.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #ffffff;background-color:#eeeeee;border:1px solid #ccc;} +.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} +.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546;} +.input-prepend .add-on,.input-prepend .btn{margin-right:-1px;} +.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;} +.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;}.input-append input+.btn-group .btn,.input-append select+.btn-group .btn,.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;} +.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px;} +.input-append .add-on:last-child,.input-append .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;} +.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;} +.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;} +.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;} +.input-prepend.input-append .btn-group:first-child{margin-left:0;} +input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;} +.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} +.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px;} +.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0;} +.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0;} +.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px;} +.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;*zoom:1;margin-bottom:0;vertical-align:middle;} +.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none;} +.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block;} +.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0;} +.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle;} +.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0;} +.control-group{margin-bottom:10px;} +legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate;} +.form-horizontal .control-group{margin-bottom:20px;*zoom:1;}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;content:"";line-height:0;} +.form-horizontal .control-group:after{clear:both;} +.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right;} +.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0;}.form-horizontal .controls:first-child{*padding-left:180px;} +.form-horizontal .help-block{margin-bottom:0;} +.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block{margin-top:10px;} +.form-horizontal .form-actions{padding-left:180px;} +.btn{display:inline-block;*display:inline;*zoom:1;padding:4px 12px;margin-bottom:0;font-size:14px;line-height:20px;*line-height:20px;text-align:center;vertical-align:middle;cursor:pointer;color:#333333;text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);background-color:#f5f5f5;background-image:-moz-linear-gradient(top, #ffffff, #e6e6e6);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));background-image:-webkit-linear-gradient(top, #ffffff, #e6e6e6);background-image:-o-linear-gradient(top, #ffffff, #e6e6e6);background-image:linear-gradient(to bottom, #ffffff, #e6e6e6);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#e6e6e6;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border:1px solid #bbbbbb;*border:0;border-bottom-color:#a2a2a2;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*margin-left:.3em;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);}.btn:hover,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333333;background-color:#e6e6e6;*background-color:#d9d9d9;} +.btn:active,.btn.active{background-color:#cccccc \9;} +.btn:first-child{*margin-left:0;} +.btn:hover{color:#333333;text-decoration:none;background-color:#e6e6e6;*background-color:#d9d9d9;background-position:0 -15px;-webkit-transition:background-position 0.1s linear;-moz-transition:background-position 0.1s linear;-o-transition:background-position 0.1s linear;transition:background-position 0.1s linear;} +.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;} +.btn.active,.btn:active{background-color:#e6e6e6;background-color:#d9d9d9 \9;background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);} +.btn.disabled,.btn[disabled]{cursor:default;background-color:#e6e6e6;background-image:none;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} +.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;} +.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:2px;} +.btn-small{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} +.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0;} +.btn-mini{padding:1px 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} +.btn-block{display:block;width:100%;padding-left:0;padding-right:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;} +.btn-block+.btn-block{margin-top:5px;} +input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%;} +.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255, 255, 255, 0.75);} +.btn{border-color:#c5c5c5;border-color:rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.25);} +.btn-primary{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#006dcc;background-image:-moz-linear-gradient(top, #0088cc, #0044cc);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));background-image:-webkit-linear-gradient(top, #0088cc, #0044cc);background-image:-o-linear-gradient(top, #0088cc, #0044cc);background-image:linear-gradient(to bottom, #0088cc, #0044cc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);border-color:#0044cc #0044cc #002a80;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#0044cc;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-primary:hover,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#ffffff;background-color:#0044cc;*background-color:#003bb3;} +.btn-primary:active,.btn-primary.active{background-color:#003399 \9;} +.btn-warning{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#faa732;background-image:-moz-linear-gradient(top, #fbb450, #f89406);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));background-image:-webkit-linear-gradient(top, #fbb450, #f89406);background-image:-o-linear-gradient(top, #fbb450, #f89406);background-image:linear-gradient(to bottom, #fbb450, #f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);border-color:#f89406 #f89406 #ad6704;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#f89406;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-warning:hover,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#ffffff;background-color:#f89406;*background-color:#df8505;} +.btn-warning:active,.btn-warning.active{background-color:#c67605 \9;} +.btn-danger{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#da4f49;background-image:-moz-linear-gradient(top, #ee5f5b, #bd362f);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));background-image:-webkit-linear-gradient(top, #ee5f5b, #bd362f);background-image:-o-linear-gradient(top, #ee5f5b, #bd362f);background-image:linear-gradient(to bottom, #ee5f5b, #bd362f);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0);border-color:#bd362f #bd362f #802420;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#bd362f;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-danger:hover,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#ffffff;background-color:#bd362f;*background-color:#a9302a;} +.btn-danger:active,.btn-danger.active{background-color:#942a25 \9;} +.btn-success{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#5bb75b;background-image:-moz-linear-gradient(top, #62c462, #51a351);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));background-image:-webkit-linear-gradient(top, #62c462, #51a351);background-image:-o-linear-gradient(top, #62c462, #51a351);background-image:linear-gradient(to bottom, #62c462, #51a351);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0);border-color:#51a351 #51a351 #387038;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#51a351;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-success:hover,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#ffffff;background-color:#51a351;*background-color:#499249;} +.btn-success:active,.btn-success.active{background-color:#408140 \9;} +.btn-info{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#49afcd;background-image:-moz-linear-gradient(top, #5bc0de, #2f96b4);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));background-image:-webkit-linear-gradient(top, #5bc0de, #2f96b4);background-image:-o-linear-gradient(top, #5bc0de, #2f96b4);background-image:linear-gradient(to bottom, #5bc0de, #2f96b4);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0);border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#2f96b4;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-info:hover,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#ffffff;background-color:#2f96b4;*background-color:#2a85a0;} +.btn-info:active,.btn-info.active{background-color:#24748c \9;} +.btn-inverse{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#363636;background-image:-moz-linear-gradient(top, #444444, #222222);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222));background-image:-webkit-linear-gradient(top, #444444, #222222);background-image:-o-linear-gradient(top, #444444, #222222);background-image:linear-gradient(to bottom, #444444, #222222);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0);border-color:#222222 #222222 #000000;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#222222;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-inverse:hover,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#ffffff;background-color:#222222;*background-color:#151515;} +.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9;} +button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px;}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0;} +button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px;} +button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px;} +button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px;} +.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} +.btn-link{border-color:transparent;cursor:pointer;color:#0088cc;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} +.btn-link:hover{color:#005580;text-decoration:underline;background-color:transparent;} +.btn-link[disabled]:hover{color:#333333;text-decoration:none;} +.btn-group{position:relative;display:inline-block;*display:inline;*zoom:1;font-size:0;vertical-align:middle;white-space:nowrap;*margin-left:.3em;}.btn-group:first-child{*margin-left:0;} +.btn-group+.btn-group{margin-left:5px;} +.btn-toolbar{font-size:0;margin-top:10px;margin-bottom:10px;}.btn-toolbar .btn+.btn,.btn-toolbar .btn-group+.btn,.btn-toolbar .btn+.btn-group{margin-left:5px;} +.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} +.btn-group>.btn+.btn{margin-left:-1px;} +.btn-group>.btn,.btn-group>.dropdown-menu{font-size:14px;} +.btn-group>.btn-mini{font-size:11px;} +.btn-group>.btn-small{font-size:12px;} +.btn-group>.btn-large{font-size:16px;} +.btn-group>.btn:first-child{margin-left:0;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;} +.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;} +.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px;} +.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;} +.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2;} +.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0;} +.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);*padding-top:5px;*padding-bottom:5px;} +.btn-group>.btn-mini+.dropdown-toggle{padding-left:5px;padding-right:5px;*padding-top:2px;*padding-bottom:2px;} +.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px;} +.btn-group>.btn-large+.dropdown-toggle{padding-left:12px;padding-right:12px;*padding-top:7px;*padding-bottom:7px;} +.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);} +.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6;} +.btn-group.open .btn-primary.dropdown-toggle{background-color:#0044cc;} +.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406;} +.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f;} +.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351;} +.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4;} +.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222222;} +.btn .caret{margin-top:8px;margin-left:0;} +.btn-mini .caret,.btn-small .caret,.btn-large .caret{margin-top:6px;} +.btn-large .caret{border-left-width:5px;border-right-width:5px;border-top-width:5px;} +.dropup .btn-large .caret{border-bottom-width:5px;} +.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;} +.btn-group-vertical{display:inline-block;*display:inline;*zoom:1;} +.btn-group-vertical .btn{display:block;float:none;width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} +.btn-group-vertical .btn+.btn{margin-left:0;margin-top:-1px;} +.btn-group-vertical .btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;} +.btn-group-vertical .btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;} +.btn-group-vertical .btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0;} +.btn-group-vertical .btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;} +.nav{margin-left:0;margin-bottom:20px;list-style:none;} +.nav>li>a{display:block;} +.nav>li>a:hover{text-decoration:none;background-color:#eeeeee;} +.nav>.pull-right{float:right;} +.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999999;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);text-transform:uppercase;} +.nav li+.nav-header{margin-top:9px;} +.nav-list{padding-left:15px;padding-right:15px;margin-bottom:0;} +.nav-list>li>a,.nav-list .nav-header{margin-left:-15px;margin-right:-15px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);} +.nav-list>li>a{padding:3px 15px;} +.nav-list>.active>a,.nav-list>.active>a:hover{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.2);background-color:#0088cc;} +.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px;} +.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #ffffff;} +.nav-tabs,.nav-pills{*zoom:1;}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;content:"";line-height:0;} +.nav-tabs:after,.nav-pills:after{clear:both;} +.nav-tabs>li,.nav-pills>li{float:left;} +.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px;} +.nav-tabs{border-bottom:1px solid #ddd;} +.nav-tabs>li{margin-bottom:-1px;} +.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;}.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #dddddd;} +.nav-tabs>.active>a,.nav-tabs>.active>a:hover{color:#555555;background-color:#ffffff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default;} +.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;} +.nav-pills>.active>a,.nav-pills>.active>a:hover{color:#ffffff;background-color:#0088cc;} +.nav-stacked>li{float:none;} +.nav-stacked>li>a{margin-right:0;} +.nav-tabs.nav-stacked{border-bottom:0;} +.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} +.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;} +.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;} +.nav-tabs.nav-stacked>li>a:hover{border-color:#ddd;z-index:2;} +.nav-pills.nav-stacked>li>a{margin-bottom:3px;} +.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px;} +.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;} +.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;} +.nav .dropdown-toggle .caret{border-top-color:#0088cc;border-bottom-color:#0088cc;margin-top:6px;} +.nav .dropdown-toggle:hover .caret{border-top-color:#005580;border-bottom-color:#005580;} +.nav-tabs .dropdown-toggle .caret{margin-top:8px;} +.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff;} +.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555555;border-bottom-color:#555555;} +.nav>.dropdown.active>a:hover{cursor:pointer;} +.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover{color:#ffffff;background-color:#999999;border-color:#999999;} +.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;opacity:1;filter:alpha(opacity=100);} +.tabs-stacked .open>a:hover{border-color:#999999;} +.tabbable{*zoom:1;}.tabbable:before,.tabbable:after{display:table;content:"";line-height:0;} +.tabbable:after{clear:both;} +.tab-content{overflow:auto;} +.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0;} +.tab-content>.tab-pane,.pill-content>.pill-pane{display:none;} +.tab-content>.active,.pill-content>.active{display:block;} +.tabs-below>.nav-tabs{border-top:1px solid #ddd;} +.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0;} +.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;}.tabs-below>.nav-tabs>li>a:hover{border-bottom-color:transparent;border-top-color:#ddd;} +.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover{border-color:transparent #ddd #ddd #ddd;} +.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none;} +.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px;} +.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd;} +.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;} +.tabs-left>.nav-tabs>li>a:hover{border-color:#eeeeee #dddddd #eeeeee #eeeeee;} +.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover{border-color:#ddd transparent #ddd #ddd;*border-right-color:#ffffff;} +.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd;} +.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;} +.tabs-right>.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #eeeeee #dddddd;} +.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover{border-color:#ddd #ddd #ddd transparent;*border-left-color:#ffffff;} +.nav>.disabled>a{color:#999999;} +.nav>.disabled>a:hover{text-decoration:none;background-color:transparent;cursor:default;} +.navbar{overflow:visible;margin-bottom:20px;color:#777777;*position:relative;*z-index:2;} +.navbar-inner{min-height:40px;padding-left:20px;padding-right:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top, #ffffff, #f2f2f2);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2));background-image:-webkit-linear-gradient(top, #ffffff, #f2f2f2);background-image:-o-linear-gradient(top, #ffffff, #f2f2f2);background-image:linear-gradient(to bottom, #ffffff, #f2f2f2);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0);border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 4px rgba(0, 0, 0, 0.065);-moz-box-shadow:0 1px 4px rgba(0, 0, 0, 0.065);box-shadow:0 1px 4px rgba(0, 0, 0, 0.065);*zoom:1;}.navbar-inner:before,.navbar-inner:after{display:table;content:"";line-height:0;} +.navbar-inner:after{clear:both;} +.navbar .container{width:auto;} +.nav-collapse.collapse{height:auto;overflow:visible;} +.navbar .brand{float:left;display:block;padding:10px 20px 10px;margin-left:-20px;font-size:20px;font-weight:200;color:#777777;text-shadow:0 1px 0 #ffffff;}.navbar .brand:hover{text-decoration:none;} +.navbar-text{margin-bottom:0;line-height:40px;} +.navbar-link{color:#777777;}.navbar-link:hover{color:#333333;} +.navbar .divider-vertical{height:40px;margin:0 9px;border-left:1px solid #f2f2f2;border-right:1px solid #ffffff;} +.navbar .btn,.navbar .btn-group{margin-top:5px;} +.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn{margin-top:0;} +.navbar-form{margin-bottom:0;*zoom:1;}.navbar-form:before,.navbar-form:after{display:table;content:"";line-height:0;} +.navbar-form:after{clear:both;} +.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px;} +.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0;} +.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px;} +.navbar-form .input-append,.navbar-form .input-prepend{margin-top:6px;white-space:nowrap;}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0;} +.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0;}.navbar-search .search-query{margin-bottom:0;padding:4px 14px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;} +.navbar-static-top{position:static;margin-bottom:0;}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} +.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0;} +.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px;} +.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0;} +.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-left:0;padding-right:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} +.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px;} +.navbar-fixed-top{top:0;} +.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,.1);box-shadow:0 1px 10px rgba(0,0,0,.1);} +.navbar-fixed-bottom{bottom:0;}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,.1);box-shadow:0 -1px 10px rgba(0,0,0,.1);} +.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0;} +.navbar .nav.pull-right{float:right;margin-right:0;} +.navbar .nav>li{float:left;} +.navbar .nav>li>a{float:none;padding:10px 15px 10px;color:#777777;text-decoration:none;text-shadow:0 1px 0 #ffffff;} +.navbar .nav .dropdown-toggle .caret{margin-top:8px;} +.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{background-color:transparent;color:#333333;text-decoration:none;} +.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#555555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0, 0, 0, 0.125);-moz-box-shadow:inset 0 3px 8px rgba(0, 0, 0, 0.125);box-shadow:inset 0 3px 8px rgba(0, 0, 0, 0.125);} +.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-left:5px;margin-right:5px;color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#ededed;background-image:-moz-linear-gradient(top, #f2f2f2, #e5e5e5);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#e5e5e5));background-image:-webkit-linear-gradient(top, #f2f2f2, #e5e5e5);background-image:-o-linear-gradient(top, #f2f2f2, #e5e5e5);background-image:linear-gradient(to bottom, #f2f2f2, #e5e5e5);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffe5e5e5', GradientType=0);border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#e5e5e5;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);}.navbar .btn-navbar:hover,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#ffffff;background-color:#e5e5e5;*background-color:#d9d9d9;} +.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#cccccc \9;} +.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);-moz-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);} +.btn-navbar .icon-bar+.icon-bar{margin-top:3px;} +.navbar .nav>li>.dropdown-menu:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0, 0, 0, 0.2);position:absolute;top:-7px;left:9px;} +.navbar .nav>li>.dropdown-menu:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #ffffff;position:absolute;top:-6px;left:10px;} +.navbar-fixed-bottom .nav>li>.dropdown-menu:before{border-top:7px solid #ccc;border-top-color:rgba(0, 0, 0, 0.2);border-bottom:0;bottom:-7px;top:auto;} +.navbar-fixed-bottom .nav>li>.dropdown-menu:after{border-top:6px solid #ffffff;border-bottom:0;bottom:-6px;top:auto;} +.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{background-color:#e5e5e5;color:#555555;} +.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777777;border-bottom-color:#777777;} +.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#555555;border-bottom-color:#555555;} +.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{left:auto;right:0;}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{left:auto;right:12px;} +.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{left:auto;right:13px;} +.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{left:auto;right:100%;margin-left:0;margin-right:-1px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px;} +.navbar-inverse{color:#999999;}.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top, #222222, #111111);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#111111));background-image:-webkit-linear-gradient(top, #222222, #111111);background-image:-o-linear-gradient(top, #222222, #111111);background-image:linear-gradient(to bottom, #222222, #111111);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0);border-color:#252525;} +.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999999;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover{color:#ffffff;} +.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{background-color:transparent;color:#ffffff;} +.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#ffffff;background-color:#111111;} +.navbar-inverse .navbar-link{color:#999999;}.navbar-inverse .navbar-link:hover{color:#ffffff;} +.navbar-inverse .divider-vertical{border-left-color:#111111;border-right-color:#222222;} +.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{background-color:#111111;color:#ffffff;} +.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999999;border-bottom-color:#999999;} +.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;} +.navbar-inverse .navbar-search .search-query{color:#ffffff;background-color:#515151;border-color:#111111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);box-shadow:inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none;}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#cccccc;} +.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#cccccc;} +.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#cccccc;} +.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333333;text-shadow:0 1px 0 #ffffff;background-color:#ffffff;border:0;-webkit-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);-moz-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);box-shadow:0 0 3px rgba(0, 0, 0, 0.15);outline:0;} +.navbar-inverse .btn-navbar{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#0e0e0e;background-image:-moz-linear-gradient(top, #151515, #040404);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#151515), to(#040404));background-image:-webkit-linear-gradient(top, #151515, #040404);background-image:-o-linear-gradient(top, #151515, #040404);background-image:linear-gradient(to bottom, #151515, #040404);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515', endColorstr='#ff040404', GradientType=0);border-color:#040404 #040404 #000000;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#040404;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#ffffff;background-color:#040404;*background-color:#000000;} +.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000000 \9;} +.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.breadcrumb li{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 0 #ffffff;} +.breadcrumb .divider{padding:0 5px;color:#ccc;} +.breadcrumb .active{color:#999999;} +.pagination{margin:20px 0;} +.pagination ul{display:inline-block;*display:inline;*zoom:1;margin-left:0;margin-bottom:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);} +.pagination ul>li{display:inline;} +.pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#ffffff;border:1px solid #dddddd;border-left-width:0;} +.pagination ul>li>a:hover,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5;} +.pagination ul>.active>a,.pagination ul>.active>span{color:#999999;cursor:default;} +.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover{color:#999999;background-color:transparent;cursor:default;} +.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;} +.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;} +.pagination-centered{text-align:center;} +.pagination-right{text-align:right;} +.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:17.5px;} +.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px;} +.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;} +.pagination-mini ul>li:first-child>a,.pagination-small ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>span{-webkit-border-top-left-radius:3px;-moz-border-radius-topleft:3px;border-top-left-radius:3px;-webkit-border-bottom-left-radius:3px;-moz-border-radius-bottomleft:3px;border-bottom-left-radius:3px;} +.pagination-mini ul>li:last-child>a,.pagination-small ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;-moz-border-radius-topright:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;-moz-border-radius-bottomright:3px;border-bottom-right-radius:3px;} +.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:11.9px;} +.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:1px 6px;font-size:10.5px;} +.pager{margin:20px 0;list-style:none;text-align:center;*zoom:1;}.pager:before,.pager:after{display:table;content:"";line-height:0;} +.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;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;} +.pager li>a:hover{text-decoration:none;background-color:#f5f5f5;} +.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>span{color:#999999;background-color:#fff;cursor:default;} +.thumbnails{margin-left:-20px;list-style:none;*zoom:1;}.thumbnails:before,.thumbnails:after{display:table;content:"";line-height:0;} +.thumbnails:after{clear:both;} +.row-fluid .thumbnails{margin-left:0;} +.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px;} +.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0, 0, 0, 0.055);-moz-box-shadow:0 1px 3px rgba(0, 0, 0, 0.055);box-shadow:0 1px 3px rgba(0, 0, 0, 0.055);-webkit-transition:all 0.2s ease-in-out;-moz-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;} +a.thumbnail:hover{border-color:#0088cc;-webkit-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);-moz-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);} +.thumbnail>img{display:block;max-width:100%;margin-left:auto;margin-right:auto;} +.thumbnail .caption{padding:9px;color:#555555;} +.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;color:#c09853;} +.alert h4{margin:0;} +.alert .close{position:relative;top:-2px;right:-21px;line-height:20px;} +.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847;} +.alert-danger,.alert-error{background-color:#f2dede;border-color:#eed3d7;color:#b94a48;} +.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad;} +.alert-block{padding-top:14px;padding-bottom:14px;} +.alert-block>p,.alert-block>ul{margin-bottom:0;} +.alert-block p+p{margin-top:5px;} +@-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;}}@-ms-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{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f7f7f7;background-image:-moz-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));background-image:-webkit-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-o-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:linear-gradient(to bottom, #f5f5f5, #f9f9f9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.progress .bar{width:0%;height:100%;color:#ffffff;float:left;font-size:12px;text-align:center;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top, #149bdf, #0480be);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));background-image:-webkit-linear-gradient(top, #149bdf, #0480be);background-image:-o-linear-gradient(top, #149bdf, #0480be);background-image:linear-gradient(to bottom, #149bdf, #0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-moz-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-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width 0.6s ease;-moz-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease;} +.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15);} +.progress-striped .bar{background-color:#149bdf;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:-o-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);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px;} +.progress.active .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-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top, #ee5f5b, #c43c35);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));background-image:-webkit-linear-gradient(top, #ee5f5b, #c43c35);background-image:-o-linear-gradient(top, #ee5f5b, #c43c35);background-image:linear-gradient(to bottom, #ee5f5b, #c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0);} +.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;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:-o-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-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top, #62c462, #57a957);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957));background-image:-webkit-linear-gradient(top, #62c462, #57a957);background-image:-o-linear-gradient(top, #62c462, #57a957);background-image:linear-gradient(to bottom, #62c462, #57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0);} +.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;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:-o-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-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top, #5bc0de, #339bb9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9));background-image:-webkit-linear-gradient(top, #5bc0de, #339bb9);background-image:-o-linear-gradient(top, #5bc0de, #339bb9);background-image:linear-gradient(to bottom, #5bc0de, #339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0);} +.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;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:-o-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-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top, #fbb450, #f89406);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));background-image:-webkit-linear-gradient(top, #fbb450, #f89406);background-image:-o-linear-gradient(top, #fbb450, #f89406);background-image:linear-gradient(to bottom, #fbb450, #f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);} +.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;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:-o-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);} +.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#eeeeee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;color:inherit;letter-spacing:-1px;} +.hero-unit li{line-height:30px;} +.media,.media-body{overflow:hidden;*overflow:visible;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{margin-left:0;list-style:none;} +.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;padding:5px;font-size:11px;opacity:0;filter:alpha(opacity=0);}.tooltip.in{opacity:0.8;filter:alpha(opacity=80);} +.tooltip.top{margin-top:-3px;} +.tooltip.right{margin-left:3px;} +.tooltip.bottom{margin-top:3px;} +.tooltip.left{margin-left:-3px;} +.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;text-decoration:none;background-color:#000000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid;} +.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000;} +.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000;} +.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000;} +.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000;} +.popover{position:absolute;top:0;left:0;z-index:1010;display:none;width:236px;padding:1px;background-color:#ffffff;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);}.popover.top{margin-top:-10px;} +.popover.right{margin-left:10px;} +.popover.bottom{margin-top:10px;} +.popover.left{margin-left:-10px;} +.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0;} +.popover-content{padding:9px 14px;}.popover-content p,.popover-content ul,.popover-content ol{margin-bottom:0;} +.popover .arrow,.popover .arrow:after{position:absolute;display:inline-block;width:0;height:0;border-color:transparent;border-style:solid;} +.popover .arrow:after{content:"";z-index:-1;} +.popover.top .arrow{bottom:-10px;left:50%;margin-left:-10px;border-width:10px 10px 0;border-top-color:#ffffff;}.popover.top .arrow:after{border-width:11px 11px 0;border-top-color:rgba(0, 0, 0, 0.25);bottom:-1px;left:-11px;} +.popover.right .arrow{top:50%;left:-10px;margin-top:-10px;border-width:10px 10px 10px 0;border-right-color:#ffffff;}.popover.right .arrow:after{border-width:11px 11px 11px 0;border-right-color:rgba(0, 0, 0, 0.25);bottom:-11px;left:-1px;} +.popover.bottom .arrow{top:-10px;left:50%;margin-left:-10px;border-width:0 10px 10px;border-bottom-color:#ffffff;}.popover.bottom .arrow:after{border-width:0 11px 11px;border-bottom-color:rgba(0, 0, 0, 0.25);top:-1px;left:-11px;} +.popover.left .arrow{top:50%;right:-10px;margin-top:-10px;border-width:10px 0 10px 10px;border-left-color:#ffffff;}.popover.left .arrow:after{border-width:11px 0 11px 11px;border-left-color:rgba(0, 0, 0, 0.25);bottom:-11px;right:-1px;} +.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000;}.modal-backdrop.fade{opacity:0;} +.modal-backdrop,.modal-backdrop.fade.in{opacity:0.8;filter:alpha(opacity=80);} +.modal{position:fixed;top:50%;left:50%;z-index:1050;width:560px;margin:-250px 0 0 -280px;background-color:#ffffff;border:1px solid #999;border:1px solid rgba(0, 0, 0, 0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;outline:none;}.modal.fade{-webkit-transition:opacity .3s linear, top .3s ease-out;-moz-transition:opacity .3s linear, top .3s ease-out;-o-transition:opacity .3s linear, top .3s ease-out;transition:opacity .3s linear, top .3s ease-out;top:-25%;} +.modal.fade.in{top:50%;} +.modal-header{padding:9px 15px;border-bottom:1px solid #eee;}.modal-header .close{margin-top:2px;} +.modal-header h3{margin:0;line-height:30px;} +.modal-body{overflow-y:auto;max-height:400px;padding:15px;} +.modal-form{margin-bottom:0;} +.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;-webkit-box-shadow:inset 0 1px 0 #ffffff;-moz-box-shadow:inset 0 1px 0 #ffffff;box-shadow:inset 0 1px 0 #ffffff;*zoom:1;}.modal-footer:before,.modal-footer:after{display:table;content:"";line-height:0;} +.modal-footer:after{clear:both;} +.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0;} +.modal-footer .btn-group .btn+.btn{margin-left:-1px;} +.modal-footer .btn-block+.btn-block{margin-left:0;} +.dropup,.dropdown{position:relative;} +.dropdown-toggle{*margin-bottom:-3px;} +.dropdown-toggle:active,.open .dropdown-toggle{outline:0;} +.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000000;border-right:4px solid transparent;border-left:4px solid transparent;content:"";} +.dropdown .caret{margin-top:8px;margin-left:2px;} +.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#ffffff;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;}.dropdown-menu.pull-right{right:0;left:auto;} +.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #ffffff;} +.dropdown-menu li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333333;white-space:nowrap;} +.dropdown-menu li>a:hover,.dropdown-menu li>a:focus,.dropdown-submenu:hover>a{text-decoration:none;color:#ffffff;background-color:#0081c2;background-image:-moz-linear-gradient(top, #0088cc, #0077b3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));background-image:-webkit-linear-gradient(top, #0088cc, #0077b3);background-image:-o-linear-gradient(top, #0088cc, #0077b3);background-image:linear-gradient(to bottom, #0088cc, #0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);} +.dropdown-menu .active>a,.dropdown-menu .active>a:hover{color:#333333;text-decoration:none;outline:0;background-color:#0081c2;background-image:-moz-linear-gradient(top, #0088cc, #0077b3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));background-image:-webkit-linear-gradient(top, #0088cc, #0077b3);background-image:-o-linear-gradient(top, #0088cc, #0077b3);background-image:linear-gradient(to bottom, #0088cc, #0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);} +.dropdown-menu .disabled>a,.dropdown-menu .disabled>a:hover{color:#999999;} +.dropdown-menu .disabled>a:hover{text-decoration:none;background-color:transparent;background-image:none;cursor:default;} +.open{*z-index:1000;}.open >.dropdown-menu{display:block;} +.pull-right>.dropdown-menu{right:0;left:auto;} +.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000000;content:"";} +.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px;} +.dropdown-submenu{position:relative;} +.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px;} +.dropdown-submenu:hover>.dropdown-menu{display:block;} +.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0;} +.dropdown-submenu>a:after{display:block;content:" ";float:right;width:0;height:0;border-color:transparent;border-style:solid;border-width:5px 0 5px 5px;border-left-color:#cccccc;margin-top:5px;margin-right:-10px;} +.dropdown-submenu:hover>a:after{border-left-color:#ffffff;} +.dropdown-submenu.pull-left{float:none;}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px;} +.dropdown .dropdown-menu .nav-header{padding-left:20px;padding-right:20px;} +.typeahead{margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.accordion{margin-bottom:20px;} +.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.accordion-heading{border-bottom:0;} +.accordion-heading .accordion-toggle{display:block;padding:8px 15px;} +.accordion-toggle{cursor:pointer;} +.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5;} +.carousel{position:relative;margin-bottom:20px;line-height:1;} +.carousel-inner{overflow:hidden;width:100%;position:relative;} +.carousel .item{display:none;position:relative;-webkit-transition:0.6s ease-in-out left;-moz-transition:0.6s ease-in-out left;-o-transition:0.6s ease-in-out left;transition:0.6s ease-in-out left;} +.carousel .item>img{display:block;line-height:1;} +.carousel .active,.carousel .next,.carousel .prev{display:block;} +.carousel .active{left:0;} +.carousel .next,.carousel .prev{position:absolute;top:0;width:100%;} +.carousel .next{left:100%;} +.carousel .prev{left:-100%;} +.carousel .next.left,.carousel .prev.right{left:0;} +.carousel .active.left{left:-100%;} +.carousel .active.right{left:100%;} +.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#ffffff;text-align:center;background:#222222;border:3px solid #ffffff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:0.5;filter:alpha(opacity=50);}.carousel-control.right{left:auto;right:15px;} +.carousel-control:hover{color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90);} +.carousel-caption{position:absolute;left:0;right:0;bottom:0;padding:15px;background:#333333;background:rgba(0, 0, 0, 0.75);} +.carousel-caption h4,.carousel-caption p{color:#ffffff;line-height:20px;} +.carousel-caption h4{margin:0 0 5px;} +.carousel-caption p{margin-bottom:0;} +.media,.media-body{overflow:hidden;*overflow:visible;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{margin-left:0;list-style:none;} +.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);-moz-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-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;} +.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} +.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20);}.close:hover{color:#000000;text-decoration:none;cursor:pointer;opacity:0.4;filter:alpha(opacity=40);} +button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none;} +.pull-right{float:right;} +.pull-left{float:left;} +.hide{display:none;} +.show{display:block;} +.invisible{visibility:hidden;} +.affix{position:fixed;} +.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-moz-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear;}.fade.in{opacity:1;} +.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height 0.35s ease;-moz-transition:height 0.35s ease;-o-transition:height 0.35s ease;transition:height 0.35s ease;}.collapse.in{height:auto;} +.hidden{display:none;visibility:hidden;} +.visible-phone{display:none !important;} +.visible-tablet{display:none !important;} +.hidden-desktop{display:none !important;} +.visible-desktop{display:inherit !important;} +@media (min-width:668px) and (max-width:979px){.hidden-desktop{display:inherit !important;} .visible-desktop{display:none !important ;} .visible-tablet{display:inherit !important;} .hidden-tablet{display:none !important;}}@media (max-width:667px){.hidden-desktop{display:inherit !important;} .visible-desktop{display:none !important;} .visible-phone{display:inherit !important;} .hidden-phone{display:none !important;}}@media (max-width:667px){body{padding-left:20px;padding-right:20px;} .navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-left:-20px;margin-right:-20px;} .container-fluid{padding:0;} .dl-horizontal dt{float:none;clear:none;width:auto;text-align:left;} .dl-horizontal dd{margin-left:0;} .container{width:auto;} .row-fluid{width:100%;} .row,.thumbnails{margin-left:0;} .thumbnails>li{float:none;margin-left:0;} [class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"]{float:none;display:block;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;} .span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;} .row-fluid [class*="offset"]:first-child{margin-left:0;} .input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;} .input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto;} .controls-row [class*="span"]+[class*="span"]{margin-left:0;} .modal{position:fixed;top:20px;left:20px;right:20px;width:auto;margin:0;}.modal.fade{top:-100px;} .modal.fade.in{top:20px;}}@media (max-width:480px){.nav-collapse{-webkit-transform:translate3d(0, 0, 0);} .page-header h1 small{display:block;line-height:20px;} input[type="checkbox"],input[type="radio"]{border:1px solid #ccc;} .form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left;} .form-horizontal .controls{margin-left:0;} .form-horizontal .control-list{padding-top:0;} .form-horizontal .form-actions{padding-left:10px;padding-right:10px;} .media .pull-left,.media .pull-right{float:none;display:block;margin-bottom:10px;} .media-object{margin-right:0;margin-left:0;} .modal{top:10px;left:10px;right:10px;} .modal-header .close{padding:10px;margin:-10px;} .carousel-caption{position:static;}}@media (min-width:668px) and (max-width:979px){.row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";line-height:0;} .row:after{clear:both;} [class*="span"]{float:left;min-height:1px;margin-left:20px;} .container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px;} .span12{width:724px;} .span11{width:662px;} .span10{width:600px;} .span9{width:538px;} .span8{width:476px;} .span7{width:414px;} .span6{width:352px;} .span5{width:290px;} .span4{width:228px;} .span3{width:166px;} .span2{width:104px;} .span1{width:42px;} .offset12{margin-left:764px;} .offset11{margin-left:702px;} .offset10{margin-left:640px;} .offset9{margin-left:578px;} .offset8{margin-left:516px;} .offset7{margin-left:454px;} .offset6{margin-left:392px;} .offset5{margin-left:330px;} .offset4{margin-left:268px;} .offset3{margin-left:206px;} .offset2{margin-left:144px;} .offset1{margin-left:82px;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;} .row-fluid:after{clear:both;} .row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;} .row-fluid [class*="span"]:first-child{margin-left:0;} .row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%;} .row-fluid .span12{width:100%;*width:99.94680851063829%;} .row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%;} .row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%;} .row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%;} .row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%;} .row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%;} .row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%;} .row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%;} .row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%;} .row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%;} .row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%;} .row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%;} .row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%;} .row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%;} .row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%;} .row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%;} .row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%;} .row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%;} .row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%;} .row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%;} .row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%;} .row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%;} .row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%;} .row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%;} .row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%;} .row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%;} .row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%;} .row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%;} .row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%;} .row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%;} .row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%;} .row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%;} .row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%;} .row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%;} .row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%;} .row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%;} input,textarea,.uneditable-input{margin-left:0;} .controls-row [class*="span"]+[class*="span"]{margin-left:20px;} input.span12, textarea.span12, .uneditable-input.span12{width:710px;} input.span11, textarea.span11, .uneditable-input.span11{width:648px;} input.span10, textarea.span10, .uneditable-input.span10{width:586px;} input.span9, textarea.span9, .uneditable-input.span9{width:524px;} input.span8, textarea.span8, .uneditable-input.span8{width:462px;} input.span7, textarea.span7, .uneditable-input.span7{width:400px;} input.span6, textarea.span6, .uneditable-input.span6{width:338px;} input.span5, textarea.span5, .uneditable-input.span5{width:276px;} input.span4, textarea.span4, .uneditable-input.span4{width:214px;} input.span3, textarea.span3, .uneditable-input.span3{width:152px;} input.span2, textarea.span2, .uneditable-input.span2{width:90px;} input.span1, textarea.span1, .uneditable-input.span1{width:28px;}}@media (min-width:1200px){.row{margin-left:-30px;*zoom:1;}.row:before,.row:after{display:table;content:"";line-height:0;} .row:after{clear:both;} [class*="span"]{float:left;min-height:1px;margin-left:30px;} .container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px;} .span12{width:1170px;} .span11{width:1070px;} .span10{width:970px;} .span9{width:870px;} .span8{width:770px;} .span7{width:670px;} .span6{width:570px;} .span5{width:470px;} .span4{width:370px;} .span3{width:270px;} .span2{width:170px;} .span1{width:70px;} .offset12{margin-left:1230px;} .offset11{margin-left:1130px;} .offset10{margin-left:1030px;} .offset9{margin-left:930px;} .offset8{margin-left:830px;} .offset7{margin-left:730px;} .offset6{margin-left:630px;} .offset5{margin-left:530px;} .offset4{margin-left:430px;} .offset3{margin-left:330px;} .offset2{margin-left:230px;} .offset1{margin-left:130px;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;} .row-fluid:after{clear:both;} .row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;} .row-fluid [class*="span"]:first-child{margin-left:0;} .row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%;} .row-fluid .span12{width:100%;*width:99.94680851063829%;} .row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%;} .row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%;} .row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%;} .row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%;} .row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%;} .row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%;} .row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%;} .row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%;} .row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%;} .row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%;} .row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%;} .row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%;} .row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%;} .row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%;} .row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%;} .row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%;} .row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%;} .row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%;} .row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%;} .row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%;} .row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%;} .row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%;} .row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%;} .row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%;} .row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%;} .row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%;} .row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%;} .row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%;} .row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%;} .row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%;} .row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%;} .row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%;} .row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%;} .row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%;} .row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%;} input,textarea,.uneditable-input{margin-left:0;} .controls-row [class*="span"]+[class*="span"]{margin-left:30px;} input.span12, textarea.span12, .uneditable-input.span12{width:1156px;} input.span11, textarea.span11, .uneditable-input.span11{width:1056px;} input.span10, textarea.span10, .uneditable-input.span10{width:956px;} input.span9, textarea.span9, .uneditable-input.span9{width:856px;} input.span8, textarea.span8, .uneditable-input.span8{width:756px;} input.span7, textarea.span7, .uneditable-input.span7{width:656px;} input.span6, textarea.span6, .uneditable-input.span6{width:556px;} input.span5, textarea.span5, .uneditable-input.span5{width:456px;} input.span4, textarea.span4, .uneditable-input.span4{width:356px;} input.span3, textarea.span3, .uneditable-input.span3{width:256px;} input.span2, textarea.span2, .uneditable-input.span2{width:156px;} input.span1, textarea.span1, .uneditable-input.span1{width:56px;} .thumbnails{margin-left:-30px;} .thumbnails>li{margin-left:30px;} .row-fluid .thumbnails{margin-left:0;}}@media (max-width:979px){body{padding-top:0;} .navbar-fixed-top,.navbar-fixed-bottom{position:static;} .navbar-fixed-top{margin-bottom:20px;} .navbar-fixed-bottom{margin-top:20px;} .navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px;} .navbar .container{width:auto;padding:0;} .navbar .brand{padding-left:10px;padding-right:10px;margin:0 0 0 -5px;} .nav-collapse{clear:both;} .nav-collapse .nav{float:none;margin:0 0 10px;} .nav-collapse .nav>li{float:none;} .nav-collapse .nav>li>a{margin-bottom:2px;} .nav-collapse .nav>.divider-vertical{display:none;} .nav-collapse .nav .nav-header{color:#777777;text-shadow:none;} .nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} .nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} .nav-collapse .dropdown-menu li+li a{margin-bottom:2px;} .nav-collapse .nav>li>a:hover,.nav-collapse .dropdown-menu a:hover{background-color:#f2f2f2;} .navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#999999;} .navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:hover{background-color:#111111;} .nav-collapse.in .btn-group{margin-top:5px;padding:0;} .nav-collapse .dropdown-menu{position:static;top:auto;left:auto;float:none;display:none;max-width:none;margin:0 15px;padding:0;background-color:transparent;border:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} .nav-collapse .open>.dropdown-menu{display:block;} .nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none;} .nav-collapse .dropdown-menu .divider{display:none;} .nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after{display:none;} .nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);} .navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111111;border-bottom-color:#111111;} .navbar .nav-collapse .nav.pull-right{float:none;margin-left:0;} .nav-collapse,.nav-collapse.collapse{overflow:hidden;height:0;} .navbar .btn-navbar{display:block;} .navbar-static .navbar-inner{padding-left:10px;padding-right:10px;}}@media (min-width:980px){.nav-collapse.collapse{height:auto !important;overflow:visible !important;}} diff --git a/assets/bootstrap/img/Thumbs.db b/assets/bootstrap/img/Thumbs.db new file mode 100644 index 0000000..4e7bb36 Binary files /dev/null and b/assets/bootstrap/img/Thumbs.db differ diff --git a/assets/bootstrap/img/glyphicons-halflings-white.png b/assets/bootstrap/img/glyphicons-halflings-white.png new file mode 100644 index 0000000..3bf6484 Binary files /dev/null and b/assets/bootstrap/img/glyphicons-halflings-white.png differ diff --git a/assets/bootstrap/img/glyphicons-halflings.png b/assets/bootstrap/img/glyphicons-halflings.png new file mode 100644 index 0000000..a996999 Binary files /dev/null and b/assets/bootstrap/img/glyphicons-halflings.png differ diff --git a/assets/bootstrap/js/bootstrap.js b/assets/bootstrap/js/bootstrap.js new file mode 100644 index 0000000..a535f36 --- /dev/null +++ b/assets/bootstrap/js/bootstrap.js @@ -0,0 +1,2036 @@ +/* =================================================== + * bootstrap-transition.js v2.2.1 + * http://twitter.github.com/bootstrap/javascript.html#transitions + * =================================================== + * 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"; // jshint ;_; + + + /* CSS TRANSITION SUPPORT (http://www.modernizr.com/) + * ======================================================= */ + + $(function () { + + $.support.transition = (function () { + + var transitionEnd = (function () { + + var el = document.createElement('bootstrap') + , transEndEventNames = { + 'WebkitTransition' : 'webkitTransitionEnd' + , 'MozTransition' : 'transitionend' + , 'OTransition' : 'oTransitionEnd otransitionend' + , 'transition' : 'transitionend' + } + , name + + for (name in transEndEventNames){ + if (el.style[name] !== undefined) { + return transEndEventNames[name] + } + } + + }()) + + return transitionEnd && { + end: transitionEnd + } + + })() + + }) + +}(window.jQuery); +/* ========================================================= + * bootstrap-modal.js v2.2.1 + * http://twitter.github.com/bootstrap/javascript.html#modals + * ========================================================= + * 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"; // jshint ;_; + + + /* MODAL CLASS DEFINITION + * ====================== */ + + var Modal = function (element, options) { + this.options = options + this.$element = $(element) + .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this)) + this.options.remote && this.$element.find('.modal-body').load(this.options.remote) + } + + Modal.prototype = { + + constructor: Modal + + , toggle: function () { + return this[!this.isShown ? 'show' : 'hide']() + } + + , show: function () { + var that = this + , e = $.Event('show') + + this.$element.trigger(e) + + if (this.isShown || e.isDefaultPrevented()) return + + this.isShown = true + + this.escape() + + this.backdrop(function () { + var transition = $.support.transition && that.$element.hasClass('fade') + + if (!that.$element.parent().length) { + that.$element.appendTo(document.body) //don't move modals dom position + } + + that.$element + .show() + + if (transition) { + that.$element[0].offsetWidth // force reflow + } + + that.$element + .addClass('in') + .attr('aria-hidden', false) + + that.enforceFocus() + + transition ? + that.$element.one($.support.transition.end, function () { that.$element.focus().trigger('shown') }) : + that.$element.focus().trigger('shown') + + }) + } + + , hide: function (e) { + e && e.preventDefault() + + var that = this + + e = $.Event('hide') + + this.$element.trigger(e) + + if (!this.isShown || e.isDefaultPrevented()) return + + this.isShown = false + + this.escape() + + $(document).off('focusin.modal') + + this.$element + .removeClass('in') + .attr('aria-hidden', true) + + $.support.transition && this.$element.hasClass('fade') ? + this.hideWithTransition() : + this.hideModal() + } + + , enforceFocus: function () { + var that = this + $(document).on('focusin.modal', function (e) { + if (that.$element[0] !== e.target && !that.$element.has(e.target).length) { + that.$element.focus() + } + }) + } + + , escape: function () { + var that = this + if (this.isShown && this.options.keyboard) { + this.$element.on('keyup.dismiss.modal', function ( e ) { + e.which == 27 && that.hide() + }) + } else if (!this.isShown) { + this.$element.off('keyup.dismiss.modal') + } + } + + , hideWithTransition: function () { + var that = this + , timeout = setTimeout(function () { + that.$element.off($.support.transition.end) + that.hideModal() + }, 500) + + this.$element.one($.support.transition.end, function () { + clearTimeout(timeout) + that.hideModal() + }) + } + + , hideModal: function (that) { + this.$element + .hide() + .trigger('hidden') + + this.backdrop() + } + + , removeBackdrop: function () { + this.$backdrop.remove() + this.$backdrop = null + } + + , backdrop: function (callback) { + var that = this + , animate = this.$element.hasClass('fade') ? 'fade' : '' + + if (this.isShown && this.options.backdrop) { + var doAnimate = $.support.transition && animate + + this.$backdrop = $('