Upstream version 8.0.2
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABCAAGBQJWBOu1AAoJEM4fnGdFEsIqaoEP/1CxGMDXVvj1kdkWKCpj0jxx a0XE+KJ4DloOpoRP7D4V6/dtcfTmg6KFrzax56yTzz63j2WkjZ7kf2x+RlBzIX5v rhOqawv6qJlELhhBWRCO287oejJc5voBU8LMwX3mSu2rzC0yLromfdJF4M7JERC9 h+5KNmwiLHCIPITtIjDshhHdD0VearSuoLAvmcokxx12JdN0tiVB5lLHynZHKjp1 zm31Kq8XFNQqWwifTzS6PXlZZHYQxeni+pzSos7GVGFkJ81lOUGw+w4QjRfOF32I TF4eUmX/UAP8pQHhJaco3njREdUdydSNnGy97UVFkJSibsYdN7a3rYiZj2kQanly ok8X9v3IaEjzPdvSekO3rSibzTnkCCs4+FNj05UanVF6s/nZXfpP3sLmhxk5MLrW xMkdrdpQasKThjxudGqFZia0E5pYRShInk+oEmzbY4qHcAZPH/NGZZArRR3qxSNx wFct1RLpYd+YmqCV7ikKfAI9yb/LsKsK9seXb0Oui+gJOYTPoHJFXBXmvD77qxAI irmuGpr3UhthqPdr1ElD26xXZO0beB3/rPEZSLHTgFA0pMb7uDO+y21/GMPsKkJs KfnZZOOjybJTffL1SW7NwP0Bq6asWqKIIxaPfXkYxD7cJCGkAGN6qY/9/OJNlvUE gQZB+/kgE6oo2zNHQiv0 =C9Sz -----END PGP SIGNATURE----- Merge tag 'upstream/8.0.2' Upstream version 8.0.2 # gpg: Signature made Friday 25 September 2015 12:07:41 PM IST using RSA key ID 4512C22A # gpg: Good signature from "Praveen Arimbrathodiyil (piratepin) <praveen@debian.org>" # gpg: aka "Pirate Praveen (pirates.org.in) <praveen@onenetbeyond.org>" # gpg: aka "Pirate Praveen (piratesin) <me@j4v4m4n.in>" # gpg: aka "Pirate Praveen (PP) <praveen@privacyrequired.com>" # gpg: aka "Praveen Arimbrathodiyil (j4v4m4n) <pravi.a@gmail.com>"
This commit is contained in:
commit
29b99b479a
1061 changed files with 29449 additions and 5114 deletions
5
.gitignore
vendored
5
.gitignore
vendored
|
@ -20,11 +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
|
||||
|
@ -40,3 +42,4 @@ rails_best_practices_output.html
|
|||
/tags
|
||||
tmp/
|
||||
vendor/bundle/*
|
||||
builds/*
|
||||
|
|
|
@ -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'
|
||||
|
|
92
CHANGELOG
92
CHANGELOG
|
@ -1,13 +1,98 @@
|
|||
Please view this file on the master branch, on stable branches it's out of date.
|
||||
|
||||
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.
|
||||
|
||||
v 8.0.1
|
||||
- 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)
|
||||
- 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)
|
||||
- Faster merge
|
||||
- Ability to fetch merge requests from refs/merge-requests/:id
|
||||
- Allow displaying of archived projects in the admin interface (Artem Sidorenko)
|
||||
- Allow configuration of import sources for new projects (Artem Sidorenko)
|
||||
- Search for comments should be case insensetive
|
||||
- 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 (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 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
|
||||
- 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)
|
||||
- Fix "Reload with full diff" URL button in compare branch view (Stan Hu)
|
||||
- Improve abuse reports management from admin area
|
||||
- Ability to enable SSL verification for Webhooks
|
||||
|
||||
v 7.14.0
|
||||
- Fix bug where non-project members of the target project could set labels on new merge requests.
|
||||
|
@ -85,7 +170,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
|
||||
|
@ -293,6 +378,7 @@ v 7.11.0
|
|||
- Protect OmniAuth request phase against CSRF.
|
||||
- Don't send notifications to mentioned users that don't have access to the project in question.
|
||||
- Add search issues/MR by number
|
||||
- Change plots to bar graphs in commit statistics screen
|
||||
- Move snippets UI to fluid layout
|
||||
- Improve UI for sidebar. Increase separation between navigation and content
|
||||
- Improve new project command options (Ben Bodenmiller)
|
||||
|
|
298
CHANGELOG-CI
Normal file
298
CHANGELOG-CI
Normal file
|
@ -0,0 +1,298 @@
|
|||
v7.14.0 (unreleased)
|
||||
- Truncate commit messages after subject line in table
|
||||
- Adjust CI config to support Docker executors
|
||||
- Added Application Settings
|
||||
- Randomize test database for CI tests
|
||||
- Make YAML validation stricter
|
||||
- Use avatars received from GitLab
|
||||
- Refactor GitLab API usage to use either access_token or private_token depending on what was specified during login
|
||||
- Allow to use access_token for API requests
|
||||
- Fix project API listing returning empty list when first projects are not added to CI
|
||||
- Allow to define variables from YAML
|
||||
- Added support for CI skipped status
|
||||
- Fix broken yaml error saving
|
||||
- Add committed_at to commits to properly order last commit (the force push issue)
|
||||
- Rename type(s) to stage(s)
|
||||
- Fix navigation icons
|
||||
- Add missing stage when doing retry
|
||||
- Require variable keys to be not-empty and unique
|
||||
- Fix variable saving issue
|
||||
- Display variable saving errors in variables page not the project's
|
||||
- Added Build Triggers API
|
||||
|
||||
v7.13.1
|
||||
- Fix: user could steal specific runner
|
||||
- Fix: don't send notifications for jobs with allow_failure set
|
||||
- Fix invalid link to doc.gitlab.com
|
||||
|
||||
v7.13.0
|
||||
- Fix inline edit runner-description
|
||||
- Allow to specify image and services in yml that can be used with docker
|
||||
- Fix: No runner notification can see managers only
|
||||
- Fix service testing for slack
|
||||
- Ability to cancel all builds in commit at once
|
||||
- Disable colors in rake tasks automatically (if IO is not a TTY)
|
||||
- Implemented "rake env:info". Rake task to receive system information
|
||||
- Fix coverage calculation on commit page
|
||||
- Enhance YAML validation
|
||||
- Redirect back after authorization
|
||||
- Change favicon
|
||||
- Refactoring: Get rid of private_token usage in the frontend.
|
||||
- Allow to specify allow_failure for job
|
||||
- Build traces is stored in the file instead of database
|
||||
- Make the builds path configurable
|
||||
- Disable link to runner if it's not assigned to specific project
|
||||
- Store all secrets in config/secrets.yml
|
||||
- Encrypt variables
|
||||
- Allow to specify flexible list of types in yaml
|
||||
|
||||
v7.12.2
|
||||
- Revert: Runner without tag should pick builds without tag only
|
||||
|
||||
v7.12.1
|
||||
- Runner without tag should pick builds without tag only
|
||||
- Explicit error in the GitLab when commit not found.
|
||||
- Fix: lint with relative subpath
|
||||
- Update webhook example
|
||||
- Improved Lint stability
|
||||
- Add warning when .gitlab-ci.yml not found
|
||||
- Improved validation for .gitlab-ci.yml
|
||||
- Fix list of branches in only section
|
||||
- Fix "Status Badge" button
|
||||
|
||||
v7.12.0
|
||||
- Endless scroll on the dashboard
|
||||
- Add notification if there are no runners
|
||||
- Fix pagination on dashboard
|
||||
- Remove ID column from runners list in the admin area
|
||||
- Increase default timeout for builds to 60 minutes
|
||||
- Using .gitlab-ci.yml file instead of jobs
|
||||
- Link to the runner from the build page for admin user
|
||||
- Ability to set secret variables for runner
|
||||
- Dont retry build when push same commit in same ref twice
|
||||
- Admin area: show amount of runners with last contact less than a minute ago
|
||||
- Fix re-adding project with the same name but different gitlab_id
|
||||
- Implementation of Lint (.gitlab-ci.yml validation tool)
|
||||
- Updated rails to 4.1.11
|
||||
- API fix: project create call
|
||||
- Link to web-editor with .gitlab-ci.yml
|
||||
- Updated examples in the documentation
|
||||
|
||||
v7.11.0
|
||||
- Deploy Jobs API calls
|
||||
- Projects search on dashboard page
|
||||
- Improved runners page
|
||||
- Running and Pending tabs on admin builds page
|
||||
- Fix [ci skip] tag, so you can skip CI triggering now
|
||||
- Add HipChat notifications
|
||||
- Clean up project advanced settings.
|
||||
- Add a GitLab project path parameter to the project API
|
||||
- Remove projects IDs from dashboard
|
||||
- UI fix: Remove page headers from the admin area
|
||||
- Improve Email templates
|
||||
- Add backup/restore utility
|
||||
- Coordinator stores information(version, platform, revision, etc.) about runners.
|
||||
- Fixed pagination on dashboard
|
||||
- Public accessible build and commit pages of public projects
|
||||
- Fix vulnerability in the API when MySQL is used
|
||||
|
||||
v7.10.1
|
||||
- Fix failing migration when update to 7.10 from 7.8 and older versions
|
||||
|
||||
sidekiq_wirker_fix
|
||||
- added sidekiq.yml
|
||||
- integrated in script/background_jobs
|
||||
v7.10.0
|
||||
- Projects sorting by last commit date
|
||||
- Add project search at runner page
|
||||
- Fix GitLab and CI projects collision
|
||||
- Events for admin
|
||||
- Events per projects
|
||||
- Search for runners in admin area
|
||||
- UI improvements: created separated admin section, removed useless project show page
|
||||
- Runners sorting in admin area (by id)
|
||||
- Remove protected_attributes gem
|
||||
- Skip commit creation if there is no appropriate job
|
||||
|
||||
v7.9.3
|
||||
- Contains no changes
|
||||
- Developers can cancel and retry jobs
|
||||
|
||||
v7.9.2
|
||||
- [Security] Already existing projects should not be served by shared runners
|
||||
- Ability to run deploy job without test jobs (every push will trigger deploy job)
|
||||
|
||||
v7.9.1
|
||||
- [Security] Adding explicit is_shared parameter to runner
|
||||
- [Security] By default new projects are not served by shared runners
|
||||
|
||||
v7.9.0
|
||||
- Reset user session if token is invalid
|
||||
- Runner delete api endpoint
|
||||
- Fix bug about showing edit button on commit page if user does not have permissions
|
||||
- Allow to pass description and tag list during Runner's registration
|
||||
- Added api for project jobs
|
||||
- Implementation of deploy jobs after all parallel jobs(tests).
|
||||
- Add scroll up/down buttons for better mobile experience with large build traces
|
||||
- Add runner last contact (Kamil Trzciński)
|
||||
- Allow to pause runners - when paused runner will not receive any new build (Kamil Trzciński)
|
||||
- Add brakeman (security scanner for Ruby on Rails)
|
||||
- Changed a color of the canceled builds
|
||||
- Fix of show the same commits in different branches
|
||||
|
||||
v7.8.2
|
||||
- Fix the broken build failed email
|
||||
- Notify only pusher instead of commiter
|
||||
|
||||
v7.8.0
|
||||
- Fix OAuth login with GitLab installed in relative URL
|
||||
- GitLab CI has same version as GitLab since now
|
||||
- Allow to pass description and tag list during Runner's registration (Kamil Trzciński)
|
||||
- Update documentation (API, Install, Update)
|
||||
- Skip refs field supports for wildcard branch name (ex. feature/*)
|
||||
- Migrate E-mail notification to Services menu (Kamil Trzciński)
|
||||
- Added Slack notifications (Kamil Trzciński)
|
||||
- Disable turbolink on links pointing out to GitLab server
|
||||
- Add test coverage parsing example for pytest-cov
|
||||
- Upgrade raindrops gem
|
||||
|
||||
v5.4.2
|
||||
- Fix exposure of project token via build data
|
||||
|
||||
v5.4.1
|
||||
- Fix 500 if on builds page if build has no job
|
||||
- Truncate project token from build trace
|
||||
- Allow users with access to project see build trace
|
||||
|
||||
v5.4.0 (Requires GitLab 7.7)
|
||||
- Fixed 500 error for badge if build is pending
|
||||
- Non-admin users can now register specific runners for their projects
|
||||
- Project specific runners page which users can access
|
||||
- Remove progress output from schedule_builds cron job
|
||||
- Fix schedule_builds rake task
|
||||
- Fix test webhook button
|
||||
- Job can be branch specific or tag specific or both
|
||||
- Shared runners builds projects which are not assigned to specific ones
|
||||
- Job can be runner specific through tags
|
||||
- Runner have tags
|
||||
- Move job settings to separate page
|
||||
- Add authorization level managing projects
|
||||
- OAuth authentication via GitLab.
|
||||
|
||||
v5.3
|
||||
- Remove annoying 'Done' message from schedule_builds cron job
|
||||
- Fix a style issue with the navbar
|
||||
- Skip CSRF check on the project's build page
|
||||
- Fix showing wrong build script on admin projects page
|
||||
- Add branch and commit message to build result emails
|
||||
|
||||
v5.2
|
||||
- Improve performance by adding new indicies
|
||||
- Separate Commit logic from Build logic in prep for Parallel Builds
|
||||
- Parallel builds
|
||||
- You can have multiple build scripts per project
|
||||
|
||||
v5.1
|
||||
- Registration token and runner token are named differently
|
||||
- Redirect to previous page after sign-in
|
||||
- Dont show archived projects
|
||||
- Add support for skip branches from build
|
||||
- Add coverage parsing feature
|
||||
- Update rails to 4.0.10
|
||||
- Look for a REVISION file before running `git log`
|
||||
- All builds page for admin
|
||||
|
||||
v5.0.1
|
||||
- Update rails to 4.0.5
|
||||
|
||||
v5.0.0
|
||||
- Set build timeout in minutes
|
||||
- Web Hooks for builds
|
||||
- Nprogress bar
|
||||
- Remove extra spaces in build script
|
||||
- Requires runner v5
|
||||
* All script commands executed as one file
|
||||
* Cancel button works correctly now
|
||||
* Runner stability increased
|
||||
* Timeout applies to build now instead of line of script
|
||||
|
||||
v4.3.0
|
||||
- Refactor build js
|
||||
- Redirect to build page with sha + bid if build id is not provided
|
||||
- Update rails to 4.0.3
|
||||
- Restyle project settings page
|
||||
- Improve help page
|
||||
- Replaced puma with unicorn
|
||||
- Improved init.d script
|
||||
- Add submodule init to default build script for new projects
|
||||
|
||||
v4.2.0
|
||||
- Build duration chart
|
||||
- Bootstrap 3 with responsive UI
|
||||
- Improved init.d script
|
||||
- Refactoring
|
||||
- Changed http codes for POST /projects/:id/build action
|
||||
- Turbolinks
|
||||
|
||||
v4.1.0
|
||||
- Rails 4
|
||||
- Click on build branch to see other builds for this branch
|
||||
- Email notifications (Jeroen Knoops)
|
||||
|
||||
v4.0.0
|
||||
- Shared runners (no need to add runner to every project)
|
||||
- Admin area (only available for GitLab admins)
|
||||
- Hide all runners management into admin area
|
||||
- Use http cloning for builds instead of deploy keys
|
||||
- Allow choose between git clone and git fetch when get code for build
|
||||
- Make build timeout actually works
|
||||
- Requires GitLab 6.3 or higher
|
||||
- GitLab CI settings go to GitLab project via api on creation
|
||||
|
||||
v3.2.0
|
||||
- Limit visibility of projects by gitlab authorized projects
|
||||
- Use one page for both gitlab and gitlab-ci projects
|
||||
|
||||
v3.1.0
|
||||
- Login with both username, email or LDAP credentials (if GitLab 6.0+)
|
||||
- Retry build button functionality
|
||||
- UI fixes for resolution 1366px and lower
|
||||
- Fix gravatar ssl warning
|
||||
|
||||
v3.0.0
|
||||
- Build running functionality extracted in gitlab-ci-runner
|
||||
- Added API for runners and builds
|
||||
- Redesigned application
|
||||
- Added charts
|
||||
- Use GitLab auth
|
||||
- Add projects via UI with few clicks
|
||||
|
||||
v2.2.0
|
||||
- replaced unicorn with puma
|
||||
- replaced grit with rugged
|
||||
- Runner.rb more transactional safe now
|
||||
- updated rails to 3.2.13
|
||||
- updated devise to 2.2
|
||||
- fixed issue when build left in running status if exception triggered
|
||||
- rescue build timeout correctly
|
||||
- badge helper with markdown & html
|
||||
- increased test coverage to 85%
|
||||
|
||||
v2.1.0
|
||||
- Removed horizontal scroll for build trace
|
||||
- new status badges
|
||||
- better encode
|
||||
- added several CI_* env variables
|
||||
|
||||
v2.0.0
|
||||
- Replace resque with sidekiq
|
||||
- Run only one build at time per project
|
||||
- Added whenever for schedule jobs
|
||||
|
||||
v1.2.0
|
||||
- Added Github web hook support
|
||||
- Added build schedule
|
||||
|
||||
v1.1.0
|
||||
- Added JSON response for builds status
|
||||
- Compatible with GitLab v4.0.0
|
212
Gemfile
212
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,45 +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", '~> 0.8.0'
|
||||
gem "browser", '~> 1.0.0'
|
||||
|
||||
# Extracting information from a git repository
|
||||
# Provide access to Gitlab::Git library
|
||||
gem "gitlab_git", '~> 7.2.15'
|
||||
|
||||
# Ruby/Rack Git Smart-HTTP Server Handler
|
||||
# GitLab fork with a lot of changes (improved thread-safety, better memory usage etc)
|
||||
# For full list of changes see https://github.com/SaitoWu/grack/compare/master...gitlabhq:master
|
||||
gem 'gitlab-grack', '~> 2.0.2', require: 'grack'
|
||||
|
||||
# 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'
|
||||
|
@ -63,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"
|
||||
|
||||
# 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
|
||||
|
@ -111,37 +115,38 @@ 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'
|
||||
|
||||
# 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'
|
||||
|
@ -161,6 +166,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'
|
||||
|
||||
|
@ -177,69 +185,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'
|
||||
|
@ -249,26 +258,57 @@ 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
|
||||
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.5.2"
|
||||
|
||||
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
|
||||
|
|
556
Gemfile.lock
556
Gemfile.lock
File diff suppressed because it is too large
Load diff
3
Procfile
3
Procfile
|
@ -1,2 +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 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
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
[![build status](https://ci.gitlab.com/projects/1/status.png?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
|
||||
|
||||
|
|
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
|||
7.14.3
|
||||
8.0.2
|
92
app/assets/fonts/OFL.txt
Executable file
92
app/assets/fonts/OFL.txt
Executable file
|
@ -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.
|
BIN
app/assets/fonts/SourceSansPro-Black.ttf
Executable file
BIN
app/assets/fonts/SourceSansPro-Black.ttf
Executable file
Binary file not shown.
BIN
app/assets/fonts/SourceSansPro-BlackItalic.ttf
Executable file
BIN
app/assets/fonts/SourceSansPro-BlackItalic.ttf
Executable file
Binary file not shown.
BIN
app/assets/fonts/SourceSansPro-Bold.ttf
Executable file
BIN
app/assets/fonts/SourceSansPro-Bold.ttf
Executable file
Binary file not shown.
BIN
app/assets/fonts/SourceSansPro-BoldItalic.ttf
Executable file
BIN
app/assets/fonts/SourceSansPro-BoldItalic.ttf
Executable file
Binary file not shown.
BIN
app/assets/fonts/SourceSansPro-ExtraLight.ttf
Executable file
BIN
app/assets/fonts/SourceSansPro-ExtraLight.ttf
Executable file
Binary file not shown.
BIN
app/assets/fonts/SourceSansPro-ExtraLightItalic.ttf
Executable file
BIN
app/assets/fonts/SourceSansPro-ExtraLightItalic.ttf
Executable file
Binary file not shown.
BIN
app/assets/fonts/SourceSansPro-Italic.ttf
Executable file
BIN
app/assets/fonts/SourceSansPro-Italic.ttf
Executable file
Binary file not shown.
BIN
app/assets/fonts/SourceSansPro-Light.ttf
Executable file
BIN
app/assets/fonts/SourceSansPro-Light.ttf
Executable file
Binary file not shown.
BIN
app/assets/fonts/SourceSansPro-LightItalic.ttf
Executable file
BIN
app/assets/fonts/SourceSansPro-LightItalic.ttf
Executable file
Binary file not shown.
BIN
app/assets/fonts/SourceSansPro-Regular.ttf
Executable file
BIN
app/assets/fonts/SourceSansPro-Regular.ttf
Executable file
Binary file not shown.
BIN
app/assets/fonts/SourceSansPro-Semibold.ttf
Executable file
BIN
app/assets/fonts/SourceSansPro-Semibold.ttf
Executable file
Binary file not shown.
BIN
app/assets/fonts/SourceSansPro-SemiboldItalic.ttf
Executable file
BIN
app/assets/fonts/SourceSansPro-SemiboldItalic.ttf
Executable file
Binary file not shown.
BIN
app/assets/images/ci/arch.jpg
Normal file
BIN
app/assets/images/ci/arch.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 25 KiB |
BIN
app/assets/images/ci/favicon.ico
Normal file
BIN
app/assets/images/ci/favicon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.3 KiB |
BIN
app/assets/images/ci/loader.gif
Normal file
BIN
app/assets/images/ci/loader.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.3 KiB |
BIN
app/assets/images/ci/no_avatar.png
Normal file
BIN
app/assets/images/ci/no_avatar.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.3 KiB |
BIN
app/assets/images/ci/rails.png
Normal file
BIN
app/assets/images/ci/rails.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.5 KiB |
BIN
app/assets/images/ci/service_sample.png
Normal file
BIN
app/assets/images/ci/service_sample.png
Normal file
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
|
||||
|
|
|
@ -94,16 +94,18 @@ window.unbindEvents = ->
|
|||
$(document).off('scroll')
|
||||
|
||||
window.shiftWindow = ->
|
||||
scrollBy 0, -50
|
||||
scrollBy 0, -100
|
||||
|
||||
document.addEventListener("page:fetch", unbindEvents)
|
||||
|
||||
# Scroll the window to avoid the topnav bar
|
||||
# https://github.com/twitter/bootstrap/issues/1768
|
||||
if location.hash
|
||||
setTimeout shiftWindow, 1
|
||||
window.addEventListener "hashchange", shiftWindow
|
||||
|
||||
window.onload = ->
|
||||
# Scroll the window to avoid the topnav bar
|
||||
# https://github.com/twitter/bootstrap/issues/1768
|
||||
if location.hash
|
||||
setTimeout shiftWindow, 100
|
||||
|
||||
$ ->
|
||||
$(".nicescroll").niceScroll(cursoropacitymax: '0.4', cursorcolor: '#FFF', cursorborder: "1px solid #FFF")
|
||||
|
||||
|
|
67
app/assets/javascripts/blob/blob_file_dropzone.js.coffee
Normal file
67
app/assets/javascripts/blob/blob_file_dropzone.js.coffee
Normal file
|
@ -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
|
39
app/assets/javascripts/ci/Chart.min.js
vendored
Normal file
39
app/assets/javascripts/ci/Chart.min.js
vendored
Normal file
|
@ -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={}};
|
40
app/assets/javascripts/ci/application.js.coffee
Normal file
40
app/assets/javascripts/ci/application.js.coffee
Normal file
|
@ -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)
|
41
app/assets/javascripts/ci/build.coffee
Normal file
41
app/assets/javascripts/ci/build.coffee
Normal file
|
@ -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
|
42
app/assets/javascripts/ci/pager.js.coffee
Normal file
42
app/assets/javascripts/ci/pager.js.coffee
Normal file
|
@ -0,0 +1,42 @@
|
|||
@CiPager =
|
||||
init: (@url, @limit = 0, preload, @disable = false) ->
|
||||
if preload
|
||||
@offset = 0
|
||||
@getItems()
|
||||
else
|
||||
@offset = @limit
|
||||
@initLoadMore()
|
||||
|
||||
getItems: ->
|
||||
$(".loading").show()
|
||||
$.ajax
|
||||
type: "GET"
|
||||
url: @url
|
||||
data: "limit=" + @limit + "&offset=" + @offset
|
||||
complete: =>
|
||||
$(".loading").hide()
|
||||
success: (data) =>
|
||||
CiPager.append(data.count, data.html)
|
||||
dataType: "json"
|
||||
|
||||
append: (count, html) ->
|
||||
if count > 1
|
||||
$(".content-list").append html
|
||||
if count == @limit
|
||||
@offset += count
|
||||
else
|
||||
@disable = true
|
||||
|
||||
initLoadMore: ->
|
||||
$(document).unbind('scroll')
|
||||
$(document).endlessScroll
|
||||
bottomPixels: 400
|
||||
fireDelay: 1000
|
||||
fireOnce: true
|
||||
ceaseFire: ->
|
||||
CiPager.disable
|
||||
|
||||
callback: (i) =>
|
||||
unless $(".loading").is(':visible')
|
||||
$(".loading").show()
|
||||
CiPager.getItems()
|
6
app/assets/javascripts/ci/projects.js.coffee
Normal file
6
app/assets/javascripts/ci/projects.js.coffee
Normal file
|
@ -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')
|
|
@ -119,8 +119,9 @@ class @ImageFile
|
|||
|
||||
requestImageInfo: (img, callback) ->
|
||||
domImg = img.get(0)
|
||||
if domImg.complete
|
||||
callback.call(this, domImg.naturalWidth, domImg.naturalHeight)
|
||||
else
|
||||
img.on 'load', =>
|
||||
if domImg
|
||||
if domImg.complete
|
||||
callback.call(this, domImg.naturalWidth, domImg.naturalHeight)
|
||||
else
|
||||
img.on 'load', =>
|
||||
callback.call(this, domImg.naturalWidth, domImg.naturalHeight)
|
||||
|
|
|
@ -51,10 +51,10 @@ class Dispatcher
|
|||
MergeRequests.init()
|
||||
when 'dashboard:show', 'root:show'
|
||||
new Dashboard()
|
||||
when 'dashboard:activity'
|
||||
new Activities()
|
||||
when 'dashboard:projects:starred'
|
||||
new Activities()
|
||||
new ProjectsList()
|
||||
when 'projects:commit:show'
|
||||
new Commit()
|
||||
new Diff()
|
||||
|
@ -69,7 +69,6 @@ class Dispatcher
|
|||
when 'groups:show'
|
||||
new Activities()
|
||||
shortcut_handler = new ShortcutsNavigation()
|
||||
new ProjectsList()
|
||||
when 'groups:group_members:index'
|
||||
new GroupMembers()
|
||||
new UsersSelect()
|
||||
|
@ -95,8 +94,6 @@ class Dispatcher
|
|||
when 'users:show'
|
||||
new User()
|
||||
new Activities()
|
||||
when 'admin:users:show'
|
||||
new ProjectsList()
|
||||
|
||||
switch path.first()
|
||||
when 'admin'
|
||||
|
|
|
@ -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('')
|
||||
|
|
|
@ -19,7 +19,7 @@ class @MergeRequestWidget
|
|||
when 'merged'
|
||||
location.reload()
|
||||
else
|
||||
setTimeout(merge_request_widget.mergeInProgress, 3000)
|
||||
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()
|
||||
|
||||
###
|
||||
|
|
|
@ -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'
|
|
@ -8,7 +8,7 @@ class @ProjectsList
|
|||
|
||||
$(".projects-list-filter").keyup ->
|
||||
terms = $(this).val()
|
||||
uiBox = $(this).closest('.panel')
|
||||
uiBox = $(this).closest('.projects-list-holder')
|
||||
if terms == "" || terms == undefined
|
||||
uiBox.find(".projects-list li").show()
|
||||
else
|
||||
|
|
20
app/assets/javascripts/syntax_highlight.coffee
Normal file
20
app/assets/javascripts/syntax_highlight.coffee
Normal file
|
@ -0,0 +1,20 @@
|
|||
# Syntax Highlighter
|
||||
#
|
||||
# Applies a syntax highlighting color scheme CSS class to any element with the
|
||||
# `js-syntax-highlight` class
|
||||
#
|
||||
# ### Example Markup
|
||||
#
|
||||
# <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').syntaxHighlight()
|
|
@ -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/**/*";
|
||||
|
||||
|
|
25
app/assets/stylesheets/base/fonts.scss
Normal file
25
app/assets/stylesheets/base/fonts.scss
Normal file
|
@ -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;
|
||||
|
|
|
@ -20,3 +20,7 @@ html {
|
|||
.navless-container {
|
||||
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%;
|
||||
|
@ -157,3 +160,94 @@
|
|||
white-space: nowrap;
|
||||
max-width: $max_width;
|
||||
}
|
||||
|
||||
/*
|
||||
* Base mixin for lists in GitLab
|
||||
*/
|
||||
@mixin basic-list {
|
||||
margin: 5px 0px;
|
||||
padding: 0px;
|
||||
list-style: none;
|
||||
|
||||
> li {
|
||||
padding: 10px 0;
|
||||
border-bottom: 1px solid #EEE;
|
||||
overflow: hidden;
|
||||
display: block;
|
||||
margin: 0px;
|
||||
|
||||
&:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
&.active {
|
||||
background: #f9f9f9;
|
||||
a {
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
|
||||
&.hide {
|
||||
display: none;
|
||||
}
|
||||
|
||||
&.light {
|
||||
a {
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,27 +1,32 @@
|
|||
$style_color: #474D57;
|
||||
$hover: #FFFAF1;
|
||||
$gl-text-color: #222222;
|
||||
$gl-link-color: #446e9b;
|
||||
$gl-text-color: #54565b;
|
||||
$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;
|
||||
$readable-width: 1100px;
|
||||
$border-color: #E7E9ED;
|
||||
$background-color: #F8FAFC;
|
||||
$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 +40,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;
|
||||
|
|
70
app/assets/stylesheets/ci/builds.scss
Normal file
70
app/assets/stylesheets/ci/builds.scss
Normal file
|
@ -0,0 +1,70 @@
|
|||
.ci-body {
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
10
app/assets/stylesheets/ci/lint.scss
Normal file
10
app/assets/stylesheets/ci/lint.scss
Normal file
|
@ -0,0 +1,10 @@
|
|||
.ci-body {
|
||||
.incorrect-syntax{
|
||||
font-size: 19px;
|
||||
color: red;
|
||||
}
|
||||
.correct-syntax{
|
||||
font-size: 19px;
|
||||
color: #47a447;
|
||||
}
|
||||
}
|
93
app/assets/stylesheets/ci/projects.scss
Normal file
93
app/assets/stylesheets/ci/projects.scss
Normal file
|
@ -0,0 +1,93 @@
|
|||
.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;
|
||||
}
|
||||
}
|
||||
|
||||
.ci-status {
|
||||
padding: 2px 7px;
|
||||
margin-right: 5px;
|
||||
border: 1px solid #EEE;
|
||||
white-space: nowrap;
|
||||
@include border-radius(4px);
|
||||
|
||||
&.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;
|
||||
}
|
||||
}
|
||||
}
|
36
app/assets/stylesheets/ci/runners.scss
Normal file
36
app/assets/stylesheets/ci/runners.scss
Normal file
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
906
app/assets/stylesheets/ci/xterm.scss
Normal file
906
app/assets/stylesheets/ci/xterm.scss
Normal file
|
@ -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,12 @@
|
|||
&.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; }
|
||||
&.s140 { width: 140px; height: 140px; margin-right: 20px; }
|
||||
&.s160 { width: 160px; height: 160px; margin-right: 20px; }
|
||||
}
|
||||
|
||||
|
@ -38,5 +42,6 @@
|
|||
&.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; }
|
||||
&.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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
}
|
||||
|
||||
&.btn-save {
|
||||
@extend .btn-primary;
|
||||
@extend .btn-success;
|
||||
}
|
||||
|
||||
&.btn-remove {
|
||||
|
@ -72,3 +72,19 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
45
app/assets/stylesheets/generic/callout.scss
Normal file
45
app/assets/stylesheets/generic/callout.scss
Normal file
|
@ -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,5 +1,5 @@
|
|||
/** COLORS **/
|
||||
.cgray { color: gray }
|
||||
.cgray { color: $gl-gray; }
|
||||
.clgray { color: #BBB }
|
||||
.cred { color: #D12F19 }
|
||||
.cgreen { color: #4a2 }
|
||||
|
@ -7,6 +7,7 @@
|
|||
|
||||
/** 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;
|
||||
}
|
||||
|
@ -132,10 +131,6 @@ p.time {
|
|||
text-shadow: none;
|
||||
}
|
||||
|
||||
.highlight_word {
|
||||
background: #fafe3d;
|
||||
}
|
||||
|
||||
.thin_area{
|
||||
height: 150px;
|
||||
}
|
||||
|
@ -307,7 +302,7 @@ table {
|
|||
}
|
||||
|
||||
.btn-sign-in {
|
||||
margin-top: 7px;
|
||||
margin-top: 8px;
|
||||
text-shadow: none;
|
||||
}
|
||||
|
||||
|
@ -359,17 +354,39 @@ 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 {
|
||||
border-color: #EEE !important;
|
||||
}
|
||||
}
|
||||
|
||||
.center-top-menu {
|
||||
@include nav-menu;
|
||||
text-align: center;
|
||||
margin-top: 5px;
|
||||
margin-bottom: $gl-padding;
|
||||
height: 56px;
|
||||
margin-top: -$gl-padding;
|
||||
padding-top: $gl-padding;
|
||||
|
||||
&.no-bottom {
|
||||
margin-bottom: 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 {
|
||||
|
|
|
@ -20,33 +20,32 @@ header {
|
|||
}
|
||||
|
||||
&.navbar-gitlab {
|
||||
padding: 0 20px;
|
||||
z-index: 100;
|
||||
margin-bottom: 0;
|
||||
min-height: $header-height;
|
||||
background-color: #fff;
|
||||
border: none;
|
||||
width: 100%;
|
||||
border-bottom: 1px solid #EEE;
|
||||
|
||||
.container {
|
||||
background: #FFF;
|
||||
.container-fluid {
|
||||
width: 100% !important;
|
||||
padding: 0;
|
||||
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 +55,7 @@ header {
|
|||
border-radius: 0;
|
||||
position: absolute;
|
||||
right: 2px;
|
||||
top: 15px;
|
||||
|
||||
&:hover {
|
||||
background-color: #EEE;
|
||||
|
@ -64,66 +64,22 @@ header {
|
|||
}
|
||||
}
|
||||
|
||||
.header-logo {
|
||||
border-bottom: 1px solid transparent;
|
||||
float: left;
|
||||
height: $header-height;
|
||||
width: $sidebar_width;
|
||||
overflow: hidden;
|
||||
transition-duration: .3s;
|
||||
|
||||
a {
|
||||
float: left;
|
||||
height: $header-height;
|
||||
width: 100%;
|
||||
padding: ($header-height - 36 ) / 2 8px;
|
||||
overflow: hidden;
|
||||
|
||||
img {
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.gitlab-text-container {
|
||||
width: 230px;
|
||||
|
||||
h3 {
|
||||
width: 158px;
|
||||
float: left;
|
||||
margin: 0;
|
||||
margin-left: 14px;
|
||||
font-size: 18px;
|
||||
line-height: $header-height - 14;
|
||||
font-weight: normal;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background-color: #EEE;
|
||||
}
|
||||
}
|
||||
|
||||
.header-content {
|
||||
border-bottom: 1px solid #EEE;
|
||||
padding-right: 35px;
|
||||
height: $header-height;
|
||||
|
||||
.title {
|
||||
margin: 0;
|
||||
padding: 0 15px 0 35px;
|
||||
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;
|
||||
}
|
||||
|
@ -138,7 +94,7 @@ header {
|
|||
.search {
|
||||
margin-right: 10px;
|
||||
margin-left: 10px;
|
||||
margin-top: ($header-height - 28) / 2;
|
||||
margin-top: ($header-height - 36) / 2;
|
||||
|
||||
form {
|
||||
margin: 0;
|
||||
|
@ -149,13 +105,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);
|
||||
|
@ -168,15 +119,7 @@ header {
|
|||
}
|
||||
|
||||
@mixin collapsed-header {
|
||||
.header-logo {
|
||||
width: $sidebar_collapsed_width;
|
||||
}
|
||||
|
||||
.header-content {
|
||||
.title {
|
||||
margin-left: 30px;
|
||||
}
|
||||
}
|
||||
margin-left: $sidebar_collapsed_width;
|
||||
}
|
||||
|
||||
@media (max-width: $screen-md-max) {
|
||||
|
@ -191,16 +134,14 @@ header {
|
|||
}
|
||||
|
||||
.header-expanded {
|
||||
margin-left: $sidebar_width;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: $screen-xs-max) {
|
||||
header .container {
|
||||
header .container-fluid {
|
||||
font-size: 18px;
|
||||
|
||||
.title {
|
||||
}
|
||||
|
||||
.navbar-nav {
|
||||
margin: 0px;
|
||||
float: none !important;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -93,28 +82,12 @@ ol, ul {
|
|||
|
||||
/** light list with border-bottom between li **/
|
||||
ul.bordered-list {
|
||||
margin: 5px 0px;
|
||||
padding: 0px;
|
||||
li {
|
||||
padding: 5px 0;
|
||||
border-bottom: 1px solid #EEE;
|
||||
overflow: hidden;
|
||||
display: block;
|
||||
margin: 0px;
|
||||
&:last-child { border:none }
|
||||
&.active {
|
||||
background: #f9f9f9;
|
||||
a { font-weight: bold; }
|
||||
}
|
||||
|
||||
&.light {
|
||||
a { color: #777; }
|
||||
}
|
||||
}
|
||||
@include basic-list;
|
||||
|
||||
&.top-list {
|
||||
li:first-child {
|
||||
padding-top: 0;
|
||||
|
||||
h4, h5 {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
@ -125,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) {
|
||||
|
|
32
app/assets/stylesheets/generic/pagination.scss
Normal file
32
app/assets/stylesheets/generic/pagination.scss
Normal file
|
@ -0,0 +1,32 @@
|
|||
.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.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,28 @@
|
|||
}
|
||||
|
||||
.content-wrapper {
|
||||
min-height: 100vh;
|
||||
width: 100%;
|
||||
padding: 20px;
|
||||
background: #FFF;
|
||||
background: #f1f4f8;
|
||||
|
||||
.container-fluid {
|
||||
background: #FFF;
|
||||
padding: $gl-padding;
|
||||
border: 1px solid #e7e9ed;
|
||||
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 +57,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 +75,9 @@
|
|||
}
|
||||
|
||||
i {
|
||||
width: 20px;
|
||||
width: 16px;
|
||||
color: $gray-light;
|
||||
margin-right: 23px;
|
||||
margin-right: 13px;
|
||||
}
|
||||
|
||||
.count {
|
||||
|
@ -108,41 +123,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,15 +209,60 @@
|
|||
}
|
||||
|
||||
.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;
|
||||
}
|
||||
}
|
||||
|
||||
.sidebar-wrapper {
|
||||
.header-logo {
|
||||
border-bottom: 1px solid transparent;
|
||||
float: left;
|
||||
height: $header-height;
|
||||
width: $sidebar_width;
|
||||
overflow: hidden;
|
||||
transition-duration: .3s;
|
||||
|
||||
a {
|
||||
float: left;
|
||||
height: $header-height;
|
||||
width: 100%;
|
||||
padding: 10px 22px;
|
||||
overflow: hidden;
|
||||
|
||||
img {
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.gitlab-text-container {
|
||||
width: 230px;
|
||||
|
||||
h3 {
|
||||
width: 158px;
|
||||
float: left;
|
||||
margin: 0;
|
||||
margin-left: 14px;
|
||||
font-size: 19px;
|
||||
line-height: 41px;
|
||||
font-weight: normal;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background-color: #EEE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -9,6 +9,11 @@
|
|||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
color: $gl-header-color;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
/** CODE **/
|
||||
pre {
|
||||
font-family: $monospace_font;
|
||||
|
@ -84,6 +89,10 @@ a > code {
|
|||
}
|
||||
}
|
||||
|
||||
.md-area {
|
||||
@include md-typography;
|
||||
}
|
||||
|
||||
.md {
|
||||
@include md-typography;
|
||||
}
|
||||
|
@ -96,6 +105,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;
|
||||
|
|
|
@ -21,6 +21,12 @@ pre.code.highlight.dark,
|
|||
background-color: #557 !important;
|
||||
}
|
||||
|
||||
// Search result highlight
|
||||
span.highlight_word {
|
||||
background: #ffe792;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
.hll { background-color: #373b41 }
|
||||
.c { color: #969896 } /* Comment */
|
||||
.err { color: #cc6666 } /* Error */
|
||||
|
|
|
@ -21,6 +21,12 @@ pre.code.monokai,
|
|||
background-color: #49483e !important;
|
||||
}
|
||||
|
||||
// Search result highlight
|
||||
span.highlight_word {
|
||||
background: #ffe792;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
.hll { background-color: #49483e }
|
||||
.c { color: #75715e } /* Comment */
|
||||
.err { color: #960050; background-color: #1e0010 } /* Error */
|
||||
|
|
|
@ -21,6 +21,11 @@ pre.code.highlight.solarized-dark,
|
|||
background-color: #174652 !important;
|
||||
}
|
||||
|
||||
// Search result highlight
|
||||
span.highlight_word {
|
||||
background: #094554;
|
||||
}
|
||||
|
||||
/* Solarized Dark
|
||||
|
||||
For use with Jekyll and Pygments
|
||||
|
|
|
@ -21,6 +21,11 @@ pre.code.highlight.solarized-light,
|
|||
background-color: #ddd8c5 !important;
|
||||
}
|
||||
|
||||
// Search result highlight
|
||||
span.highlight_word {
|
||||
background: #eee8d5;
|
||||
}
|
||||
|
||||
/* Solarized Light
|
||||
|
||||
For use with Jekyll and Pygments
|
||||
|
|
|
@ -5,15 +5,19 @@ pre.code.highlight.white,
|
|||
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
|
||||
|
@ -21,6 +25,11 @@ pre.code.highlight.white,
|
|||
background-color: #f8eec7 !important;
|
||||
}
|
||||
|
||||
// Search result highlight
|
||||
span.highlight_word {
|
||||
background: #fafe3d;
|
||||
}
|
||||
|
||||
.hll { background-color: #f8f8f8 }
|
||||
.c { color: #999988; font-style: italic; }
|
||||
.err { color: #a61717; background-color: #e3d2d2; }
|
||||
|
|
|
@ -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,10 +48,6 @@
|
|||
}
|
||||
}
|
||||
|
||||
.file-stats a {
|
||||
color: $style_color;
|
||||
}
|
||||
|
||||
.file-stats {
|
||||
.new-file {
|
||||
a {
|
||||
|
|
|
@ -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;
|
||||
|
@ -23,41 +23,6 @@
|
|||
}
|
||||
}
|
||||
|
||||
.project-row, .group-row {
|
||||
padding: 0 !important;
|
||||
font-size: 14px;
|
||||
line-height: 24px;
|
||||
|
||||
a {
|
||||
display: block;
|
||||
padding: 8px 15px;
|
||||
}
|
||||
|
||||
.project-name, .group-name {
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.arrow {
|
||||
float: right;
|
||||
margin: 0;
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
.last-activity {
|
||||
float: right;
|
||||
font-size: 12px;
|
||||
color: #AAA;
|
||||
display: block;
|
||||
.date {
|
||||
color: #777;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.project-description {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.project-access-icon {
|
||||
margin-left: 10px;
|
||||
float: left;
|
||||
|
@ -73,12 +38,11 @@
|
|||
float: left;
|
||||
|
||||
.avatar {
|
||||
margin-top: -8px;
|
||||
margin-left: -15px;
|
||||
@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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,3 +6,11 @@
|
|||
font-size: 30px;
|
||||
}
|
||||
}
|
||||
|
||||
.explore-trending-block {
|
||||
.lead {
|
||||
line-height: 32px;
|
||||
font-size: 18px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,8 +25,6 @@
|
|||
}
|
||||
|
||||
.issuable-context-title {
|
||||
font-size: 14px;
|
||||
line-height: 1.4;
|
||||
margin-bottom: 5px;
|
||||
|
||||
.avatar {
|
||||
|
@ -34,20 +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 {
|
||||
max-width: $readable-width;
|
||||
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;
|
||||
|
|
|
@ -16,6 +16,10 @@
|
|||
|
||||
.project-home-panel {
|
||||
text-align: center;
|
||||
background: #f7f8fa;
|
||||
margin: -$gl-padding;
|
||||
padding: $gl-padding;
|
||||
padding-top: 40px;
|
||||
|
||||
.project-identicon-holder {
|
||||
margin-bottom: 15px;
|
||||
|
@ -30,21 +34,30 @@
|
|||
}
|
||||
}
|
||||
|
||||
.project-home-dropdown {
|
||||
margin: 11px 3px 0;
|
||||
}
|
||||
|
||||
.project-home-desc {
|
||||
h1 {
|
||||
margin: 0;
|
||||
margin-bottom: 10px;
|
||||
font-size: 26px;
|
||||
font-size: 23px;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
p {
|
||||
display: inline;
|
||||
color: #7f8fa4;
|
||||
}
|
||||
}
|
||||
|
||||
.git-clone-holder {
|
||||
max-width: 600px;
|
||||
margin: 20px auto;
|
||||
|
||||
.form-control {
|
||||
background: #FFF;
|
||||
}
|
||||
}
|
||||
|
||||
.visibility-level-label {
|
||||
|
@ -55,17 +68,18 @@
|
|||
}
|
||||
|
||||
.project-repo-buttons {
|
||||
margin-top: 25px;
|
||||
margin-top: $gl-padding;
|
||||
margin-bottom: 25px;
|
||||
|
||||
.btn {
|
||||
@extend .btn-info;
|
||||
|
||||
text-transform: uppercase;
|
||||
font-size: 15px;
|
||||
line-height: 20px;
|
||||
padding: 8px 14px;
|
||||
border-radius: 3px;
|
||||
margin-left: 10px;
|
||||
font-weight: bold;
|
||||
font-size: 14px;
|
||||
line-height: 16px;
|
||||
padding: 8px 12px;
|
||||
|
||||
.count {
|
||||
padding-left: 7px;
|
||||
|
@ -155,78 +169,6 @@ ul.nav.nav-projects-tabs {
|
|||
margin: 0px;
|
||||
}
|
||||
|
||||
.my-projects,
|
||||
.public-projects {
|
||||
li {
|
||||
.project-info {
|
||||
margin-bottom: 10px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.access-icon {
|
||||
color: #AAA;
|
||||
margin-left: 10px;
|
||||
i {
|
||||
color: #AAA;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.public-clone {
|
||||
background: #EEE;
|
||||
color: #777;
|
||||
padding: 6px 10px;
|
||||
margin: 1px;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.public-projects .repo-info {
|
||||
color: #777;
|
||||
|
||||
a {
|
||||
color: #777;
|
||||
}
|
||||
}
|
||||
|
||||
.project-side {
|
||||
.project-fork-icon {
|
||||
float: left;
|
||||
font-size: 26px;
|
||||
margin-right: 10px;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
.panel {
|
||||
@include border-radius(3px);
|
||||
|
||||
.panel-heading, .panel-footer {
|
||||
font-weight: normal;
|
||||
background-color: transparent;
|
||||
color: #666;
|
||||
border-color: #EEE;
|
||||
}
|
||||
|
||||
.actions {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.nav-pills a {
|
||||
padding: 10px;
|
||||
font-weight: bold;
|
||||
color: $gl-link-color;
|
||||
}
|
||||
|
||||
.nav {
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
.ci-status-image {
|
||||
max-height: 22px;
|
||||
}
|
||||
}
|
||||
|
||||
.transfer-project .select2-container {
|
||||
min-width: 200px;
|
||||
}
|
||||
|
@ -249,10 +191,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;
|
||||
|
@ -261,26 +203,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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -298,10 +232,23 @@ table.table.protected-branches-list tr.no-border {
|
|||
|
||||
.project-stats {
|
||||
text-align: center;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
padding-top: 5px;
|
||||
padding-bottom: 0;
|
||||
|
||||
ul.nav-pills { display:inline-block; }
|
||||
li { display:inline; }
|
||||
a { float:left; }
|
||||
ul.nav-pills {
|
||||
display:inline-block;
|
||||
}
|
||||
|
||||
li {
|
||||
display:inline;
|
||||
}
|
||||
|
||||
a {
|
||||
float:left;
|
||||
font-size: 17px;
|
||||
}
|
||||
|
||||
li.missing a {
|
||||
color: #bbb;
|
||||
|
@ -316,3 +263,73 @@ table.table.protected-branches-list tr.no-border {
|
|||
pre.light-well {
|
||||
border-color: #f1f1f1;
|
||||
}
|
||||
|
||||
.projects-search-form {
|
||||
margin: -$gl-padding;
|
||||
background-color: #f8fafc;
|
||||
padding: $gl-padding;
|
||||
margin-bottom: 0px;
|
||||
border-top: 1px solid #e7e9ed;
|
||||
border-bottom: 1px solid #e7e9ed;
|
||||
}
|
||||
|
||||
/*
|
||||
* 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: 600;
|
||||
color: #4c4e54;
|
||||
}
|
||||
|
||||
.pull-right.light {
|
||||
line-height: 45px;
|
||||
color: #7f8fa4;
|
||||
}
|
||||
|
||||
.project-description {
|
||||
color: #7f8fa4;
|
||||
|
||||
p {
|
||||
@include str-truncated;
|
||||
margin-bottom: 0;
|
||||
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;
|
||||
}
|
||||
|
|
|
@ -1,7 +1,19 @@
|
|||
.search-results {
|
||||
.search-result-row {
|
||||
border-bottom: 1px solid #EEE;
|
||||
padding-bottom: 10px;
|
||||
margin-bottom: 10px;
|
||||
border-bottom: 1px solid #DDD;
|
||||
padding-bottom: 15px;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
.search-holder {
|
||||
max-width: 600px;
|
||||
margin: 0 auto;
|
||||
margin-bottom: 20px;
|
||||
|
||||
input {
|
||||
border-color: #BBB;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -6,3 +6,27 @@
|
|||
.snippet-form-holder .file-holder .file-title {
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
|
||||
.snippet-row {
|
||||
.snippet-title {
|
||||
font-size: 15px;
|
||||
font-weight: bold;
|
||||
line-height: 20px;
|
||||
margin-bottom: 2px;
|
||||
|
||||
.monospace {
|
||||
font-weight: normal;
|
||||
}
|
||||
}
|
||||
|
||||
.snippet-info {
|
||||
color: #888;
|
||||
font-size: 13px;
|
||||
line-height: 24px;
|
||||
|
||||
a {
|
||||
color: #888;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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 {
|
||||
|
@ -117,7 +87,6 @@
|
|||
|
||||
.readme-holder {
|
||||
margin: 0 auto;
|
||||
max-width: $readable-width;
|
||||
|
||||
.readme-file-title {
|
||||
font-size: 14px;
|
||||
|
@ -133,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;
|
||||
}
|
||||
|
|
|
@ -7,27 +7,27 @@
|
|||
* $color-dark -
|
||||
*/
|
||||
@mixin gitlab-theme($color-light, $color, $color-darker, $color-dark) {
|
||||
header {
|
||||
&.navbar-gitlab {
|
||||
.header-logo {
|
||||
background-color: $color-darker;
|
||||
border-color: $color-darker;
|
||||
.page-with-sidebar {
|
||||
.header-logo {
|
||||
background-color: $color;
|
||||
border-color: $color;
|
||||
|
||||
a {
|
||||
a {
|
||||
color: $color-light;
|
||||
|
||||
h3 {
|
||||
color: $color-light;
|
||||
}
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background-color: $color-dark;
|
||||
a {
|
||||
color: #FFF;
|
||||
}
|
||||
&:hover {
|
||||
background-color: $color-darker;
|
||||
a {
|
||||
color: #FFF;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.page-with-sidebar {
|
||||
.collapse-nav a {
|
||||
color: #FFF;
|
||||
background: $color;
|
||||
|
@ -87,7 +87,7 @@
|
|||
}
|
||||
|
||||
$theme-blue: #2980B9;
|
||||
$theme-charcoal: #474D57;
|
||||
$theme-charcoal: #333c47;
|
||||
$theme-graphite: #888888;
|
||||
$theme-gray: #373737;
|
||||
$theme-green: #019875;
|
||||
|
@ -99,7 +99,7 @@ body {
|
|||
}
|
||||
|
||||
&.ui_charcoal {
|
||||
@include gitlab-theme(#979DA7, $theme-charcoal, #373D47, #24272D);
|
||||
@include gitlab-theme(#c5d0de, $theme-charcoal, #2b333d, #24272D);
|
||||
}
|
||||
|
||||
&.ui_graphite {
|
||||
|
|
|
@ -29,6 +29,15 @@ class Admin::ApplicationSettingsController < Admin::ApplicationController
|
|||
end
|
||||
end
|
||||
|
||||
import_sources = params[:application_setting][:import_sources]
|
||||
if import_sources.nil?
|
||||
params[:application_setting][:import_sources] = []
|
||||
else
|
||||
import_sources.map! do |source|
|
||||
source.to_str
|
||||
end
|
||||
end
|
||||
|
||||
params.require(:application_setting).permit(
|
||||
:default_projects_limit,
|
||||
:default_branch_protection,
|
||||
|
@ -37,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,
|
||||
|
@ -46,7 +56,9 @@ class Admin::ApplicationSettingsController < Admin::ApplicationController
|
|||
:restricted_signup_domains_raw,
|
||||
:version_check_enabled,
|
||||
:user_oauth_applications,
|
||||
:ci_enabled,
|
||||
restricted_visibility_levels: [],
|
||||
import_sources: []
|
||||
)
|
||||
end
|
||||
end
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue