From ef2679d0b9c0b145085725cf75203d7851fcc143 Mon Sep 17 00:00:00 2001
From: Stan Hu <stanhu@gmail.com>
Date: Tue, 22 Sep 2015 11:17:36 -0700
Subject: Make commit graphs responsive to window width changes

Closes #2653
---
 app/views/projects/graphs/commits.html.haml | 76 +++++++++++++----------------
 1 file changed, 35 insertions(+), 41 deletions(-)

(limited to 'app')

diff --git a/app/views/projects/graphs/commits.html.haml b/app/views/projects/graphs/commits.html.haml
index bf0cac539b8..112be875b6b 100644
--- a/app/views/projects/graphs/commits.html.haml
+++ b/app/views/projects/graphs/commits.html.haml
@@ -32,61 +32,55 @@
     %div
       %p.slead
         Commits per day of month
-      %canvas#month-chart{width: 800, height: 400}
+      %canvas#month-chart
 .row
   .col-md-6
     %div
       %p.slead
         Commits per day hour (UTC)
-      %canvas#hour-chart{width: 800, height: 400}
+      %canvas#hour-chart
   .col-md-6
     %div
       %p.slead
         Commits per weekday
-      %canvas#weekday-chart{width: 800, height: 400}
+      %canvas#weekday-chart
 
 :coffeescript
-  data = {
-    labels : #{@commits_per_time.keys.to_json},
-    datasets : [{
-      fillColor : "rgba(220,220,220,0.5)",
-      strokeColor : "rgba(220,220,220,1)",
-      barStrokeWidth: 1,
-      barValueSpacing: 1,
-      barDatasetSpacing: 1,
-      data : #{@commits_per_time.values.to_json}
-    }]
-  }
+  responsiveChart = (selector, data) ->
+    options = { "scaleOverlay": true, responsive: true, pointHitDetectionRadius: 2, maintainAspectRatio: false }
 
-  ctx = $("#hour-chart").get(0).getContext("2d");
-  new Chart(ctx).Bar(data,{"scaleOverlay": true, responsive: true, pointHitDetectionRadius: 2})
+    # get selector by context
+    ctx = selector.get(0).getContext("2d")
+    # pointing parent container to make chart.js inherit its width
+    container = $(selector).parent()
 
-  data = {
-    labels : #{@commits_per_week_days.keys.to_json},
-    datasets : [{
-      fillColor : "rgba(220,220,220,0.5)",
-      strokeColor : "rgba(220,220,220,1)",
-      barStrokeWidth: 1,
-      barValueSpacing: 1,
-      barDatasetSpacing: 1,
-      data : #{@commits_per_week_days.values.to_json}
-    }]
-  }
+    generateChart = ->
+      selector.attr('width', $(container).width())
+      new Chart(ctx).Bar(data, options)
+
+    # enabling auto-resizing
+    $(window).resize( generateChart )
 
-  ctx = $("#weekday-chart").get(0).getContext("2d");
-  new Chart(ctx).Bar(data,{"scaleOverlay": true, responsive: true, pointHitDetectionRadius: 2})
+    generateChart()
 
-  data = {
-    labels : #{@commits_per_month.keys.to_json},
-    datasets : [{
-      fillColor : "rgba(220,220,220,0.5)",
-      strokeColor : "rgba(220,220,220,1)",
-      barStrokeWidth: 1,
-      barValueSpacing: 1,
-      barDatasetSpacing: 1,
-      data : #{@commits_per_month.values.to_json}
-    }]
+  chartData = (keys, values) ->
+    data = {
+      labels : keys,
+      datasets : [{
+        fillColor : "rgba(220,220,220,0.5)",
+        strokeColor : "rgba(220,220,220,1)",
+        barStrokeWidth: 1,
+        barValueSpacing: 1,
+        barDatasetSpacing: 1,
+        data : values
+      }]
   }
 
-  ctx = $("#month-chart").get(0).getContext("2d");
-  new Chart(ctx).Bar(data, {"scaleOverlay": true, responsive: true, pointHitDetectionRadius: 2})
+  hourData = chartData(#{@commits_per_time.keys.to_json}, #{@commits_per_time.values.to_json})
+  responsiveChart($('#hour-chart'), hourData)
+
+  dayData = chartData(#{@commits_per_week_days.keys.to_json}, #{@commits_per_week_days.values.to_json})
+  responsiveChart($('#weekday-chart'), dayData)
+
+  monthData = chartData(#{@commits_per_month.keys.to_json}, #{@commits_per_month.values.to_json})
+  responsiveChart($('#month-chart'), monthData)
-- 
cgit v1.2.1


From 64e0dfa5306aebdedeb65f2a6db95f4d2314f143 Mon Sep 17 00:00:00 2001
From: Robert Speicher <rspeicher@gmail.com>
Date: Tue, 22 Sep 2015 18:26:51 -0400
Subject: Prevent double-prefixing of help page paths

Prior, because the link "api/README.md" was matched twice, the first
link became "help/help/api/README.md". Now we do a negative lookahead to
make sure the link doesn't start with `help/`.

This fix is still not ideal, see TODO note.
---
 app/controllers/help_controller.rb | 18 ++++++++++++++++++
 app/views/help/index.html.haml     |  6 +-----
 2 files changed, 19 insertions(+), 5 deletions(-)

(limited to 'app')

diff --git a/app/controllers/help_controller.rb b/app/controllers/help_controller.rb
index ad00948da51..7283c4f4a4c 100644
--- a/app/controllers/help_controller.rb
+++ b/app/controllers/help_controller.rb
@@ -4,6 +4,8 @@ class HelpController < ApplicationController
   layout 'help'
 
   def index
+    @help_index = File.read(Rails.root.join('doc', 'README.md'))
+    prefix_help_links!(@help_index)
   end
 
   def show
@@ -57,6 +59,22 @@ class HelpController < ApplicationController
     params
   end
 
+  # Prefix links in a Markdown document with `help/` unless they already have
+  # been
+  #
+  # TODO (rspeicher): This should be a pipeline filter that only gets included
+  # for help pages, and it should operate on the Nokogiri doc to be more robust.
+  #
+  # text - Markdown String
+  #
+  # Modifies `text` in-place
+  def prefix_help_links!(text)
+    # Match text inside a Markdown link unless it already starts with `help/`
+    #
+    # See http://rubular.com/r/nwwhzH6Z8X
+    text.gsub!(%r{(\]\()(?!help\/)([^\)\(]+)(\))}x, '\1help/\2\3')
+  end
+
   PATH_SEPS = Regexp.union(*[::File::SEPARATOR, ::File::ALT_SEPARATOR].compact)
 
   # Taken from ActionDispatch::FileHandler
diff --git a/app/views/help/index.html.haml b/app/views/help/index.html.haml
index f492aaf4c0a..ab7ed1b5d95 100644
--- a/app/views/help/index.html.haml
+++ b/app/views/help/index.html.haml
@@ -27,11 +27,7 @@
   .col-md-8
     .documentation-index
       = preserve do
-        - readme_text = File.read(Rails.root.join("doc", "README.md"))
-        - text = readme_text.dup
-        - readme_text.scan(/\]\(([^(]+)\)/) { |match| text.gsub!(match.first, "help/#{match.first}") }
-        = markdown text
-
+        = markdown(@help_index)
   .col-md-4
     .panel.panel-default
       .panel-heading
-- 
cgit v1.2.1


From 95f73a68fa3ff235c35217b1c72666c5bad6ce03 Mon Sep 17 00:00:00 2001
From: Robert Speicher <rspeicher@gmail.com>
Date: Wed, 23 Sep 2015 00:24:17 -0400
Subject: Simplify help path prefixing

---
 app/controllers/help_controller.rb | 21 ++++-----------------
 1 file changed, 4 insertions(+), 17 deletions(-)

(limited to 'app')

diff --git a/app/controllers/help_controller.rb b/app/controllers/help_controller.rb
index 7283c4f4a4c..55050615473 100644
--- a/app/controllers/help_controller.rb
+++ b/app/controllers/help_controller.rb
@@ -5,7 +5,10 @@ class HelpController < ApplicationController
 
   def index
     @help_index = File.read(Rails.root.join('doc', 'README.md'))
-    prefix_help_links!(@help_index)
+
+    # Prefix Markdown links with `help/` unless they already have been
+    # See http://rubular.com/r/nwwhzH6Z8X
+    @help_index.gsub!(/(\]\()(?!help\/)([^\)\(]+)(\))/, '\1help/\2\3')
   end
 
   def show
@@ -59,22 +62,6 @@ class HelpController < ApplicationController
     params
   end
 
-  # Prefix links in a Markdown document with `help/` unless they already have
-  # been
-  #
-  # TODO (rspeicher): This should be a pipeline filter that only gets included
-  # for help pages, and it should operate on the Nokogiri doc to be more robust.
-  #
-  # text - Markdown String
-  #
-  # Modifies `text` in-place
-  def prefix_help_links!(text)
-    # Match text inside a Markdown link unless it already starts with `help/`
-    #
-    # See http://rubular.com/r/nwwhzH6Z8X
-    text.gsub!(%r{(\]\()(?!help\/)([^\)\(]+)(\))}x, '\1help/\2\3')
-  end
-
   PATH_SEPS = Regexp.union(*[::File::SEPARATOR, ::File::ALT_SEPARATOR].compact)
 
   # Taken from ActionDispatch::FileHandler
-- 
cgit v1.2.1


From a7b0ee3fd17d4e2afd427606b002d3a9f7c6673d Mon Sep 17 00:00:00 2001
From: Stan Hu <stanhu@gmail.com>
Date: Tue, 22 Sep 2015 21:56:27 -0700
Subject: Fix cases where Markdown did not render links in activity feed

HTML would be stripped in `truncate_if_block` when a comment had multiple lines
and the first wasn't long enough to be truncated. The use of `node.content` would
strip all HTML tags. Using `node.inner_html` retains these tags and puts the
"..." in between paragraph tags.

Closes #2586
---
 app/helpers/gitlab_markdown_helper.rb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'app')

diff --git a/app/helpers/gitlab_markdown_helper.rb b/app/helpers/gitlab_markdown_helper.rb
index 78bf25f55e7..153a44870f6 100644
--- a/app/helpers/gitlab_markdown_helper.rb
+++ b/app/helpers/gitlab_markdown_helper.rb
@@ -165,7 +165,7 @@ module GitlabMarkdownHelper
   # and return true.  Otherwise return false.
   def truncate_if_block(node, truncated)
     if node.element? && node.description.block? && !truncated
-      node.content = "#{node.content}..." if node.next_sibling
+      node.inner_html = "#{node.inner_html}..." if node.next_sibling
       true
     else
       truncated
-- 
cgit v1.2.1


From 9103602620ec4eb527ac45954a78b3f3466e97a2 Mon Sep 17 00:00:00 2001
From: Andrey <ad@2d-arts.com>
Date: Tue, 22 Sep 2015 15:14:26 +0200
Subject: Improve UI for rendered markdown

---
 app/assets/stylesheets/base/mixins.scss        | 72 ++++++++++++++++++++------
 app/assets/stylesheets/generic/typography.scss |  8 ++-
 2 files changed, 63 insertions(+), 17 deletions(-)

(limited to 'app')

diff --git a/app/assets/stylesheets/base/mixins.scss b/app/assets/stylesheets/base/mixins.scss
index a2f6c3e21f4..421588f64d8 100644
--- a/app/assets/stylesheets/base/mixins.scss
+++ b/app/assets/stylesheets/base/mixins.scss
@@ -93,46 +93,87 @@
   }
 
   h1 {
-    margin-top: 45px;
-    font-size: 2.5em;
+    font-size: 1.3em;
+    font-weight: 600;
+    margin: 24px 0 12px 0;
+    padding: 0 0 10px 0;
+    border-bottom: 1px solid #e7e9ed;
+    color: #313236;
   }
 
   h2 {
-    margin-top: 40px;
-    font-size: 2em;
+    font-size: 1.2em;
+    font-weight: 600;
+    margin: 24px 0 12px 0;
+    color: #313236;
   }
 
   h3 {
-    margin-top: 35px;
-    font-size: 1.5em;
+    margin: 24px 0 12px 0;
+    font-size: 1.25em;
   }
 
   h4 {
-    margin-top: 30px;
-    font-size: 1.2em;
+    margin: 24px 0 12px 0;
+    font-size: 1.1em;
+  }
+  
+  h5 {
+    margin: 24px 0 12px 0;
+    font-size: 1em;
+  }
+  
+  h6 {
+    margin: 24px 0 12px 0;
+    font-size: 0.90em;
   }
 
   blockquote {
-    color: #888;
+    padding: 8px 21px;
+    margin: 12px 0 12px;
+    border-left: 3px solid #e7e9ed;
+  }
+  
+  blockquote p {
+    color: #7f8fa4 !important;
     font-size: 15px;
     line-height: 1.5;
   }
-
+  
+  p {
+    color:#5c5d5e;
+    margin:6px 0 0 0;
+  }
+  
   table {
     @extend .table;
     @extend .table-bordered;
+    margin: 12px 0 12px 0;
+    color: #5c5d5e;
     th {
-      background: #EEE;
-    }
+      background: #f8fafc;
+    } 
+  }
+  
+  pre {
+    margin: 12px 0 12px 0 !important;
+    background-color: #f8fafc !important;
+    font-size: 13px !important;
+    color: #5b6169 !important;
+    line-height: 1.6em !important;
   }
 
   p > code {
-    font-size: inherit;
     font-weight: inherit;
   }
 
+
+  ul {
+    color: #5c5d5e;
+  }
+  
   li {
-    line-height: 1.5;
+    line-height: 1.6em;
   }
 
   a[href*="/uploads/"], a[href*="storage.googleapis.com/google-code-attachments/"] {
@@ -152,6 +193,7 @@
   }
 }
 
+
 @mixin str-truncated($max_width: 82%) {
   display: inline-block;
   overflow: hidden;
@@ -183,7 +225,7 @@
     &.active {
       background: #f9f9f9;
       a {
-        font-weight: bold;
+        font-weight: 600;
       }
     }
 
diff --git a/app/assets/stylesheets/generic/typography.scss b/app/assets/stylesheets/generic/typography.scss
index d5f0d86a307..7a8a17ced99 100644
--- a/app/assets/stylesheets/generic/typography.scss
+++ b/app/assets/stylesheets/generic/typography.scss
@@ -55,6 +55,7 @@ a > code {
   @include md-typography;
 
   word-wrap: break-word;
+  padding: 7px;
 
   /* Link to current header. */
   h1, h2, h3, h4, h5, h6 {
@@ -83,9 +84,12 @@ a > code {
     }
   }
 
-  ul {
+  ul,ol {
     padding: 0;
-    margin: 0 0 9px 25px !important;
+    margin: 6px 0 6px 18px !important;
+  }
+  ol {
+    color: #5c5d5e;
   }
 }
 
-- 
cgit v1.2.1


From 0a57c3f610433d0093ecc1f638fce339c4128abc Mon Sep 17 00:00:00 2001
From: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Date: Wed, 23 Sep 2015 16:52:26 +0200
Subject: Refactor Project#enable_ci method

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
---
 app/models/project.rb | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)

(limited to 'app')

diff --git a/app/models/project.rb b/app/models/project.rb
index c5c94cbfba2..a7ea1236b86 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -747,15 +747,6 @@ class Project < ActiveRecord::Base
     service.save
 
     # Create Ci::Project
-    params = OpenStruct.new({
-      id:                  self.id,
-      name_with_namespace: self.name_with_namespace,
-      path_with_namespace: self.path_with_namespace,
-      web_url:             self.web_url,
-      default_branch:      self.default_branch,
-      ssh_url_to_repo:     self.ssh_url_to_repo
-    })
-
-    Ci::CreateProjectService.new.execute(user, params)
+    Ci::CreateProjectService.new.execute(user, self)
   end
 end
-- 
cgit v1.2.1


From 15bf2e44572b409e97f5cad5fed0ffbf4fd83314 Mon Sep 17 00:00:00 2001
From: Robert Speicher <rspeicher@gmail.com>
Date: Wed, 23 Sep 2015 12:58:00 -0400
Subject: Fix top margin for sign-in button on public pages

Closes #2615
---
 app/assets/stylesheets/generic/common.scss | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'app')

diff --git a/app/assets/stylesheets/generic/common.scss b/app/assets/stylesheets/generic/common.scss
index 48fad7701ef..b659717b4e1 100644
--- a/app/assets/stylesheets/generic/common.scss
+++ b/app/assets/stylesheets/generic/common.scss
@@ -302,7 +302,7 @@ table {
 }
 
 .btn-sign-in {
-  margin-top: 15px;
+  margin-top: 8px;
   text-shadow: none;
 }
 
-- 
cgit v1.2.1


From 3d177a818f1c623704df94d6ab6649cf9f70dbbc Mon Sep 17 00:00:00 2001
From: Zeger-Jan van de Weg <mail@zjvandeweg.nl>
Date: Thu, 17 Sep 2015 20:24:47 +0200
Subject: Add links to first and/or last page with kaminari

Also update Kaminari gem to the latest version
---
 app/views/kaminari/gitlab/_first_page.html.haml | 2 +-
 app/views/kaminari/gitlab/_last_page.html.haml  | 2 +-
 app/views/kaminari/gitlab/_paginator.html.haml  | 9 +++++++--
 3 files changed, 9 insertions(+), 4 deletions(-)

(limited to 'app')

diff --git a/app/views/kaminari/gitlab/_first_page.html.haml b/app/views/kaminari/gitlab/_first_page.html.haml
index 41c9c0b3af6..ada7306d98d 100644
--- a/app/views/kaminari/gitlab/_first_page.html.haml
+++ b/app/views/kaminari/gitlab/_first_page.html.haml
@@ -5,5 +5,5 @@
 -#    num_pages:     total number of pages
 -#    per_page:      number of items to fetch per page
 -#    remote:        data-remote
-%span.first
+%li.first
   = link_to_unless current_page.first?, raw(t 'views.pagination.first'), url, remote: remote
diff --git a/app/views/kaminari/gitlab/_last_page.html.haml b/app/views/kaminari/gitlab/_last_page.html.haml
index b03a206224c..3431d029bcc 100644
--- a/app/views/kaminari/gitlab/_last_page.html.haml
+++ b/app/views/kaminari/gitlab/_last_page.html.haml
@@ -5,5 +5,5 @@
 -#    num_pages:     total number of pages
 -#    per_page:      number of items to fetch per page
 -#    remote:        data-remote
-%span.last
+%li.last
   = link_to_unless current_page.last?, raw(t 'views.pagination.last'), url, {remote: remote}
diff --git a/app/views/kaminari/gitlab/_paginator.html.haml b/app/views/kaminari/gitlab/_paginator.html.haml
index b8d419b5894..2f645186921 100644
--- a/app/views/kaminari/gitlab/_paginator.html.haml
+++ b/app/views/kaminari/gitlab/_paginator.html.haml
@@ -8,10 +8,15 @@
 = paginator.render do
   %div.gl-pagination
     %ul.pagination.clearfix
-      = prev_page_tag unless current_page.first?
+      - unless current_page.first?
+        = first_page_tag unless num_pages < 5 # As kaminari will always show the first 5 pages
+        = prev_page_tag
       - each_page do |page|
         - if page.left_outer? || page.right_outer? || page.inside_window?
           = page_tag page
         - elsif !page.was_truncated?
           = gap_tag
-      = next_page_tag unless current_page.last?
+      - unless current_page.last?
+        = next_page_tag
+        = last_page_tag unless num_pages < 5
+
-- 
cgit v1.2.1


From fe6ea911073a723e9472632e90363fafb9a50553 Mon Sep 17 00:00:00 2001
From: Zeger-Jan van de Weg <mail@zjvandeweg.nl>
Date: Wed, 23 Sep 2015 13:39:58 +0200
Subject: Fix styling conform the new style

Add my name to the right page of the changelog
---
 app/assets/stylesheets/generic/pagination.scss | 2 ++
 1 file changed, 2 insertions(+)

(limited to 'app')

diff --git a/app/assets/stylesheets/generic/pagination.scss b/app/assets/stylesheets/generic/pagination.scss
index a937677ebdc..6677f94dafd 100644
--- a/app/assets/stylesheets/generic/pagination.scss
+++ b/app/assets/stylesheets/generic/pagination.scss
@@ -9,6 +9,8 @@
     margin: 0;
     display: block;
 
+    li.first,
+    li.last,
     li.next,
     li.prev {
       > a {
-- 
cgit v1.2.1