diff options
Diffstat (limited to 'app/assets')
39 files changed, 375 insertions, 698 deletions
diff --git a/app/assets/fonts/korolev-medium-compressed.otf b/app/assets/fonts/korolev-medium-compressed.otf Binary files differindex e3817cec857..a9cd3cbffff 100644 --- a/app/assets/fonts/korolev-medium-compressed.otf +++ b/app/assets/fonts/korolev-medium-compressed.otf diff --git a/app/assets/images/ajax_loader_gray.gif b/app/assets/images/ajax_loader_gray.gif Binary files differnew file mode 100644 index 00000000000..af3f618bd0b --- /dev/null +++ b/app/assets/images/ajax_loader_gray.gif diff --git a/app/assets/images/logo.png b/app/assets/images/logo.png Binary files differdeleted file mode 100644 index 2d08c9f6825..00000000000 --- a/app/assets/images/logo.png +++ /dev/null diff --git a/app/assets/images/logo_basic.png b/app/assets/images/logo_basic.png Binary files differdeleted file mode 100644 index bc5ec128b90..00000000000 --- a/app/assets/images/logo_basic.png +++ /dev/null diff --git a/app/assets/images/logo_text.png b/app/assets/images/logo_text.png Binary files differdeleted file mode 100644 index c74663930e4..00000000000 --- a/app/assets/images/logo_text.png +++ /dev/null diff --git a/app/assets/images/logo_text_tr.png b/app/assets/images/logo_text_tr.png Binary files differdeleted file mode 100644 index fdb32ee29fe..00000000000 --- a/app/assets/images/logo_text_tr.png +++ /dev/null diff --git a/app/assets/images/logo_white.png b/app/assets/images/logo_white.png Binary files differindex 366e3f3f3b9..e3415816558 100644 --- a/app/assets/images/logo_white.png +++ b/app/assets/images/logo_white.png diff --git a/app/assets/images/service-disabled-gitlab-ci.png b/app/assets/images/service-disabled-gitlab-ci.png Binary files differdeleted file mode 100644 index 8d1f9d0b50d..00000000000 --- a/app/assets/images/service-disabled-gitlab-ci.png +++ /dev/null diff --git a/app/assets/images/service-gitlab-ci.png b/app/assets/images/service-gitlab-ci.png Binary files differdeleted file mode 100644 index bcb30a3fb1a..00000000000 --- a/app/assets/images/service-gitlab-ci.png +++ /dev/null diff --git a/app/assets/images/switch_icon.png b/app/assets/images/switch_icon.png Binary files differnew file mode 100644 index 00000000000..7c11f206593 --- /dev/null +++ b/app/assets/images/switch_icon.png diff --git a/app/assets/javascripts/gfm_auto_complete.js.coffee b/app/assets/javascripts/gfm_auto_complete.js.coffee index ffc4c409b54..1cc9d34dd80 100644 --- a/app/assets/javascripts/gfm_auto_complete.js.coffee +++ b/app/assets/javascripts/gfm_auto_complete.js.coffee @@ -1,52 +1,38 @@ # Creates the variables for setting up GFM auto-completion window.GitLab ?= {} -GitLab.GfmAutoComplete ?= {} - -# Emoji -data = [] -template = "<li data-value='${insert}'>${name} <img alt='${name}' height='20' src='${image}' width='20' /></li>" -GitLab.GfmAutoComplete.Emoji = {data, template} - -# Team Members -data = [] -url = ''; -params = {private_token: '', page: 1} -GitLab.GfmAutoComplete.Members = {data, url, params} - -# Add GFM auto-completion to all input fields, that accept GFM input. -GitLab.GfmAutoComplete.setup = -> - input = $('.js-gfm-input') - +GitLab.GfmAutoComplete = # Emoji - input.atWho ':', - data: GitLab.GfmAutoComplete.Emoji.data, - tpl: GitLab.GfmAutoComplete.Emoji.template + Emoji: + data: [] + template: '<li data-value="${insert}">${name} <img alt="${name}" height="20" src="${image}" width="20" /></li>' # Team Members - input.atWho '@', (query, callback) -> - (getMoreMembers = -> - $.getJSON(GitLab.GfmAutoComplete.Members.url, GitLab.GfmAutoComplete.Members.params) - .success (members) -> - # pick the data we need - newMembersData = $.map(members, (m) -> m.name ) - - # add the new page of data to the rest - $.merge(GitLab.GfmAutoComplete.Members.data, newMembersData) - - # show the pop-up with a copy of the current data - callback(GitLab.GfmAutoComplete.Members.data[..]) - - # are we past the last page? - if newMembersData.length is 0 - # set static data and stop callbacks - input.atWho '@', - data: GitLab.GfmAutoComplete.Members.data - callback: null - else - # get next page - getMoreMembers() + Members: + data: [] + url: '' + params: + private_token: '' + template: '<li data-value="${username}">${username} <small>${name}</small></li>' + + # Add GFM auto-completion to all input fields, that accept GFM input. + setup: -> + input = $('.js-gfm-input') + + # Emoji + input.atWho ':', + data: @Emoji.data + tpl: @Emoji.template + + # Team Members + input.atWho '@', + tpl: @Members.template + callback: (query, callback) => + request_params = $.extend({}, @Members.params, query: query) + $.getJSON(@Members.url, request_params).done (members) => + new_members_data = $.map(members, (m) -> + username: m.username, + name: m.name + ) + callback(new_members_data) - # so the next request gets the next page - GitLab.GfmAutoComplete.Members.params.page += 1 - ).call() diff --git a/app/assets/javascripts/issues.js b/app/assets/javascripts/issues.js index e2fe1075903..719d2c176c1 100644 --- a/app/assets/javascripts/issues.js +++ b/app/assets/javascripts/issues.js @@ -1,43 +1,3 @@ -function switchToNewIssue(){ - $(".issues_content").hide("fade", { direction: "left" }, 150, function(){ - $('select#issue_assignee_id').chosen(); - $('select#issue_milestone_id').chosen(); - $("#new_issue_dialog").show("fade", { direction: "right" }, 150); - $('.top-tabs .add_new').hide(); - disableButtonIfEmptyField("#issue_title", ".save-btn"); - GitLab.GfmAutoComplete.setup(); - }); -} - -function switchToEditIssue(){ - $(".issues_content").hide("fade", { direction: "left" }, 150, function(){ - $('select#issue_assignee_id').chosen(); - $('select#issue_milestone_id').chosen(); - $("#edit_issue_dialog").show("fade", { direction: "right" }, 150); - $('.add_new').hide(); - disableButtonIfEmptyField("#issue_title", ".save-btn"); - GitLab.GfmAutoComplete.setup(); - }); -} - -function switchFromNewIssue(){ - backToIssues(); -} - -function switchFromEditIssue(){ - backToIssues(); -} - -function backToIssues(){ - $("#edit_issue_dialog, #new_issue_dialog").hide("fade", { direction: "right" }, 150, function(){ - $(".issues_content").show("fade", { direction: "left" }, 150, function() { - $("#edit_issue_dialog").html(""); - $("#new_issue_dialog").html(""); - $('.add_new').show(); - }); - }); -} - function initIssuesSearch() { var href = $('#issue_search_form').attr('action'); var last_terms = ''; @@ -76,23 +36,15 @@ function issuesPage(){ $(this).closest("form").submit(); }); - $("#new_issue_link").click(function(){ - updateNewIssueURL(); - }); - - $('body').on('ajax:success', '.close_issue, .reopen_issue, #new_issue', function(){ + $('body').on('ajax:success', '.close_issue, .reopen_issue', function(){ var t = $(this), totalIssues, - reopen = t.hasClass('reopen_issue'), - newIssue = false; - if( this.id == 'new_issue' ){ - newIssue = true; - } - $('.issue_counter, #new_issue').each(function(){ + reopen = t.hasClass('reopen_issue'); + $('.issue_counter').each(function(){ var issue = $(this); totalIssues = parseInt( $(this).html(), 10 ); - if( newIssue || ( reopen && issue.closest('.main_menu').length ) ){ + if( reopen && issue.closest('.main_menu').length ){ $(this).html( totalIssues+1 ); }else { $(this).html( totalIssues-1 ); @@ -126,20 +78,3 @@ function issuesCheckChanged() { $('.issues_filters').show(); } } - -function updateNewIssueURL(){ - var new_issue_link = $("#new_issue_link"); - var milestone_id = $("#milestone_id").val(); - var assignee_id = $("#assignee_id").val(); - var new_href = ""; - if(milestone_id){ - new_href = "issue[milestone_id]=" + milestone_id + "&"; - } - if(assignee_id){ - new_href = new_href + "issue[assignee_id]=" + assignee_id; - } - if(new_href.length){ - new_href = new_issue_link.attr("href") + "?" + new_href; - new_issue_link.attr("href", new_href); - } -}; diff --git a/app/assets/javascripts/main.js.coffee b/app/assets/javascripts/main.js.coffee index bdb83f49474..f6c398c0acf 100644 --- a/app/assets/javascripts/main.js.coffee +++ b/app/assets/javascripts/main.js.coffee @@ -7,6 +7,18 @@ window.slugify = (text) -> window.ajaxGet = (url) -> $.ajax({type: "GET", url: url, dataType: "script"}) +window.errorMessage = (message) -> + ehtml = $("<p>") + ehtml.addClass("error_message") + ehtml.html(message) + ehtml + +window.split = (val) -> + return val.split( /,\s*/ ) + +window.extractLast = (term) -> + return split( term ).pop() + # Disable button if text field is empty window.disableButtonIfEmptyField = (field_selector, button_selector) -> field = $(field_selector) diff --git a/app/assets/javascripts/merge_requests.js b/app/assets/javascripts/merge_requests.js index 170a0479de7..ee714f9cabb 100644 --- a/app/assets/javascripts/merge_requests.js +++ b/app/assets/javascripts/merge_requests.js @@ -26,6 +26,12 @@ var MergeRequest = { self.showState(data.state); }, "json"); } + + if(self.opts.ci_enable){ + $.get(self.opts.url_to_ci_check, function(data){ + self.showCiState(data.status); + }, "json"); + } }, initTabs: @@ -79,6 +85,11 @@ var MergeRequest = { $(".automerge_widget." + state).show(); }, + showCiState: + function(state){ + $(".ci_widget").hide(); + $(".ci_widget.ci-" + state).show(); + }, loadDiff: function() { diff --git a/app/assets/javascripts/projects.js.coffee b/app/assets/javascripts/projects.js.coffee index 1808f0578f6..d03a487c453 100644 --- a/app/assets/javascripts/projects.js.coffee +++ b/app/assets/javascripts/projects.js.coffee @@ -18,10 +18,3 @@ $ -> # Ref switcher $('.project-refs-select').on 'change', -> $(@).parents('form').submit() - -class @GraphNav - @init: -> - $('.graph svg').css 'position', 'relative' - $('body').bind 'keyup', (e) -> - $('.graph svg').animate(left: '+=400') if e.keyCode is 37 # left - $('.graph svg').animate(left: '-=400') if e.keyCode is 39 # right diff --git a/app/assets/stylesheets/application.css b/app/assets/stylesheets/application.css deleted file mode 100644 index a23d4532915..00000000000 --- a/app/assets/stylesheets/application.css +++ /dev/null @@ -1,10 +0,0 @@ -/* - * This is a manifest file that'll automatically include all the stylesheets available in this directory - * 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.gitlab - *= require jquery.atwho - *= require chosen - *= require_self - *= require main -*/ diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss new file mode 100644 index 00000000000..f93246c13c7 --- /dev/null +++ b/app/assets/stylesheets/application.scss @@ -0,0 +1,52 @@ +/* + * This is a manifest file that'll automatically include all the stylesheets available in this directory + * 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.gitlab + *= require jquery.atwho + *= require chosen + *= require_self +*/ + +/** + * GitLab bootstrap: + */ +@import "gitlab_bootstrap.scss"; + +@import "common.scss"; +@import "ref_select.scss"; + +@import "sections/header.scss"; +@import "sections/nav.scss"; +@import "sections/commits.scss"; +@import "sections/issues.scss"; +@import "sections/projects.scss"; +@import "sections/snippets.scss"; +@import "sections/votes.scss"; +@import "sections/merge_requests.scss"; +@import "sections/graph.scss"; +@import "sections/events.scss"; +@import "sections/themes.scss"; +@import "sections/tree.scss"; +@import "sections/notes.scss"; +@import "sections/profile.scss"; +@import "sections/login.scss"; +@import "sections/editor.scss"; + +@import "highlight/white.scss"; +@import "highlight/dark.scss"; + +/** + * UI themes: + */ +@import "themes/ui_basic.scss"; +@import "themes/ui_mars.scss"; +@import "themes/ui_modern.scss"; +@import "themes/ui_gray.scss"; +@import "themes/ui_color.scss"; + +/** + * Styles for JS behaviors. + */ +@import "behaviors.scss"; + diff --git a/app/assets/stylesheets/common.scss b/app/assets/stylesheets/common.scss index 44bfb619ead..6d4c815106b 100644 --- a/app/assets/stylesheets/common.scss +++ b/app/assets/stylesheets/common.scss @@ -13,20 +13,12 @@ body { margin: 0 0; } -.container .sidebar { - width: 200px; - height: 100%; - min-height: 450px; - float: right; -} - - .visible_link, .author_link { color: $link_color; } -.help li { color:#111 } +.help li { color:$style_color; } .back_link { text-decoration: underline; @@ -65,6 +57,9 @@ table a code { background: url(ajax_loader.gif) no-repeat center center; width: 40px; height: 40px; + &.loading-gray { + background: url(ajax_loader_gray.gif) no-repeat center center; + } } /** FLASH message **/ @@ -96,28 +91,17 @@ table a code { margin-right:50px } -.handle:hover { - cursor: move; -} - span.update-author { display: block; -} -span.update-author { color: #999; font-weight: normal; font-style: italic; -} -span.update-author strong { - font-weight: bold; - font-style: normal; + strong { + font-weight: bold; + font-style: normal; + } } -/** UPDATE ITEM **/ -span.update-author { - display: block; -} -/** END UPDATE ITEM **/ .dashboard-loader { float: left; margin: 10px; @@ -264,21 +248,6 @@ input.git_clone_url { } -/** bordered list **/ -ul.bordered-list { - margin: 5px 0px; - padding: 0px; - li { - padding: 5px 0; - border-bottom: 1px solid #EEE; - overflow: hidden; - display: block; - margin: 0px; - } -} - -ul.bordered-list li:last-child { border:none } - .line_holder { &:hover { td { @@ -316,98 +285,6 @@ p.time { } -.ico { - background: url("images.png") no-repeat -85px -77px; - width: 19px; - height: 16px; - float: left; - position: relative; - margin-right: 10px; - top: 8px; - - &.project { - background-position: -37px -77px; - } - - &.activities { - background-position:-162px -22px; - } - &.projects { - background-position:-209px -21px; - } -} - -.leftbar { - h5, .title { - padding: 5px 10px; - } - - h4 { - font-size: 14px; - padding: 2px 10px; - color: #666; - border-bottom: 1px solid #f1f1f1; - } - a:last-child h4 { border: none; } - - a:hover { - h4 { - color: #111; - background: $hover; - border-color: #CCC; - .ico.project { - background-position:-209px -21px; - } - } - } - .bottom { - padding: 10px; - } -} - -.votes { - font-size: 13px; - line-height: 15px; - .progress { - height: 4px; - margin: 0; - .bar { - float: left; - height: 100%; - } - .bar-success { - @include linear-gradient(#62C462, #51A351); - background-color: #468847; - } - .bar-danger { - @include linear-gradient(#EE5F5B, #BD362F); - background-color: #B94A48; - } - } - .upvotes { - display: inline-block; - color: #468847; - } - .downvotes { - display: inline-block; - color: #B94A48; - } -} -.votes-block { - margin: 14px 6px 6px 0; - .downvotes { - float: right; - } -} -.votes-inline { - display: inline-block; - margin: 0 8px; - .progress { - display: inline-block; - padding: 0 0 2px; - width: 45px; - } -} /* Fix for readme code (stopped it from being yellow) */ .readme { @@ -420,7 +297,6 @@ p.time { } } - .highlight_word { background: #EEDC94; } @@ -428,23 +304,16 @@ p.time { .status_info { font-size: 14px; padding: 5px 15px; - line-height: 24px; - width: 60px; + line-height: 26px; text-align: center; - float: left; - margin-right: 20px; + float: right; + position: relative; + top: -5px; + @include border-radius(4px); - &.success { - background: #5BB75B; - color: white; - text-shadow: 0 1px #111; - border-color: #9A9; - } &.error { background: #DA4E49; - border-color: #BD362F; - color: white; - text-shadow: 0 1px #111; + color: #FFF; } } @@ -463,16 +332,6 @@ p.time { height: 150px; } -.gitlab_pagination { - span a { color: $link_color; } - .prev, .next, .current, .page a { - padding: 10px; - } - .current { - border-bottom: 2px solid $style_color; - } -} - // Fixes alignment on notes. .new_note { label { @@ -647,9 +506,14 @@ pre { } } -.milestone .progress { - margin-bottom: 0; - margin-top: 4px; +.milestone { + &.milestone-closed { + background: #eee; + } + .progress { + margin-bottom: 0; + margin-top: 4px; + } } .float-link { diff --git a/app/assets/stylesheets/gitlab_bootstrap.scss b/app/assets/stylesheets/gitlab_bootstrap.scss new file mode 100644 index 00000000000..f53e0e50bab --- /dev/null +++ b/app/assets/stylesheets/gitlab_bootstrap.scss @@ -0,0 +1,26 @@ +/** Override bootstrap variables **/ +$baseFontSize: 13px !default; +$baseLineHeight: 18px !default; + +// BOOTSTRAP +@import "bootstrap"; +@import "bootstrap/responsive-utilities"; +@import "bootstrap/responsive-1200px-min"; + +@import "font-awesome"; + +/** + * GitLab bootstrap. + * Overrides some styles of twitter bootstrap. + * Also give some common classes for GitLab app + */ +@import "gitlab_bootstrap/variables.scss"; +@import "gitlab_bootstrap/fonts.scss"; +@import "gitlab_bootstrap/mixins.scss"; +@import "gitlab_bootstrap/common.scss"; +@import "gitlab_bootstrap/typography.scss"; +@import "gitlab_bootstrap/buttons.scss"; +@import "gitlab_bootstrap/blocks.scss"; +@import "gitlab_bootstrap/files.scss"; +@import "gitlab_bootstrap/tables.scss"; +@import "gitlab_bootstrap/lists.scss"; diff --git a/app/assets/stylesheets/gitlab_bootstrap/blocks.scss b/app/assets/stylesheets/gitlab_bootstrap/blocks.scss index ecd6cf7e4e8..f9c8b7b05ea 100644 --- a/app/assets/stylesheets/gitlab_bootstrap/blocks.scss +++ b/app/assets/stylesheets/gitlab_bootstrap/blocks.scss @@ -31,6 +31,7 @@ .middle_box_content, .bottom_box_content { padding: 15px; + word-wrap: break-word; pre { background: none !important; @@ -40,6 +41,15 @@ } } + .top_box_content { + .box-title { + color: $style_color; + font-size: 18px; + font-weight: normal; + line-height: 28px; + } + } + .middle_box_content { @include border-radius(0); border: none; @@ -64,7 +74,7 @@ border: 1px solid #eaeaea; @include border-radius(4px); - + border-color: #CCC; @include solid-shade; @@ -83,6 +93,10 @@ border-top: 1px solid #eaeaea; border-bottom: 1px solid #bbb; + > a { + text-shadow: 0 1px 1px #fff; + } + &.small { line-height: 28px; font-size: 14px; @@ -138,19 +152,6 @@ } } - li, .wll { - padding: 10px; - &:first-child { - @include border-radius(4px 4px 0 0); - border-top: none; - } - - &:last-child { - @include border-radius(0 0 4px 4px); - border: none; - } - } - .ui-box-body { padding: 10px; } diff --git a/app/assets/stylesheets/gitlab_bootstrap/common.scss b/app/assets/stylesheets/gitlab_bootstrap/common.scss index 9a4f2e80f87..3bb7cdbf706 100644 --- a/app/assets/stylesheets/gitlab_bootstrap/common.scss +++ b/app/assets/stylesheets/gitlab_bootstrap/common.scss @@ -10,11 +10,6 @@ /** COMMON CLASSES **/ .left { float:left } .right { float:right!important } -.width-50p { width:50% } -.width-49p { width:49% } -.width-30p { width:30% } -.width-65p { width:65% } -.width-100p { width:100% } .append-bottom-10 { margin-bottom:10px } .append-bottom-20 { margin-bottom:20px } .prepend-top-10 { margin-top:10px } @@ -30,6 +25,7 @@ .borders { border: 1px solid #ccc; @include shade; } .hint { font-style: italic; color: #999; } .light { color: #888 } +.tiny { font-weight: normal } /** PILLS & TABS**/ .nav-pills a:hover { background-color: #888; } @@ -99,18 +95,21 @@ input[type='search'].search-text-input { border: 1px solid #ccc; } -fieldset legend { font-size: 17px; } - -ul.nav.nav-projects-tabs { - @extend .nav-tabs; +input[type='text'].danger { + background: #F2DEDE!important; + border-color: #D66; + text-shadow: 0 1px 1px #fff +} - padding-left: 8px; +fieldset legend { font-size: 17px; } - li { - a { - padding: 4px 20px; - margin-top: 2px; - border-color: #DDD; - } +/** PAGINATION **/ +.gitlab_pagination { + span a { color: $link_color; } + .prev, .next, .current, .page a { + padding: 10px; + } + .current { + border-bottom: 2px solid $style_color; } } diff --git a/app/assets/stylesheets/gitlab_bootstrap/files.scss b/app/assets/stylesheets/gitlab_bootstrap/files.scss index e4924a49456..83954da525a 100644 --- a/app/assets/stylesheets/gitlab_bootstrap/files.scss +++ b/app/assets/stylesheets/gitlab_bootstrap/files.scss @@ -43,11 +43,15 @@ padding: 0 4px; } padding: 20px; - h1, h2 { - line-height: 46px; - } - h3, h4 { - line-height: 40px; + + h1 { font-size: 26px; line-height: 46px; } + h2 { font-size: 22px; line-height: 42px; } + h3 { font-size: 20px; line-height: 40px; } + h4 { font-size: 18px; line-height: 32px; } + h5 { font-size: 16px; line-height: 26px; } + + .white .highlight pre { + background: #f5f5f5; } } diff --git a/app/assets/stylesheets/fonts.scss b/app/assets/stylesheets/gitlab_bootstrap/fonts.scss index 88c966d18f7..88c966d18f7 100644 --- a/app/assets/stylesheets/fonts.scss +++ b/app/assets/stylesheets/gitlab_bootstrap/fonts.scss diff --git a/app/assets/stylesheets/gitlab_bootstrap/lists.scss b/app/assets/stylesheets/gitlab_bootstrap/lists.scss index 5bd087b080e..edaf3cef2cf 100644 --- a/app/assets/stylesheets/gitlab_bootstrap/lists.scss +++ b/app/assets/stylesheets/gitlab_bootstrap/lists.scss @@ -1,23 +1,38 @@ -/** LISTS **/ - -ul { - /** - * List li block element #1 - * - */ - .wll { +/** + * Well styled list + * + */ +.well-list { + margin: 0; + list-style: none; + li { background-color: #FFF; - padding: 10px 5px; + padding: 10px; min-height: 20px; border-bottom: 1px solid #eee; border-bottom: 1px solid rgba(0, 0, 0, 0.05); + &.disabled { + color: #888; + } + &.smoke { background-color: #f5f5f5; } + &:hover { background: $hover; border-bottom: 1px solid #ADF; } - &:last-child { border:none } + + &:first-child { + @include border-radius(4px 4px 0 0); + border-top: none; + } + + &:last-child { + @include border-radius(0 0 4px 4px); + border: none; + } + .author { color: #999; } p { @@ -29,6 +44,11 @@ ul { top: 3px; } } + + .well-title { + font-size: 14px; + line-height: 18px; + } } } @@ -39,3 +59,17 @@ 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 } + } +} diff --git a/app/assets/stylesheets/mixins.scss b/app/assets/stylesheets/gitlab_bootstrap/mixins.scss index 441a85f3410..81830368c4c 100644 --- a/app/assets/stylesheets/mixins.scss +++ b/app/assets/stylesheets/gitlab_bootstrap/mixins.scss @@ -57,4 +57,13 @@ @mixin solid-shade { @include box-shadow(0 0 0 3px #f1f1f1); -}
\ No newline at end of file +} + +@mixin header-font { + color: $style_color; + text-shadow: 0 1px 1px #FFF; + font-family: 'Korolev', sans-serif; + font-size: 28px; + line-height: 48px; + font-weight: normal; +} diff --git a/app/assets/stylesheets/variables.scss b/app/assets/stylesheets/gitlab_bootstrap/variables.scss index ba78c8351f4..869eb168c0d 100644 --- a/app/assets/stylesheets/variables.scss +++ b/app/assets/stylesheets/gitlab_bootstrap/variables.scss @@ -2,4 +2,4 @@ $primary_color: #2FA0BB; $link_color: #3A89A3; $style_color: #474D57; -$hover: #D9EDF7;
\ No newline at end of file +$hover: #D9EDF7; diff --git a/app/assets/stylesheets/highlight/dark.scss b/app/assets/stylesheets/highlight/dark.scss index 4196ea7ad29..6018ff7074d 100644 --- a/app/assets/stylesheets/highlight/dark.scss +++ b/app/assets/stylesheets/highlight/dark.scss @@ -1,7 +1,8 @@ .black .highlight { + background-color: #333; pre { - background-color: #333; color: #eee; + background: inherit; } .hll { display: block; background-color: darken($hover, 65%) } diff --git a/app/assets/stylesheets/jquery.ui.gitlab.css b/app/assets/stylesheets/jquery.ui.gitlab.css index 171857657b6..5c51600ba67 100644 --- a/app/assets/stylesheets/jquery.ui.gitlab.css +++ b/app/assets/stylesheets/jquery.ui.gitlab.css @@ -1,27 +1,3 @@ -/* - * jQuery UI CSS Framework 1.8.7 - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Theming/API - */ - -/* Layout helpers -----------------------------------*/ -.ui-helper-hidden { display: none; } -.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); } -.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } -.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } -.ui-helper-clearfix { display: inline-block; } -/* required comment for clearfix to work in Opera \*/ -* html .ui-helper-clearfix { height:1%; } -.ui-helper-clearfix { display:block; } -/* end clearfix */ -.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } - - /* Interaction Cues ----------------------------------*/ .ui-state-disabled { cursor: default !important; } @@ -141,26 +117,6 @@ .ui-widget-overlay { background: #262b33; opacity: .70;filter:Alpha(Opacity=70); } .ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #000000; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; } /* - * jQuery UI Resizable 1.8.7 - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Resizable#theming - */ -.ui-resizable { position: relative;} -.ui-resizable-handle { position: absolute; font-size: 0.1px; z-index: 999; display: block;} -.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } -.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } -.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } -.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } -.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } -.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } -.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } -.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } -.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;} -/* * jQuery UI Selectable 1.8.7 * * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) @@ -240,34 +196,7 @@ cursor: pointer; font-weight: bold; } -/* - * jQuery UI Slider 1.8.7 - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Slider#theming - */ -.ui-slider { position: relative; text-align: left; background: #d7d7d7; z-index: 1; } -.ui-slider { -moz-box-shadow: 0 1px 2px rgba(0,0,0,0.5) inset; -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.5) inset; box-shadow: 0 1px 2px rgba(0,0,0,0.5) inset; } -.ui-slider .ui-slider-handle { background: url(slider_handles.png) 0px -23px no-repeat; position: absolute; z-index: 2; width: 23px; height: 23px; cursor: default; border: none; outline: none; -moz-box-shadow: none; -webkit-box-shadow: none; box-shadow: none; } -.ui-slider .ui-state-hover, .ui-slider .ui-state-active { background-position: 0 0; } -.ui-slider .ui-slider-range { background: #a3cae0; position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } -.ui-slider .ui-slider-range { -moz-box-shadow: 0 1px 2px rgba(17,35,45,0.6) inset; -webkit-box-shadow: 0 1px 2px rgba(17,35,45,0.6) inset; box-shadow: 0 1px 2px rgba(17,35,45,0.6) inset; } - -.ui-slider-horizontal { height: 5px; } -.ui-slider-horizontal .ui-slider-handle { top: -8px; margin-left: -13px; } -.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } -.ui-slider-horizontal .ui-slider-range-min { left: 0; } -.ui-slider-horizontal .ui-slider-range-max { right: 0; } - -.ui-slider-vertical { width: 5px; height: 100px; } -.ui-slider-vertical .ui-slider-handle { left: -8px; margin-left: 0; margin-bottom: -13px; } -.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } -.ui-slider-vertical .ui-slider-range-min { bottom: 0; } -.ui-slider-vertical .ui-slider-range-max { top: 0; } /* * jQuery UI Datepicker 1.8.7 * @@ -326,45 +255,3 @@ .ui-datepicker table .ui-state-highlight { border-color: #ADE; } .ui-datepicker-calendar .ui-state-default { background: transparent; border-color: #FFF; } .ui-datepicker-calendar .ui-state-active { background: #D9EDF7; border-color: #ADE; color: #3A89A3; font-weight: bold; text-shadow: 0 1px 1px #fff; } - -/* with multiple calendars */ -.ui-datepicker.ui-datepicker-multi { width:auto; } -.ui-datepicker-multi .ui-datepicker-group { float:left; } -.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } -.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } -.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } -.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } -.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } -.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } -.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } -.ui-datepicker-row-break { clear:both; width:100%; } - - -/* Extra Input Field Styling */ -.ui-form textarea, .ui-form input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]) { - padding: 3px; - -webkit-border-radius: 2px; - -moz-border-radius: 2px; - border-radius: 2px; - border: 1px solid #cecece; - outline: none; - -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.1) inset, 0 1px 0 rgba(255,255,255,0.2); - -moz-box-shadow: 0 1px 3px rgba(0,0,0,0.1) inset, 0 1px 0 rgba(255,255,255,0.2); - box-shadow: 0 1px 3px rgba(0,0,0,0.1) inset, 0 1px 0 rgba(255,255,255,0.2); - -webkit-transition: all 250ms ease-in-out; - -moz-transition: all 250ms ease-in-out; - -o-transition: all 250ms ease-in-out; - transition: all 250ms ease-in-out; -} -.ui-form textarea:hover, .ui-form input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]):hover { - border: 1px solid #bdbdbd; - -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.2) inset, 0 1px 0 rgba(255,255,255,0.2); - -moz-box-shadow: 0 1px 3px rgba(0,0,0,0.2) inset, 0 1px 0 rgba(255,255,255,0.2); - box-shadow: 0 1px 3px rgba(0,0,0,0.2) inset, 0 1px 0 rgba(255,255,255,0.2); -} -.ui-form textarea:focus, .ui-form input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]):focus { - border: 1px solid #95bdd4; - -webkit-box-shadow: 0 2px 3px rgba(161,202,226,0.5) inset, 0 1px 0 rgba(255,255,255,0.2); - -moz-box-shadow: 0 2px 3px rgba(161,202,226,0.5) inset, 0 1px 0 rgba(255,255,255,0.2); - box-shadow: 0 2px 3px rgba(161,202,226,0.5) inset, 0 1px 0 rgba(255,255,255,0.2); -} diff --git a/app/assets/stylesheets/main.scss b/app/assets/stylesheets/main.scss deleted file mode 100644 index 98d755219d9..00000000000 --- a/app/assets/stylesheets/main.scss +++ /dev/null @@ -1,144 +0,0 @@ -/** Override bootstrap variables **/ -$baseFontSize: 13px !default; -$baseLineHeight: 18px !default; - -// BOOTSTRAP -@import "bootstrap"; -@import "bootstrap/responsive-utilities"; -@import "bootstrap/responsive-1200px-min"; - -// FONT AWESOME -@import "font-awesome"; - -/** - * Variables - * Contains colors - */ -@import "variables.scss"; - -/** - * Custom fonts - * Contains @font-face font Korolev and default $monotype - */ -@import "fonts.scss"; - -/** - * General mixins. - * Contains rounded borders, gradients and shades - */ -@import "mixins.scss"; - -/** - * Header of application. - * Contain application logo, search panel, profile icon - */ -@import "sections/header.scss"; - -/** - * Navigation menu of application. - * Panel with links to pages depends on project, profile or admin area - */ -@import "sections/nav.scss"; - -/** - * This file represent some UI that can be changed - * during web app restyle or theme select. - * - * Next items should be placed there - * - link, button colors - * - header restyles - * - main menu restyles - * - */ -@import "themes/ui_basic.scss"; - -/** - * UI themes: - */ -@import "themes/ui_mars.scss"; -@import "themes/ui_modern.scss"; -@import "themes/ui_gray.scss"; -@import "themes/ui_color.scss"; - -/** - * GitLab bootstrap. - * Overrides some styles of twitter bootstrap. - * Also give some common classes for GitLab app - */ -@import "gitlab_bootstrap/common.scss"; -@import "gitlab_bootstrap/typography.scss"; -@import "gitlab_bootstrap/buttons.scss"; -@import "gitlab_bootstrap/blocks.scss"; -@import "gitlab_bootstrap/files.scss"; -@import "gitlab_bootstrap/tables.scss"; -@import "gitlab_bootstrap/lists.scss"; - - -/** - * Most of application styles placed here. - * This file represent common UI that should not be changed between themes - * or project restyling like form width or user avatar class or commit title - * - * TODO: clean it - */ -@import "common.scss"; - -/** - * Styles necessary to support JS behaviours. - */ -@import "behaviors.scss"; - -/** - * Styles related to specific part of app - */ -@import "sections/commits.scss"; -@import "sections/issues.scss"; -@import "sections/projects.scss"; -@import "sections/merge_requests.scss"; -@import "sections/graph.scss"; -@import "sections/events.scss"; -@import "sections/themes.scss"; - -/** - * This scss file redefine chozen selectbox styles for - * project Branch/Tag select element - */ -@import "ref_select.scss"; - -/** - * Code (files list) styles. Browsing project files there - */ -@import "sections/tree.scss"; - -/** - * This file represent notes(comments) styles - */ -@import "sections/notes.scss"; - -/** - * This file represent profile styles - */ -@import "sections/profile.scss"; - -/** - * Devise styles - */ -@import "sections/login.scss"; - -/** - * CODE HIGHTLIGHT BASE - * - */ -@import "highlight/white.scss"; - -/** - * CODE HIGHTLIGHT DARK schema - * - */ -@import "highlight/dark.scss"; - -/** - * File Editor styles - * - */ -@import "sections/editor.scss"; diff --git a/app/assets/stylesheets/sections/commits.scss b/app/assets/stylesheets/sections/commits.scss index b96e460c4f3..1cae7b0c6b1 100644 --- a/app/assets/stylesheets/sections/commits.scss +++ b/app/assets/stylesheets/sections/commits.scss @@ -232,8 +232,6 @@ /** COMMIT ROW **/ .commit { - @extend .wll; - .browse_code_link_holder { @extend .span2; float: right; @@ -305,3 +303,17 @@ color: #fff; font-family: $monospace; } + + +.commits-compare-switch{ + background: url("switch_icon.png") no-repeat center center; + width: 16px; + height: 18px; + text-indent: -9999px; + float: left; + margin-right: 9px; + border: 1px solid #DDD; + @include border-radius(4px); + padding: 4px; + background-color: #EEE; +} diff --git a/app/assets/stylesheets/sections/events.scss b/app/assets/stylesheets/sections/events.scss index 28551d9a6ee..071a9c35468 100644 --- a/app/assets/stylesheets/sections/events.scss +++ b/app/assets/stylesheets/sections/events.scss @@ -31,7 +31,6 @@ * */ .event-item { - min-height: 40px; border-bottom: 1px solid #eee; .event-title { color: #333; @@ -50,14 +49,18 @@ } } .avatar { - width: 32px; + position: relative; + top: -3px; } .event_icon { + position: relative; float: right; border: 1px solid #EEE; padding: 5px; @include border-radius(5px); background: #F9F9F9; + margin-left: 10px; + top: -6px; img { width: 20px; } @@ -71,9 +74,8 @@ } } - padding: 15px 5px; + padding: 16px 5px; &:last-child { border:none } - .wll:hover { background:none } .event_commits { margin-top: 5px; diff --git a/app/assets/stylesheets/sections/header.scss b/app/assets/stylesheets/sections/header.scss index 4171c00ab8b..c1b210be1ab 100644 --- a/app/assets/stylesheets/sections/header.scss +++ b/app/assets/stylesheets/sections/header.scss @@ -44,14 +44,9 @@ header { background: url('logo_dark.png') no-repeat 0px 2px; float: left; margin-left: 2px; - font-size: 30px; - line-height: 48px; - font-weight: normal; - color: $style_color; - text-shadow: 0 1px 1px #FFF; padding-left: 45px; height: 40px; - font-family: 'Korolev', sans-serif; + @include header-font; } } } @@ -66,12 +61,7 @@ header { float: left; margin: 0; margin-right: 30px; - font-size: 30px; - line-height: 48px; - font-weight: normal; - color: $style_color; - text-shadow: 0 1px 1px #FFF; - font-family: 'Korolev', sans-serif; + @include header-font; } /** @@ -172,7 +162,7 @@ header { display: none; z-index: 100000; @include border-radius(4px); - width: 100px; + width: 130px; position: absolute; right: 5px; top: 38px; @@ -181,7 +171,7 @@ header { box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); a { color: #fff; - padding: 7px 10px; + padding: 12px 15px; display: block; text-shadow: none; border-bottom: 1px solid #666; @@ -204,8 +194,8 @@ header { } &:last-child { @include border-radius(0 0 5px 5px); - border-bottom: 0; - } + border-bottom: 0; + } } diff --git a/app/assets/stylesheets/sections/issues.scss b/app/assets/stylesheets/sections/issues.scss index ef3821f23ef..fd995728978 100644 --- a/app/assets/stylesheets/sections/issues.scss +++ b/app/assets/stylesheets/sections/issues.scss @@ -121,12 +121,3 @@ input.check_all_issues { #update_status { width: 100px; } - - -/** - * Milestones list - * - */ -.milestone { - @extend .wll; -} diff --git a/app/assets/stylesheets/sections/merge_requests.scss b/app/assets/stylesheets/sections/merge_requests.scss index a5ec1756e5f..4808117d02a 100644 --- a/app/assets/stylesheets/sections/merge_requests.scss +++ b/app/assets/stylesheets/sections/merge_requests.scss @@ -136,9 +136,3 @@ li.merge_request { } } } - -.status-badge { - height: 32px; - width: 100%; - @include border-radius(5px); -} diff --git a/app/assets/stylesheets/sections/nav.scss b/app/assets/stylesheets/sections/nav.scss index 595568fc059..bc19bc75a67 100644 --- a/app/assets/stylesheets/sections/nav.scss +++ b/app/assets/stylesheets/sections/nav.scss @@ -3,15 +3,13 @@ * */ ul.main_menu { - @include border-radius(4px); margin: auto; margin: 30px 0; - border: 1px solid #BBB; + margin-top: 10px; + border-bottom: 1px solid #DDD; height: 37px; - @include bg-gray-gradient; position: relative; overflow: hidden; - @include shade; .count { position: relative; top: -1px; @@ -24,9 +22,6 @@ ul.main_menu { line-height: 14px; text-align: center; color: #777; - background: #f2f2f2; - border-top: 1px solid #CCC; - @include border-radius(8px); } .label { background: $hover; @@ -38,23 +33,10 @@ ul.main_menu { margin: 0; display: table-cell; width: 1%; - border-right: 1px solid #DDD; - border-left: 1px solid #EEE; - border-bottom: 2px solid #CFCFCF; - - &:first-child{ - @include border-radius(5px 0 0 5px); - border-left: 0; - } - &.active { - background-color: #D5D5D5; - border-right: 1px solid #BBB; - border-left: 1px solid #BBB; - @include border-radius(0 0 1px 1px); - &:first-child{ - border-bottom: none; - border-left: none; + border-bottom: 2px solid #474D57; + a { + color: $style_color; } } @@ -73,10 +55,10 @@ ul.main_menu { a { display: block; text-align: center; - font-weight: bold; + font-weight: normal; height: 35px; line-height: 36px; - color: $style_color; + color: #777; text-shadow: 0 1px 1px white; padding: 0 10px; } diff --git a/app/assets/stylesheets/sections/projects.scss b/app/assets/stylesheets/sections/projects.scss index a230f296700..717f85024cc 100644 --- a/app/assets/stylesheets/sections/projects.scss +++ b/app/assets/stylesheets/sections/projects.scss @@ -4,12 +4,11 @@ } .side { - @extend .span4; @extend .right; .groups_box, .projects_box { - h5 { + > h5 { color: $style_color; font-size: 16px; text-shadow: 0 1px 1px #fff; @@ -17,37 +16,22 @@ line-height: 32px; font-size: 14px; } - ul { - li { - padding: 0; - a { - display: block; - .group_name { - font-size: 14px; - line-height: 18px; - } - .project_name { - color: #4fa2bd; - font-size: 14px; - line-height: 18px; - } - .arrow { - float: right; - padding: 10px; - margin: 0; - } - .last_activity { - padding-top: 5px; - display: block; - span, strong { - font-size: 12px; - color: #666; - } - } + .nav-projects-tabs li { padding: 0; } + .well-list { + .arrow { + float: right; + padding: 10px; + margin: 0; + } + .last_activity { + padding-top: 5px; + display: block; + span, strong { + font-size: 12px; + color: #666; } } } - @extend .leftbar; @extend .ui-box; } } @@ -117,3 +101,25 @@ } } + +ul.nav.nav-projects-tabs { + @extend .nav-tabs; + + padding-left: 8px; + + li { + a { + padding: 4px 20px; + margin-top: 2px; + border-color: #DDD; + background-color: #EEE; + text-shadow: 0 1px 1px white; + color: #555; + } + &.active { + a { + font-weight: bold; + } + } + } +} diff --git a/app/assets/stylesheets/sections/snippets.scss b/app/assets/stylesheets/sections/snippets.scss new file mode 100644 index 00000000000..3944814fc3e --- /dev/null +++ b/app/assets/stylesheets/sections/snippets.scss @@ -0,0 +1,9 @@ +.snippet.file_holder { + .file_title { + .snippet-file-name { + position: relative; + top: -4px; + left: -4px; + } + } +} diff --git a/app/assets/stylesheets/sections/votes.scss b/app/assets/stylesheets/sections/votes.scss new file mode 100644 index 00000000000..4686f5422dc --- /dev/null +++ b/app/assets/stylesheets/sections/votes.scss @@ -0,0 +1,43 @@ +.votes { + font-size: 13px; + line-height: 15px; + .progress { + height: 4px; + margin: 0; + .bar { + float: left; + height: 100%; + } + .bar-success { + @include linear-gradient(#62C462, #51A351); + background-color: #468847; + } + .bar-danger { + @include linear-gradient(#EE5F5B, #BD362F); + background-color: #B94A48; + } + } + .upvotes { + display: inline-block; + color: #468847; + } + .downvotes { + display: inline-block; + color: #B94A48; + } +} +.votes-block { + margin: 14px 6px 6px 0; + .downvotes { + float: right; + } +} +.votes-inline { + display: inline-block; + margin: 0 8px; + .progress { + display: inline-block; + padding: 0 0 2px; + width: 45px; + } +} diff --git a/app/assets/stylesheets/themes/ui_basic.scss b/app/assets/stylesheets/themes/ui_basic.scss index fee179899ce..b377727779a 100644 --- a/app/assets/stylesheets/themes/ui_basic.scss +++ b/app/assets/stylesheets/themes/ui_basic.scss @@ -4,18 +4,6 @@ * */ .ui_basic { - /* - * Common styles - * - */ - a { - color: $link_color; - &:hover { - text-decoration: none; - color: $primary_color; - } - } - .app_logo { .separator { margin-left: 0; |
