Merge branch 'master' into rs-redactor-filter
This commit is contained in:
commit
4f629dab2a
|
@ -20,12 +20,13 @@ backups/*
|
|||
config/aws.yml
|
||||
config/database.yml
|
||||
config/gitlab.yml
|
||||
config/initializers/omniauth.rb
|
||||
config/gitlab_ci.yml
|
||||
config/initializers/rack_attack.rb
|
||||
config/initializers/smtp_settings.rb
|
||||
config/resque.yml
|
||||
config/unicorn.rb
|
||||
config/mail_room.yml
|
||||
config/secrets.yml
|
||||
coverage/*
|
||||
db/*.sqlite3
|
||||
db/*.sqlite3-journal
|
||||
|
@ -41,3 +42,4 @@ rails_best_practices_output.html
|
|||
/tags
|
||||
tmp/
|
||||
vendor/bundle/*
|
||||
builds/*
|
||||
|
|
|
@ -24,6 +24,14 @@ spec:api:
|
|||
- ruby
|
||||
- mysql
|
||||
|
||||
spec:benchmark:
|
||||
script:
|
||||
- RAILS_ENV=test bundle exec rake spec:benchmark
|
||||
tags:
|
||||
- ruby
|
||||
- mysql
|
||||
allow_failure: true
|
||||
|
||||
spec:other:
|
||||
script:
|
||||
- RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:other
|
||||
|
|
|
@ -932,7 +932,7 @@ Lint/UselessAccessModifier:
|
|||
Lint/UselessAssignment:
|
||||
Description: 'Checks for useless assignment to a local variable.'
|
||||
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscore-unused-vars'
|
||||
Enabled: false
|
||||
Enabled: true
|
||||
|
||||
Lint/UselessComparison:
|
||||
Description: 'Checks for comparison of something with itself.'
|
||||
|
@ -998,7 +998,9 @@ AllCops:
|
|||
- 'tmp/**/*'
|
||||
- 'bin/**/*'
|
||||
- 'lib/backup/**/*'
|
||||
- 'lib/ci/backup/**/*'
|
||||
- 'lib/tasks/**/*'
|
||||
- 'lib/ci/migrate/**/*'
|
||||
- 'lib/email_validator.rb'
|
||||
- 'lib/gitlab/upgrader.rb'
|
||||
- 'lib/gitlab/seeder.rb'
|
||||
|
|
117
CHANGELOG
117
CHANGELOG
|
@ -1,14 +1,91 @@
|
|||
Please view this file on the master branch, on stable branches it's out of date.
|
||||
|
||||
v 8.0.0 (unreleased)
|
||||
v 8.1.0 (unreleased)
|
||||
- Fix bug where transferring a project would result in stale commit links (Stan Hu)
|
||||
- Include full path of source and target branch names in New Merge Request page (Stan Hu)
|
||||
- Add user preference to view activities as default dashboard (Stan Hu)
|
||||
- Add option to admin area to sign in as a specific user (Pavel Forkert)
|
||||
- Show CI status on all pages where commits list is rendered
|
||||
- Automatically enable CI when push .gitlab-ci.yml file to repository
|
||||
- Move CI charts to project graphs area
|
||||
- Fix cases where Markdown did not render links in activity feed (Stan Hu)
|
||||
- Add first and last to pagination (Zeger-Jan van de Weg)
|
||||
- Show CI status on commit page
|
||||
- Show CI status on Your projects page and Starred projects page
|
||||
- Remove "Continuous Integration" page from dashboard
|
||||
- Add notes and SSL verification entries to hook APIs (Ben Boeckel)
|
||||
- Fix grammar in admin area "labels" .nothing-here-block when no labels exist.
|
||||
- Move CI runners page to project settings area
|
||||
- Move CI variables page to project settings area
|
||||
- Move CI triggers page to project settings area
|
||||
- Move CI project settings page to CE project settings area
|
||||
- Fix bug when removed file was not appearing in merge request diff
|
||||
- Note the original location of a moved project when notifying users of the move
|
||||
- Improve error message when merging fails
|
||||
- Add support of multibyte characters in LDAP UID (Roman Petrov)
|
||||
- Show additions/deletions stats on merge request diff
|
||||
- Remove footer text in emails (Zeger-Jan van de Weg)
|
||||
- Ensure code blocks are properly highlighted after a note is updated
|
||||
- Fix wrong access level badge on MR comments
|
||||
- Hide password in the service settings form
|
||||
- Move CI web hooks page to project settings area
|
||||
- Fix User Identities API. It now allows you to properly create or update user's identities.
|
||||
- Add user preference to change layout width (Peter Göbel)
|
||||
- Use commit status in merge request widget as preffered source of CI status
|
||||
- Integrate CI commit and build pages into project pages
|
||||
|
||||
v 8.0.4
|
||||
- Fix Message-ID header to be RFC 2111-compliant to prevent e-mails being dropped (Stan Hu)
|
||||
- Fix referrals for :back and relative URL installs
|
||||
- Fix anchors to comments in diffs
|
||||
- Remove CI token from build traces
|
||||
- Fix "Assign All" button on Runner admin page
|
||||
- Fix search in Files
|
||||
|
||||
v 8.0.3
|
||||
- Fix URL shown in Slack notifications
|
||||
- Fix bug where projects would appear to be stuck in the forked import state (Stan Hu)
|
||||
- Fix Error 500 in creating merge requests with > 1000 diffs (Stan Hu)
|
||||
|
||||
v 8.0.2
|
||||
- Fix default avatar not rendering in network graph (Stan Hu)
|
||||
- Skip check_initd_configured_correctly on omnibus installs
|
||||
- Prevent double-prefixing of help page paths
|
||||
- Clarify confirmation text on user deletion
|
||||
- Make commit graphs responsive to window width changes (Stan Hu)
|
||||
- Fix top margin for sign-in button on public pages
|
||||
- Fix LDAP attribute mapping
|
||||
- Remove git refs used internally by GitLab from network graph (Stan Hu)
|
||||
- Use standard Markdown font in Markdown preview instead of fixed-width font (Stan Hu)
|
||||
- Fix Reply by email for non-UTF-8 messages.
|
||||
- Add option to use StartTLS with Reply by email IMAP server.
|
||||
- Allow AWS S3 Server-Side Encryption with Amazon S3-Managed Keys for backups (Paul Beattie)
|
||||
|
||||
v 8.0.1
|
||||
- Remove git refs used internally by GitLab from network graph (Stan Hu)
|
||||
- Improve CI migration procedure and documentation
|
||||
|
||||
v 8.0.0
|
||||
- Fix Markdown links not showing up in dashboard activity feed (Stan Hu)
|
||||
- Remove milestones from merge requests when milestones are deleted (Stan Hu)
|
||||
- Fix HTML link that was improperly escaped in new user e-mail (Stan Hu)
|
||||
- Fix broken sort in merge request API (Stan Hu)
|
||||
- Bump rouge to 1.10.1 to remove warning noise and fix other syntax highlighting bugs (Stan Hu)
|
||||
- Gracefully handle errors in syntax highlighting by leaving the block unformatted (Stan Hu)
|
||||
- Add "replace" and "upload" functionalities to allow user replace existing file and upload new file into current repository
|
||||
- Fix URL construction for merge requests, issues, notes, and commits for relative URL config (Stan Hu)
|
||||
- Fix emoji URLs in Markdown when relative_url_root is used (Stan Hu)
|
||||
- Omit filename in Content-Disposition header in raw file download to avoid RFC 6266 encoding issues (Stan HU)
|
||||
- Fix broken Wiki Page History (Stan Hu)
|
||||
- Import forked repositories asynchronously to prevent large repositories from timing out (Stan Hu)
|
||||
- Prevent anchors from being hidden by header (Stan Hu)
|
||||
- Fix bug where only the first 15 Bitbucket issues would be imported (Stan Hu)
|
||||
- Sort issues by creation date in Bitbucket importer (Stan Hu)
|
||||
- Upgrade gitlab_git to 7.2.15 to fix `git blame` errors with ISO-encoded files (Stan Hu)
|
||||
- Prevent too many redirects upon login when home page URL is set to external_url (Stan Hu)
|
||||
- Improve dropdown positioning on the project home page (Hannes Rosenögger)
|
||||
- Upgrade browser gem to 1.0.0 to avoid warning in IE11 compatibilty mode (Stan Hu)
|
||||
- Remove user OAuth tokens from the database and request new tokens each session (Stan Hu)
|
||||
- Restrict users API endpoints to use integer IDs (Stan Hu)
|
||||
- Only show recent push event if the branch still exists or a recent merge request has not been created (Stan Hu)
|
||||
- Remove satellites
|
||||
- Better performance for web editor (switched from satellites to rugged)
|
||||
|
@ -20,20 +97,50 @@ v 8.0.0 (unreleased)
|
|||
- Create cross-reference for closing references on commits pushed to non-default branches (Maël Valais)
|
||||
- Ability to search milestones
|
||||
- Gracefully handle SMTP user input errors (e.g. incorrect email addresses) to prevent Sidekiq retries (Stan Hu)
|
||||
- Move dashboard activity to separate page
|
||||
- Move dashboard activity to separate page (for your projects and starred projects)
|
||||
- Improve performance of git blame
|
||||
- Limit content width to 1200px for most of pages to improve readability on big screens
|
||||
- Fix 500 error when submit project snippet without body
|
||||
- Improve search page usability
|
||||
- Bring more UI consistency in way how projects, snippets and groups lists are rendered
|
||||
- Make all profiles public
|
||||
- Make all profiles and group public
|
||||
- Fixed login failure when extern_uid changes (Joel Koglin)
|
||||
- Don't notify users without access to the project when they are (accidentally) mentioned in a note.
|
||||
- Retrieving oauth token with LDAP credentials
|
||||
- Load Application settings from running database unless env var USE_DB=false
|
||||
- Added Drone CI integration (Kirill Zaitsev)
|
||||
- Allow developers to retry builds
|
||||
- Hide advanced project options for non-admin users
|
||||
- Fail builds if no .gitlab-ci.yml is found
|
||||
- Refactored service API and added automatically service docs generator (Kirill Zaitsev)
|
||||
- Added web_url key project hook_attrs (Kirill Zaitsev)
|
||||
- Add ability to get user information by ID of an SSH key via the API
|
||||
- Fix bug which IE cannot show image at markdown when the image is raw file of gitlab
|
||||
- Add support for Crowd
|
||||
- Global Labels that are available to all projects
|
||||
- Fix highlighting of deleted lines in diffs.
|
||||
- Project notification level can be set on the project page itself
|
||||
- Added service API endpoint to retrieve service parameters (Petheő Bence)
|
||||
- Add FogBugz project import (Jared Szechy)
|
||||
- Sort users autocomplete lists by user (Allister Antosik)
|
||||
- Webhook for issue now contains repository field (Jungkook Park)
|
||||
- Add ability to add custom text to the help page (Jeroen van Baarsen)
|
||||
- Add pg_schema to backup config
|
||||
- Fix references to target project issues in Merge Requests markdown preview and textareas (Francesco Levorato)
|
||||
- Redirect from incorrectly cased group or project path to correct one (Francesco Levorato)
|
||||
- Removed API calls from CE to CI
|
||||
|
||||
v 7.14.3
|
||||
- No changes
|
||||
|
||||
v 7.14.2
|
||||
- Upgrade gitlab_git to 7.2.15 to fix `git blame` errors with ISO-encoded files (Stan Hu)
|
||||
- Allow configuration of LDAP attributes GitLab will use for the new user account.
|
||||
|
||||
v 7.14.1
|
||||
- Improve abuse reports management from admin area
|
||||
- Fix "Reload with full diff" URL button in compare branch view (Stan Hu)
|
||||
- Disabled DNS lookups for SSH in docker image (Rowan Wookey)
|
||||
- Only include base URL in OmniAuth full_host parameter (Stan Hu)
|
||||
- Fix Error 500 in API when accessing a group that has an avatar (Stan Hu)
|
||||
- Ability to enable SSL verification for Webhooks
|
||||
|
@ -114,7 +221,7 @@ v 7.13.4
|
|||
v 7.13.3
|
||||
- Fix bug causing Bitbucket importer to crash when OAuth application had been removed.
|
||||
- Allow users to send abuse reports
|
||||
- Remove satellites
|
||||
- Remove satellites
|
||||
- Link username to profile on Group Members page (Tom Webster)
|
||||
|
||||
v 7.13.2
|
||||
|
|
|
@ -1 +1 @@
|
|||
2.6.4
|
||||
2.6.5
|
||||
|
|
213
Gemfile
213
Gemfile
|
@ -1,6 +1,14 @@
|
|||
source "https://rubygems.org"
|
||||
|
||||
gem 'rails', '4.1.11'
|
||||
def darwin_only(require_as)
|
||||
RUBY_PLATFORM.include?('darwin') && require_as
|
||||
end
|
||||
|
||||
def linux_only(require_as)
|
||||
RUBY_PLATFORM.include?('linux') && require_as
|
||||
end
|
||||
|
||||
gem 'rails', '4.1.12'
|
||||
|
||||
# Specify a sprockets version due to security issue
|
||||
# See https://groups.google.com/forum/#!topic/rubyonrails-security/doAVp0YaTqY
|
||||
|
@ -10,40 +18,41 @@ gem 'sprockets', '~> 2.12.3'
|
|||
gem "default_value_for", "~> 3.0.0"
|
||||
|
||||
# Supported DBs
|
||||
gem "mysql2", group: :mysql
|
||||
gem "pg", group: :postgres
|
||||
gem "mysql2", '~> 0.3.16', group: :mysql
|
||||
gem "pg", '~> 0.18.2', group: :postgres
|
||||
|
||||
# Authentication libraries
|
||||
gem "devise", '3.2.4'
|
||||
gem "devise-async", '0.9.0'
|
||||
gem "devise", '~> 3.5.2'
|
||||
gem "devise-async", '~> 0.9.0'
|
||||
gem 'omniauth', "~> 1.2.2"
|
||||
gem 'omniauth-google-oauth2'
|
||||
gem 'omniauth-twitter'
|
||||
gem 'omniauth-github'
|
||||
gem 'omniauth-shibboleth'
|
||||
gem 'omniauth-kerberos', group: :kerberos
|
||||
gem 'omniauth-gitlab'
|
||||
gem 'omniauth-bitbucket'
|
||||
gem 'omniauth-google-oauth2', '~> 0.2.5'
|
||||
gem 'omniauth-twitter', '~> 1.0.1'
|
||||
gem 'omniauth-github', '~> 1.1.1'
|
||||
gem 'omniauth-shibboleth', '~> 1.1.1'
|
||||
gem 'omniauth-kerberos', '~> 0.2.0', group: :kerberos
|
||||
gem 'omniauth-gitlab', '~> 1.0.0'
|
||||
gem 'omniauth-bitbucket', '~> 0.0.2'
|
||||
gem 'omniauth-saml', '~> 1.4.0'
|
||||
gem 'doorkeeper', '2.1.3'
|
||||
gem 'doorkeeper', '~> 2.1.3'
|
||||
gem 'omniauth_crowd'
|
||||
gem "rack-oauth2", "~> 1.0.5"
|
||||
|
||||
# Two-factor authentication
|
||||
gem 'devise-two-factor'
|
||||
gem 'rqrcode-rails3'
|
||||
gem 'attr_encrypted', '1.3.4'
|
||||
gem 'devise-two-factor', '~> 2.0.0'
|
||||
gem 'rqrcode-rails3', '~> 0.1.7'
|
||||
gem 'attr_encrypted', '~> 1.3.4'
|
||||
|
||||
# Browser detection
|
||||
gem "browser", '~> 1.0.0'
|
||||
|
||||
# Extracting information from a git repository
|
||||
# Provide access to Gitlab::Git library
|
||||
gem "gitlab_git", '~> 7.2.15'
|
||||
gem "gitlab_git", '~> 7.2.17'
|
||||
|
||||
# LDAP Auth
|
||||
# GitLab fork with several improvements to original library. For full list of changes
|
||||
# see https://github.com/intridea/omniauth-ldap/compare/master...gitlabhq:master
|
||||
gem 'gitlab_omniauth-ldap', '1.2.1', require: "omniauth-ldap"
|
||||
gem 'gitlab_omniauth-ldap', '~> 1.2.1', require: "omniauth-ldap"
|
||||
|
||||
# Git Wiki
|
||||
gem 'gollum-lib', '~> 4.0.2'
|
||||
|
@ -58,47 +67,47 @@ gem "gitlab-linguist", "~> 3.0.1", require: "linguist"
|
|||
# API
|
||||
gem "grape", "~> 0.6.1"
|
||||
gem "grape-entity", "~> 0.4.2"
|
||||
gem 'rack-cors', require: 'rack/cors'
|
||||
gem 'rack-cors', '~> 0.2.9', require: 'rack/cors'
|
||||
|
||||
# Format dates and times
|
||||
# based on human-friendly examples
|
||||
gem "stamp"
|
||||
gem "stamp", '~> 0.5.0'
|
||||
|
||||
# Enumeration fields
|
||||
gem 'enumerize'
|
||||
gem 'enumerize', '~> 0.7.0'
|
||||
|
||||
# Pagination
|
||||
gem "kaminari", "~> 0.15.1"
|
||||
gem "kaminari", "~> 0.16.3"
|
||||
|
||||
# HAML
|
||||
gem "haml-rails"
|
||||
gem "haml-rails", '~> 0.5.3'
|
||||
|
||||
# Files attachments
|
||||
gem "carrierwave"
|
||||
gem "carrierwave", '~> 0.9.0'
|
||||
|
||||
# Drag and Drop UI
|
||||
gem 'dropzonejs-rails'
|
||||
gem 'dropzonejs-rails', '~> 0.7.1'
|
||||
|
||||
# for aws storage
|
||||
gem "fog", "~> 1.25.0"
|
||||
gem "unf"
|
||||
gem "unf", '~> 0.1.4'
|
||||
|
||||
# Authorization
|
||||
gem "six"
|
||||
gem "six", '~> 0.2.0'
|
||||
|
||||
# Seed data
|
||||
gem "seed-fu"
|
||||
gem "seed-fu", '~> 2.3.5'
|
||||
|
||||
# Markdown and HTML processing
|
||||
gem 'html-pipeline', '~> 1.11.0'
|
||||
gem 'task_list', '1.0.2', require: 'task_list/railtie'
|
||||
gem 'github-markup'
|
||||
gem 'task_list', '~> 1.0.2', require: 'task_list/railtie'
|
||||
gem 'github-markup', '~> 1.3.1'
|
||||
gem 'redcarpet', '~> 3.3.2'
|
||||
gem 'RedCloth'
|
||||
gem 'RedCloth', '~> 4.2.9'
|
||||
gem 'rdoc', '~>3.6'
|
||||
gem 'org-ruby', '= 0.9.12'
|
||||
gem 'org-ruby', '~> 0.9.12'
|
||||
gem 'creole', '~>0.3.6'
|
||||
gem 'wikicloth', '=0.8.1'
|
||||
gem 'wikicloth', '0.8.1'
|
||||
gem 'asciidoctor', '~> 1.5.2'
|
||||
|
||||
# Diffs
|
||||
|
@ -106,37 +115,40 @@ gem 'diffy', '~> 3.0.3'
|
|||
|
||||
# Application server
|
||||
group :unicorn do
|
||||
gem "unicorn", '~> 4.6.3'
|
||||
gem 'unicorn-worker-killer'
|
||||
gem "unicorn", '~> 4.8.2'
|
||||
gem 'unicorn-worker-killer', '~> 0.4.2'
|
||||
end
|
||||
|
||||
# State machine
|
||||
gem "state_machine"
|
||||
gem "state_machine", '~> 1.2.0'
|
||||
# Run events after state machine commits
|
||||
gem 'after_commit_queue'
|
||||
|
||||
# Issue tags
|
||||
gem 'acts-as-taggable-on', '~> 3.4'
|
||||
|
||||
# Background jobs
|
||||
gem 'slim'
|
||||
gem 'sinatra', require: nil
|
||||
gem 'sidekiq', '~> 3.3'
|
||||
gem 'sidetiq', '0.6.3'
|
||||
gem 'slim', '~> 2.0.2'
|
||||
gem 'sinatra', '~> 1.4.4', require: nil
|
||||
gem 'sidekiq', '3.3.0'
|
||||
gem 'sidetiq', '~> 0.6.3'
|
||||
|
||||
# HTTP requests
|
||||
gem "httparty"
|
||||
gem "httparty", '~> 0.13.3'
|
||||
|
||||
# Colored output to console
|
||||
gem "colored"
|
||||
gem "colored", '~> 1.2'
|
||||
gem "colorize", '~> 0.5.8'
|
||||
|
||||
# GitLab settings
|
||||
gem 'settingslogic'
|
||||
gem 'settingslogic', '~> 2.0.9'
|
||||
|
||||
# Misc
|
||||
gem "foreman"
|
||||
gem 'version_sorter'
|
||||
|
||||
gem 'version_sorter', '~> 2.0.0'
|
||||
|
||||
# Cache
|
||||
gem "redis-rails"
|
||||
gem "redis-rails", '~> 4.0.0'
|
||||
|
||||
# Campfire integration
|
||||
gem 'tinder', '~> 1.9.2'
|
||||
|
@ -156,6 +168,9 @@ gem "slack-notifier", "~> 1.0.0"
|
|||
# Asana integration
|
||||
gem 'asana', '~> 0.0.6'
|
||||
|
||||
# FogBugz integration
|
||||
gem 'ruby-fogbugz', '~> 0.2.1'
|
||||
|
||||
# d3
|
||||
gem 'd3_rails', '~> 3.5.5'
|
||||
|
||||
|
@ -172,69 +187,70 @@ gem "sanitize", '~> 2.0'
|
|||
gem "rack-attack", '~> 4.3.0'
|
||||
|
||||
# Ace editor
|
||||
gem 'ace-rails-ap'
|
||||
gem 'ace-rails-ap', '~> 2.0.1'
|
||||
|
||||
# Keyboard shortcuts
|
||||
gem 'mousetrap-rails'
|
||||
gem 'mousetrap-rails', '~> 1.4.6'
|
||||
|
||||
# Detect and convert string character encoding
|
||||
gem 'charlock_holmes'
|
||||
gem 'charlock_holmes', '~> 0.6.9.4'
|
||||
|
||||
gem "sass-rails", '~> 4.0.5'
|
||||
gem "coffee-rails"
|
||||
gem "uglifier"
|
||||
gem "coffee-rails", '~> 4.1.0'
|
||||
gem "uglifier", '~> 2.3.2'
|
||||
gem 'turbolinks', '~> 2.5.0'
|
||||
gem 'jquery-turbolinks'
|
||||
gem 'jquery-turbolinks', '~> 2.0.1'
|
||||
|
||||
gem 'addressable'
|
||||
gem 'addressable', '~> 2.3.8'
|
||||
gem 'bootstrap-sass', '~> 3.0'
|
||||
gem 'font-awesome-rails', '~> 4.2'
|
||||
gem 'gitlab_emoji', '~> 0.1'
|
||||
gem 'gon', '~> 5.0.0'
|
||||
gem 'jquery-atwho-rails', '~> 1.0.0'
|
||||
gem 'jquery-rails', '3.1.3'
|
||||
gem 'jquery-scrollto-rails'
|
||||
gem 'jquery-ui-rails'
|
||||
gem 'nprogress-rails'
|
||||
gem 'jquery-rails', '~> 3.1.3'
|
||||
gem 'jquery-scrollto-rails', '~> 1.4.3'
|
||||
gem 'jquery-ui-rails', '~> 4.2.1'
|
||||
gem 'nprogress-rails', '~> 0.1.2.3'
|
||||
gem 'raphael-rails', '~> 2.1.2'
|
||||
gem 'request_store'
|
||||
gem 'request_store', '~> 1.2.0'
|
||||
gem 'select2-rails', '~> 3.5.9'
|
||||
gem 'virtus'
|
||||
gem 'virtus', '~> 1.0.1'
|
||||
|
||||
group :development do
|
||||
gem 'brakeman', require: false
|
||||
gem "annotate", "~> 2.6.0.beta2"
|
||||
gem "letter_opener"
|
||||
gem 'quiet_assets', '~> 1.0.1'
|
||||
gem 'rack-mini-profiler', require: false
|
||||
gem "foreman"
|
||||
gem 'brakeman', '3.0.1', require: false
|
||||
|
||||
gem "annotate", "~> 2.6.0"
|
||||
gem "letter_opener", '~> 1.1.2'
|
||||
gem 'quiet_assets', '~> 1.0.2'
|
||||
gem 'rack-mini-profiler', '~> 0.9.0', require: false
|
||||
gem 'rerun', '~> 0.10.0'
|
||||
|
||||
# Better errors handler
|
||||
gem 'better_errors'
|
||||
gem 'binding_of_caller'
|
||||
gem 'better_errors', '~> 1.0.1'
|
||||
gem 'binding_of_caller', '~> 0.7.2'
|
||||
|
||||
# Docs generator
|
||||
gem "sdoc"
|
||||
gem "sdoc", '~> 0.3.20'
|
||||
|
||||
# thin instead webrick
|
||||
gem 'thin'
|
||||
gem 'thin', '~> 1.6.1'
|
||||
end
|
||||
|
||||
group :development, :test do
|
||||
gem 'awesome_print'
|
||||
gem 'byebug', platform: :mri
|
||||
gem 'fuubar', '~> 2.0.0'
|
||||
gem 'pry-rails'
|
||||
|
||||
gem 'coveralls', '~> 0.8.2', require: false
|
||||
gem 'awesome_print', '~> 1.2.0'
|
||||
gem 'fuubar', '~> 2.0.0'
|
||||
|
||||
gem 'database_cleaner', '~> 1.4.0'
|
||||
gem 'factory_girl_rails'
|
||||
gem 'factory_girl_rails', '~> 4.3.0'
|
||||
gem 'rspec-rails', '~> 3.3.0'
|
||||
gem 'rubocop', '0.28.0', require: false
|
||||
gem 'spinach-rails'
|
||||
gem 'spinach-rails', '~> 0.2.1'
|
||||
|
||||
# Prevent occasions where minitest is not bundled in packaged versions of ruby (see #3826)
|
||||
gem 'minitest', '~> 5.3.0'
|
||||
gem 'minitest', '~> 5.7.0'
|
||||
|
||||
# Generate Fake data
|
||||
gem 'ffaker', '~> 2.0.0'
|
||||
|
@ -244,30 +260,59 @@ group :development, :test do
|
|||
gem 'poltergeist', '~> 1.6.0'
|
||||
|
||||
gem 'teaspoon', '~> 1.0.0'
|
||||
gem 'teaspoon-jasmine'
|
||||
gem 'teaspoon-jasmine', '~> 2.2.0'
|
||||
|
||||
gem 'spring', '~> 1.3.1'
|
||||
gem 'spring-commands-rspec', '~> 1.0.0'
|
||||
gem 'spring', '~> 1.3.6'
|
||||
gem 'spring-commands-rspec', '~> 1.0.4'
|
||||
gem 'spring-commands-spinach', '~> 1.0.0'
|
||||
gem 'spring-commands-teaspoon', '~> 0.0.2'
|
||||
|
||||
gem 'rubocop', '~> 0.28.0', require: false
|
||||
gem 'coveralls', '~> 0.8.2', require: false
|
||||
gem 'simplecov', '~> 0.10.0', require: false
|
||||
|
||||
gem 'benchmark-ips', require: false
|
||||
end
|
||||
|
||||
group :test do
|
||||
gem 'simplecov', require: false
|
||||
gem 'shoulda-matchers', '~> 2.8.0', require: false
|
||||
gem 'email_spec', '~> 1.6.0'
|
||||
gem 'webmock', '~> 1.21.0'
|
||||
gem 'test_after_commit'
|
||||
gem 'test_after_commit', '~> 0.2.2'
|
||||
gem 'sham_rack'
|
||||
end
|
||||
|
||||
group :production do
|
||||
gem "gitlab_meta", '7.0'
|
||||
end
|
||||
|
||||
gem "newrelic_rpm"
|
||||
gem "newrelic_rpm", '~> 3.9.4.245'
|
||||
gem 'newrelic-grape'
|
||||
|
||||
gem 'octokit', '3.7.0'
|
||||
gem 'octokit', '~> 3.7.0'
|
||||
|
||||
gem "mail_room", "~> 0.4.1"
|
||||
gem "mail_room", "~> 0.5.2"
|
||||
|
||||
gem 'email_reply_parser'
|
||||
gem 'email_reply_parser', '~> 0.5.8'
|
||||
|
||||
## CI
|
||||
gem 'activerecord-deprecated_finders', '~> 1.0.3'
|
||||
gem 'activerecord-session_store', '~> 0.1.0'
|
||||
gem "nested_form", '~> 0.3.2'
|
||||
|
||||
# Scheduled
|
||||
gem 'whenever', '~> 0.8.4', require: false
|
||||
|
||||
# OAuth
|
||||
gem 'oauth2', '~> 1.0.0'
|
||||
|
||||
# Soft deletion
|
||||
gem "paranoia", "~> 2.0"
|
||||
|
||||
group :development, :test do
|
||||
gem 'guard-rspec', '~> 4.2.0'
|
||||
|
||||
gem 'rb-fsevent', require: darwin_only('rb-fsevent')
|
||||
gem 'growl', require: darwin_only('growl')
|
||||
gem 'rb-inotify', require: linux_only('rb-inotify')
|
||||
end
|
||||
|
|
564
Gemfile.lock
564
Gemfile.lock
File diff suppressed because it is too large
Load Diff
2
Procfile
2
Procfile
|
@ -1,3 +1,3 @@
|
|||
web: bundle exec unicorn_rails -p ${PORT:="3000"} -E ${RAILS_ENV:="development"} -c ${UNICORN_CONFIG:="config/unicorn.rb"}
|
||||
worker: bundle exec sidekiq -q post_receive -q mailer -q archive_repo -q system_hook -q project_web_hook -q gitlab_shell -q incoming_email -q common -q default
|
||||
worker: bundle exec sidekiq -q post_receive -q mailer -q archive_repo -q system_hook -q project_web_hook -q gitlab_shell -q incoming_email -q runner -q common -q default
|
||||
# mail_room: bundle exec mail_room -q -c config/mail_room.yml
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
# GitLab
|
||||
|
||||
[![build status](https://ci.gitlab.com/projects/1/status.png?ref=master)](https://ci.gitlab.com/projects/1?ref=master)
|
||||
[![build status](https://ci.gitlab.com/projects/1/status.svg?ref=master)](https://ci.gitlab.com/projects/1?ref=master)
|
||||
[![Build Status](https://semaphoreci.com/api/v1/projects/2f1a5809-418b-4cc2-a1f4-819607579fe7/400484/shields_badge.svg)](https://semaphoreci.com/gitlabhq/gitlabhq)
|
||||
[![Code Climate](https://codeclimate.com/github/gitlabhq/gitlabhq.svg)](https://codeclimate.com/github/gitlabhq/gitlabhq)
|
||||
[![Coverage Status](https://coveralls.io/repos/gitlabhq/gitlabhq/badge.png?branch=master)](https://coveralls.io/r/gitlabhq/gitlabhq?branch=master)
|
||||
[![Coverage Status](https://coveralls.io/repos/gitlabhq/gitlabhq/badge.svg?branch=master)](https://coveralls.io/r/gitlabhq/gitlabhq?branch=master)
|
||||
|
||||
## Canonical source
|
||||
|
||||
|
|
|
@ -0,0 +1,92 @@
|
|||
Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries.
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
http://scripts.sil.org/OFL
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
After Width: | Height: | Size: 25 KiB |
Binary file not shown.
After Width: | Height: | Size: 5.3 KiB |
Binary file not shown.
After Width: | Height: | Size: 4.3 KiB |
Binary file not shown.
After Width: | Height: | Size: 1.3 KiB |
Binary file not shown.
After Width: | Height: | Size: 6.5 KiB |
Binary file not shown.
After Width: | Height: | Size: 74 KiB |
|
@ -1,7 +1,7 @@
|
|||
class @Activities
|
||||
constructor: ->
|
||||
Pager.init 20, true
|
||||
$(".event_filter_link").bind "click", (event) =>
|
||||
$(".event-filter .btn").bind "click", (event) =>
|
||||
event.preventDefault()
|
||||
@toggleFilter($(event.currentTarget))
|
||||
@reloadActivities()
|
||||
|
@ -12,7 +12,7 @@ class @Activities
|
|||
|
||||
|
||||
toggleFilter: (sender) ->
|
||||
sender.parent().toggleClass "active"
|
||||
sender.toggleClass "active"
|
||||
event_filters = $.cookie("event_filter")
|
||||
filter = sender.attr("id").split("_")[0]
|
||||
if event_filters
|
||||
|
|
|
@ -0,0 +1,67 @@
|
|||
class @BlobFileDropzone
|
||||
constructor: (form, method) ->
|
||||
form_dropzone = form.find('.dropzone')
|
||||
Dropzone.autoDiscover = false
|
||||
dropzone = form_dropzone.dropzone(
|
||||
autoDiscover: false
|
||||
autoProcessQueue: false
|
||||
url: form.attr('action')
|
||||
# Rails uses a hidden input field for PUT
|
||||
# http://stackoverflow.com/questions/21056482/how-to-set-method-put-in-form-tag-in-rails
|
||||
method: method
|
||||
clickable: true
|
||||
uploadMultiple: false
|
||||
paramName: "file"
|
||||
maxFilesize: gon.max_file_size or 10
|
||||
parallelUploads: 1
|
||||
maxFiles: 1
|
||||
addRemoveLinks: true
|
||||
previewsContainer: '.dropzone-previews'
|
||||
headers:
|
||||
"X-CSRF-Token": $("meta[name=\"csrf-token\"]").attr("content")
|
||||
|
||||
init: ->
|
||||
this.on 'addedfile', (file) ->
|
||||
$('.dropzone-alerts').html('').hide()
|
||||
commit_message = form.find('#commit_message')[0]
|
||||
|
||||
if /^Upload/.test(commit_message.placeholder)
|
||||
commit_message.placeholder = 'Upload ' + file.name
|
||||
|
||||
return
|
||||
|
||||
this.on 'removedfile', (file) ->
|
||||
commit_message = form.find('#commit_message')[0]
|
||||
|
||||
if /^Upload/.test(commit_message.placeholder)
|
||||
commit_message.placeholder = 'Upload new file'
|
||||
|
||||
return
|
||||
|
||||
this.on 'success', (header, response) ->
|
||||
window.location.href = response.filePath
|
||||
return
|
||||
|
||||
this.on 'maxfilesexceeded', (file) ->
|
||||
@removeFile file
|
||||
return
|
||||
|
||||
this.on 'sending', (file, xhr, formData) ->
|
||||
formData.append('commit_message', form.find('#commit_message').val())
|
||||
return
|
||||
|
||||
# Override behavior of adding error underneath preview
|
||||
error: (file, errorMessage) ->
|
||||
stripped = $("<div/>").html(errorMessage).text();
|
||||
$('.dropzone-alerts').html('Error uploading file: \"' + stripped + '\"').show()
|
||||
@removeFile file
|
||||
return
|
||||
)
|
||||
|
||||
submitButton = form.find('#submit-all')[0]
|
||||
submitButton.addEventListener 'click', (e) ->
|
||||
e.preventDefault()
|
||||
e.stopPropagation()
|
||||
alert "Please select a file" if dropzone[0].dropzone.getQueuedFiles().length == 0
|
||||
dropzone[0].dropzone.processQueue()
|
||||
return false
|
|
@ -0,0 +1,39 @@
|
|||
var Chart=function(s){function v(a,c,b){a=A((a-c.graphMin)/(c.steps*c.stepValue),1,0);return b*c.steps*a}function x(a,c,b,e){function h(){g+=f;var k=a.animation?A(d(g),null,0):1;e.clearRect(0,0,q,u);a.scaleOverlay?(b(k),c()):(c(),b(k));if(1>=g)D(h);else if("function"==typeof a.onAnimationComplete)a.onAnimationComplete()}var f=a.animation?1/A(a.animationSteps,Number.MAX_VALUE,1):1,d=B[a.animationEasing],g=a.animation?0:1;"function"!==typeof c&&(c=function(){});D(h)}function C(a,c,b,e,h,f){var d;a=
|
||||
Math.floor(Math.log(e-h)/Math.LN10);h=Math.floor(h/(1*Math.pow(10,a)))*Math.pow(10,a);e=Math.ceil(e/(1*Math.pow(10,a)))*Math.pow(10,a)-h;a=Math.pow(10,a);for(d=Math.round(e/a);d<b||d>c;)a=d<b?a/2:2*a,d=Math.round(e/a);c=[];z(f,c,d,h,a);return{steps:d,stepValue:a,graphMin:h,labels:c}}function z(a,c,b,e,h){if(a)for(var f=1;f<b+1;f++)c.push(E(a,{value:(e+h*f).toFixed(0!=h%1?h.toString().split(".")[1].length:0)}))}function A(a,c,b){return!isNaN(parseFloat(c))&&isFinite(c)&&a>c?c:!isNaN(parseFloat(b))&&
|
||||
isFinite(b)&&a<b?b:a}function y(a,c){var b={},e;for(e in a)b[e]=a[e];for(e in c)b[e]=c[e];return b}function E(a,c){var b=!/\W/.test(a)?F[a]=F[a]||E(document.getElementById(a).innerHTML):new Function("obj","var p=[],print=function(){p.push.apply(p,arguments);};with(obj){p.push('"+a.replace(/[\r\t\n]/g," ").split("<%").join("\t").replace(/((^|%>)[^\t]*)'/g,"$1\r").replace(/\t=(.*?)%>/g,"',$1,'").split("\t").join("');").split("%>").join("p.push('").split("\r").join("\\'")+"');}return p.join('');");return c?
|
||||
b(c):b}var r=this,B={linear:function(a){return a},easeInQuad:function(a){return a*a},easeOutQuad:function(a){return-1*a*(a-2)},easeInOutQuad:function(a){return 1>(a/=0.5)?0.5*a*a:-0.5*(--a*(a-2)-1)},easeInCubic:function(a){return a*a*a},easeOutCubic:function(a){return 1*((a=a/1-1)*a*a+1)},easeInOutCubic:function(a){return 1>(a/=0.5)?0.5*a*a*a:0.5*((a-=2)*a*a+2)},easeInQuart:function(a){return a*a*a*a},easeOutQuart:function(a){return-1*((a=a/1-1)*a*a*a-1)},easeInOutQuart:function(a){return 1>(a/=0.5)?
|
||||
0.5*a*a*a*a:-0.5*((a-=2)*a*a*a-2)},easeInQuint:function(a){return 1*(a/=1)*a*a*a*a},easeOutQuint:function(a){return 1*((a=a/1-1)*a*a*a*a+1)},easeInOutQuint:function(a){return 1>(a/=0.5)?0.5*a*a*a*a*a:0.5*((a-=2)*a*a*a*a+2)},easeInSine:function(a){return-1*Math.cos(a/1*(Math.PI/2))+1},easeOutSine:function(a){return 1*Math.sin(a/1*(Math.PI/2))},easeInOutSine:function(a){return-0.5*(Math.cos(Math.PI*a/1)-1)},easeInExpo:function(a){return 0==a?1:1*Math.pow(2,10*(a/1-1))},easeOutExpo:function(a){return 1==
|
||||
a?1:1*(-Math.pow(2,-10*a/1)+1)},easeInOutExpo:function(a){return 0==a?0:1==a?1:1>(a/=0.5)?0.5*Math.pow(2,10*(a-1)):0.5*(-Math.pow(2,-10*--a)+2)},easeInCirc:function(a){return 1<=a?a:-1*(Math.sqrt(1-(a/=1)*a)-1)},easeOutCirc:function(a){return 1*Math.sqrt(1-(a=a/1-1)*a)},easeInOutCirc:function(a){return 1>(a/=0.5)?-0.5*(Math.sqrt(1-a*a)-1):0.5*(Math.sqrt(1-(a-=2)*a)+1)},easeInElastic:function(a){var c=1.70158,b=0,e=1;if(0==a)return 0;if(1==(a/=1))return 1;b||(b=0.3);e<Math.abs(1)?(e=1,c=b/4):c=b/(2*
|
||||
Math.PI)*Math.asin(1/e);return-(e*Math.pow(2,10*(a-=1))*Math.sin((1*a-c)*2*Math.PI/b))},easeOutElastic:function(a){var c=1.70158,b=0,e=1;if(0==a)return 0;if(1==(a/=1))return 1;b||(b=0.3);e<Math.abs(1)?(e=1,c=b/4):c=b/(2*Math.PI)*Math.asin(1/e);return e*Math.pow(2,-10*a)*Math.sin((1*a-c)*2*Math.PI/b)+1},easeInOutElastic:function(a){var c=1.70158,b=0,e=1;if(0==a)return 0;if(2==(a/=0.5))return 1;b||(b=1*0.3*1.5);e<Math.abs(1)?(e=1,c=b/4):c=b/(2*Math.PI)*Math.asin(1/e);return 1>a?-0.5*e*Math.pow(2,10*
|
||||
(a-=1))*Math.sin((1*a-c)*2*Math.PI/b):0.5*e*Math.pow(2,-10*(a-=1))*Math.sin((1*a-c)*2*Math.PI/b)+1},easeInBack:function(a){return 1*(a/=1)*a*(2.70158*a-1.70158)},easeOutBack:function(a){return 1*((a=a/1-1)*a*(2.70158*a+1.70158)+1)},easeInOutBack:function(a){var c=1.70158;return 1>(a/=0.5)?0.5*a*a*(((c*=1.525)+1)*a-c):0.5*((a-=2)*a*(((c*=1.525)+1)*a+c)+2)},easeInBounce:function(a){return 1-B.easeOutBounce(1-a)},easeOutBounce:function(a){return(a/=1)<1/2.75?1*7.5625*a*a:a<2/2.75?1*(7.5625*(a-=1.5/2.75)*
|
||||
a+0.75):a<2.5/2.75?1*(7.5625*(a-=2.25/2.75)*a+0.9375):1*(7.5625*(a-=2.625/2.75)*a+0.984375)},easeInOutBounce:function(a){return 0.5>a?0.5*B.easeInBounce(2*a):0.5*B.easeOutBounce(2*a-1)+0.5}},q=s.canvas.width,u=s.canvas.height;window.devicePixelRatio&&(s.canvas.style.width=q+"px",s.canvas.style.height=u+"px",s.canvas.height=u*window.devicePixelRatio,s.canvas.width=q*window.devicePixelRatio,s.scale(window.devicePixelRatio,window.devicePixelRatio));this.PolarArea=function(a,c){r.PolarArea.defaults={scaleOverlay:!0,
|
||||
scaleOverride:!1,scaleSteps:null,scaleStepWidth:null,scaleStartValue:null,scaleShowLine:!0,scaleLineColor:"rgba(0,0,0,.1)",scaleLineWidth:1,scaleShowLabels:!0,scaleLabel:"<%=value%>",scaleFontFamily:"'Arial'",scaleFontSize:12,scaleFontStyle:"normal",scaleFontColor:"#666",scaleShowLabelBackdrop:!0,scaleBackdropColor:"rgba(255,255,255,0.75)",scaleBackdropPaddingY:2,scaleBackdropPaddingX:2,segmentShowStroke:!0,segmentStrokeColor:"#fff",segmentStrokeWidth:2,animation:!0,animationSteps:100,animationEasing:"easeOutBounce",
|
||||
animateRotate:!0,animateScale:!1,onAnimationComplete:null};var b=c?y(r.PolarArea.defaults,c):r.PolarArea.defaults;return new G(a,b,s)};this.Radar=function(a,c){r.Radar.defaults={scaleOverlay:!1,scaleOverride:!1,scaleSteps:null,scaleStepWidth:null,scaleStartValue:null,scaleShowLine:!0,scaleLineColor:"rgba(0,0,0,.1)",scaleLineWidth:1,scaleShowLabels:!1,scaleLabel:"<%=value%>",scaleFontFamily:"'Arial'",scaleFontSize:12,scaleFontStyle:"normal",scaleFontColor:"#666",scaleShowLabelBackdrop:!0,scaleBackdropColor:"rgba(255,255,255,0.75)",
|
||||
scaleBackdropPaddingY:2,scaleBackdropPaddingX:2,angleShowLineOut:!0,angleLineColor:"rgba(0,0,0,.1)",angleLineWidth:1,pointLabelFontFamily:"'Arial'",pointLabelFontStyle:"normal",pointLabelFontSize:12,pointLabelFontColor:"#666",pointDot:!0,pointDotRadius:3,pointDotStrokeWidth:1,datasetStroke:!0,datasetStrokeWidth:2,datasetFill:!0,animation:!0,animationSteps:60,animationEasing:"easeOutQuart",onAnimationComplete:null};var b=c?y(r.Radar.defaults,c):r.Radar.defaults;return new H(a,b,s)};this.Pie=function(a,
|
||||
c){r.Pie.defaults={segmentShowStroke:!0,segmentStrokeColor:"#fff",segmentStrokeWidth:2,animation:!0,animationSteps:100,animationEasing:"easeOutBounce",animateRotate:!0,animateScale:!1,onAnimationComplete:null};var b=c?y(r.Pie.defaults,c):r.Pie.defaults;return new I(a,b,s)};this.Doughnut=function(a,c){r.Doughnut.defaults={segmentShowStroke:!0,segmentStrokeColor:"#fff",segmentStrokeWidth:2,percentageInnerCutout:50,animation:!0,animationSteps:100,animationEasing:"easeOutBounce",animateRotate:!0,animateScale:!1,
|
||||
onAnimationComplete:null};var b=c?y(r.Doughnut.defaults,c):r.Doughnut.defaults;return new J(a,b,s)};this.Line=function(a,c){r.Line.defaults={scaleOverlay:!1,scaleOverride:!1,scaleSteps:null,scaleStepWidth:null,scaleStartValue:null,scaleLineColor:"rgba(0,0,0,.1)",scaleLineWidth:1,scaleShowLabels:!0,scaleLabel:"<%=value%>",scaleFontFamily:"'Arial'",scaleFontSize:12,scaleFontStyle:"normal",scaleFontColor:"#666",scaleShowGridLines:!0,scaleGridLineColor:"rgba(0,0,0,.05)",scaleGridLineWidth:1,bezierCurve:!0,
|
||||
pointDot:!0,pointDotRadius:4,pointDotStrokeWidth:2,datasetStroke:!0,datasetStrokeWidth:2,datasetFill:!0,animation:!0,animationSteps:60,animationEasing:"easeOutQuart",onAnimationComplete:null};var b=c?y(r.Line.defaults,c):r.Line.defaults;return new K(a,b,s)};this.Bar=function(a,c){r.Bar.defaults={scaleOverlay:!1,scaleOverride:!1,scaleSteps:null,scaleStepWidth:null,scaleStartValue:null,scaleLineColor:"rgba(0,0,0,.1)",scaleLineWidth:1,scaleShowLabels:!0,scaleLabel:"<%=value%>",scaleFontFamily:"'Arial'",
|
||||
scaleFontSize:12,scaleFontStyle:"normal",scaleFontColor:"#666",scaleShowGridLines:!0,scaleGridLineColor:"rgba(0,0,0,.05)",scaleGridLineWidth:1,barShowStroke:!0,barStrokeWidth:2,barValueSpacing:5,barDatasetSpacing:1,animation:!0,animationSteps:60,animationEasing:"easeOutQuart",onAnimationComplete:null};var b=c?y(r.Bar.defaults,c):r.Bar.defaults;return new L(a,b,s)};var G=function(a,c,b){var e,h,f,d,g,k,j,l,m;g=Math.min.apply(Math,[q,u])/2;g-=Math.max.apply(Math,[0.5*c.scaleFontSize,0.5*c.scaleLineWidth]);
|
||||
d=2*c.scaleFontSize;c.scaleShowLabelBackdrop&&(d+=2*c.scaleBackdropPaddingY,g-=1.5*c.scaleBackdropPaddingY);l=g;d=d?d:5;e=Number.MIN_VALUE;h=Number.MAX_VALUE;for(f=0;f<a.length;f++)a[f].value>e&&(e=a[f].value),a[f].value<h&&(h=a[f].value);f=Math.floor(l/(0.66*d));d=Math.floor(0.5*(l/d));m=c.scaleShowLabels?c.scaleLabel:null;c.scaleOverride?(j={steps:c.scaleSteps,stepValue:c.scaleStepWidth,graphMin:c.scaleStartValue,labels:[]},z(m,j.labels,j.steps,c.scaleStartValue,c.scaleStepWidth)):j=C(l,f,d,e,h,
|
||||
m);k=g/j.steps;x(c,function(){for(var a=0;a<j.steps;a++)if(c.scaleShowLine&&(b.beginPath(),b.arc(q/2,u/2,k*(a+1),0,2*Math.PI,!0),b.strokeStyle=c.scaleLineColor,b.lineWidth=c.scaleLineWidth,b.stroke()),c.scaleShowLabels){b.textAlign="center";b.font=c.scaleFontStyle+" "+c.scaleFontSize+"px "+c.scaleFontFamily;var e=j.labels[a];if(c.scaleShowLabelBackdrop){var d=b.measureText(e).width;b.fillStyle=c.scaleBackdropColor;b.beginPath();b.rect(Math.round(q/2-d/2-c.scaleBackdropPaddingX),Math.round(u/2-k*(a+
|
||||
1)-0.5*c.scaleFontSize-c.scaleBackdropPaddingY),Math.round(d+2*c.scaleBackdropPaddingX),Math.round(c.scaleFontSize+2*c.scaleBackdropPaddingY));b.fill()}b.textBaseline="middle";b.fillStyle=c.scaleFontColor;b.fillText(e,q/2,u/2-k*(a+1))}},function(e){var d=-Math.PI/2,g=2*Math.PI/a.length,f=1,h=1;c.animation&&(c.animateScale&&(f=e),c.animateRotate&&(h=e));for(e=0;e<a.length;e++)b.beginPath(),b.arc(q/2,u/2,f*v(a[e].value,j,k),d,d+h*g,!1),b.lineTo(q/2,u/2),b.closePath(),b.fillStyle=a[e].color,b.fill(),
|
||||
c.segmentShowStroke&&(b.strokeStyle=c.segmentStrokeColor,b.lineWidth=c.segmentStrokeWidth,b.stroke()),d+=h*g},b)},H=function(a,c,b){var e,h,f,d,g,k,j,l,m;a.labels||(a.labels=[]);g=Math.min.apply(Math,[q,u])/2;d=2*c.scaleFontSize;for(e=l=0;e<a.labels.length;e++)b.font=c.pointLabelFontStyle+" "+c.pointLabelFontSize+"px "+c.pointLabelFontFamily,h=b.measureText(a.labels[e]).width,h>l&&(l=h);g-=Math.max.apply(Math,[l,1.5*(c.pointLabelFontSize/2)]);g-=c.pointLabelFontSize;l=g=A(g,null,0);d=d?d:5;e=Number.MIN_VALUE;
|
||||
h=Number.MAX_VALUE;for(f=0;f<a.datasets.length;f++)for(m=0;m<a.datasets[f].data.length;m++)a.datasets[f].data[m]>e&&(e=a.datasets[f].data[m]),a.datasets[f].data[m]<h&&(h=a.datasets[f].data[m]);f=Math.floor(l/(0.66*d));d=Math.floor(0.5*(l/d));m=c.scaleShowLabels?c.scaleLabel:null;c.scaleOverride?(j={steps:c.scaleSteps,stepValue:c.scaleStepWidth,graphMin:c.scaleStartValue,labels:[]},z(m,j.labels,j.steps,c.scaleStartValue,c.scaleStepWidth)):j=C(l,f,d,e,h,m);k=g/j.steps;x(c,function(){var e=2*Math.PI/
|
||||
a.datasets[0].data.length;b.save();b.translate(q/2,u/2);if(c.angleShowLineOut){b.strokeStyle=c.angleLineColor;b.lineWidth=c.angleLineWidth;for(var d=0;d<a.datasets[0].data.length;d++)b.rotate(e),b.beginPath(),b.moveTo(0,0),b.lineTo(0,-g),b.stroke()}for(d=0;d<j.steps;d++){b.beginPath();if(c.scaleShowLine){b.strokeStyle=c.scaleLineColor;b.lineWidth=c.scaleLineWidth;b.moveTo(0,-k*(d+1));for(var f=0;f<a.datasets[0].data.length;f++)b.rotate(e),b.lineTo(0,-k*(d+1));b.closePath();b.stroke()}c.scaleShowLabels&&
|
||||
(b.textAlign="center",b.font=c.scaleFontStyle+" "+c.scaleFontSize+"px "+c.scaleFontFamily,b.textBaseline="middle",c.scaleShowLabelBackdrop&&(f=b.measureText(j.labels[d]).width,b.fillStyle=c.scaleBackdropColor,b.beginPath(),b.rect(Math.round(-f/2-c.scaleBackdropPaddingX),Math.round(-k*(d+1)-0.5*c.scaleFontSize-c.scaleBackdropPaddingY),Math.round(f+2*c.scaleBackdropPaddingX),Math.round(c.scaleFontSize+2*c.scaleBackdropPaddingY)),b.fill()),b.fillStyle=c.scaleFontColor,b.fillText(j.labels[d],0,-k*(d+
|
||||
1)))}for(d=0;d<a.labels.length;d++){b.font=c.pointLabelFontStyle+" "+c.pointLabelFontSize+"px "+c.pointLabelFontFamily;b.fillStyle=c.pointLabelFontColor;var f=Math.sin(e*d)*(g+c.pointLabelFontSize),h=Math.cos(e*d)*(g+c.pointLabelFontSize);b.textAlign=e*d==Math.PI||0==e*d?"center":e*d>Math.PI?"right":"left";b.textBaseline="middle";b.fillText(a.labels[d],f,-h)}b.restore()},function(d){var e=2*Math.PI/a.datasets[0].data.length;b.save();b.translate(q/2,u/2);for(var g=0;g<a.datasets.length;g++){b.beginPath();
|
||||
b.moveTo(0,d*-1*v(a.datasets[g].data[0],j,k));for(var f=1;f<a.datasets[g].data.length;f++)b.rotate(e),b.lineTo(0,d*-1*v(a.datasets[g].data[f],j,k));b.closePath();b.fillStyle=a.datasets[g].fillColor;b.strokeStyle=a.datasets[g].strokeColor;b.lineWidth=c.datasetStrokeWidth;b.fill();b.stroke();if(c.pointDot){b.fillStyle=a.datasets[g].pointColor;b.strokeStyle=a.datasets[g].pointStrokeColor;b.lineWidth=c.pointDotStrokeWidth;for(f=0;f<a.datasets[g].data.length;f++)b.rotate(e),b.beginPath(),b.arc(0,d*-1*
|
||||
v(a.datasets[g].data[f],j,k),c.pointDotRadius,2*Math.PI,!1),b.fill(),b.stroke()}b.rotate(e)}b.restore()},b)},I=function(a,c,b){for(var e=0,h=Math.min.apply(Math,[u/2,q/2])-5,f=0;f<a.length;f++)e+=a[f].value;x(c,null,function(d){var g=-Math.PI/2,f=1,j=1;c.animation&&(c.animateScale&&(f=d),c.animateRotate&&(j=d));for(d=0;d<a.length;d++){var l=j*a[d].value/e*2*Math.PI;b.beginPath();b.arc(q/2,u/2,f*h,g,g+l);b.lineTo(q/2,u/2);b.closePath();b.fillStyle=a[d].color;b.fill();c.segmentShowStroke&&(b.lineWidth=
|
||||
c.segmentStrokeWidth,b.strokeStyle=c.segmentStrokeColor,b.stroke());g+=l}},b)},J=function(a,c,b){for(var e=0,h=Math.min.apply(Math,[u/2,q/2])-5,f=h*(c.percentageInnerCutout/100),d=0;d<a.length;d++)e+=a[d].value;x(c,null,function(d){var k=-Math.PI/2,j=1,l=1;c.animation&&(c.animateScale&&(j=d),c.animateRotate&&(l=d));for(d=0;d<a.length;d++){var m=l*a[d].value/e*2*Math.PI;b.beginPath();b.arc(q/2,u/2,j*h,k,k+m,!1);b.arc(q/2,u/2,j*f,k+m,k,!0);b.closePath();b.fillStyle=a[d].color;b.fill();c.segmentShowStroke&&
|
||||
(b.lineWidth=c.segmentStrokeWidth,b.strokeStyle=c.segmentStrokeColor,b.stroke());k+=m}},b)},K=function(a,c,b){var e,h,f,d,g,k,j,l,m,t,r,n,p,s=0;g=u;b.font=c.scaleFontStyle+" "+c.scaleFontSize+"px "+c.scaleFontFamily;t=1;for(d=0;d<a.labels.length;d++)e=b.measureText(a.labels[d]).width,t=e>t?e:t;q/a.labels.length<t?(s=45,q/a.labels.length<Math.cos(s)*t?(s=90,g-=t):g-=Math.sin(s)*t):g-=c.scaleFontSize;d=c.scaleFontSize;g=g-5-d;e=Number.MIN_VALUE;h=Number.MAX_VALUE;for(f=0;f<a.datasets.length;f++)for(l=
|
||||
0;l<a.datasets[f].data.length;l++)a.datasets[f].data[l]>e&&(e=a.datasets[f].data[l]),a.datasets[f].data[l]<h&&(h=a.datasets[f].data[l]);f=Math.floor(g/(0.66*d));d=Math.floor(0.5*(g/d));l=c.scaleShowLabels?c.scaleLabel:"";c.scaleOverride?(j={steps:c.scaleSteps,stepValue:c.scaleStepWidth,graphMin:c.scaleStartValue,labels:[]},z(l,j.labels,j.steps,c.scaleStartValue,c.scaleStepWidth)):j=C(g,f,d,e,h,l);k=Math.floor(g/j.steps);d=1;if(c.scaleShowLabels){b.font=c.scaleFontStyle+" "+c.scaleFontSize+"px "+c.scaleFontFamily;
|
||||
for(e=0;e<j.labels.length;e++)h=b.measureText(j.labels[e]).width,d=h>d?h:d;d+=10}r=q-d-t;m=Math.floor(r/(a.labels.length-1));n=q-t/2-r;p=g+c.scaleFontSize/2;x(c,function(){b.lineWidth=c.scaleLineWidth;b.strokeStyle=c.scaleLineColor;b.beginPath();b.moveTo(q-t/2+5,p);b.lineTo(q-t/2-r-5,p);b.stroke();0<s?(b.save(),b.textAlign="right"):b.textAlign="center";b.fillStyle=c.scaleFontColor;for(var d=0;d<a.labels.length;d++)b.save(),0<s?(b.translate(n+d*m,p+c.scaleFontSize),b.rotate(-(s*(Math.PI/180))),b.fillText(a.labels[d],
|
||||
0,0),b.restore()):b.fillText(a.labels[d],n+d*m,p+c.scaleFontSize+3),b.beginPath(),b.moveTo(n+d*m,p+3),c.scaleShowGridLines&&0<d?(b.lineWidth=c.scaleGridLineWidth,b.strokeStyle=c.scaleGridLineColor,b.lineTo(n+d*m,5)):b.lineTo(n+d*m,p+3),b.stroke();b.lineWidth=c.scaleLineWidth;b.strokeStyle=c.scaleLineColor;b.beginPath();b.moveTo(n,p+5);b.lineTo(n,5);b.stroke();b.textAlign="right";b.textBaseline="middle";for(d=0;d<j.steps;d++)b.beginPath(),b.moveTo(n-3,p-(d+1)*k),c.scaleShowGridLines?(b.lineWidth=c.scaleGridLineWidth,
|
||||
b.strokeStyle=c.scaleGridLineColor,b.lineTo(n+r+5,p-(d+1)*k)):b.lineTo(n-0.5,p-(d+1)*k),b.stroke(),c.scaleShowLabels&&b.fillText(j.labels[d],n-8,p-(d+1)*k)},function(d){function e(b,c){return p-d*v(a.datasets[b].data[c],j,k)}for(var f=0;f<a.datasets.length;f++){b.strokeStyle=a.datasets[f].strokeColor;b.lineWidth=c.datasetStrokeWidth;b.beginPath();b.moveTo(n,p-d*v(a.datasets[f].data[0],j,k));for(var g=1;g<a.datasets[f].data.length;g++)c.bezierCurve?b.bezierCurveTo(n+m*(g-0.5),e(f,g-1),n+m*(g-0.5),
|
||||
e(f,g),n+m*g,e(f,g)):b.lineTo(n+m*g,e(f,g));b.stroke();c.datasetFill?(b.lineTo(n+m*(a.datasets[f].data.length-1),p),b.lineTo(n,p),b.closePath(),b.fillStyle=a.datasets[f].fillColor,b.fill()):b.closePath();if(c.pointDot){b.fillStyle=a.datasets[f].pointColor;b.strokeStyle=a.datasets[f].pointStrokeColor;b.lineWidth=c.pointDotStrokeWidth;for(g=0;g<a.datasets[f].data.length;g++)b.beginPath(),b.arc(n+m*g,p-d*v(a.datasets[f].data[g],j,k),c.pointDotRadius,0,2*Math.PI,!0),b.fill(),b.stroke()}}},b)},L=function(a,
|
||||
c,b){var e,h,f,d,g,k,j,l,m,t,r,n,p,s,w=0;g=u;b.font=c.scaleFontStyle+" "+c.scaleFontSize+"px "+c.scaleFontFamily;t=1;for(d=0;d<a.labels.length;d++)e=b.measureText(a.labels[d]).width,t=e>t?e:t;q/a.labels.length<t?(w=45,q/a.labels.length<Math.cos(w)*t?(w=90,g-=t):g-=Math.sin(w)*t):g-=c.scaleFontSize;d=c.scaleFontSize;g=g-5-d;e=Number.MIN_VALUE;h=Number.MAX_VALUE;for(f=0;f<a.datasets.length;f++)for(l=0;l<a.datasets[f].data.length;l++)a.datasets[f].data[l]>e&&(e=a.datasets[f].data[l]),a.datasets[f].data[l]<
|
||||
h&&(h=a.datasets[f].data[l]);f=Math.floor(g/(0.66*d));d=Math.floor(0.5*(g/d));l=c.scaleShowLabels?c.scaleLabel:"";c.scaleOverride?(j={steps:c.scaleSteps,stepValue:c.scaleStepWidth,graphMin:c.scaleStartValue,labels:[]},z(l,j.labels,j.steps,c.scaleStartValue,c.scaleStepWidth)):j=C(g,f,d,e,h,l);k=Math.floor(g/j.steps);d=1;if(c.scaleShowLabels){b.font=c.scaleFontStyle+" "+c.scaleFontSize+"px "+c.scaleFontFamily;for(e=0;e<j.labels.length;e++)h=b.measureText(j.labels[e]).width,d=h>d?h:d;d+=10}r=q-d-t;m=
|
||||
Math.floor(r/a.labels.length);s=(m-2*c.scaleGridLineWidth-2*c.barValueSpacing-(c.barDatasetSpacing*a.datasets.length-1)-(c.barStrokeWidth/2*a.datasets.length-1))/a.datasets.length;n=q-t/2-r;p=g+c.scaleFontSize/2;x(c,function(){b.lineWidth=c.scaleLineWidth;b.strokeStyle=c.scaleLineColor;b.beginPath();b.moveTo(q-t/2+5,p);b.lineTo(q-t/2-r-5,p);b.stroke();0<w?(b.save(),b.textAlign="right"):b.textAlign="center";b.fillStyle=c.scaleFontColor;for(var d=0;d<a.labels.length;d++)b.save(),0<w?(b.translate(n+
|
||||
d*m,p+c.scaleFontSize),b.rotate(-(w*(Math.PI/180))),b.fillText(a.labels[d],0,0),b.restore()):b.fillText(a.labels[d],n+d*m+m/2,p+c.scaleFontSize+3),b.beginPath(),b.moveTo(n+(d+1)*m,p+3),b.lineWidth=c.scaleGridLineWidth,b.strokeStyle=c.scaleGridLineColor,b.lineTo(n+(d+1)*m,5),b.stroke();b.lineWidth=c.scaleLineWidth;b.strokeStyle=c.scaleLineColor;b.beginPath();b.moveTo(n,p+5);b.lineTo(n,5);b.stroke();b.textAlign="right";b.textBaseline="middle";for(d=0;d<j.steps;d++)b.beginPath(),b.moveTo(n-3,p-(d+1)*
|
||||
k),c.scaleShowGridLines?(b.lineWidth=c.scaleGridLineWidth,b.strokeStyle=c.scaleGridLineColor,b.lineTo(n+r+5,p-(d+1)*k)):b.lineTo(n-0.5,p-(d+1)*k),b.stroke(),c.scaleShowLabels&&b.fillText(j.labels[d],n-8,p-(d+1)*k)},function(d){b.lineWidth=c.barStrokeWidth;for(var e=0;e<a.datasets.length;e++){b.fillStyle=a.datasets[e].fillColor;b.strokeStyle=a.datasets[e].strokeColor;for(var f=0;f<a.datasets[e].data.length;f++){var g=n+c.barValueSpacing+m*f+s*e+c.barDatasetSpacing*e+c.barStrokeWidth*e;b.beginPath();
|
||||
b.moveTo(g,p);b.lineTo(g,p-d*v(a.datasets[e].data[f],j,k)+c.barStrokeWidth/2);b.lineTo(g+s,p-d*v(a.datasets[e].data[f],j,k)+c.barStrokeWidth/2);b.lineTo(g+s,p);c.barShowStroke&&b.stroke();b.closePath();b.fill()}}},b)},D=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(a){window.setTimeout(a,1E3/60)},F={}};
|
|
@ -0,0 +1,40 @@
|
|||
# This is a manifest file that'll be compiled into application.js, which will include all the files
|
||||
# listed below.
|
||||
#
|
||||
# Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
|
||||
# or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
|
||||
#
|
||||
# It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
||||
# the compiled file.
|
||||
#
|
||||
# WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
|
||||
# GO AFTER THE REQUIRES BELOW.
|
||||
#
|
||||
#= require pager
|
||||
#= require jquery_nested_form
|
||||
#= require_tree .
|
||||
#
|
||||
$(document).on 'click', '.edit-runner-link', (event) ->
|
||||
event.preventDefault()
|
||||
|
||||
descr = $(this).closest('.runner-description').first()
|
||||
descr.addClass('hide')
|
||||
form = descr.next('.runner-description-form')
|
||||
descrInput = form.find('input.description')
|
||||
originalValue = descrInput.val()
|
||||
form.removeClass('hide')
|
||||
form.find('.cancel').on 'click', (event) ->
|
||||
event.preventDefault()
|
||||
|
||||
form.addClass('hide')
|
||||
descrInput.val(originalValue)
|
||||
descr.removeClass('hide')
|
||||
|
||||
$(document).on 'click', '.assign-all-runner', ->
|
||||
$(this).replaceWith('<i class="fa fa-refresh fa-spin"></i> Assign in progress..')
|
||||
|
||||
window.unbindEvents = ->
|
||||
$(document).unbind('scroll')
|
||||
$(document).off('scroll')
|
||||
|
||||
document.addEventListener("page:fetch", unbindEvents)
|
|
@ -0,0 +1,41 @@
|
|||
class CiBuild
|
||||
@interval: null
|
||||
|
||||
constructor: (build_url, build_status) ->
|
||||
clearInterval(CiBuild.interval)
|
||||
|
||||
if build_status == "running" || build_status == "pending"
|
||||
#
|
||||
# Bind autoscroll button to follow build output
|
||||
#
|
||||
$("#autoscroll-button").bind "click", ->
|
||||
state = $(this).data("state")
|
||||
if "enabled" is state
|
||||
$(this).data "state", "disabled"
|
||||
$(this).text "enable autoscroll"
|
||||
else
|
||||
$(this).data "state", "enabled"
|
||||
$(this).text "disable autoscroll"
|
||||
|
||||
#
|
||||
# Check for new build output if user still watching build page
|
||||
# Only valid for runnig build when output changes during time
|
||||
#
|
||||
CiBuild.interval = setInterval =>
|
||||
if window.location.href is build_url
|
||||
$.ajax
|
||||
url: build_url
|
||||
dataType: "json"
|
||||
success: (build) =>
|
||||
if build.status == "running"
|
||||
$('#build-trace code').html build.trace_html
|
||||
$('#build-trace code').append '<i class="fa fa-refresh fa-spin"/>'
|
||||
@checkAutoscroll()
|
||||
else
|
||||
Turbolinks.visit build_url
|
||||
, 4000
|
||||
|
||||
checkAutoscroll: ->
|
||||
$("html,body").scrollTop $("#build-trace").height() if "enabled" is $("#autoscroll-button").data("state")
|
||||
|
||||
@CiBuild = CiBuild
|
|
@ -0,0 +1,6 @@
|
|||
$(document).on 'click', '.badge-codes-toggle', ->
|
||||
$('.badge-codes-block').toggleClass("hide")
|
||||
return false
|
||||
|
||||
$(document).on 'click', '.sync-now', ->
|
||||
$(this).find('i').addClass('fa-spin')
|
|
@ -167,6 +167,7 @@ class @DropzoneInput
|
|||
dataType: "json"
|
||||
).success (data) ->
|
||||
preview.html data.body
|
||||
preview.syntaxHighlight()
|
||||
|
||||
renderReferencedUsers data.references.users
|
||||
|
||||
|
|
|
@ -11,12 +11,13 @@ class @IssuableContext
|
|||
$(this).submit()
|
||||
|
||||
$('.issuable-details').waitForImages ->
|
||||
$('.issuable-affix').on 'affix.bs.affix', ->
|
||||
$(@).width($(@).outerWidth())
|
||||
.on 'affixed-top.bs.affix affixed-bottom.bs.affix', ->
|
||||
$(@).width('')
|
||||
|
||||
$('.issuable-affix').affix offset:
|
||||
top: ->
|
||||
@top = ($('.issuable-affix').offset().top - 70)
|
||||
bottom: ->
|
||||
@bottom = $('.footer').outerHeight(true)
|
||||
$('.issuable-affix').on 'affix.bs.affix', ->
|
||||
$(@).width($(@).outerWidth())
|
||||
.on 'affixed-top.bs.affix affixed-bottom.bs.affix', ->
|
||||
$(@).width('')
|
||||
|
|
|
@ -66,6 +66,11 @@ class @MergeRequestTabs
|
|||
|
||||
@setCurrentAction(action)
|
||||
|
||||
scrollToElement: (container) ->
|
||||
if window.location.hash
|
||||
top = $(container + " " + window.location.hash).offset().top
|
||||
$('body').scrollTo(top);
|
||||
|
||||
# Activate a tab based on the current action
|
||||
activateTab: (action) ->
|
||||
action = 'notes' if action == 'show'
|
||||
|
@ -122,6 +127,7 @@ class @MergeRequestTabs
|
|||
document.getElementById('commits').innerHTML = data.html
|
||||
$('.js-timeago').timeago()
|
||||
@commitsLoaded = true
|
||||
@scrollToElement(".commits")
|
||||
|
||||
loadDiff: (source) ->
|
||||
return if @diffsLoaded
|
||||
|
@ -131,6 +137,7 @@ class @MergeRequestTabs
|
|||
success: (data) =>
|
||||
document.getElementById('diffs').innerHTML = data.html
|
||||
@diffsLoaded = true
|
||||
@scrollToElement(".diffs")
|
||||
|
||||
toggleLoading: ->
|
||||
$('.mr-loading-status .loading').toggle()
|
||||
|
|
|
@ -15,11 +15,12 @@ class @MergeRequestWidget
|
|||
type: 'GET'
|
||||
url: $('.merge-request').data('url')
|
||||
success: (data) =>
|
||||
switch data.state
|
||||
when 'merged'
|
||||
location.reload()
|
||||
else
|
||||
setTimeout(merge_request_widget.mergeInProgress, 2000)
|
||||
if data.state == "merged"
|
||||
location.reload()
|
||||
else if data.merge_error
|
||||
$('.mr-widget-body').html("<h4>" + data.merge_error + "</h4>")
|
||||
else
|
||||
setTimeout(merge_request_widget.mergeInProgress, 2000)
|
||||
dataType: 'json'
|
||||
|
||||
getMergeStatus: ->
|
||||
|
|
|
@ -122,7 +122,9 @@ class @Notes
|
|||
# or skip if rendered
|
||||
if @isNewNote(note)
|
||||
@note_ids.push(note.id)
|
||||
$('ul.main-notes-list').append(note.html)
|
||||
$('ul.main-notes-list').
|
||||
append(note.html).
|
||||
syntaxHighlight()
|
||||
@initTaskList()
|
||||
|
||||
###
|
||||
|
@ -275,13 +277,15 @@ class @Notes
|
|||
|
||||
Updates the current note field.
|
||||
###
|
||||
updateNote: (xhr, note, status) =>
|
||||
note_li = $(".note-row-" + note.id)
|
||||
note_li.replaceWith(note.html)
|
||||
note_li.find('.note-edit-form').hide()
|
||||
note_li.find('.note-body > .note-text').show()
|
||||
note_li.find('js-task-list-container').taskList('enable')
|
||||
@enableTaskList()
|
||||
updateNote: (_xhr, note, _status) =>
|
||||
# Convert returned HTML to a jQuery object so we can modify it further
|
||||
$html = $(note.html)
|
||||
$html.syntaxHighlight()
|
||||
$html.find('.js-task-list-container').taskList('enable')
|
||||
|
||||
# Find the note's `li` element by ID and replace it with the updated HTML
|
||||
$note_li = $("#note_#{note.id}")
|
||||
$note_li.replaceWith($html)
|
||||
|
||||
###
|
||||
Called in response to clicking the edit note link
|
||||
|
|
|
@ -24,3 +24,19 @@ class @Project
|
|||
$.cookie('hide_no_password_message', 'false', { path: path })
|
||||
$(@).parents('.no-password-message').remove()
|
||||
e.preventDefault()
|
||||
|
||||
$('.update-notification').on 'click', (e) ->
|
||||
e.preventDefault()
|
||||
notification_level = $(@).data 'notification-level'
|
||||
$('#notification_level').val(notification_level)
|
||||
$('#notification-form').submit()
|
||||
label = null
|
||||
switch notification_level
|
||||
when 0 then label = ' Disabled '
|
||||
when 1 then label = ' Participating '
|
||||
when 2 then label = ' Watching '
|
||||
when 3 then label = ' Global '
|
||||
when 4 then label = ' On Mention '
|
||||
$('#notifications-button').empty().append("<i class='fa fa-bell'></i>" + label + "<i class='fa fa-angle-down'></i>")
|
||||
$(@).parents('ul').find('li.active').removeClass 'active'
|
||||
$(@).parent().addClass 'active'
|
|
@ -1,3 +1,5 @@
|
|||
# Syntax Highlighter
|
||||
#
|
||||
# Applies a syntax highlighting color scheme CSS class to any element with the
|
||||
# `js-syntax-highlight` class
|
||||
#
|
||||
|
@ -5,5 +7,14 @@
|
|||
#
|
||||
# <div class="js-syntax-highlight"></div>
|
||||
#
|
||||
$.fn.syntaxHighlight = ->
|
||||
if $(this).hasClass('js-syntax-highlight')
|
||||
# Given the element itself, apply highlighting
|
||||
$(this).addClass(gon.user_color_scheme)
|
||||
else
|
||||
# Given a parent element, recurse to any of its applicable children
|
||||
$children = $(this).find('.js-syntax-highlight')
|
||||
$children.syntaxHighlight() if $children.length
|
||||
|
||||
$(document).on 'ready page:load', ->
|
||||
$('.js-syntax-highlight').addClass(gon.user_color_scheme)
|
||||
$('.js-syntax-highlight').syntaxHighlight()
|
||||
|
|
|
@ -16,6 +16,9 @@ class @TreeView
|
|||
li = $("tr.tree-item")
|
||||
liSelected = null
|
||||
$('body').keydown (e) ->
|
||||
if $("input:focus").length > 0 && (e.which == 38 || e.which == 40)
|
||||
return false
|
||||
|
||||
if e.which is 40
|
||||
if liSelected
|
||||
next = liSelected.next()
|
||||
|
@ -38,4 +41,4 @@ class @TreeView
|
|||
$(liSelected).focus()
|
||||
else if e.which is 13
|
||||
path = $('.tree-item.selected .tree-item-file-name a').attr('href')
|
||||
Turbolinks.visit(path)
|
||||
if path then Turbolinks.visit(path)
|
||||
|
|
|
@ -38,6 +38,8 @@ class @ZenMode
|
|||
@active_checkbox = $(checkbox)
|
||||
@active_checkbox.prop('checked', true)
|
||||
@active_zen_area = @active_checkbox.parent().find('textarea')
|
||||
# Prevent a user-resized textarea from persisting to fullscreen
|
||||
@active_zen_area.removeAttr('style')
|
||||
@active_zen_area.focus()
|
||||
|
||||
exitZenMode: =>
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
*/
|
||||
|
||||
|
||||
@import "base/fonts";
|
||||
@import "base/variables";
|
||||
@import "base/mixins";
|
||||
@import "base/layout";
|
||||
|
@ -60,3 +61,9 @@
|
|||
* Styles for JS behaviors.
|
||||
*/
|
||||
@import "behaviors.scss";
|
||||
|
||||
/**
|
||||
* CI specific styles:
|
||||
*/
|
||||
@import "ci/**/*";
|
||||
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Source Sans Pro';
|
||||
font-style: normal;
|
||||
font-weight: 300;
|
||||
src: local('Source Sans Pro Light'), local('SourceSansPro-Light'), font-url('SourceSansPro-Light.ttf');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'Source Sans Pro';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Source Sans Pro'), local('SourceSansPro-Regular'), font-url('SourceSansPro-Regular.ttf');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'Source Sans Pro';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
src: local('Source Sans Pro Semibold'), local('SourceSansPro-Semibold'), font-url('SourceSansPro-Semibold.ttf');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'Source Sans Pro';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local('Source Sans Pro Bold'), local('SourceSansPro-Bold'), font-url('SourceSansPro-Bold.ttf');
|
||||
}
|
|
@ -85,14 +85,14 @@
|
|||
// Labels
|
||||
.label {
|
||||
padding: 2px 4px;
|
||||
font-size: 12px;
|
||||
font-size: 13px;
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
display: inline-block;
|
||||
|
||||
&.label-gray {
|
||||
background-color: #eee;
|
||||
color: #999;
|
||||
background-color: #f8fafc;
|
||||
color: $gl-gray;
|
||||
text-shadow: none;
|
||||
}
|
||||
|
||||
|
@ -156,10 +156,16 @@
|
|||
* Add some extra stuff to panels
|
||||
*
|
||||
*/
|
||||
.panel {
|
||||
.panel-heading {
|
||||
font-weight: bold;
|
||||
|
||||
.container-blank .panel .panel-heading {
|
||||
font-size: 17px;
|
||||
line-height: 38px;
|
||||
}
|
||||
|
||||
.panel {
|
||||
box-shadow: none;
|
||||
|
||||
.panel-heading {
|
||||
.panel-head-actions {
|
||||
position: relative;
|
||||
top: -5px;
|
||||
|
@ -182,6 +188,10 @@
|
|||
.pagination {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.btn {
|
||||
min-width: 124px;
|
||||
}
|
||||
}
|
||||
|
||||
&.panel-small {
|
||||
|
@ -209,6 +219,12 @@
|
|||
}
|
||||
}
|
||||
|
||||
.alert-help {
|
||||
background-color: $background-color;
|
||||
border: 1px solid $border-color;
|
||||
color: $gl-gray;
|
||||
}
|
||||
|
||||
// Typography =================================================================
|
||||
|
||||
.text-primary,
|
||||
|
|
|
@ -22,6 +22,10 @@ $brand-info: $gl-info;
|
|||
$brand-warning: $gl-warning;
|
||||
$brand-danger: $gl-danger;
|
||||
|
||||
$border-radius-base: 3px !default;
|
||||
$border-radius-large: 5px !default;
|
||||
$border-radius-small: 2px !default;
|
||||
|
||||
|
||||
//== Scaffolding
|
||||
//
|
||||
|
@ -42,17 +46,18 @@ $font-size-base: $gl-font-size;
|
|||
//
|
||||
//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).
|
||||
|
||||
$padding-base-vertical: 6px;
|
||||
$padding-base-horizontal: 14px;
|
||||
|
||||
$padding-base-vertical: 9px;
|
||||
$padding-base-horizontal: $gl-padding;
|
||||
$component-active-color: #fff;
|
||||
$component-active-bg: $brand-info;
|
||||
|
||||
//== Forms
|
||||
//
|
||||
//##
|
||||
|
||||
$input-color: $text-color;
|
||||
$input-border: #DDD;
|
||||
$input-border-focus: $brand-info;
|
||||
$input-border: #e7e9ed;
|
||||
$input-border-focus: #7F8FA4;
|
||||
$legend-color: $text-color;
|
||||
|
||||
|
||||
|
@ -60,20 +65,20 @@ $legend-color: $text-color;
|
|||
//
|
||||
//##
|
||||
|
||||
$pagination-color: #fff;
|
||||
$pagination-bg: $brand-success;
|
||||
$pagination-color: $gl-gray;
|
||||
$pagination-bg: $background-color;
|
||||
$pagination-border: transparent;
|
||||
|
||||
$pagination-hover-color: #fff;
|
||||
$pagination-hover-bg: darken($brand-success, 15%);
|
||||
$pagination-hover-bg: $brand-info;
|
||||
$pagination-hover-border: transparent;
|
||||
|
||||
$pagination-active-color: #fff;
|
||||
$pagination-active-bg: darken($brand-success, 15%);
|
||||
$pagination-active-bg: $brand-info;
|
||||
$pagination-active-border: transparent;
|
||||
|
||||
$pagination-disabled-color: #b4bcc2;
|
||||
$pagination-disabled-bg: lighten($brand-success, 15%);
|
||||
$pagination-disabled-color: #fff;
|
||||
$pagination-disabled-bg: lighten($brand-info, 15%);
|
||||
$pagination-disabled-border: transparent;
|
||||
|
||||
|
||||
|
@ -109,11 +114,12 @@ $alert-border-radius: 0;
|
|||
//
|
||||
//##
|
||||
|
||||
$panel-border-radius: 0;
|
||||
$panel-default-text: $text-color;
|
||||
$panel-default-border: $border-color;
|
||||
$panel-default-heading-bg: $background-color;
|
||||
|
||||
$panel-border-radius: 2px;
|
||||
$panel-default-text: $text-color;
|
||||
$panel-default-border: $border-color;
|
||||
$panel-default-heading-bg: $background-color;
|
||||
$panel-footer-bg: $background-color;
|
||||
$panel-inner-border: $border-color;
|
||||
|
||||
//== Wells
|
||||
//
|
||||
|
@ -131,3 +137,22 @@ $code-bg: #f9f2f4;
|
|||
|
||||
$kbd-color: #fff;
|
||||
$kbd-bg: #333;
|
||||
|
||||
//== Buttons
|
||||
//
|
||||
//##
|
||||
$btn-default-color: $gl-text-color;
|
||||
$btn-default-bg: #fff;
|
||||
$btn-default-border: #e7e9ed;
|
||||
|
||||
//== Nav
|
||||
//
|
||||
//##
|
||||
$nav-link-padding: 13px $gl-padding;
|
||||
|
||||
//== Code
|
||||
//
|
||||
//##
|
||||
$pre-bg: #f8fafc !default;
|
||||
$pre-color: $gl-gray !default;
|
||||
$pre-border-color: #e7e9ed;
|
||||
|
|
|
@ -21,7 +21,6 @@ html {
|
|||
margin-top: 30px;
|
||||
}
|
||||
|
||||
|
||||
.container-limited {
|
||||
max-width: $fixed-layout-width;
|
||||
}
|
||||
|
|
|
@ -55,8 +55,11 @@
|
|||
}
|
||||
|
||||
@mixin md-typography {
|
||||
font-size: 15px;
|
||||
line-height: 1.5;
|
||||
color: $md-text-color;
|
||||
|
||||
a {
|
||||
color: $md-link-color;
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
|
@ -90,46 +93,88 @@
|
|||
}
|
||||
|
||||
h1 {
|
||||
margin-top: 45px;
|
||||
font-size: 2.5em;
|
||||
font-size: 1.3em;
|
||||
font-weight: 600;
|
||||
margin: 24px 0 12px 0;
|
||||
padding: 0 0 10px 0;
|
||||
border-bottom: 1px solid #e7e9ed;
|
||||
color: #313236;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin-top: 40px;
|
||||
font-size: 2em;
|
||||
font-size: 1.2em;
|
||||
font-weight: 600;
|
||||
margin: 24px 0 12px 0;
|
||||
color: #313236;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin-top: 35px;
|
||||
font-size: 1.5em;
|
||||
margin: 24px 0 12px 0;
|
||||
font-size: 1.25em;
|
||||
}
|
||||
|
||||
h4 {
|
||||
margin-top: 30px;
|
||||
font-size: 1.2em;
|
||||
margin: 24px 0 12px 0;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
h5 {
|
||||
margin: 24px 0 12px 0;
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
h6 {
|
||||
margin: 24px 0 12px 0;
|
||||
font-size: 0.90em;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
color: #888;
|
||||
padding: 8px 21px;
|
||||
margin: 12px 0 12px;
|
||||
border-left: 3px solid #e7e9ed;
|
||||
}
|
||||
|
||||
blockquote p {
|
||||
color: #7f8fa4 !important;
|
||||
font-size: 15px;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
p {
|
||||
color:#5c5d5e;
|
||||
margin:6px 0 0 0;
|
||||
}
|
||||
|
||||
table {
|
||||
@extend .table;
|
||||
@extend .table-bordered;
|
||||
margin: 12px 0 12px 0;
|
||||
color: #5c5d5e;
|
||||
th {
|
||||
background: #EEE;
|
||||
background: #f8fafc;
|
||||
}
|
||||
}
|
||||
|
||||
pre {
|
||||
margin: 12px 0 12px 0 !important;
|
||||
background-color: #f8fafc !important;
|
||||
font-size: 13px !important;
|
||||
color: #5b6169 !important;
|
||||
line-height: 1.6em !important;
|
||||
@include border-radius(2px);
|
||||
}
|
||||
|
||||
p > code {
|
||||
font-size: inherit;
|
||||
font-weight: inherit;
|
||||
}
|
||||
|
||||
|
||||
ul {
|
||||
color: #5c5d5e;
|
||||
}
|
||||
|
||||
li {
|
||||
line-height: 1.5;
|
||||
line-height: 1.6em;
|
||||
}
|
||||
|
||||
a[href*="/uploads/"], a[href*="storage.googleapis.com/google-code-attachments/"] {
|
||||
|
@ -149,6 +194,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
@mixin str-truncated($max_width: 82%) {
|
||||
display: inline-block;
|
||||
overflow: hidden;
|
||||
|
@ -166,7 +212,7 @@
|
|||
padding: 0px;
|
||||
list-style: none;
|
||||
|
||||
li {
|
||||
> li {
|
||||
padding: 10px 0;
|
||||
border-bottom: 1px solid #EEE;
|
||||
overflow: hidden;
|
||||
|
@ -174,13 +220,13 @@
|
|||
margin: 0px;
|
||||
|
||||
&:last-child {
|
||||
border:none
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
&.active {
|
||||
background: #f9f9f9;
|
||||
a {
|
||||
font-weight: bold;
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -190,8 +236,66 @@
|
|||
|
||||
&.light {
|
||||
a {
|
||||
color: #777;
|
||||
color: $gl-gray;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@mixin input-big {
|
||||
height: 36px;
|
||||
padding: 5px 10px;
|
||||
font-size: 16px;
|
||||
line-height: 24px;
|
||||
color: #7f8fa4;
|
||||
background-color: #fff;
|
||||
border-color: #e7e9ed;
|
||||
}
|
||||
|
||||
@mixin btn-big {
|
||||
height: 36px;
|
||||
padding: 5px 10px;
|
||||
font-size: 16px;
|
||||
line-height: 24px;
|
||||
}
|
||||
|
||||
@mixin nav-menu {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
list-style: none;
|
||||
margin-top: 5px;
|
||||
height: 56px;
|
||||
|
||||
li {
|
||||
display: inline-block;
|
||||
|
||||
a {
|
||||
padding: 14px;
|
||||
font-size: 17px;
|
||||
line-height: 28px;
|
||||
color: #7f8fa4;
|
||||
border-bottom: 2px solid transparent;
|
||||
|
||||
&:hover, &:active, &:focus {
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
|
||||
&.active a {
|
||||
color: #4c4e54;
|
||||
border-bottom: 2px solid #1cacfc;
|
||||
}
|
||||
|
||||
.badge {
|
||||
font-weight: normal;
|
||||
background-color: #fff;
|
||||
background-color: #eee;
|
||||
color: #78a;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.fa-align {
|
||||
top: 20px;
|
||||
position: relative;
|
||||
}
|
||||
|
|
|
@ -1,27 +1,35 @@
|
|||
$style_color: #474D57;
|
||||
$hover: #FFFAF1;
|
||||
$gl-text-color: #222222;
|
||||
$gl-link-color: #446e9b;
|
||||
$gl-text-color: #54565B;
|
||||
$gl-text-green: #4A2;
|
||||
$gl-text-red: #D12F19;
|
||||
$gl-text-orange: #D90;
|
||||
$gl-header-color: #4c4e54;
|
||||
$gl-link-color: #333c48;
|
||||
$md-text-color: #444;
|
||||
$md-link-color: #3084bb;
|
||||
$nprogress-color: #c0392b;
|
||||
$gl-font-size: 14px;
|
||||
$gl-font-size: 15px;
|
||||
$list-font-size: 15px;
|
||||
$sidebar_collapsed_width: 52px;
|
||||
$sidebar_collapsed_width: 62px;
|
||||
$sidebar_width: 230px;
|
||||
$avatar_radius: 50%;
|
||||
$code_font_size: 13px;
|
||||
$code_line_height: 1.5;
|
||||
$border-color: #E5E5E5;
|
||||
$background-color: #f5f5f5;
|
||||
$header-height: 50px;
|
||||
$border-color: #dce0e6;
|
||||
$background-color: #F7F8FA;
|
||||
$header-height: 58px;
|
||||
$fixed-layout-width: 1200px;
|
||||
$gl-gray: #7f8fa4;
|
||||
$gl-padding: 16px;
|
||||
$gl-avatar-size: 46px;
|
||||
|
||||
|
||||
/*
|
||||
* State colors:
|
||||
*/
|
||||
$gl-primary: #446e9b;
|
||||
$gl-success: #019875;
|
||||
$gl-info: #029ACF;
|
||||
$gl-success: #44c679;
|
||||
$gl-info: #00aaff;
|
||||
$gl-warning: #EB9532;
|
||||
$gl-danger: #d9534f;
|
||||
|
||||
|
@ -35,4 +43,4 @@ $deleted: #f77;
|
|||
* Fonts
|
||||
*/
|
||||
$monospace_font: 'Menlo', 'Liberation Mono', 'Consolas', 'DejaVu Sans Mono', 'Ubuntu Mono', 'Courier New', 'andale mono', 'lucida console', monospace;
|
||||
$regular_font: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
$regular_font: 'Source Sans Pro', "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
|
|
|
@ -0,0 +1,76 @@
|
|||
.build-page {
|
||||
pre.trace {
|
||||
background: #111111;
|
||||
color: #fff;
|
||||
font-family: $monospace_font;
|
||||
white-space: pre;
|
||||
white-space: pre-wrap; /* css-3 */
|
||||
white-space: -moz-pre-wrap; /* Mozilla, since 1999 */
|
||||
white-space: -pre-wrap; /* Opera 4-6 */
|
||||
white-space: -o-pre-wrap; /* Opera 7 */
|
||||
word-wrap: break-word; /* Internet Explorer 5.5+ */
|
||||
overflow: auto;
|
||||
overflow-y: hidden;
|
||||
font-size: 12px;
|
||||
|
||||
.fa-refresh {
|
||||
font-size: 24px;
|
||||
margin-left: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
.autoscroll-container {
|
||||
position: fixed;
|
||||
bottom: 10px;
|
||||
right: 20px;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
.scroll-controls {
|
||||
position: fixed;
|
||||
bottom: 10px;
|
||||
left: 250px;
|
||||
z-index: 100;
|
||||
|
||||
a {
|
||||
display: block;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
.page-sidebar-collapsed {
|
||||
.scroll-controls {
|
||||
left: 70px;
|
||||
}
|
||||
}
|
||||
|
||||
.build-widget {
|
||||
padding: 10px;
|
||||
background: $background-color;
|
||||
margin-bottom: 20px;
|
||||
border-radius: 4px;
|
||||
|
||||
.title {
|
||||
margin-top: 0;
|
||||
color: #666;
|
||||
line-height: 1.5;
|
||||
}
|
||||
.attr-name {
|
||||
color: #777;
|
||||
}
|
||||
}
|
||||
|
||||
.alert-disabled {
|
||||
background: $background-color;
|
||||
|
||||
a {
|
||||
color: #3084bb !important;
|
||||
}
|
||||
}
|
||||
|
||||
.build-top-menu {
|
||||
margin-top: 0;
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
.ci-body {
|
||||
.incorrect-syntax{
|
||||
font-size: 19px;
|
||||
color: red;
|
||||
}
|
||||
.correct-syntax{
|
||||
font-size: 19px;
|
||||
color: #47a447;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,59 @@
|
|||
.ci-body {
|
||||
.project-title {
|
||||
margin: 0;
|
||||
color: #444;
|
||||
font-size: 20px;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
.wide-table-holder {
|
||||
margin-left: -$gl-padding;
|
||||
margin-right: -$gl-padding;
|
||||
}
|
||||
|
||||
.builds,
|
||||
.projects-table {
|
||||
.light {
|
||||
border-color: $border-color;
|
||||
}
|
||||
|
||||
th, td {
|
||||
padding: 10px $gl-padding;
|
||||
}
|
||||
|
||||
td {
|
||||
color: $gl-gray;
|
||||
vertical-align: middle !important;
|
||||
|
||||
a {
|
||||
font-weight: normal;
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.commit-info {
|
||||
.attr-name {
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
pre.commit-message {
|
||||
background: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
border: none;
|
||||
margin: 20px 0;
|
||||
border-radius: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.loading{
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
.ci-charts {
|
||||
fieldset {
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
.ci-body {
|
||||
.runner-state {
|
||||
padding: 6px 12px;
|
||||
margin-right: 10px;
|
||||
color: #FFF;
|
||||
|
||||
&.runner-state-shared {
|
||||
background: #32b186;
|
||||
}
|
||||
&.runner-state-specific {
|
||||
background: #3498db;
|
||||
}
|
||||
}
|
||||
|
||||
.runner-status-online {
|
||||
color: green;
|
||||
}
|
||||
|
||||
.runner-status-offline {
|
||||
color: gray;
|
||||
}
|
||||
|
||||
.runner-status-paused {
|
||||
color: red;
|
||||
}
|
||||
|
||||
.runner {
|
||||
.btn {
|
||||
padding: 1px 6px;
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-weight: normal;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,37 @@
|
|||
.ci-status {
|
||||
padding: 2px 7px;
|
||||
margin-right: 5px;
|
||||
border: 1px solid #EEE;
|
||||
white-space: nowrap;
|
||||
@include border-radius(4px);
|
||||
|
||||
&:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
&.ci-failed {
|
||||
color: $gl-danger;
|
||||
border-color: $gl-danger;
|
||||
}
|
||||
|
||||
&.ci-success {
|
||||
color: $gl-success;
|
||||
border-color: $gl-success;
|
||||
}
|
||||
|
||||
&.ci-info {
|
||||
color: $gl-info;
|
||||
border-color: $gl-info;
|
||||
}
|
||||
|
||||
&.ci-disabled {
|
||||
color: $gl-gray;
|
||||
border-color: $gl-gray;
|
||||
}
|
||||
|
||||
&.ci-pending,
|
||||
&.ci-running {
|
||||
color: $gl-warning;
|
||||
border-color: $gl-warning;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,906 @@
|
|||
.ci-body {
|
||||
// color codes are based on http://en.wikipedia.org/wiki/File:Xterm_256color_chart.svg
|
||||
// see also: https://gist.github.com/jasonm23/2868981
|
||||
|
||||
$black: #000000;
|
||||
$red: #cd0000;
|
||||
$green: #00cd00;
|
||||
$yellow: #cdcd00;
|
||||
$blue: #0000ee; // according to wikipedia, this is the xterm standard
|
||||
//$blue: #1e90ff; // this is used by all the terminals I tried (when configured with the xterm color profile)
|
||||
$magenta: #cd00cd;
|
||||
$cyan: #00cdcd;
|
||||
$white: #e5e5e5;
|
||||
$l-black: #7f7f7f;
|
||||
$l-red: #ff0000;
|
||||
$l-green: #00ff00;
|
||||
$l-yellow: #ffff00;
|
||||
$l-blue: #5c5cff;
|
||||
$l-magenta: #ff00ff;
|
||||
$l-cyan: #00ffff;
|
||||
$l-white: #ffffff;
|
||||
|
||||
.term-bold {
|
||||
font-weight: bold;
|
||||
}
|
||||
.term-italic {
|
||||
font-style: italic;
|
||||
}
|
||||
.term-conceal {
|
||||
visibility: hidden;
|
||||
}
|
||||
.term-underline {
|
||||
text-decoration: underline;
|
||||
}
|
||||
.term-cross {
|
||||
text-decoration: line-through;
|
||||
}
|
||||
|
||||
.term-fg-black {
|
||||
color: $black;
|
||||
}
|
||||
.term-fg-red {
|
||||
color: $red;
|
||||
}
|
||||
.term-fg-green {
|
||||
color: $green;
|
||||
}
|
||||
.term-fg-yellow {
|
||||
color: $yellow;
|
||||
}
|
||||
.term-fg-blue {
|
||||
color: $blue;
|
||||
}
|
||||
.term-fg-magenta {
|
||||
color: $magenta;
|
||||
}
|
||||
.term-fg-cyan {
|
||||
color: $cyan;
|
||||
}
|
||||
.term-fg-white {
|
||||
color: $white;
|
||||
}
|
||||
.term-fg-l-black {
|
||||
color: $l-black;
|
||||
}
|
||||
.term-fg-l-red {
|
||||
color: $l-red;
|
||||
}
|
||||
.term-fg-l-green {
|
||||
color: $l-green;
|
||||
}
|
||||
.term-fg-l-yellow {
|
||||
color: $l-yellow;
|
||||
}
|
||||
.term-fg-l-blue {
|
||||
color: $l-blue;
|
||||
}
|
||||
.term-fg-l-magenta {
|
||||
color: $l-magenta;
|
||||
}
|
||||
.term-fg-l-cyan {
|
||||
color: $l-cyan;
|
||||
}
|
||||
.term-fg-l-white {
|
||||
color: $l-white;
|
||||
}
|
||||
|
||||
.term-bg-black {
|
||||
background-color: $black;
|
||||
}
|
||||
.term-bg-red {
|
||||
background-color: $red;
|
||||
}
|
||||
.term-bg-green {
|
||||
background-color: $green;
|
||||
}
|
||||
.term-bg-yellow {
|
||||
background-color: $yellow;
|
||||
}
|
||||
.term-bg-blue {
|
||||
background-color: $blue;
|
||||
}
|
||||
.term-bg-magenta {
|
||||
background-color: $magenta;
|
||||
}
|
||||
.term-bg-cyan {
|
||||
background-color: $cyan;
|
||||
}
|
||||
.term-bg-white {
|
||||
background-color: $white;
|
||||
}
|
||||
.term-bg-l-black {
|
||||
background-color: $l-black;
|
||||
}
|
||||
.term-bg-l-red {
|
||||
background-color: $l-red;
|
||||
}
|
||||
.term-bg-l-green {
|
||||
background-color: $l-green;
|
||||
}
|
||||
.term-bg-l-yellow {
|
||||
background-color: $l-yellow;
|
||||
}
|
||||
.term-bg-l-blue {
|
||||
background-color: $l-blue;
|
||||
}
|
||||
.term-bg-l-magenta {
|
||||
background-color: $l-magenta;
|
||||
}
|
||||
.term-bg-l-cyan {
|
||||
background-color: $l-cyan;
|
||||
}
|
||||
.term-bg-l-white {
|
||||
background-color: $l-white;
|
||||
}
|
||||
|
||||
|
||||
.xterm-fg-0 {
|
||||
color: #000000;
|
||||
}
|
||||
.xterm-fg-1 {
|
||||
color: #800000;
|
||||
}
|
||||
.xterm-fg-2 {
|
||||
color: #008000;
|
||||
}
|
||||
.xterm-fg-3 {
|
||||
color: #808000;
|
||||
}
|
||||
.xterm-fg-4 {
|
||||
color: #000080;
|
||||
}
|
||||
.xterm-fg-5 {
|
||||
color: #800080;
|
||||
}
|
||||
.xterm-fg-6 {
|
||||
color: #008080;
|
||||
}
|
||||
.xterm-fg-7 {
|
||||
color: #c0c0c0;
|
||||
}
|
||||
.xterm-fg-8 {
|
||||
color: #808080;
|
||||
}
|
||||
.xterm-fg-9 {
|
||||
color: #ff0000;
|
||||
}
|
||||
.xterm-fg-10 {
|
||||
color: #00ff00;
|
||||
}
|
||||
.xterm-fg-11 {
|
||||
color: #ffff00;
|
||||
}
|
||||
.xterm-fg-12 {
|
||||
color: #0000ff;
|
||||
}
|
||||
.xterm-fg-13 {
|
||||
color: #ff00ff;
|
||||
}
|
||||
.xterm-fg-14 {
|
||||
color: #00ffff;
|
||||
}
|
||||
.xterm-fg-15 {
|
||||
color: #ffffff;
|
||||
}
|
||||
.xterm-fg-16 {
|
||||
color: #000000;
|
||||
}
|
||||
.xterm-fg-17 {
|
||||
color: #00005f;
|
||||
}
|
||||
.xterm-fg-18 {
|
||||
color: #000087;
|
||||
}
|
||||
.xterm-fg-19 {
|
||||
color: #0000af;
|
||||
}
|
||||
.xterm-fg-20 {
|
||||
color: #0000d7;
|
||||
}
|
||||
.xterm-fg-21 {
|
||||
color: #0000ff;
|
||||
}
|
||||
.xterm-fg-22 {
|
||||
color: #005f00;
|
||||
}
|
||||
.xterm-fg-23 {
|
||||
color: #005f5f;
|
||||
}
|
||||
.xterm-fg-24 {
|
||||
color: #005f87;
|
||||
}
|
||||
.xterm-fg-25 {
|
||||
color: #005faf;
|
||||
}
|
||||
.xterm-fg-26 {
|
||||
color: #005fd7;
|
||||
}
|
||||
.xterm-fg-27 {
|
||||
color: #005fff;
|
||||
}
|
||||
.xterm-fg-28 {
|
||||
color: #008700;
|
||||
}
|
||||
.xterm-fg-29 {
|
||||
color: #00875f;
|
||||
}
|
||||
.xterm-fg-30 {
|
||||
color: #008787;
|
||||
}
|
||||
.xterm-fg-31 {
|
||||
color: #0087af;
|
||||
}
|
||||
.xterm-fg-32 {
|
||||
color: #0087d7;
|
||||
}
|
||||
.xterm-fg-33 {
|
||||
color: #0087ff;
|
||||
}
|
||||
.xterm-fg-34 {
|
||||
color: #00af00;
|
||||
}
|
||||
.xterm-fg-35 {
|
||||
color: #00af5f;
|
||||
}
|
||||
.xterm-fg-36 {
|
||||
color: #00af87;
|
||||
}
|
||||
.xterm-fg-37 {
|
||||
color: #00afaf;
|
||||
}
|
||||
.xterm-fg-38 {
|
||||
color: #00afd7;
|
||||
}
|
||||
.xterm-fg-39 {
|
||||
color: #00afff;
|
||||
}
|
||||
.xterm-fg-40 {
|
||||
color: #00d700;
|
||||
}
|
||||
.xterm-fg-41 {
|
||||
color: #00d75f;
|
||||
}
|
||||
.xterm-fg-42 {
|
||||
color: #00d787;
|
||||
}
|
||||
.xterm-fg-43 {
|
||||
color: #00d7af;
|
||||
}
|
||||
.xterm-fg-44 {
|
||||
color: #00d7d7;
|
||||
}
|
||||
.xterm-fg-45 {
|
||||
color: #00d7ff;
|
||||
}
|
||||
.xterm-fg-46 {
|
||||
color: #00ff00;
|
||||
}
|
||||
.xterm-fg-47 {
|
||||
color: #00ff5f;
|
||||
}
|
||||
.xterm-fg-48 {
|
||||
color: #00ff87;
|
||||
}
|
||||
.xterm-fg-49 {
|
||||
color: #00ffaf;
|
||||
}
|
||||
.xterm-fg-50 {
|
||||
color: #00ffd7;
|
||||
}
|
||||
.xterm-fg-51 {
|
||||
color: #00ffff;
|
||||
}
|
||||
.xterm-fg-52 {
|
||||
color: #5f0000;
|
||||
}
|
||||
.xterm-fg-53 {
|
||||
color: #5f005f;
|
||||
}
|
||||
.xterm-fg-54 {
|
||||
color: #5f0087;
|
||||
}
|
||||
.xterm-fg-55 {
|
||||
color: #5f00af;
|
||||
}
|
||||
.xterm-fg-56 {
|
||||
color: #5f00d7;
|
||||
}
|
||||
.xterm-fg-57 {
|
||||
color: #5f00ff;
|
||||
}
|
||||
.xterm-fg-58 {
|
||||
color: #5f5f00;
|
||||
}
|
||||
.xterm-fg-59 {
|
||||
color: #5f5f5f;
|
||||
}
|
||||
.xterm-fg-60 {
|
||||
color: #5f5f87;
|
||||
}
|
||||
.xterm-fg-61 {
|
||||
color: #5f5faf;
|
||||
}
|
||||
.xterm-fg-62 {
|
||||
color: #5f5fd7;
|
||||
}
|
||||
.xterm-fg-63 {
|
||||
color: #5f5fff;
|
||||
}
|
||||
.xterm-fg-64 {
|
||||
color: #5f8700;
|
||||
}
|
||||
.xterm-fg-65 {
|
||||
color: #5f875f;
|
||||
}
|
||||
.xterm-fg-66 {
|
||||
color: #5f8787;
|
||||
}
|
||||
.xterm-fg-67 {
|
||||
color: #5f87af;
|
||||
}
|
||||
.xterm-fg-68 {
|
||||
color: #5f87d7;
|
||||
}
|
||||
.xterm-fg-69 {
|
||||
color: #5f87ff;
|
||||
}
|
||||
.xterm-fg-70 {
|
||||
color: #5faf00;
|
||||
}
|
||||
.xterm-fg-71 {
|
||||
color: #5faf5f;
|
||||
}
|
||||
.xterm-fg-72 {
|
||||
color: #5faf87;
|
||||
}
|
||||
.xterm-fg-73 {
|
||||
color: #5fafaf;
|
||||
}
|
||||
.xterm-fg-74 {
|
||||
color: #5fafd7;
|
||||
}
|
||||
.xterm-fg-75 {
|
||||
color: #5fafff;
|
||||
}
|
||||
.xterm-fg-76 {
|
||||
color: #5fd700;
|
||||
}
|
||||
.xterm-fg-77 {
|
||||
color: #5fd75f;
|
||||
}
|
||||
.xterm-fg-78 {
|
||||
color: #5fd787;
|
||||
}
|
||||
.xterm-fg-79 {
|
||||
color: #5fd7af;
|
||||
}
|
||||
.xterm-fg-80 {
|
||||
color: #5fd7d7;
|
||||
}
|
||||
.xterm-fg-81 {
|
||||
color: #5fd7ff;
|
||||
}
|
||||
.xterm-fg-82 {
|
||||
color: #5fff00;
|
||||
}
|
||||
.xterm-fg-83 {
|
||||
color: #5fff5f;
|
||||
}
|
||||
.xterm-fg-84 {
|
||||
color: #5fff87;
|
||||
}
|
||||
.xterm-fg-85 {
|
||||
color: #5fffaf;
|
||||
}
|
||||
.xterm-fg-86 {
|
||||
color: #5fffd7;
|
||||
}
|
||||
.xterm-fg-87 {
|
||||
color: #5fffff;
|
||||
}
|
||||
.xterm-fg-88 {
|
||||
color: #870000;
|
||||
}
|
||||
.xterm-fg-89 {
|
||||
color: #87005f;
|
||||
}
|
||||
.xterm-fg-90 {
|
||||
color: #870087;
|
||||
}
|
||||
.xterm-fg-91 {
|
||||
color: #8700af;
|
||||
}
|
||||
.xterm-fg-92 {
|
||||
color: #8700d7;
|
||||
}
|
||||
.xterm-fg-93 {
|
||||
color: #8700ff;
|
||||
}
|
||||
.xterm-fg-94 {
|
||||
color: #875f00;
|
||||
}
|
||||
.xterm-fg-95 {
|
||||
color: #875f5f;
|
||||
}
|
||||
.xterm-fg-96 {
|
||||
color: #875f87;
|
||||
}
|
||||
.xterm-fg-97 {
|
||||
color: #875faf;
|
||||
}
|
||||
.xterm-fg-98 {
|
||||
color: #875fd7;
|
||||
}
|
||||
.xterm-fg-99 {
|
||||
color: #875fff;
|
||||
}
|
||||
.xterm-fg-100 {
|
||||
color: #878700;
|
||||
}
|
||||
.xterm-fg-101 {
|
||||
color: #87875f;
|
||||
}
|
||||
.xterm-fg-102 {
|
||||
color: #878787;
|
||||
}
|
||||
.xterm-fg-103 {
|
||||
color: #8787af;
|
||||
}
|
||||
.xterm-fg-104 {
|
||||
color: #8787d7;
|
||||
}
|
||||
.xterm-fg-105 {
|
||||
color: #8787ff;
|
||||
}
|
||||
.xterm-fg-106 {
|
||||
color: #87af00;
|
||||
}
|
||||
.xterm-fg-107 {
|
||||
color: #87af5f;
|
||||
}
|
||||
.xterm-fg-108 {
|
||||
color: #87af87;
|
||||
}
|
||||
.xterm-fg-109 {
|
||||
color: #87afaf;
|
||||
}
|
||||
.xterm-fg-110 {
|
||||
color: #87afd7;
|
||||
}
|
||||
.xterm-fg-111 {
|
||||
color: #87afff;
|
||||
}
|
||||
.xterm-fg-112 {
|
||||
color: #87d700;
|
||||
}
|
||||
.xterm-fg-113 {
|
||||
color: #87d75f;
|
||||
}
|
||||
.xterm-fg-114 {
|
||||
color: #87d787;
|
||||
}
|
||||
.xterm-fg-115 {
|
||||
color: #87d7af;
|
||||
}
|
||||
.xterm-fg-116 {
|
||||
color: #87d7d7;
|
||||
}
|
||||
.xterm-fg-117 {
|
||||
color: #87d7ff;
|
||||
}
|
||||
.xterm-fg-118 {
|
||||
color: #87ff00;
|
||||
}
|
||||
.xterm-fg-119 {
|
||||
color: #87ff5f;
|
||||
}
|
||||
.xterm-fg-120 {
|
||||
color: #87ff87;
|
||||
}
|
||||
.xterm-fg-121 {
|
||||
color: #87ffaf;
|
||||
}
|
||||
.xterm-fg-122 {
|
||||
color: #87ffd7;
|
||||
}
|
||||
.xterm-fg-123 {
|
||||
color: #87ffff;
|
||||
}
|
||||
.xterm-fg-124 {
|
||||
color: #af0000;
|
||||
}
|
||||
.xterm-fg-125 {
|
||||
color: #af005f;
|
||||
}
|
||||
.xterm-fg-126 {
|
||||
color: #af0087;
|
||||
}
|
||||
.xterm-fg-127 {
|
||||
color: #af00af;
|
||||
}
|
||||
.xterm-fg-128 {
|
||||
color: #af00d7;
|
||||
}
|
||||
.xterm-fg-129 {
|
||||
color: #af00ff;
|
||||
}
|
||||
.xterm-fg-130 {
|
||||
color: #af5f00;
|
||||
}
|
||||
.xterm-fg-131 {
|
||||
color: #af5f5f;
|
||||
}
|
||||
.xterm-fg-132 {
|
||||
color: #af5f87;
|
||||
}
|
||||
.xterm-fg-133 {
|
||||
color: #af5faf;
|
||||
}
|
||||
.xterm-fg-134 {
|
||||
color: #af5fd7;
|
||||
}
|
||||
.xterm-fg-135 {
|
||||
color: #af5fff;
|
||||
}
|
||||
.xterm-fg-136 {
|
||||
color: #af8700;
|
||||
}
|
||||
.xterm-fg-137 {
|
||||
color: #af875f;
|
||||
}
|
||||
.xterm-fg-138 {
|
||||
color: #af8787;
|
||||
}
|
||||
.xterm-fg-139 {
|
||||
color: #af87af;
|
||||
}
|
||||
.xterm-fg-140 {
|
||||
color: #af87d7;
|
||||
}
|
||||
.xterm-fg-141 {
|
||||
color: #af87ff;
|
||||
}
|
||||
.xterm-fg-142 {
|
||||
color: #afaf00;
|
||||
}
|
||||
.xterm-fg-143 {
|
||||
color: #afaf5f;
|
||||
}
|
||||
.xterm-fg-144 {
|
||||
color: #afaf87;
|
||||
}
|
||||
.xterm-fg-145 {
|
||||
color: #afafaf;
|
||||
}
|
||||
.xterm-fg-146 {
|
||||
color: #afafd7;
|
||||
}
|
||||
.xterm-fg-147 {
|
||||
color: #afafff;
|
||||
}
|
||||
.xterm-fg-148 {
|
||||
color: #afd700;
|
||||
}
|
||||
.xterm-fg-149 {
|
||||
color: #afd75f;
|
||||
}
|
||||
.xterm-fg-150 {
|
||||
color: #afd787;
|
||||
}
|
||||
.xterm-fg-151 {
|
||||
color: #afd7af;
|
||||
}
|
||||
.xterm-fg-152 {
|
||||
color: #afd7d7;
|
||||
}
|
||||
.xterm-fg-153 {
|
||||
color: #afd7ff;
|
||||
}
|
||||
.xterm-fg-154 {
|
||||
color: #afff00;
|
||||
}
|
||||
.xterm-fg-155 {
|
||||
color: #afff5f;
|
||||
}
|
||||
.xterm-fg-156 {
|
||||
color: #afff87;
|
||||
}
|
||||
.xterm-fg-157 {
|
||||
color: #afffaf;
|
||||
}
|
||||
.xterm-fg-158 {
|
||||
color: #afffd7;
|
||||
}
|
||||
.xterm-fg-159 {
|
||||
color: #afffff;
|
||||
}
|
||||
.xterm-fg-160 {
|
||||
color: #d70000;
|
||||
}
|
||||
.xterm-fg-161 {
|
||||
color: #d7005f;
|
||||
}
|
||||
.xterm-fg-162 {
|
||||
color: #d70087;
|
||||
}
|
||||
.xterm-fg-163 {
|
||||
color: #d700af;
|
||||
}
|
||||
.xterm-fg-164 {
|
||||
color: #d700d7;
|
||||
}
|
||||
.xterm-fg-165 {
|
||||
color: #d700ff;
|
||||
}
|
||||
.xterm-fg-166 {
|
||||
color: #d75f00;
|
||||
}
|
||||
.xterm-fg-167 {
|
||||
color: #d75f5f;
|
||||
}
|
||||
.xterm-fg-168 {
|
||||
color: #d75f87;
|
||||
}
|
||||
.xterm-fg-169 {
|
||||
color: #d75faf;
|
||||
}
|
||||
.xterm-fg-170 {
|
||||
color: #d75fd7;
|
||||
}
|
||||
.xterm-fg-171 {
|
||||
color: #d75fff;
|
||||
}
|
||||
.xterm-fg-172 {
|
||||
color: #d78700;
|
||||
}
|
||||
.xterm-fg-173 {
|
||||
color: #d7875f;
|
||||
}
|
||||
.xterm-fg-174 {
|
||||
color: #d78787;
|
||||
}
|
||||
.xterm-fg-175 {
|
||||
color: #d787af;
|
||||
}
|
||||
.xterm-fg-176 {
|
||||
color: #d787d7;
|
||||
}
|
||||
.xterm-fg-177 {
|
||||
color: #d787ff;
|
||||
}
|
||||
.xterm-fg-178 {
|
||||
color: #d7af00;
|
||||
}
|
||||
.xterm-fg-179 {
|
||||
color: #d7af5f;
|
||||
}
|
||||
.xterm-fg-180 {
|
||||
color: #d7af87;
|
||||
}
|
||||
.xterm-fg-181 {
|
||||
color: #d7afaf;
|
||||
}
|
||||
.xterm-fg-182 {
|
||||
color: #d7afd7;
|
||||
}
|
||||
.xterm-fg-183 {
|
||||
color: #d7afff;
|
||||
}
|
||||
.xterm-fg-184 {
|
||||
color: #d7d700;
|
||||
}
|
||||
.xterm-fg-185 {
|
||||
color: #d7d75f;
|
||||
}
|
||||
.xterm-fg-186 {
|
||||
color: #d7d787;
|
||||
}
|
||||
.xterm-fg-187 {
|
||||
color: #d7d7af;
|
||||
}
|
||||
.xterm-fg-188 {
|
||||
color: #d7d7d7;
|
||||
}
|
||||
.xterm-fg-189 {
|
||||
color: #d7d7ff;
|
||||
}
|
||||
.xterm-fg-190 {
|
||||
color: #d7ff00;
|
||||
}
|
||||
.xterm-fg-191 {
|
||||
color: #d7ff5f;
|
||||
}
|
||||
.xterm-fg-192 {
|
||||
color: #d7ff87;
|
||||
}
|
||||
.xterm-fg-193 {
|
||||
color: #d7ffaf;
|
||||
}
|
||||
.xterm-fg-194 {
|
||||
color: #d7ffd7;
|
||||
}
|
||||
.xterm-fg-195 {
|
||||
color: #d7ffff;
|
||||
}
|
||||
.xterm-fg-196 {
|
||||
color: #ff0000;
|
||||
}
|
||||
.xterm-fg-197 {
|
||||
color: #ff005f;
|
||||
}
|
||||
.xterm-fg-198 {
|
||||
color: #ff0087;
|
||||
}
|
||||
.xterm-fg-199 {
|
||||
color: #ff00af;
|
||||
}
|
||||
.xterm-fg-200 {
|
||||
color: #ff00d7;
|
||||
}
|
||||
.xterm-fg-201 {
|
||||
color: #ff00ff;
|
||||
}
|
||||
.xterm-fg-202 {
|
||||
color: #ff5f00;
|
||||
}
|
||||
.xterm-fg-203 {
|
||||
color: #ff5f5f;
|
||||
}
|
||||
.xterm-fg-204 {
|
||||
color: #ff5f87;
|
||||
}
|
||||
.xterm-fg-205 {
|
||||
color: #ff5faf;
|
||||
}
|
||||
.xterm-fg-206 {
|
||||
color: #ff5fd7;
|
||||
}
|
||||
.xterm-fg-207 {
|
||||
color: #ff5fff;
|
||||
}
|
||||
.xterm-fg-208 {
|
||||
color: #ff8700;
|
||||
}
|
||||
.xterm-fg-209 {
|
||||
color: #ff875f;
|
||||
}
|
||||
.xterm-fg-210 {
|
||||
color: #ff8787;
|
||||
}
|
||||
.xterm-fg-211 {
|
||||
color: #ff87af;
|
||||
}
|
||||
.xterm-fg-212 {
|
||||
color: #ff87d7;
|
||||
}
|
||||
.xterm-fg-213 {
|
||||
color: #ff87ff;
|
||||
}
|
||||
.xterm-fg-214 {
|
||||
color: #ffaf00;
|
||||
}
|
||||
.xterm-fg-215 {
|
||||
color: #ffaf5f;
|
||||
}
|
||||
.xterm-fg-216 {
|
||||
color: #ffaf87;
|
||||
}
|
||||
.xterm-fg-217 {
|
||||
color: #ffafaf;
|
||||
}
|
||||
.xterm-fg-218 {
|
||||
color: #ffafd7;
|
||||
}
|
||||
.xterm-fg-219 {
|
||||
color: #ffafff;
|
||||
}
|
||||
.xterm-fg-220 {
|
||||
color: #ffd700;
|
||||
}
|
||||
.xterm-fg-221 {
|
||||
color: #ffd75f;
|
||||
}
|
||||
.xterm-fg-222 {
|
||||
color: #ffd787;
|
||||
}
|
||||
.xterm-fg-223 {
|
||||
color: #ffd7af;
|
||||
}
|
||||
.xterm-fg-224 {
|
||||
color: #ffd7d7;
|
||||
}
|
||||
.xterm-fg-225 {
|
||||
color: #ffd7ff;
|
||||
}
|
||||
.xterm-fg-226 {
|
||||
color: #ffff00;
|
||||
}
|
||||
.xterm-fg-227 {
|
||||
color: #ffff5f;
|
||||
}
|
||||
.xterm-fg-228 {
|
||||
color: #ffff87;
|
||||
}
|
||||
.xterm-fg-229 {
|
||||
color: #ffffaf;
|
||||
}
|
||||
.xterm-fg-230 {
|
||||
color: #ffffd7;
|
||||
}
|
||||
.xterm-fg-231 {
|
||||
color: #ffffff;
|
||||
}
|
||||
.xterm-fg-232 {
|
||||
color: #080808;
|
||||
}
|
||||
.xterm-fg-233 {
|
||||
color: #121212;
|
||||
}
|
||||
.xterm-fg-234 {
|
||||
color: #1c1c1c;
|
||||
}
|
||||
.xterm-fg-235 {
|
||||
color: #262626;
|
||||
}
|
||||
.xterm-fg-236 {
|
||||
color: #303030;
|
||||
}
|
||||
.xterm-fg-237 {
|
||||
color: #3a3a3a;
|
||||
}
|
||||
.xterm-fg-238 {
|
||||
color: #444444;
|
||||
}
|
||||
.xterm-fg-239 {
|
||||
color: #4e4e4e;
|
||||
}
|
||||
.xterm-fg-240 {
|
||||
color: #585858;
|
||||
}
|
||||
.xterm-fg-241 {
|
||||
color: #626262;
|
||||
}
|
||||
.xterm-fg-242 {
|
||||
color: #6c6c6c;
|
||||
}
|
||||
.xterm-fg-243 {
|
||||
color: #767676;
|
||||
}
|
||||
.xterm-fg-244 {
|
||||
color: #808080;
|
||||
}
|
||||
.xterm-fg-245 {
|
||||
color: #8a8a8a;
|
||||
}
|
||||
.xterm-fg-246 {
|
||||
color: #949494;
|
||||
}
|
||||
.xterm-fg-247 {
|
||||
color: #9e9e9e;
|
||||
}
|
||||
.xterm-fg-248 {
|
||||
color: #a8a8a8;
|
||||
}
|
||||
.xterm-fg-249 {
|
||||
color: #b2b2b2;
|
||||
}
|
||||
.xterm-fg-250 {
|
||||
color: #bcbcbc;
|
||||
}
|
||||
.xterm-fg-251 {
|
||||
color: #c6c6c6;
|
||||
}
|
||||
.xterm-fg-252 {
|
||||
color: #d0d0d0;
|
||||
}
|
||||
.xterm-fg-253 {
|
||||
color: #dadada;
|
||||
}
|
||||
.xterm-fg-254 {
|
||||
color: #e4e4e4;
|
||||
}
|
||||
.xterm-fg-255 {
|
||||
color: #eeeeee;
|
||||
}
|
||||
}
|
|
@ -23,8 +23,13 @@
|
|||
&.s24 { width: 24px; height: 24px; margin-right: 8px; }
|
||||
&.s26 { width: 26px; height: 26px; margin-right: 8px; }
|
||||
&.s32 { width: 32px; height: 32px; margin-right: 10px; }
|
||||
&.s36 { width: 36px; height: 36px; margin-right: 10px; }
|
||||
&.s46 { width: 46px; height: 46px; margin-right: 15px; }
|
||||
&.s48 { width: 48px; height: 48px; margin-right: 10px; }
|
||||
&.s60 { width: 60px; height: 60px; margin-right: 12px; }
|
||||
&.s90 { width: 90px; height: 90px; margin-right: 15px; }
|
||||
&.s110 { width: 110px; height: 110px; margin-right: 15px; }
|
||||
&.s140 { width: 140px; height: 140px; margin-right: 20px; }
|
||||
&.s160 { width: 160px; height: 160px; margin-right: 20px; }
|
||||
}
|
||||
|
||||
|
@ -38,5 +43,7 @@
|
|||
&.s32 { font-size: 22px; line-height: 32px; }
|
||||
&.s60 { font-size: 32px; line-height: 60px; }
|
||||
&.s90 { font-size: 36px; line-height: 90px; }
|
||||
&.s160 { font-size: 96px; line-height: 1.33; }
|
||||
&.s110 { font-size: 40px; line-height: 112px; font-weight: 300; }
|
||||
&.s140 { font-size: 72px; line-height: 140px; }
|
||||
&.s160 { font-size: 96px; line-height: 160px; }
|
||||
}
|
||||
|
|
|
@ -1,19 +1,62 @@
|
|||
.light-well {
|
||||
background: #f9f9f9;
|
||||
background-color: #f8fafc;
|
||||
padding: 15px;
|
||||
}
|
||||
|
||||
.centered-light-block {
|
||||
text-align: center;
|
||||
color: #888;
|
||||
color: $gl-gray;
|
||||
margin: 20px;
|
||||
}
|
||||
|
||||
.nothing-here-block {
|
||||
text-align: center;
|
||||
padding: 20px;
|
||||
color: #666;
|
||||
color: $gl-gray;
|
||||
font-weight: normal;
|
||||
font-size: 16px;
|
||||
line-height: 36px;
|
||||
}
|
||||
|
||||
.gray-content-block {
|
||||
margin: -$gl-padding;
|
||||
background-color: $background-color;
|
||||
padding: $gl-padding;
|
||||
margin-bottom: 0px;
|
||||
border-top: 1px solid $border-color;
|
||||
border-bottom: 1px solid $border-color;
|
||||
color: $gl-gray;
|
||||
|
||||
&.top-block {
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
&.middle-block {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
&.clear-block {
|
||||
margin-bottom: $gl-padding - 1px;
|
||||
padding-bottom: $gl-padding;
|
||||
}
|
||||
|
||||
&.second-block {
|
||||
margin-top: -1px;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
&.footer-block {
|
||||
margin-top: 0;
|
||||
border-bottom: none;
|
||||
margin-bottom: -$gl-padding;
|
||||
}
|
||||
|
||||
.title {
|
||||
color: $gl-text-color;
|
||||
}
|
||||
|
||||
.oneline {
|
||||
line-height: 42px;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
body {
|
||||
text-rendering: geometricPrecision;
|
||||
}
|
||||
.btn {
|
||||
@extend .btn-default;
|
||||
|
||||
|
@ -10,7 +13,7 @@
|
|||
}
|
||||
|
||||
&.btn-save {
|
||||
@extend .btn-primary;
|
||||
@extend .btn-success;
|
||||
}
|
||||
|
||||
&.btn-remove {
|
||||
|
@ -72,3 +75,154 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.btn-group-next {
|
||||
.btn {
|
||||
padding: 9px 0px;
|
||||
font-size: 15px;
|
||||
color: #7f8fa4;
|
||||
border-color: #e7e9ed;
|
||||
width: 140px;
|
||||
|
||||
&.active {
|
||||
border-color: $gl-info;
|
||||
background: $gl-info;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@mixin btn-info {
|
||||
@include border-radius(2px);
|
||||
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
text-transform: uppercase;
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
line-height: 18px;
|
||||
padding: 11px 16px;
|
||||
letter-spacing: .4px;
|
||||
|
||||
&:hover {
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
}
|
||||
|
||||
&:focus {
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
}
|
||||
|
||||
&:active {
|
||||
@include box-shadow(inset 0 0 4px rgba(0, 0, 0, 0.12));
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
}
|
||||
}
|
||||
|
||||
@mixin btn-middle {
|
||||
@include border-radius(2px);
|
||||
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
text-transform: uppercase;
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
line-height: 18px;
|
||||
padding: 11px 24px;
|
||||
letter-spacing: .4px;
|
||||
|
||||
&:hover {
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
}
|
||||
|
||||
&:focus {
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
}
|
||||
|
||||
&:active {
|
||||
@include box-shadow(inset 0 0 4px rgba(0, 0, 0, 0.12));
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@mixin btn-green {
|
||||
background-color: #28b061;
|
||||
border: 1px solid #26a65c;
|
||||
color: #fff;
|
||||
|
||||
&:hover {
|
||||
background-color: #26ab5d;
|
||||
border: 1px solid #229954;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
&:focus {
|
||||
background-color: #26ab5d;
|
||||
border: 1px solid #229954;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
&:active {
|
||||
@include box-shadow (inset 0 0 4px rgba(0, 0, 0, 0.12));
|
||||
|
||||
background-color: #23a158 !important;
|
||||
border: 1px solid #229954 !important;
|
||||
color: #fff !important;
|
||||
}
|
||||
}
|
||||
|
||||
/*Butons*/
|
||||
|
||||
@mixin bnt-project {
|
||||
background-color: #f0f2f5;
|
||||
border-color: #dce0e5;
|
||||
color: #313236;
|
||||
|
||||
&:hover {
|
||||
border-color:#dce0e5;
|
||||
background-color: #ebeef2;
|
||||
color: #313236;
|
||||
}
|
||||
|
||||
&:focus {
|
||||
border-color: #dce0e5;
|
||||
background-color: #ebeef2;
|
||||
color: #313236;
|
||||
}
|
||||
|
||||
&:active {
|
||||
@include box-shadow(inset 0 0 4px rgba(0, 0, 0, 0.12));
|
||||
|
||||
color: #313236 !important;
|
||||
border-color: #c6cacf !important;
|
||||
background-color: #e4e7ed !important;
|
||||
}
|
||||
}
|
||||
|
||||
@mixin btn-remove {
|
||||
background-color: #f72e60;
|
||||
border-color: #ee295a;
|
||||
|
||||
&:hover {
|
||||
background-color: #e82757;
|
||||
border-color: #e32555;
|
||||
}
|
||||
|
||||
&:focus {
|
||||
background-color: #e82757;
|
||||
border-color: #e32555;
|
||||
}
|
||||
|
||||
&:active {
|
||||
@include box-shadow(inset 0 0 4px rgba(0, 0, 0, 0.12));
|
||||
background-color: #d42450 !important;
|
||||
border-color: #e12554 !important;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,45 @@
|
|||
/*
|
||||
* Callouts from Bootstrap3 docs
|
||||
*
|
||||
* Not quite alerts, but custom and helpful notes for folks reading the docs.
|
||||
* Requires a base and modifier class.
|
||||
*/
|
||||
|
||||
/* Common styles for all types */
|
||||
.bs-callout {
|
||||
margin: 20px 0;
|
||||
padding: 20px;
|
||||
border-left: 3px solid #eee;
|
||||
color: #666;
|
||||
background: #f9f9f9;
|
||||
}
|
||||
.bs-callout h4 {
|
||||
margin-top: 0;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
.bs-callout p:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
/* Variations */
|
||||
.bs-callout-danger {
|
||||
background-color: #fdf7f7;
|
||||
border-color: #eed3d7;
|
||||
color: #b94a48;
|
||||
}
|
||||
.bs-callout-warning {
|
||||
background-color: #faf8f0;
|
||||
border-color: #faebcc;
|
||||
color: #8a6d3b;
|
||||
}
|
||||
.bs-callout-info {
|
||||
background-color: #f4f8fa;
|
||||
border-color: #bce8f1;
|
||||
color: #34789a;
|
||||
}
|
||||
.bs-callout-success {
|
||||
background-color: #dff0d8;
|
||||
border-color: #5cA64d;
|
||||
color: #3c763d;
|
||||
}
|
||||
|
|
@ -1,12 +1,13 @@
|
|||
/** COLORS **/
|
||||
.cgray { color: gray }
|
||||
.cgray { color: $gl-gray; }
|
||||
.clgray { color: #BBB }
|
||||
.cred { color: #D12F19 }
|
||||
.cgreen { color: #4a2 }
|
||||
.cred { color: $gl-text-red; }
|
||||
.cgreen { color: $gl-text-green; }
|
||||
.cdark { color: #444 }
|
||||
|
||||
/** COMMON CLASSES **/
|
||||
.prepend-top-10 { margin-top:10px }
|
||||
.prepend-top-default { margin-top: $gl-padding; }
|
||||
.prepend-top-20 { margin-top:20px }
|
||||
.prepend-left-10 { margin-left:10px }
|
||||
.prepend-left-20 { margin-left:20px }
|
||||
|
@ -20,10 +21,10 @@
|
|||
|
||||
.underlined-link { text-decoration: underline; }
|
||||
.hint { font-style: italic; color: #999; }
|
||||
.light { color: #888 }
|
||||
.light { color: $gl-gray; }
|
||||
|
||||
.slead {
|
||||
color: #666;
|
||||
color: $gl-gray;
|
||||
font-size: 15px;
|
||||
margin-bottom: 12px;
|
||||
font-weight: normal;
|
||||
|
@ -74,8 +75,6 @@ pre {
|
|||
color: $gl-link-color;
|
||||
}
|
||||
|
||||
.help li { color:$style_color; }
|
||||
|
||||
.back-link {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
@ -303,7 +302,7 @@ table {
|
|||
}
|
||||
|
||||
.btn-sign-in {
|
||||
margin-top: 7px;
|
||||
margin-top: 8px;
|
||||
text-shadow: none;
|
||||
}
|
||||
|
||||
|
@ -314,7 +313,7 @@ table {
|
|||
}
|
||||
|
||||
.wiki .highlight, .note-body .highlight {
|
||||
margin-bottom: 9px;
|
||||
margin: 12px 0 12px 0;
|
||||
}
|
||||
|
||||
.wiki .code {
|
||||
|
@ -355,14 +354,14 @@ table {
|
|||
}
|
||||
|
||||
.description {
|
||||
font-size: 16px;
|
||||
font-size: $gl-font-size;
|
||||
color: #666;
|
||||
margin-top: 8px;
|
||||
}
|
||||
}
|
||||
|
||||
.profiler-results {
|
||||
top: 50px !important;
|
||||
top: 73px !important;
|
||||
|
||||
.profiler-button,
|
||||
.profiler-controls {
|
||||
|
@ -371,21 +370,27 @@ table {
|
|||
}
|
||||
|
||||
.center-top-menu {
|
||||
list-style: none;
|
||||
@include nav-menu;
|
||||
text-align: center;
|
||||
margin-top: 5px;
|
||||
padding-bottom: 15px;
|
||||
margin-bottom: 15px;
|
||||
margin-bottom: $gl-padding;
|
||||
height: 56px;
|
||||
margin-top: -$gl-padding;
|
||||
padding-top: $gl-padding;
|
||||
|
||||
li {
|
||||
display: inline-block;
|
||||
&.no-bottom {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
a {
|
||||
padding: 15px;
|
||||
}
|
||||
|
||||
&.active a {
|
||||
color: #666;
|
||||
}
|
||||
&.no-top {
|
||||
margin-top: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.dropzone .dz-preview .dz-progress {
|
||||
border-color: $border-color !important;
|
||||
}
|
||||
|
||||
.dropzone .dz-preview .dz-progress .dz-upload {
|
||||
background: $gl-success !important;
|
||||
}
|
||||
|
|
|
@ -3,7 +3,11 @@
|
|||
*
|
||||
*/
|
||||
.file-holder {
|
||||
border: 1px solid $border-color;
|
||||
margin-left: -$gl-padding;
|
||||
margin-right: -$gl-padding;
|
||||
border: none;
|
||||
border-top: 1px solid #E7E9EE;
|
||||
border-bottom: 1px solid #E7E9EE;
|
||||
margin-bottom: 1em;
|
||||
|
||||
table {
|
||||
|
@ -49,7 +53,7 @@
|
|||
}
|
||||
|
||||
&.wiki {
|
||||
padding: 25px;
|
||||
padding: $gl-padding;
|
||||
|
||||
.highlight {
|
||||
margin-bottom: 9px;
|
||||
|
@ -90,7 +94,7 @@
|
|||
border-right: none;
|
||||
}
|
||||
background: #fff;
|
||||
padding: 8px;
|
||||
padding: 10px $gl-padding;
|
||||
}
|
||||
.lines {
|
||||
pre {
|
||||
|
@ -100,6 +104,33 @@
|
|||
border: none;
|
||||
}
|
||||
}
|
||||
img.avatar {
|
||||
border: 0 none;
|
||||
float: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
td.blame-commit {
|
||||
background: #f9f9f9;
|
||||
min-width: 350px;
|
||||
|
||||
.commit-author-link {
|
||||
color: #888;
|
||||
}
|
||||
}
|
||||
td.blame-numbers {
|
||||
pre {
|
||||
color: #AAA;
|
||||
white-space: pre;
|
||||
}
|
||||
background: #f1f1f1;
|
||||
border-left: 1px solid #DDD;
|
||||
}
|
||||
td.lines {
|
||||
code {
|
||||
font-family: $monospace_font;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.logs {
|
||||
|
|
|
@ -2,31 +2,6 @@
|
|||
margin-right: 15px;
|
||||
}
|
||||
|
||||
.issues-state-filters {
|
||||
li.active a {
|
||||
border-color: #DDD !important;
|
||||
|
||||
&, &:hover, &:active, &.active {
|
||||
background: #f5f5f5 !important;
|
||||
border-bottom: 1px solid #f5f5f5 !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.issues-details-filters {
|
||||
font-size: 13px;
|
||||
background: #f5f5f5;
|
||||
margin: -10px 0;
|
||||
padding: 10px 15px;
|
||||
margin-top: -15px;
|
||||
border-left: 1px solid #DDD;
|
||||
border-right: 1px solid #DDD;
|
||||
|
||||
.btn {
|
||||
font-size: 13px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 800px) {
|
||||
.issues-filters,
|
||||
.issues_bulk_update {
|
||||
|
|
|
@ -24,29 +24,27 @@ header {
|
|||
z-index: 100;
|
||||
margin-bottom: 0;
|
||||
min-height: $header-height;
|
||||
background-color: #fff;
|
||||
border: none;
|
||||
border-bottom: 1px solid #EEE;
|
||||
|
||||
.container-fluid {
|
||||
background: #FFF;
|
||||
width: 100% !important;
|
||||
filter: none;
|
||||
padding: 0;
|
||||
|
||||
.nav > li > a {
|
||||
color: #888;
|
||||
font-size: 14px;
|
||||
color: #7f8fa4;
|
||||
font-size: 18px;
|
||||
padding: 0;
|
||||
background-color: #f5f5f5;
|
||||
margin: ($header-height - 28) / 2 0;
|
||||
margin-left: 10px;
|
||||
border-radius: 40px;
|
||||
height: 28px;
|
||||
width: 28px;
|
||||
line-height: 28px;
|
||||
text-align: center;
|
||||
|
||||
&:hover, &:focus, &:active {
|
||||
background-color: #EEE;
|
||||
background-color: #FFF;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -56,6 +54,7 @@ header {
|
|||
border-radius: 0;
|
||||
position: absolute;
|
||||
right: 2px;
|
||||
top: 15px;
|
||||
|
||||
&:hover {
|
||||
background-color: #EEE;
|
||||
|
@ -70,16 +69,16 @@ header {
|
|||
.title {
|
||||
margin: 0;
|
||||
overflow: hidden;
|
||||
font-size: 18px;
|
||||
font-size: 19px;
|
||||
line-height: $header-height;
|
||||
font-weight: bold;
|
||||
color: #444;
|
||||
font-weight: normal;
|
||||
color: #4c4e54;
|
||||
text-overflow: ellipsis;
|
||||
vertical-align: top;
|
||||
white-space: nowrap;
|
||||
|
||||
a {
|
||||
color: #444;
|
||||
color: #4c4e54;
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
@ -94,7 +93,7 @@ header {
|
|||
.search {
|
||||
margin-right: 10px;
|
||||
margin-left: 10px;
|
||||
margin-top: ($header-height - 28) / 2;
|
||||
margin-top: ($header-height - 36) / 2;
|
||||
|
||||
form {
|
||||
margin: 0;
|
||||
|
@ -105,13 +104,8 @@ header {
|
|||
width: 220px;
|
||||
background-image: image-url("icon-search.png");
|
||||
background-repeat: no-repeat;
|
||||
background-position: 10px;
|
||||
height: inherit;
|
||||
padding: 4px 6px;
|
||||
padding-left: 25px;
|
||||
font-size: 13px;
|
||||
background-color: #f5f5f5;
|
||||
border-color: #f5f5f5;
|
||||
background-position: 195px;
|
||||
@include input-big;
|
||||
|
||||
&:focus {
|
||||
@include box-shadow(none);
|
||||
|
|
|
@ -5,10 +5,13 @@
|
|||
*/
|
||||
|
||||
.issue-box {
|
||||
@include border-radius(3px);
|
||||
|
||||
display: inline-block;
|
||||
padding: 4px 13px;
|
||||
padding: 10px $gl-padding;
|
||||
font-weight: normal;
|
||||
margin-right: 5px;
|
||||
margin-right: 10px;
|
||||
font-size: $gl-font-size;
|
||||
|
||||
&.issue-box-closed {
|
||||
background-color: $gl-danger;
|
||||
|
@ -21,7 +24,7 @@
|
|||
}
|
||||
|
||||
&.issue-box-open {
|
||||
background-color: $gl-success;
|
||||
background-color: #019875;
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
|
|
|
@ -49,8 +49,6 @@
|
|||
}
|
||||
}
|
||||
|
||||
.author { color: #999; }
|
||||
|
||||
.list-item-name {
|
||||
float: left;
|
||||
position: relative;
|
||||
|
@ -71,15 +69,6 @@
|
|||
font-size: $list-font-size;
|
||||
line-height: 18px;
|
||||
}
|
||||
|
||||
.row_title {
|
||||
color: $gray-dark;
|
||||
|
||||
&:hover {
|
||||
color: $text-color;
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -109,3 +98,28 @@ ul.bordered-list {
|
|||
li.task-list-item {
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
ul.content-list {
|
||||
@include basic-list;
|
||||
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
|
||||
> li {
|
||||
padding: $gl-padding;
|
||||
border-color: #f1f2f4;
|
||||
margin-left: -$gl-padding;
|
||||
margin-right: -$gl-padding;
|
||||
color: $gl-gray;
|
||||
|
||||
.avatar {
|
||||
margin-right: 15px;
|
||||
}
|
||||
|
||||
.controls {
|
||||
padding-top: 10px;
|
||||
float: right;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -65,8 +65,11 @@
|
|||
position: relative;
|
||||
}
|
||||
|
||||
.md-header ul {
|
||||
float: left;
|
||||
.md-header {
|
||||
ul {
|
||||
float: left;
|
||||
margin-bottom: 1px;
|
||||
}
|
||||
}
|
||||
|
||||
.referenced-users {
|
||||
|
@ -80,7 +83,7 @@
|
|||
.md-preview-holder {
|
||||
background: #FFF;
|
||||
border: 1px solid #ddd;
|
||||
min-height: 100px;
|
||||
min-height: 169px;
|
||||
padding: 5px;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
@ -105,7 +108,7 @@
|
|||
.markdown-area {
|
||||
background: #FFF;
|
||||
border: 1px solid #ddd;
|
||||
min-height: 100px;
|
||||
min-height: 140px;
|
||||
padding: 5px;
|
||||
box-shadow: none;
|
||||
width: 100%;
|
||||
|
|
|
@ -80,6 +80,23 @@
|
|||
%ul.notes .note-role, .note-actions {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.center-top-menu {
|
||||
height: 45px;
|
||||
|
||||
li a {
|
||||
font-size: 14px;
|
||||
padding: 19px 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.projects-search-form {
|
||||
margin: 0 -5px !important;
|
||||
|
||||
.btn {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: $screen-sm-max) {
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
.gl-pagination {
|
||||
border-top: 1px solid $border-color;
|
||||
background-color: $background-color;
|
||||
margin: -$gl-padding;
|
||||
margin-top: 0;
|
||||
|
||||
.pagination {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
display: block;
|
||||
|
||||
li.first,
|
||||
li.last,
|
||||
li.next,
|
||||
li.prev {
|
||||
> a {
|
||||
color: $link-color;
|
||||
|
||||
&:hover {
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
li > a,
|
||||
li > span {
|
||||
border: none;
|
||||
margin: 0;
|
||||
@include border-radius(0 !important);
|
||||
padding: 13px 19px;
|
||||
border-right: 1px solid $border-color;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -3,9 +3,9 @@
|
|||
.select2-choice {
|
||||
background: #FFF;
|
||||
border-color: #DDD;
|
||||
height: 34px;
|
||||
padding: 6px 14px;
|
||||
font-size: 14px;
|
||||
height: 42px;
|
||||
padding: 8px $gl-padding;
|
||||
font-size: $gl-font-size;
|
||||
line-height: 1.42857143;
|
||||
|
||||
@include border-radius(4px);
|
||||
|
@ -13,7 +13,7 @@
|
|||
.select2-arrow {
|
||||
background: #FFF;
|
||||
border-left: none;
|
||||
padding-top: 3px;
|
||||
padding-top: 5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -18,14 +18,27 @@
|
|||
}
|
||||
|
||||
.content-wrapper {
|
||||
min-height: 100vh;
|
||||
width: 100%;
|
||||
padding: 20px;
|
||||
background: #FFF;
|
||||
background: #EAEBEC;
|
||||
|
||||
.container-fluid {
|
||||
background: #FFF;
|
||||
padding: $gl-padding;
|
||||
min-height: 90vh;
|
||||
|
||||
&.container-blank {
|
||||
background: none;
|
||||
padding: 0;
|
||||
border: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.nav-sidebar {
|
||||
margin-top: 29 + $header-height;
|
||||
margin-bottom: 50px;
|
||||
margin-top: 14 + $header-height;
|
||||
margin-bottom: 100px;
|
||||
transition-duration: .3s;
|
||||
list-style: none;
|
||||
overflow: hidden;
|
||||
|
@ -43,13 +56,14 @@
|
|||
}
|
||||
|
||||
a {
|
||||
padding: 8px 15px;
|
||||
font-size: 13px;
|
||||
line-height: 18px;
|
||||
padding: 7px 15px;
|
||||
font-size: $gl-font-size;
|
||||
line-height: 24px;
|
||||
color: $gray;
|
||||
display: block;
|
||||
text-decoration: none;
|
||||
padding-left: 16px;
|
||||
padding-left: 22px;
|
||||
font-weight: normal;
|
||||
|
||||
&:hover {
|
||||
text-decoration: none;
|
||||
|
@ -60,9 +74,9 @@
|
|||
}
|
||||
|
||||
i {
|
||||
width: 20px;
|
||||
width: 16px;
|
||||
color: $gray-light;
|
||||
margin-right: 23px;
|
||||
margin-right: 13px;
|
||||
}
|
||||
|
||||
.count {
|
||||
|
@ -108,41 +122,59 @@
|
|||
}
|
||||
|
||||
@mixin folded-sidebar {
|
||||
padding-left: 50px;
|
||||
padding-left: 60px;
|
||||
transition-duration: .3s;
|
||||
|
||||
.sidebar-wrapper {
|
||||
width: $sidebar_collapsed_width;
|
||||
|
||||
.header-logo {
|
||||
width: $sidebar_collapsed_width;
|
||||
|
||||
a {
|
||||
padding-left: 12px;
|
||||
|
||||
.gitlab-text-container {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.nav-sidebar {
|
||||
width: $sidebar_collapsed_width;
|
||||
|
||||
li a {
|
||||
padding-left: 16px;
|
||||
span {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.collapse-nav a {
|
||||
left: 0px;
|
||||
width: $sidebar_collapsed_width;
|
||||
}
|
||||
|
||||
.sidebar-user {
|
||||
padding-left: 12px;
|
||||
width: $sidebar_collapsed_width;
|
||||
|
||||
.username {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.collapse-nav a {
|
||||
width: $sidebar_width;
|
||||
position: fixed;
|
||||
top: $header-height;
|
||||
left: 198px;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
font-size: 13px;
|
||||
background: transparent;
|
||||
width: 32px;
|
||||
height: 28px;
|
||||
height: 40px;
|
||||
text-align: center;
|
||||
line-height: 28px;
|
||||
line-height: 40px;
|
||||
transition-duration: .3s;
|
||||
}
|
||||
|
||||
|
@ -176,16 +208,18 @@
|
|||
}
|
||||
|
||||
.sidebar-user {
|
||||
padding: 9px 22px;
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
bottom: 40px;
|
||||
width: $sidebar_width;
|
||||
padding: 10px;
|
||||
overflow: hidden;
|
||||
transition-duration: .3s;
|
||||
|
||||
.username {
|
||||
margin-top: 5px;
|
||||
margin-left: 10px;
|
||||
width: $sidebar_width - 2 * 10px;
|
||||
font-size: 16px;
|
||||
line-height: 34px;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -202,7 +236,7 @@
|
|||
float: left;
|
||||
height: $header-height;
|
||||
width: 100%;
|
||||
padding: ($header-height - 36 ) / 2 8px;
|
||||
padding: 10px 22px;
|
||||
overflow: hidden;
|
||||
|
||||
img {
|
||||
|
@ -219,8 +253,8 @@
|
|||
float: left;
|
||||
margin: 0;
|
||||
margin-left: 14px;
|
||||
font-size: 18px;
|
||||
line-height: $header-height - 14;
|
||||
font-size: 19px;
|
||||
line-height: 41px;
|
||||
font-weight: normal;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,119 +1,50 @@
|
|||
.timeline {
|
||||
list-style: none;
|
||||
padding: 20px 0 20px;
|
||||
position: relative;
|
||||
@include basic-list;
|
||||
|
||||
&:before {
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
position: absolute;
|
||||
content: " ";
|
||||
width: 3px;
|
||||
background-color: #eeeeee;
|
||||
margin-left: 29px;
|
||||
}
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
|
||||
.timeline-entry {
|
||||
position: relative;
|
||||
margin-top: 5px;
|
||||
margin-left: 30px;
|
||||
margin-bottom: 10px;
|
||||
clear: both;
|
||||
padding: $gl-padding;
|
||||
border-color: #f1f2f4;
|
||||
margin-left: -$gl-padding;
|
||||
margin-right: -$gl-padding;
|
||||
color: $gl-gray;
|
||||
border-bottom: 1px solid #f1f2f4;
|
||||
border-right: 1px solid #f1f2f4;
|
||||
|
||||
|
||||
&:target {
|
||||
.timeline-entry-inner .timeline-content {
|
||||
-webkit-animation:target-note 2s linear;
|
||||
background: $hover;
|
||||
}
|
||||
&:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.timeline-entry-inner {
|
||||
position: relative;
|
||||
margin-left: -20px;
|
||||
.avatar {
|
||||
margin-right: 15px;
|
||||
}
|
||||
|
||||
&:before, &:after {
|
||||
content: " ";
|
||||
display: table;
|
||||
}
|
||||
|
||||
.timeline-icon {
|
||||
margin-top: 2px;
|
||||
background: #fff;
|
||||
color: #737881;
|
||||
float: left;
|
||||
@include border-radius($avatar_radius);
|
||||
@include box-shadow(0 0 0 3px #EEE);
|
||||
overflow: hidden;
|
||||
|
||||
.avatar {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.timeline-content {
|
||||
position: relative;
|
||||
background: $background-color;
|
||||
padding: 10px 15px;
|
||||
margin-left: 60px;
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
&:after {
|
||||
content: '';
|
||||
display: block;
|
||||
position: absolute;
|
||||
width: 0;
|
||||
height: 0;
|
||||
border-style: solid;
|
||||
border-width: 9px 9px 9px 0;
|
||||
border-color: transparent $background-color transparent transparent;
|
||||
left: 0;
|
||||
top: 10px;
|
||||
margin-left: -9px;
|
||||
}
|
||||
}
|
||||
.controls {
|
||||
padding-top: 10px;
|
||||
float: right;
|
||||
}
|
||||
}
|
||||
|
||||
.system-note .timeline-entry-inner {
|
||||
.timeline-icon {
|
||||
background: none;
|
||||
margin-left: 12px;
|
||||
margin-top: 0;
|
||||
@include box-shadow(none);
|
||||
|
||||
span {
|
||||
margin: 0 2px;
|
||||
font-size: 16px;
|
||||
color: #eeeeee;
|
||||
}
|
||||
.note-text {
|
||||
p:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.timeline-content {
|
||||
background: none;
|
||||
margin-left: 45px;
|
||||
padding: 0px 15px;
|
||||
|
||||
&:after { border: 0; }
|
||||
|
||||
.note-header {
|
||||
span { font-size: 12px; }
|
||||
|
||||
.avatar {
|
||||
margin-right: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
.note-text {
|
||||
font-size: 12px;
|
||||
margin-left: 20px;
|
||||
}
|
||||
.system-note {
|
||||
.note-text {
|
||||
color: $gl-gray !important;
|
||||
}
|
||||
}
|
||||
|
||||
.diff-file {
|
||||
border: 1px solid $border-color;
|
||||
border-bottom: none;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: $screen-xs-max) {
|
||||
|
@ -132,3 +63,8 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.discussion .timeline-entry {
|
||||
margin: 0;
|
||||
border-right: none;
|
||||
}
|
||||
|
|
|
@ -2,11 +2,29 @@
|
|||
* Headers
|
||||
*
|
||||
*/
|
||||
body {
|
||||
text-rendering:optimizeLegibility;
|
||||
-webkit-text-shadow: rgba(255,255,255,0.01) 0 0 1px;
|
||||
}
|
||||
|
||||
.page-title {
|
||||
margin-top: 0px;
|
||||
line-height: 1.5;
|
||||
font-weight: normal;
|
||||
margin-bottom: 5px;
|
||||
line-height: 1.3;
|
||||
font-size: 1.25em;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.page-title-empty {
|
||||
margin-top: 0px;
|
||||
line-height: 1.3;
|
||||
font-size: 1.25em;
|
||||
font-weight: 600;
|
||||
margin: 12px 7px 12px 7px;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
color: $gl-header-color;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
/** CODE **/
|
||||
|
@ -50,6 +68,7 @@ a > code {
|
|||
@include md-typography;
|
||||
|
||||
word-wrap: break-word;
|
||||
padding: 7px;
|
||||
|
||||
/* Link to current header. */
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
|
@ -78,10 +97,17 @@ a > code {
|
|||
}
|
||||
}
|
||||
|
||||
ul {
|
||||
ul,ol {
|
||||
padding: 0;
|
||||
margin: 0 0 9px 25px !important;
|
||||
margin: 6px 0 6px 18px !important;
|
||||
}
|
||||
ol {
|
||||
color: #5c5d5e;
|
||||
}
|
||||
}
|
||||
|
||||
.md-area {
|
||||
@include md-typography;
|
||||
}
|
||||
|
||||
.md {
|
||||
|
@ -96,6 +122,9 @@ textarea.js-gfm-input {
|
|||
font-family: $monospace_font;
|
||||
}
|
||||
|
||||
.md-preview {
|
||||
}
|
||||
|
||||
.strikethrough {
|
||||
text-decoration: line-through;
|
||||
}
|
||||
}
|
|
@ -4,7 +4,7 @@
|
|||
}
|
||||
|
||||
.zen-enter-link {
|
||||
color: #888;
|
||||
color: $gl-gray;
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
right: 4px;
|
||||
|
@ -13,7 +13,7 @@
|
|||
|
||||
.zen-leave-link {
|
||||
display: none;
|
||||
color: #888;
|
||||
color: $gl-text-color;
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
right: 10px;
|
||||
|
|
|
@ -1,19 +1,24 @@
|
|||
/* https://github.com/aahan/pygments-github-style */
|
||||
pre.code.highlight.white,
|
||||
.code.white {
|
||||
background-color: #f8fafc;
|
||||
font-size: 13px;
|
||||
color: #5b6169;
|
||||
line-height: 1.6em;
|
||||
|
||||
background-color: #fff;
|
||||
color: #333;
|
||||
|
||||
pre.highlight,
|
||||
.line-numbers,
|
||||
.line-numbers a {
|
||||
background-color: $background-color !important;
|
||||
color: $gl-gray !important;
|
||||
}
|
||||
|
||||
pre.highlight {
|
||||
background-color: #fff !important;
|
||||
color: #333 !important;
|
||||
}
|
||||
|
||||
pre.code {
|
||||
border-left: 1px solid #bbb;
|
||||
border-left: 1px solid $border-color;
|
||||
}
|
||||
|
||||
// highlight line via anchor
|
||||
|
|
|
@ -26,14 +26,6 @@
|
|||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.commit-stat-summary {
|
||||
color: #666;
|
||||
font-size: 14px;
|
||||
font-weight: normal;
|
||||
padding: 3px 0;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.commit-info-row {
|
||||
margin-bottom: 10px;
|
||||
.avatar {
|
||||
|
@ -47,11 +39,6 @@
|
|||
}
|
||||
|
||||
.commit-box {
|
||||
margin: 10px 0;
|
||||
border-top: 1px solid #ddd;
|
||||
border-bottom: 1px solid #ddd;
|
||||
padding: 20px 0;
|
||||
|
||||
.commit-title {
|
||||
margin: 0;
|
||||
}
|
||||
|
@ -61,35 +48,34 @@
|
|||
}
|
||||
}
|
||||
|
||||
.file-stats a {
|
||||
color: $style_color;
|
||||
}
|
||||
|
||||
.file-stats {
|
||||
ul {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 10px 0;
|
||||
|
||||
li {
|
||||
padding: 3px 0px;
|
||||
}
|
||||
}
|
||||
.new-file {
|
||||
a {
|
||||
color: #090;
|
||||
}
|
||||
i {
|
||||
color: #1BCF00;
|
||||
color: $gl-text-green;
|
||||
}
|
||||
}
|
||||
.renamed-file {
|
||||
i {
|
||||
color: #FE9300;
|
||||
a {
|
||||
color: $gl-text-orange;
|
||||
}
|
||||
}
|
||||
.deleted-file {
|
||||
a {
|
||||
color: #B00;
|
||||
}
|
||||
i {
|
||||
color: #EE0000;
|
||||
color: $gl-text-red;
|
||||
}
|
||||
}
|
||||
.edit-file{
|
||||
i{
|
||||
color: #555;
|
||||
a {
|
||||
color: $gl-text-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -121,3 +107,16 @@
|
|||
z-index: 2;
|
||||
}
|
||||
}
|
||||
|
||||
.commit-ci-menu {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
list-style: none;
|
||||
margin-top: 5px;
|
||||
height: 56px;
|
||||
margin: -16px;
|
||||
padding: 16px;
|
||||
text-align: center;
|
||||
margin-top: 0px;
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
|
|
@ -52,7 +52,7 @@ li.commit {
|
|||
}
|
||||
|
||||
.commit-row-message {
|
||||
color: #444;
|
||||
color: $gl-link-color;
|
||||
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
|
@ -88,12 +88,12 @@ li.commit {
|
|||
}
|
||||
|
||||
.commit-row-info {
|
||||
color: #777;
|
||||
color: $gl-gray;
|
||||
line-height: 24px;
|
||||
font-size: 13px;
|
||||
|
||||
a {
|
||||
color: #777;
|
||||
color: $gl-gray;
|
||||
}
|
||||
|
||||
.committed_ago {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
.side {
|
||||
.panel {
|
||||
.panel-heading {
|
||||
background: #EEE;
|
||||
background: $background-color;
|
||||
border-top-left-radius: 0;
|
||||
}
|
||||
border-top-left-radius: 0;
|
||||
|
@ -38,11 +38,11 @@
|
|||
float: left;
|
||||
|
||||
.avatar {
|
||||
@include border-radius(0px);
|
||||
@include border-radius(50%);
|
||||
}
|
||||
|
||||
.identicon {
|
||||
line-height: 40px;
|
||||
line-height: 46px;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
.diff-file {
|
||||
border: 1px solid $border-color;
|
||||
margin-bottom: 1em;
|
||||
margin-left: -$gl-padding;
|
||||
margin-right: -$gl-padding;
|
||||
border: none;
|
||||
border-bottom: 1px solid #E7E9EE;
|
||||
|
||||
.diff-header {
|
||||
position: relative;
|
||||
background: $background-color;
|
||||
border-bottom: 1px solid $border-color;
|
||||
padding: 10px 15px;
|
||||
padding: 10px 16px;
|
||||
color: #555;
|
||||
z-index: 10;
|
||||
|
||||
|
@ -45,7 +47,7 @@
|
|||
overflow-y: hidden;
|
||||
background: #FFF;
|
||||
color: #333;
|
||||
font-size: $code_font_size;
|
||||
|
||||
.old {
|
||||
span.idiff {
|
||||
background-color: #f8cbcb;
|
||||
|
@ -82,7 +84,7 @@
|
|||
border: none;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
td {
|
||||
.line_holder td {
|
||||
line-height: $code_line_height;
|
||||
font-size: $code_font_size;
|
||||
}
|
||||
|
@ -367,3 +369,7 @@
|
|||
white-space: pre-wrap;
|
||||
}
|
||||
|
||||
.inline-parallel-buttons {
|
||||
float: right;
|
||||
margin-top: -5px;
|
||||
}
|
||||
|
|
|
@ -9,6 +9,10 @@
|
|||
width: 100%;
|
||||
}
|
||||
|
||||
.ace_gutter-cell {
|
||||
background-color: $background-color;
|
||||
}
|
||||
|
||||
.cancel-btn {
|
||||
color: #B94A48;
|
||||
&:hover {
|
||||
|
@ -32,14 +36,12 @@
|
|||
|
||||
.file-title {
|
||||
@extend .monospace;
|
||||
font-size: 14px;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.editor-ref {
|
||||
background: $background-color;
|
||||
padding: 11px 15px;
|
||||
border-right: 1px solid #CCC;
|
||||
border-right: 1px solid $border-color;
|
||||
display: inline-block;
|
||||
margin: -5px -5px;
|
||||
margin-right: 10px;
|
||||
|
@ -50,5 +52,15 @@
|
|||
display: inline-block;
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
.form-control {
|
||||
margin-top: -3px;
|
||||
}
|
||||
}
|
||||
|
||||
.form-actions {
|
||||
margin: -$gl-padding;
|
||||
margin-top: 0;
|
||||
padding: $gl-padding
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,70 +1,58 @@
|
|||
/**
|
||||
* Events labels
|
||||
*
|
||||
*/
|
||||
.event_label {
|
||||
&.pushed {
|
||||
padding: 0 2px;
|
||||
}
|
||||
|
||||
&.opened {
|
||||
padding: 0 2px;
|
||||
}
|
||||
|
||||
&.closed {
|
||||
padding: 0 2px;
|
||||
}
|
||||
|
||||
&.merged {
|
||||
padding: 0 2px;
|
||||
}
|
||||
|
||||
&.left,
|
||||
&.joined {
|
||||
padding: 0 2px;
|
||||
float: none;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Dashboard events feed
|
||||
*
|
||||
*/
|
||||
.event-item {
|
||||
&:first-child {
|
||||
padding-top: 0;
|
||||
}
|
||||
font-size: $gl-font-size;
|
||||
padding: $gl-padding;
|
||||
margin-left: -$gl-padding;
|
||||
margin-right: -$gl-padding;
|
||||
border-bottom: 1px solid #f1f2f4;
|
||||
color: #7f8fa4;
|
||||
|
||||
&.event-inline {
|
||||
.avatar {
|
||||
position: relative;
|
||||
top: -2px;
|
||||
}
|
||||
|
||||
.event-title {
|
||||
line-height: 44px;
|
||||
}
|
||||
|
||||
.event-item-timestamp {
|
||||
line-height: 44px;
|
||||
}
|
||||
}
|
||||
|
||||
a {
|
||||
color: #4c4e54;
|
||||
}
|
||||
|
||||
.avatar {
|
||||
margin-right: 15px;
|
||||
}
|
||||
|
||||
padding: 12px 0px;
|
||||
border-bottom: 1px solid #eee;
|
||||
.event-title {
|
||||
max-width: 70%;
|
||||
@include str-truncated(calc(100% - 174px));
|
||||
font-weight: 500;
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
|
||||
.author_name {
|
||||
color: #333;
|
||||
}
|
||||
}
|
||||
|
||||
.event-body {
|
||||
font-size: 13px;
|
||||
margin-left: 35px;
|
||||
margin-left: 63px;
|
||||
margin-right: 80px;
|
||||
color: #777;
|
||||
|
||||
.event-note {
|
||||
margin-top: 5px;
|
||||
word-wrap: break-word;
|
||||
|
||||
.md {
|
||||
font-size: 13px;
|
||||
color: #7f8fa4;
|
||||
font-size: $gl-font-size;
|
||||
|
||||
iframe.twitter-share-button {
|
||||
vertical-align: bottom;
|
||||
|
@ -94,7 +82,7 @@
|
|||
.event-note-icon {
|
||||
color: #777;
|
||||
float: left;
|
||||
font-size: 16px;
|
||||
font-size: $gl-font-size;
|
||||
line-height: 16px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
@ -116,7 +104,7 @@
|
|||
&:last-child { border:none }
|
||||
|
||||
.event_commits {
|
||||
margin-top: 5px;
|
||||
margin-top: 9px;
|
||||
|
||||
li {
|
||||
&.commit {
|
||||
|
@ -125,10 +113,12 @@
|
|||
padding-left: 0;
|
||||
border: none;
|
||||
.commit-row-title {
|
||||
font-size: 12px;
|
||||
font-size: $gl-font-size;
|
||||
}
|
||||
}
|
||||
|
||||
&.commits-stat {
|
||||
margin-top: 3px;
|
||||
display: block;
|
||||
padding: 3px;
|
||||
padding-left: 0;
|
||||
|
@ -142,7 +132,6 @@
|
|||
|
||||
.event-item-timestamp {
|
||||
float: right;
|
||||
color: #999;
|
||||
line-height: 22px;
|
||||
}
|
||||
}
|
||||
|
@ -186,12 +175,3 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.event_filter {
|
||||
li a {
|
||||
font-size: 13px;
|
||||
padding: 5px 10px;
|
||||
background: $background-color;
|
||||
margin-left: 4px;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,3 +10,9 @@
|
|||
.milestone-row {
|
||||
@include str-truncated(90%);
|
||||
}
|
||||
|
||||
.dashboard .side .panel .panel-heading .input-group {
|
||||
.form-control {
|
||||
height: 42px;
|
||||
}
|
||||
}
|
|
@ -25,8 +25,6 @@
|
|||
}
|
||||
|
||||
.issuable-context-title {
|
||||
font-size: 14px;
|
||||
line-height: 1.4;
|
||||
margin-bottom: 5px;
|
||||
|
||||
.avatar {
|
||||
|
@ -34,14 +32,50 @@
|
|||
}
|
||||
|
||||
label {
|
||||
color: #666;
|
||||
color: $gl-gray;
|
||||
font-weight: normal;
|
||||
margin-right: 4px;
|
||||
}
|
||||
}
|
||||
|
||||
.issuable-affix .context {
|
||||
font-size: 13px;
|
||||
.project-issuable-filter {
|
||||
.controls {
|
||||
float: right;
|
||||
margin-top: 7px;
|
||||
}
|
||||
|
||||
.btn { font-size: 13px; }
|
||||
.center-top-menu {
|
||||
text-align: left;
|
||||
}
|
||||
}
|
||||
|
||||
.issuable-details {
|
||||
.page-title {
|
||||
margin-top: -15px;
|
||||
padding: 10px 0;
|
||||
margin-bottom: 0;
|
||||
color: $gl-gray;
|
||||
font-size: 16px;
|
||||
|
||||
.author {
|
||||
color: $gl-gray;
|
||||
}
|
||||
|
||||
.issue-id {
|
||||
font-size: 19px;
|
||||
color: $gl-text-color;
|
||||
}
|
||||
}
|
||||
|
||||
.issue-title {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.description {
|
||||
margin-top: 6px;
|
||||
|
||||
p:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
.issues-list {
|
||||
.issue {
|
||||
padding: 10px 15px;
|
||||
padding: 10px $gl-padding;
|
||||
position: relative;
|
||||
|
||||
.issue-title {
|
||||
|
@ -10,8 +10,7 @@
|
|||
}
|
||||
|
||||
.issue-info {
|
||||
color: #999;
|
||||
font-size: 13px;
|
||||
color: $gl-gray;
|
||||
}
|
||||
|
||||
.issue-check {
|
||||
|
@ -47,10 +46,6 @@
|
|||
}
|
||||
}
|
||||
|
||||
.participants {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.issue-search-form {
|
||||
margin: 0;
|
||||
height: 24px;
|
||||
|
@ -137,11 +132,6 @@ form.edit-issue {
|
|||
}
|
||||
}
|
||||
|
||||
h2.issue-title {
|
||||
margin-top: 0;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.issue-form .select2-container {
|
||||
width: 250px !important;
|
||||
}
|
||||
|
|
|
@ -3,10 +3,10 @@
|
|||
*
|
||||
*/
|
||||
.mr-state-widget {
|
||||
background: #FAFAFA;
|
||||
background: #f8fafc;
|
||||
margin-bottom: 20px;
|
||||
color: #666;
|
||||
border: 1px solid #e5e5e5;
|
||||
color: $gl-gray;
|
||||
border: 1px solid #eef0f2;
|
||||
@include box-shadow(0 1px 1px rgba(0, 0, 0, 0.05));
|
||||
@include border-radius(3px);
|
||||
|
||||
|
@ -29,6 +29,14 @@
|
|||
padding: 5px;
|
||||
line-height: 20px;
|
||||
|
||||
&.right {
|
||||
float: right;
|
||||
padding-top: 12px;
|
||||
a {
|
||||
color: $gl-gray;
|
||||
}
|
||||
}
|
||||
|
||||
.remove_source_checkbox {
|
||||
margin: 0;
|
||||
}
|
||||
|
@ -36,7 +44,7 @@
|
|||
}
|
||||
|
||||
.ci_widget {
|
||||
border-bottom: 1px solid #EEE;
|
||||
border-bottom: 1px solid #eef0f2;
|
||||
|
||||
i {
|
||||
margin-right: 4px;
|
||||
|
@ -89,20 +97,14 @@
|
|||
}
|
||||
}
|
||||
|
||||
@media(min-width: $screen-sm-max) {
|
||||
.merge-request .merge-request-tabs{
|
||||
li {
|
||||
a {
|
||||
padding: 15px 40px;
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.merge-request .merge-request-tabs{
|
||||
margin-top: 30px;
|
||||
margin-bottom: 20px;
|
||||
@include nav-menu;
|
||||
margin: -$gl-padding;
|
||||
padding: $gl-padding;
|
||||
text-align: center;
|
||||
border-top: 1px solid #e7e9ed;
|
||||
margin-top: 18px;
|
||||
margin-bottom: 3px;
|
||||
}
|
||||
|
||||
.mr_source_commit,
|
||||
|
@ -136,8 +138,7 @@
|
|||
}
|
||||
|
||||
.merge-request-info {
|
||||
color: #999;
|
||||
font-size: 13px;
|
||||
color: $gl-gray;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -6,4 +6,8 @@ li.milestone {
|
|||
h4 {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.progress {
|
||||
height: 6px;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -72,9 +72,13 @@
|
|||
|
||||
.common-note-form {
|
||||
margin: 0;
|
||||
background: #F9F9F9;
|
||||
padding: 5px;
|
||||
border: 1px solid #DDD;
|
||||
background: #f8fafc;
|
||||
padding: $gl-padding;
|
||||
margin-left: -$gl-padding;
|
||||
margin-right: -$gl-padding;
|
||||
border-right: 1px solid #f1f2f4;
|
||||
border-top: 1px solid #f1f2f4;
|
||||
margin-bottom: -$gl-padding;
|
||||
}
|
||||
|
||||
.note-form-actions {
|
||||
|
@ -105,7 +109,7 @@
|
|||
|
||||
.note-edit-form {
|
||||
display: none;
|
||||
font-size: 13px;
|
||||
font-size: 15px;
|
||||
|
||||
.form-actions {
|
||||
padding-left: 20px;
|
||||
|
@ -142,9 +146,9 @@
|
|||
}
|
||||
|
||||
.discussion-reply-holder {
|
||||
background: #f9f9f9;
|
||||
background: $background-color;
|
||||
padding: 10px 15px;
|
||||
border-top: 1px solid #DDD;
|
||||
border-top: 1px solid $border-color;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -166,6 +170,6 @@
|
|||
background: #FFF;
|
||||
padding: 5px;
|
||||
margin-top: -11px;
|
||||
border: 1px solid #DDD;
|
||||
border: 1px solid $border-color;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
|
|
@ -14,6 +14,19 @@ ul.notes {
|
|||
margin: 0px;
|
||||
padding: 0px;
|
||||
|
||||
.system-note {
|
||||
font-size: 14px;
|
||||
padding-top: 10px;
|
||||
padding-bottom: 10px;
|
||||
background: #f8fafc;
|
||||
|
||||
.timeline-icon {
|
||||
.avatar {
|
||||
visibility: hidden;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.discussion-header,
|
||||
.note-header {
|
||||
@extend .cgray;
|
||||
|
@ -34,10 +47,8 @@ ul.notes {
|
|||
content: "\00b7";
|
||||
}
|
||||
|
||||
font-size: 13px;
|
||||
|
||||
a {
|
||||
@extend .cgray;
|
||||
color: $gl-gray;
|
||||
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
|
@ -45,8 +56,9 @@ ul.notes {
|
|||
}
|
||||
}
|
||||
.author {
|
||||
color: #333;
|
||||
font-weight: bold;
|
||||
color: #4c4e54;
|
||||
margin-right: 3px;
|
||||
|
||||
&:hover {
|
||||
color: $gl-link-color;
|
||||
}
|
||||
|
@ -59,7 +71,7 @@ ul.notes {
|
|||
margin-top: 1px;
|
||||
border: 1px solid #bbb;
|
||||
background-color: transparent;
|
||||
color: #999;
|
||||
color: $gl-gray;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -133,8 +145,6 @@ ul.notes {
|
|||
}
|
||||
|
||||
.diff-file .notes_holder {
|
||||
font-size: 13px;
|
||||
line-height: 18px;
|
||||
font-family: $regular_font;
|
||||
|
||||
td {
|
||||
|
@ -176,8 +186,7 @@ ul.notes {
|
|||
|
||||
a {
|
||||
margin-left: 5px;
|
||||
|
||||
color: #999;
|
||||
color: $gl-gray;
|
||||
|
||||
i.fa {
|
||||
font-size: 16px;
|
||||
|
@ -226,8 +235,6 @@ ul.notes {
|
|||
filter: alpha(opacity=0);
|
||||
|
||||
&:hover {
|
||||
width: 38px;
|
||||
font-size: 20px;
|
||||
background: $gl-info;
|
||||
color: #FFF;
|
||||
@include show-add-diff-note;
|
||||
|
|
|
@ -1,3 +1,14 @@
|
|||
.alert_holder {
|
||||
margin: -16px;
|
||||
|
||||
.alert-link {
|
||||
font-weight: normal;
|
||||
}
|
||||
}
|
||||
.no-ssh-key-message {
|
||||
background-color: #f28d35;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
.new_project,
|
||||
.edit_project {
|
||||
fieldset.features {
|
||||
|
@ -16,9 +27,13 @@
|
|||
|
||||
.project-home-panel {
|
||||
text-align: center;
|
||||
background: #f7f8fa;
|
||||
margin: -$gl-padding;
|
||||
padding: $gl-padding;
|
||||
padding: 44px 0 17px 0;
|
||||
|
||||
.project-identicon-holder {
|
||||
margin-bottom: 15px;
|
||||
margin-bottom: 16px;
|
||||
|
||||
.avatar, .identicon {
|
||||
margin: 0 auto;
|
||||
|
@ -36,22 +51,27 @@
|
|||
|
||||
.project-home-desc {
|
||||
h1 {
|
||||
color: #313236;
|
||||
margin: 0;
|
||||
margin-bottom: 10px;
|
||||
font-size: 26px;
|
||||
font-weight: bold;
|
||||
margin-bottom: 6px;
|
||||
font-size: 23px;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
p {
|
||||
font-size: 18px;
|
||||
color: #666;
|
||||
display: inline;
|
||||
color: #5c5d5e;
|
||||
}
|
||||
}
|
||||
|
||||
.git-clone-holder {
|
||||
max-width: 600px;
|
||||
margin: 20px auto;
|
||||
max-width: 498px;
|
||||
|
||||
.form-control {
|
||||
background: #FFF;
|
||||
font-size: 14px;
|
||||
height: 42px;
|
||||
margin-left: -1px;
|
||||
}
|
||||
}
|
||||
|
||||
.visibility-level-label {
|
||||
|
@ -60,29 +80,37 @@
|
|||
color: inherit;
|
||||
}
|
||||
}
|
||||
.input-group {
|
||||
display: inline-table;
|
||||
position: relative;
|
||||
top: 17px;
|
||||
margin-bottom: 44px;
|
||||
}
|
||||
|
||||
.project-repo-buttons {
|
||||
margin-top: 25px;
|
||||
margin-bottom: 25px;
|
||||
margin-top: 12px;
|
||||
margin-bottom: 0px;
|
||||
|
||||
.btn {
|
||||
@extend .btn-info;
|
||||
|
||||
margin-left: 10px;
|
||||
font-weight: bold;
|
||||
font-size: 14px;
|
||||
line-height: 16px;
|
||||
padding: 8px 12px;
|
||||
@include bnt-project;
|
||||
@include btn-info;
|
||||
|
||||
.count {
|
||||
padding-left: 7px;
|
||||
display: inline-block;
|
||||
margin-left: 7px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.split-one {
|
||||
display: inline-table;
|
||||
margin-right: 12px;
|
||||
|
||||
a {
|
||||
margin: -1px !important;
|
||||
}
|
||||
}
|
||||
|
||||
.git-clone-holder {
|
||||
.project-home-dropdown + & {
|
||||
margin-right: 45px;
|
||||
|
@ -92,11 +120,11 @@
|
|||
cursor: auto;
|
||||
@extend .monospace;
|
||||
background: #FAFAFA;
|
||||
width: 100%;
|
||||
width: 101%;
|
||||
}
|
||||
|
||||
.input-group-addon {
|
||||
background: #FAFAFA;
|
||||
background: #f7f8fa;
|
||||
|
||||
&.git-protocols {
|
||||
padding: 0;
|
||||
|
@ -104,11 +132,120 @@
|
|||
|
||||
.input-group-btn:last-child > .btn {
|
||||
@include border-radius-right(0);
|
||||
|
||||
border-left: 1px solid #c6cacf;
|
||||
margin-left: -2px !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.projects-search-form {
|
||||
|
||||
.input-group .form-control {
|
||||
height: 42px;
|
||||
}
|
||||
}
|
||||
|
||||
.input-group-btn {
|
||||
.btn {
|
||||
@include bnt-project;
|
||||
@include btn-middle;
|
||||
|
||||
&:hover {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
&:focus {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
&:active {
|
||||
outline: none;
|
||||
}
|
||||
}
|
||||
|
||||
.active {
|
||||
@include box-shadow(inset 0 0 4px rgba(0, 0, 0, 0.12));
|
||||
|
||||
border: 1px solid #c6cacf !important;
|
||||
background-color: #e4e7ed !important;
|
||||
}
|
||||
|
||||
.btn-green {
|
||||
@include btn-green
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.split-repo-buttons {
|
||||
display: inline-table;
|
||||
margin: 0 12px 0 12px;
|
||||
|
||||
.btn{
|
||||
@include bnt-project;
|
||||
@include btn-info;
|
||||
}
|
||||
|
||||
.dropdown-toggle {
|
||||
margin: -5px;
|
||||
}
|
||||
}
|
||||
|
||||
#notification-form {
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.dropdown-new {
|
||||
margin-left: -5px;
|
||||
}
|
||||
|
||||
.open > .dropdown-new.btn {
|
||||
@include box-shadow(inset 0 0 4px rgba(0, 0, 0, 0.12));
|
||||
|
||||
border: 1px solid #c6cacf !important;
|
||||
background-color: #e4e7ed !important;
|
||||
text-transform: uppercase;
|
||||
color: #313236 !important;
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.dropdown-menu {
|
||||
@include box-shadow(rgba(76, 86, 103, 0.247059) 0px 0px 1px 0px, rgba(31, 37, 50, 0.317647) 0px 2px 18px 0px);
|
||||
@include border-radius (0px);
|
||||
|
||||
border: none;
|
||||
padding: 16px 0;
|
||||
font-size: 14px;
|
||||
font-weight: 100;
|
||||
|
||||
li a {
|
||||
color: #5f697a;
|
||||
line-height: 30px;
|
||||
|
||||
&:hover {
|
||||
background-color: #3084bb !important;
|
||||
}
|
||||
}
|
||||
|
||||
.fa-fw {
|
||||
margin-right: 8px;
|
||||
}
|
||||
}
|
||||
|
||||
.fa-bell {
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
.fa-angle-down {
|
||||
margin-left: 6px;
|
||||
}
|
||||
|
||||
.project-home-panel .project-home-dropdown {
|
||||
margin: 13px 0px 0;
|
||||
}
|
||||
|
||||
.project-visibility-level-holder {
|
||||
.radio {
|
||||
margin-bottom: 10px;
|
||||
|
@ -184,10 +321,10 @@ ul.nav.nav-projects-tabs {
|
|||
|
||||
.breadcrumb.repo-breadcrumb {
|
||||
padding: 0;
|
||||
line-height: 34px;
|
||||
background: white;
|
||||
line-height: 42px;
|
||||
background: transparent;
|
||||
border: none;
|
||||
font-size: 16px;
|
||||
margin: 0;
|
||||
|
||||
> li + li:before {
|
||||
padding: 0 3px;
|
||||
|
@ -196,26 +333,18 @@ ul.nav.nav-projects-tabs {
|
|||
}
|
||||
|
||||
.fork-namespaces {
|
||||
.thumbnail {
|
||||
.fork-thumbnail {
|
||||
text-align: center;
|
||||
margin-bottom: $gl-padding;
|
||||
|
||||
&.fork-exists-thumbnail {
|
||||
border-color: #EEE;
|
||||
|
||||
.caption {
|
||||
color: #999;
|
||||
}
|
||||
.caption {
|
||||
padding: $gl-padding 0;
|
||||
min-height: 30px;
|
||||
}
|
||||
|
||||
&.fork-thumbnail {
|
||||
border-color: #AAA;
|
||||
|
||||
&:hover {
|
||||
background-color: $hover;
|
||||
}
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
img {
|
||||
@include border-radius(50%);
|
||||
max-width: 100px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -233,17 +362,43 @@ table.table.protected-branches-list tr.no-border {
|
|||
|
||||
.project-stats {
|
||||
text-align: center;
|
||||
margin-top: 15px;
|
||||
margin-bottom: 0;
|
||||
padding-top: 10px;
|
||||
padding-bottom: 4px;
|
||||
|
||||
ul.nav-pills { display:inline-block; }
|
||||
li { display:inline; }
|
||||
a { float:left; }
|
||||
ul.nav-pills {
|
||||
display:inline-block;
|
||||
}
|
||||
|
||||
.nav-pills li {
|
||||
display:inline;
|
||||
}
|
||||
|
||||
.nav > li > a {
|
||||
@include btn-info;
|
||||
@include bnt-project;
|
||||
|
||||
background-color: transparent;
|
||||
border: 1px solid #f7f8fa;
|
||||
margin-left: 12px;
|
||||
}
|
||||
|
||||
li {
|
||||
display:inline;
|
||||
}
|
||||
|
||||
a {
|
||||
float:left;
|
||||
font-size: 17px;
|
||||
}
|
||||
|
||||
li.missing a {
|
||||
color: #bbb;
|
||||
border: 1px dashed #ccc;
|
||||
color: #5a6069;
|
||||
border: 1px dashed #dce0e5;
|
||||
|
||||
&:hover {
|
||||
background-color: #FAFAFA;
|
||||
background-color: #f0f2f5;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -253,41 +408,106 @@ pre.light-well {
|
|||
}
|
||||
|
||||
.projects-search-form {
|
||||
max-width: 600px;
|
||||
margin: 0 auto;
|
||||
margin-bottom: 20px;
|
||||
margin: -$gl-padding;
|
||||
background-color: #f8fafc;
|
||||
padding: $gl-padding;
|
||||
margin-bottom: 0px;
|
||||
border-top: 1px solid #e7e9ed;
|
||||
border-bottom: 1px solid #e7e9ed;
|
||||
}
|
||||
|
||||
input {
|
||||
border-color: #BBB;
|
||||
.git-empty {
|
||||
margin: 0 7px 0 7px;
|
||||
|
||||
h5 {
|
||||
color: #5c5d5e;
|
||||
}
|
||||
|
||||
.light-well {
|
||||
@include border-radius (2px);
|
||||
|
||||
color: #5b6169;
|
||||
font-size: 13px;
|
||||
line-height: 1.6em;
|
||||
}
|
||||
}
|
||||
|
||||
.project-footer {
|
||||
margin-top: 20px;
|
||||
|
||||
.btn-remove {
|
||||
@include btn-middle;
|
||||
@include btn-remove;
|
||||
|
||||
float: left !important;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Projects list rendered on dashboard and user page
|
||||
*/
|
||||
|
||||
.projects-list {
|
||||
@include basic-list;
|
||||
|
||||
.project-row {
|
||||
padding: $gl-padding;
|
||||
border-color: #f1f2f4;
|
||||
margin-left: -$gl-padding;
|
||||
margin-right: -$gl-padding;
|
||||
|
||||
&.no-description {
|
||||
.project {
|
||||
line-height: 44px;
|
||||
}
|
||||
}
|
||||
|
||||
.project-full-name {
|
||||
@include str-truncated;
|
||||
font-weight: bold;
|
||||
font-size: 15px;
|
||||
font-weight: 600;
|
||||
color: #4c4e54;
|
||||
}
|
||||
|
||||
.project-controls {
|
||||
float: right;
|
||||
color: $gl-gray;
|
||||
line-height: 45px;
|
||||
color: #7f8fa4;
|
||||
|
||||
a:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
|
||||
.project-description {
|
||||
color: #888;
|
||||
font-size: 13px;
|
||||
color: #7f8fa4;
|
||||
|
||||
p {
|
||||
@include str-truncated;
|
||||
margin-bottom: 0;
|
||||
color: #888;
|
||||
color: #7f8fa4;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.bottom {
|
||||
padding-top: $gl-padding;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.panel .projects-list li {
|
||||
padding: 10px 15px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.project-show-activity {
|
||||
.activity-filter-block {
|
||||
margin-top: -1px;
|
||||
}
|
||||
}
|
||||
|
||||
.inline-form {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
|
|
|
@ -63,51 +63,21 @@
|
|||
padding-right: 8px;
|
||||
|
||||
.commit-author-name {
|
||||
color: gray;
|
||||
color: $gl-gray;
|
||||
}
|
||||
}
|
||||
|
||||
.tree_commit {
|
||||
color: gray;
|
||||
color: $gl-gray;
|
||||
|
||||
.tree-commit-link {
|
||||
color: gray;
|
||||
color: $gl-gray;
|
||||
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.blame {
|
||||
img.avatar {
|
||||
border: 0 none;
|
||||
float: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
td.blame-commit {
|
||||
background: #f9f9f9;
|
||||
min-width: 350px;
|
||||
|
||||
.commit-author-link {
|
||||
color: #888;
|
||||
}
|
||||
}
|
||||
td.blame-numbers {
|
||||
pre {
|
||||
color: #AAA;
|
||||
white-space: pre;
|
||||
}
|
||||
background: #f1f1f1;
|
||||
border-left: 1px solid #DDD;
|
||||
}
|
||||
td.lines {
|
||||
code {
|
||||
font-family: $monospace_font;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.tree-ref-holder {
|
||||
|
@ -132,20 +102,30 @@
|
|||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
margin-bottom: 10px;
|
||||
margin-bottom: 5px;
|
||||
|
||||
.commit {
|
||||
padding: 10px 15px;
|
||||
padding: $gl-padding 0;
|
||||
|
||||
.commit-row-title {
|
||||
font-size: 13px;
|
||||
|
||||
.commit-row-message {
|
||||
font-weight: normal;
|
||||
color: #555;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#modal-remove-blob > .modal-dialog { width: 850px; }
|
||||
|
||||
.blob-upload-dropzone-previews {
|
||||
text-align: center;
|
||||
border: 2px;
|
||||
border-style: dashed;
|
||||
border-color: $border-color;
|
||||
min-height: 200px;
|
||||
}
|
||||
|
||||
.upload-link {
|
||||
font-weight: normal;
|
||||
color: $md-link-color;
|
||||
}
|
||||
|
|
|
@ -9,15 +9,19 @@
|
|||
@mixin gitlab-theme($color-light, $color, $color-darker, $color-dark) {
|
||||
.page-with-sidebar {
|
||||
.header-logo {
|
||||
background-color: $color-darker;
|
||||
border-color: $color-darker;
|
||||
background-color: $color;
|
||||
border-color: $color;
|
||||
|
||||
a {
|
||||
color: $color-light;
|
||||
|
||||
h3 {
|
||||
color: $color-light;
|
||||
}
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background-color: $color-dark;
|
||||
background-color: $color-darker;
|
||||
a {
|
||||
color: #FFF;
|
||||
}
|
||||
|
@ -83,7 +87,7 @@
|
|||
}
|
||||
|
||||
$theme-blue: #2980B9;
|
||||
$theme-charcoal: #474D57;
|
||||
$theme-charcoal: #333c47;
|
||||
$theme-graphite: #888888;
|
||||
$theme-gray: #373737;
|
||||
$theme-green: #019875;
|
||||
|
@ -95,7 +99,7 @@ body {
|
|||
}
|
||||
|
||||
&.ui_charcoal {
|
||||
@include gitlab-theme(#979DA7, $theme-charcoal, #373D47, #24272D);
|
||||
@include gitlab-theme(#c5d0de, $theme-charcoal, #2b333d, #24272D);
|
||||
}
|
||||
|
||||
&.ui_graphite {
|
||||
|
|
|
@ -46,6 +46,7 @@ class Admin::ApplicationSettingsController < Admin::ApplicationController
|
|||
:gravatar_enabled,
|
||||
:twitter_sharing_enabled,
|
||||
:sign_in_text,
|
||||
:help_page_text,
|
||||
:home_page_url,
|
||||
:after_sign_out_path,
|
||||
:max_attachment_size,
|
||||
|
|
|
@ -0,0 +1,58 @@
|
|||
class Admin::LabelsController < Admin::ApplicationController
|
||||
before_action :set_label, only: [:show, :edit, :update, :destroy]
|
||||
|
||||
def index
|
||||
@labels = Label.templates.page(params[:page]).per(PER_PAGE)
|
||||
end
|
||||
|
||||
def show
|
||||
end
|
||||
|
||||
def new
|
||||
@label = Label.new
|
||||
end
|
||||
|
||||
def edit
|
||||
end
|
||||
|
||||
def create
|
||||
@label = Label.new(label_params)
|
||||
@label.template = true
|
||||
|
||||
if @label.save
|
||||
redirect_to admin_labels_url, notice: "Label was created"
|
||||
else
|
||||
render :new
|
||||
end
|
||||
end
|
||||
|
||||
def update
|
||||
if @label.update(label_params)
|
||||
redirect_to admin_labels_path, notice: 'label was successfully updated.'
|
||||
else
|
||||
render :edit
|
||||
end
|
||||
end
|
||||
|
||||
def destroy
|
||||
@label.destroy
|
||||
@labels = Label.templates
|
||||
|
||||
respond_to do |format|
|
||||
format.html do
|
||||
redirect_to(admin_labels_path, notice: 'Label was removed')
|
||||
end
|
||||
format.js
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def set_label
|
||||
@label = Label.find(params[:id])
|
||||
end
|
||||
|
||||
def label_params
|
||||
params[:label].permit(:title, :color)
|
||||
end
|
||||
end
|
|
@ -56,13 +56,19 @@ class Admin::UsersController < Admin::ApplicationController
|
|||
end
|
||||
|
||||
def confirm
|
||||
if user.confirm!
|
||||
if user.confirm
|
||||
redirect_to :back, notice: "Successfully confirmed"
|
||||
else
|
||||
redirect_to :back, alert: "Error occurred. User was not confirmed"
|
||||
end
|
||||
end
|
||||
|
||||
def login_as
|
||||
sign_in(user)
|
||||
flash[:alert] = "Logged in as #{user.username}"
|
||||
redirect_to root_path
|
||||
end
|
||||
|
||||
def disable_two_factor
|
||||
user.disable_two_factor!
|
||||
redirect_to admin_user_path(user),
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
require 'gon'
|
||||
require 'fogbugz'
|
||||
|
||||
class ApplicationController < ActionController::Base
|
||||
include Gitlab::CurrentSettings
|
||||
|
@ -20,7 +21,7 @@ class ApplicationController < ActionController::Base
|
|||
protect_from_forgery with: :exception
|
||||
|
||||
helper_method :abilities, :can?, :current_application_settings
|
||||
helper_method :import_sources_enabled?, :github_import_enabled?, :github_import_configured?, :gitlab_import_enabled?, :gitlab_import_configured?, :bitbucket_import_enabled?, :bitbucket_import_configured?, :gitorious_import_enabled?, :google_code_import_enabled?, :git_import_enabled?
|
||||
helper_method :import_sources_enabled?, :github_import_enabled?, :github_import_configured?, :gitlab_import_enabled?, :gitlab_import_configured?, :bitbucket_import_enabled?, :bitbucket_import_configured?, :gitorious_import_enabled?, :google_code_import_enabled?, :fogbugz_import_enabled?, :git_import_enabled?
|
||||
|
||||
rescue_from Encoding::CompatibilityError do |exception|
|
||||
log_exception(exception)
|
||||
|
@ -116,9 +117,14 @@ class ApplicationController < ActionController::Base
|
|||
redirect_to request.original_url.gsub(/\.git\Z/, '') and return
|
||||
end
|
||||
|
||||
@project = Project.find_with_namespace("#{namespace}/#{id}")
|
||||
project_path = "#{namespace}/#{id}"
|
||||
@project = Project.find_with_namespace(project_path)
|
||||
|
||||
|
||||
if @project and can?(current_user, :read_project, @project)
|
||||
if @project.path_with_namespace != project_path
|
||||
redirect_to request.original_url.gsub(project_path, @project.path_with_namespace) and return
|
||||
end
|
||||
@project
|
||||
elsif current_user.nil?
|
||||
@project = nil
|
||||
|
@ -133,9 +139,6 @@ class ApplicationController < ActionController::Base
|
|||
|
||||
def repository
|
||||
@repository ||= project.repository
|
||||
rescue Grit::NoSuchPathError => e
|
||||
log_exception(e)
|
||||
nil
|
||||
end
|
||||
|
||||
def authorize_project!(action)
|
||||
|
@ -337,6 +340,10 @@ class ApplicationController < ActionController::Base
|
|||
current_application_settings.import_sources.include?('google_code')
|
||||
end
|
||||
|
||||
def fogbugz_import_enabled?
|
||||
current_application_settings.import_sources.include?('fogbugz')
|
||||
end
|
||||
|
||||
def git_import_enabled?
|
||||
current_application_settings.import_sources.include?('git')
|
||||
end
|
||||
|
|
|
@ -32,6 +32,7 @@ class AutocompleteController < ApplicationController
|
|||
@users ||= User.none
|
||||
@users = @users.search(params[:search]) if params[:search].present?
|
||||
@users = @users.active
|
||||
@users = @users.reorder(:name)
|
||||
@users = @users.page(params[:page]).per(PER_PAGE)
|
||||
|
||||
unless params[:search].present?
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
module Ci
|
||||
module Admin
|
||||
class ApplicationController < Ci::ApplicationController
|
||||
before_action :authenticate_user!
|
||||
before_action :authenticate_admin!
|
||||
|
||||
layout "ci/admin"
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,31 @@
|
|||
module Ci
|
||||
class Admin::ApplicationSettingsController < Ci::Admin::ApplicationController
|
||||
before_action :set_application_setting
|
||||
|
||||
def show
|
||||
end
|
||||
|
||||
def update
|
||||
if @application_setting.update_attributes(application_setting_params)
|
||||
redirect_to ci_admin_application_settings_path,
|
||||
notice: 'Application settings saved successfully'
|
||||
else
|
||||
render :show
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def set_application_setting
|
||||
@application_setting = Ci::ApplicationSetting.current
|
||||
@application_setting ||= Ci::ApplicationSetting.create_from_defaults
|
||||
end
|
||||
|
||||
def application_setting_params
|
||||
params.require(:application_setting).permit(
|
||||
:all_broken_builds,
|
||||
:add_pusher,
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,18 @@
|
|||
module Ci
|
||||
class Admin::BuildsController < Ci::Admin::ApplicationController
|
||||
def index
|
||||
@scope = params[:scope]
|
||||
@builds = Ci::Build.order('created_at DESC').page(params[:page]).per(30)
|
||||
|
||||
@builds =
|
||||
case @scope
|
||||
when "pending"
|
||||
@builds.pending
|
||||
when "running"
|
||||
@builds.running
|
||||
else
|
||||
@builds
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue