Commit 48443d20 by Florian Unglaub

Merge branch 'master' of git://github.com/gitlabhq/gitlabhq

parents c5ae1549 6d4ae75f
#this code temporarily disables notes for all controllers
# Footnotes::Filter.notes = []
v 2.8.1
- ability to disable gravatars
- improved MR diff logic
- ssh key help page
v 2.8.0
- Gitlab Flavored Markdown
- Bulk issues update
- Issues API
- Cucumber coverage increased
- Post-receive files fixed
- UI improved
- Application cleanup
- more cucumber
- capybara-webkit + headless
v 2.7.0
- Issue Labels
......
......@@ -58,7 +58,7 @@ gem "unicorn"
gem "acts-as-taggable-on", "2.3.1"
# Decorators
gem "drapper"
gem "draper"
# Background jobs
gem "resque", "~> 1.20.0"
......@@ -80,10 +80,6 @@ gem 'settingslogic'
gem "foreman"
gem "git"
# Unused
gem 'tabs_on_rails'
gem "acts_as_list"
group :assets do
gem "sass-rails", "3.2.5"
gem "coffee-rails", "3.2.2"
......@@ -95,12 +91,11 @@ group :assets do
gem "jquery-ui-rails", "0.5.0"
gem "modernizr", "2.5.3"
gem "raphael-rails", "1.5.2"
gem 'bootstrap-sass', "2.0.3.1"
gem 'bootstrap-sass', "2.0.4"
end
group :development do
gem "letter_opener"
gem "rails-footnotes"
gem "annotate", :git => "https://github.com/ctran/annotate_models.git"
gem 'rack-mini-profiler'
end
......@@ -109,6 +104,7 @@ group :development, :test do
gem "rspec-rails"
gem "capybara"
gem "capybara-webkit"
gem "headless"
gem "autotest"
gem "autotest-rails"
gem "pry"
......@@ -119,11 +115,13 @@ end
group :test do
gem 'cucumber-rails', :require => false
gem 'minitest', ">= 2.10"
gem "turn", :require => false
gem "simplecov", :require => false
gem "shoulda-matchers"
gem 'email_spec'
gem 'resque_spec'
gem "webmock"
end
group :production do
gem "gitlab_meta", '2.8'
end
......@@ -98,9 +98,7 @@ GEM
multi_json (~> 1.0)
acts-as-taggable-on (2.3.1)
rails (~> 3.0)
acts_as_list (0.1.6)
addressable (2.2.8)
ansi (1.4.2)
arel (3.0.2)
autotest (4.4.6)
ZenTest (>= 4.4.1)
......@@ -109,7 +107,7 @@ GEM
awesome_print (1.0.2)
bcrypt-ruby (3.0.1)
blankslate (2.1.2.4)
bootstrap-sass (2.0.3.1)
bootstrap-sass (2.0.4.0)
builder (3.0.0)
capybara (1.1.2)
mime-types (>= 1.16)
......@@ -157,7 +155,9 @@ GEM
railties (~> 3.1)
warden (~> 1.2.1)
diff-lcs (1.1.3)
drapper (0.8.4)
draper (0.17.0)
actionpack (~> 3.2)
activesupport (~> 3.2)
email_spec (1.2.1)
mail (~> 2.2)
rspec (~> 2.0)
......@@ -175,6 +175,7 @@ GEM
gherkin (2.11.0)
json (>= 1.4.6)
git (1.2.5)
gitlab_meta (2.8)
grape (0.2.1)
hashie (~> 1.2)
multi_json
......@@ -189,6 +190,7 @@ GEM
railties (~> 3.0)
hashery (1.4.0)
hashie (1.2.0)
headless (0.3.1)
hike (1.2.1)
httparty (0.8.3)
multi_json (~> 1.0)
......@@ -223,7 +225,6 @@ GEM
treetop (~> 1.4.8)
method_source (0.7.1)
mime-types (1.19)
minitest (3.1.0)
modernizr (2.5.3)
sprockets (~> 2.0)
multi_json (1.3.6)
......@@ -286,8 +287,6 @@ GEM
activesupport (= 3.2.8)
bundler (~> 1.0)
railties (= 3.2.8)
rails-footnotes (3.7.8)
rails (>= 3.0.0)
railties (3.2.8)
actionpack (= 3.2.8)
activesupport (= 3.2.8)
......@@ -366,7 +365,6 @@ GEM
tilt (~> 1.1, != 1.3.0)
sqlite3 (1.3.6)
stamp (0.1.6)
tabs_on_rails (2.1.1)
therubyracer (0.10.1)
libv8 (~> 3.3.10)
thin (1.3.1)
......@@ -378,8 +376,6 @@ GEM
treetop (1.4.10)
polyglot
polyglot (>= 0.3.1)
turn (0.9.5)
ansi
tzinfo (0.3.33)
uglifier (1.0.3)
execjs (>= 0.3.0)
......@@ -403,12 +399,11 @@ PLATFORMS
DEPENDENCIES
acts-as-taggable-on (= 2.3.1)
acts_as_list
annotate!
autotest
autotest-rails
awesome_print
bootstrap-sass (= 2.0.3.1)
bootstrap-sass (= 2.0.4)
capybara
capybara-webkit
carrierwave
......@@ -419,16 +414,18 @@ DEPENDENCIES
cucumber-rails
database_cleaner
devise (~> 2.1.0)
drapper
draper
email_spec
ffaker
foreman
git
gitlab_meta (= 2.8)
gitolite!
grack!
grape (~> 0.2.1)
grit!
haml-rails
headless
httparty
jquery-rails (= 2.0.2)
jquery-ui-rails (= 0.5.0)
......@@ -436,7 +433,6 @@ DEPENDENCIES
launchy
letter_opener
linguist (~> 1.0.0)!
minitest (>= 2.10)
modernizr (= 2.5.3)
mysql2
omniauth
......@@ -448,7 +444,6 @@ DEPENDENCIES
pygments.rb!
rack-mini-profiler
rails (= 3.2.8)
rails-footnotes
raphael-rails (= 1.5.2)
redcarpet (~> 2.1.1)
resque (~> 1.20.0)
......@@ -463,10 +458,8 @@ DEPENDENCIES
six
sqlite3
stamp
tabs_on_rails
therubyracer
thin
turn
uglifier (= 1.0.3)
unicorn
webmock
......
......@@ -7,8 +7,6 @@
//= require jquery
//= require jquery.ui.all
//= require jquery_ujs
//= require jquery.ui.selectmenu
//= require jquery.tagify
//= require jquery.cookie
//= require jquery.endless-scroll
//= require jquery.highlight
......@@ -74,7 +72,7 @@ $(document).ready(function(){
* Note markdown preview
*
*/
$('#preview-link').on('click', function(e) {
$(document).on('click', '#preview-link', function(e) {
$('#preview-note').text('Loading...');
var previewLinkText = ($(this).text() == 'Preview' ? 'Edit' : 'Preview');
......
......@@ -112,6 +112,7 @@ var MergeRequest = {
already_cannot_be_merged:
function(){
$(".automerge_widget").hide();
$(".merge_in_progress").hide();
$(".automerge_widget.already_cannot_be_merged").show();
}
}
......@@ -3,8 +3,7 @@
* and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
* the top of the compiled file, but it's generally better to create a new file per style scope.
*= require jquery.ui.all
*= require jquery-ui/jquery.ui.selectmenu
*= require jquery-ui/jquery.tagify
*= require jquery.ui.aristo
*= require chosen
*= require_self
*= require main
......
......@@ -735,3 +735,11 @@ li.note {
font-size: 12px;
}
}
.error_message {
@extend .cred;
border-bottom: 1px solid #D21;
padding-bottom:20px;
text-align:center;
margin-bottom:10px;
}
body {
margin-bottom:20px;
}
pre {
font-family:'Menlo', 'Liberation Mono', 'Consolas', 'Courier New', 'andale mono','lucida console',monospace;
&.dark {
background: #333;
color:#f5f5f5;
}
}
a {
outline: none;
color: $link_color;
......@@ -325,16 +335,20 @@ img.avatar {
float:left;
margin-right:15px;
width:40px;
border:2px solid #ddd;
border:1px solid #ddd;
padding:1px;
&.s16 {
width:16px;
height:16px;
}
&.s24 {
width:24px;
height:24px;
}
&.s32 {
width:32px;
height:32px;
}
}
......
/**
* JQUERY UI datepicker
*
*/
.ui-datepicker {
border-color:#eee;
padding:20px;
.ui-state-default {
background:#f1f1f1;
padding:5px;
}
.ui-state-active {
background:#fff;
}
}
/**
* JQUERY UI progressbar
*
*/
.ui-progressbar {
border:1px solid #ddd;
height:6px;
margin:0;
padding:0;
.ui-progressbar-value {
background-color: #62C462;//$blue_link;
margin:0;
}
}
......@@ -23,6 +23,8 @@ $blue_link: #2fa0bb;
$style_color: #474D57;
$hover: #FDF5D9;
/** GITLAB Fonts **/
@font-face { font-family: Korolev; src: url('korolev-medium-compressed.otf'); }
/** MIXINS **/
@mixin shade {
......@@ -165,9 +167,3 @@ $hover: #FDF5D9;
*
*/
@import "highlight/dark.scss";
/**
* JQUERY UI ext
*
*/
@import "jquery_ui.scss";
......@@ -26,23 +26,25 @@ header {
float:left;
position:relative;
top:-5px;
a {
float:left;
h1 {
text-indent:-9999px;
padding-top: 5px;
width:102px;
background: url('logo_text.png') no-repeat 0px -3px;
background: url('logo_dark.png') no-repeat 0px -3px;
float:left;
margin-left:5px;
font-size:20px;
font-size:36px;
line-height:36px;
font-weight:bold;
color:#aaa;
font-weight:normal;
color:$style_color;
text-shadow: 0 1px 1px #FFF;
padding-left:50px;
height:40px;
font-family: 'Korolev', sans-serif;
}
}
.separator {
margin-left:20px;
......@@ -68,14 +70,16 @@ header {
*
*/
.project_name {
position:relative;
float:left;
margin:0;
margin-right:30px;
font-size:24px;
font-size:36px;
line-height:36px;
font-weight:500;
font-weight:normal;
color:$style_color;
text-shadow: 0 1px 1px #FFF;
font-family: 'Korolev', sans-serif;
}
.fbtn {
......
......@@ -27,6 +27,7 @@ body.login-page{
-moz-border-radius-topright: 5px;
border-top-left-radius: 5px;
border-top-right-radius: 5px;
margin-bottom:0px;
}
.login-box input.text.bottom{
......
......@@ -94,3 +94,8 @@ li.merge_request {
padding-bottom: 2px;
}
}
.merge_in_progress {
@extend .padded;
@extend .append-bottom-10;
}
......@@ -48,7 +48,7 @@
p { color:$style_color; }
.note-author { color: $style_color;}
.note-title { margin-left:50px; padding-top: 5px;}
.note-title { margin-left:45px; padding-top: 5px;}
.avatar {
margin-top:3px;
}
......
.projects {
.projects {
@extend .row;
.activities {
}
.side {
.side {
@extend .span4;
@extend .right;
.projects_box {
h5 {
.projects_box {
h5 {
color:$style_color;
font-size:16px;
text-shadow: 0 1px 1px #fff;
padding: 2px 10px;
}
@extend .leftbar;
@extend .ui-box;
......@@ -19,21 +20,22 @@
}
}
.new_project,
.edit_project {
.project_name_holder {
.new_project,
.edit_project {
.project_name_holder {
input,
label {
label {
font-size:16px;
line-height:20px;
padding:8px;
}
label {
label {
color:#888;
}
.btn {
.btn {
padding:6px;
margin-left:10px;
margin-bottom:8px;
}
}
}
......@@ -15,4 +15,36 @@
color: $blue_link;
}
}
header {
.fbtn {
.btn {
background-color: #F8F8F8;
background-image: -webkit-gradient(linear,left top,left bottom,from(#F8F8F8),to(#ECECEC));
background-image: -webkit-linear-gradient(top,#F8F8F8,#ECECEC);
background-image: -moz-linear-gradient(top,#F8F8F8,#ECECEC);
background-image: -ms-linear-gradient(top,#F8F8F8,#ECECEC);
background-image: -o-linear-gradient(top,#F8F8F8,#ECECEC);
background-image: linear-gradient(top,#F8F8F8,#ECECEC);
filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#f8f8f8',EndColorStr='#ececec');
border-color: #C6C6C6;
margin-left:7px;
@include border-radius(3px);
box-shadow:none;
color:#666;
}
}
.search {
.search-input {
@include border-radius(3px);
border-color: #C6C6C6;
box-shadow:none;
}
}
.pic {
img {
@include border-radius(3px);
}
}
}
}
......@@ -20,6 +20,10 @@
.fbtn {
.btn {
i {
position: relative;
top: 1px;
}
margin-left:8px;
background-image: -webkit-gradient(linear, 0 0, 0 30, color-stop(0.066, #595D63), to(#31363E));
background-image: -webkit-linear-gradient(#595D63 6.6%, #31363E);
......@@ -32,6 +36,10 @@
background-image: -moz-linear-gradient(#595D63 6.6%, #202227);
background-image: -o-linear-gradient(#595D63 6.6%, #202227);
background-position:0 0;
color:#fff;
i {
@extend .icon-white;
}
}
border: 1px solid #31363E;
......@@ -59,14 +67,9 @@
.app_logo {
a {
h1 {
background: url('images.png') no-repeat -3px -6px;
width: 65px;
height: 26px;
margin: 6px 0;
padding: 0;
float: left;
text-indent: -1000em;
float:left;
background: url('logo_white.png') no-repeat 0px -3px;
color:#fff;
text-shadow: 0 1px 1px #111;
}
}
.separator {
......@@ -75,7 +78,6 @@
}
.project_name {
line-height:38px;
color:#fff;
text-shadow: 0 1px 1px #111;
}
......
......@@ -37,26 +37,20 @@
*
*/
.app_logo {
width:160px;
a {
h1 {
opacity: 0.7;
background: url('images.png') no-repeat -3px -6px;
width: 65px;
height: 26px;
margin: 6px 0;
padding: 0;
float: left;
text-indent: -1000em;
float:left;
&:hover {
opacity: 1.0;
}
background: none;
color:#DDD;
font-size:30px;
text-shadow: 0 1px 1px #111;
padding-left: 0;
}
}
.separator {
width: 1px;
height: 40px;
margin: 0 9px;
margin: 0 10px;
overflow: hidden;
background: #222;
border-left: 1px solid #333;
......@@ -66,7 +60,6 @@
.fbtn {
.btn {
i {
@extend .icon-white;
position: relative;
top: 2px;
}
......@@ -77,10 +70,14 @@
color:#ccc;
&:hover {
color:#fff;
i {
@extend .icon-white;
}
}
border: none;
box-shadow:none;
text-shadow: 0 -1px 0 #000000;
border-left: 1px solid #333;
}
}
......@@ -113,9 +110,9 @@
*
*/
.project_name {
line-height:34px;
font-size:22px;
color:#fff;
line-height:36px;
font-size:30px;
color:#DDD;
text-shadow: 0 1px 1px #111;
}
......
class LabelsController < ApplicationController
before_filter :authenticate_user!
before_filter :project
before_filter :module_enabled
layout "project"
# Authorize
before_filter :add_project_abilities
# Allow read any issue
before_filter :authorize_read_issue!
respond_to :js, :html
def index
@labels = Issue.tag_counts_on(:labels)
end
protected
def module_enabled
return render_404 unless @project.issues_enabled
end
end
......@@ -12,8 +12,7 @@ class OmniauthCallbacksController < Devise::OmniauthCallbacksController
def ldap
# We only find ourselves here if the authentication to LDAP was successful.
info = request.env["omniauth.auth"]["info"]
@user = User.find_for_ldap_auth(info)
@user = User.find_for_ldap_auth(request.env["omniauth.auth"], current_user)
if @user.persisted?
@user.remember_me = true
end
......@@ -39,7 +38,7 @@ class OmniauthCallbacksController < Devise::OmniauthCallbacksController
current_user.save
redirect_to profile_path
else
@user = User.find_by_provider_and_uid(provider, uid)
@user = User.find_by_provider_and_extern_uid(provider, uid)
if @user
sign_in_and_redirect @user
......
require File.join(Rails.root, 'lib', 'graph_commit')