From a2eda66b30d737e3ca1a5fc17a7f36416939a41f Mon Sep 17 00:00:00 2001
From: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Date: Mon, 2 Jul 2012 21:51:48 +0300
Subject: [PATCH] Disable issues sort. Recent issues on top. Fixed tests

---
 app/assets/javascripts/issues.js             |  2 --
 app/assets/stylesheets/gitlab_bootstrap.scss |  1 +
 app/mailers/notify.rb                        |  3 ++-
 app/models/project.rb                        |  2 +-
 app/views/issues/_show.html.haml             |  1 +
 app/views/issues/index.html.haml             | 21 ---------------
 app/views/issues/index.js.haml               |  1 -
 config/initializers/1_settings.rb            | 11 +++++---
 lib/color.rb                                 |  2 ++
 spec/mailers/notify_spec.rb                  | 28 +++++++++-----------
 spec/models/project_hooks_spec.rb            |  2 +-
 spec/models/project_spec.rb                  |  2 +-
 12 files changed, 29 insertions(+), 47 deletions(-)

diff --git a/app/assets/javascripts/issues.js b/app/assets/javascripts/issues.js
index 69ed416107a..49936e3f0ee 100644
--- a/app/assets/javascripts/issues.js
+++ b/app/assets/javascripts/issues.js
@@ -51,7 +51,6 @@ function initIssuesSearch() {
       if (terms.length >= 2 || terms.length == 0) {
         $.get(href, { 'f': status, 'terms': terms, 'milestone_id': milestone_id }, function(response) {
           $('#issues-table').html(response);
-          setSortable();
         });
       }
     }
@@ -68,7 +67,6 @@ function initIssuesSearch() {
  */
 function issuesPage(){ 
   initIssuesSearch();
-  setSortable();
   $("#label_name").chosen();
   $("#assignee_id").chosen();
   $("#milestone_id").chosen();
diff --git a/app/assets/stylesheets/gitlab_bootstrap.scss b/app/assets/stylesheets/gitlab_bootstrap.scss
index 8c7d6989cd0..fa8d544e1e1 100644
--- a/app/assets/stylesheets/gitlab_bootstrap.scss
+++ b/app/assets/stylesheets/gitlab_bootstrap.scss
@@ -201,6 +201,7 @@ a:focus {
 .cred { color:#D12F19; }
 .cgreen { color:#44aa22; }
 .cblack { color:#111; }
+.cdark { color:#444 }
 .cwhite { color:#fff !important }
 
 /** COMMON STYLES **/
diff --git a/app/mailers/notify.rb b/app/mailers/notify.rb
index 37b442bce71..ee738b4c580 100644
--- a/app/mailers/notify.rb
+++ b/app/mailers/notify.rb
@@ -2,8 +2,9 @@ class Notify < ActionMailer::Base
   include Resque::Mailer
   add_template_helper ApplicationHelper
 
-  default_url_options[:host] = Gitlab.config.web_host
+  default_url_options[:host]     = Gitlab.config.web_host
   default_url_options[:protocol] = Gitlab.config.web_protocol
+  default_url_options[:port]     = Gitlab.config.web_port
 
   default from: Gitlab.config.email_from
 
diff --git a/app/models/project.rb b/app/models/project.rb
index 7cbc8928c60..cfdaa3f9c72 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -13,7 +13,7 @@ class Project < ActiveRecord::Base
   has_many :users,          :through => :users_projects
   has_many :events,         :dependent => :destroy
   has_many :merge_requests, :dependent => :destroy
-  has_many :issues,         :dependent => :destroy, :order => "closed, position"
+  has_many :issues,         :dependent => :destroy, :order => "closed, created_at DESC"
   has_many :milestones,     :dependent => :destroy
   has_many :users_projects, :dependent => :destroy
   has_many :notes,          :dependent => :destroy
diff --git a/app/views/issues/_show.html.haml b/app/views/issues/_show.html.haml
index 797d2387e31..7488032f92a 100644
--- a/app/views/issues/_show.html.haml
+++ b/app/views/issues/_show.html.haml
@@ -29,6 +29,7 @@
     %p.row_title= truncate(issue.title, :length => 100)
 
   %span.update-author
+    %small.cdark= "##{issue.id}"
     - if issue.assignee
       assigned to #{issue.assignee_name}
     - else
diff --git a/app/views/issues/index.html.haml b/app/views/issues/index.html.haml
index a8d0e9ca5af..7328fa88812 100644
--- a/app/views/issues/index.html.haml
+++ b/app/views/issues/index.html.haml
@@ -46,24 +46,3 @@
   $(function(){
     issuesPage();
   })
-
-  function setSortable(){
-    $('#issues-table').sortable({
-      axis: 'y',
-      dropOnEmpty: false,
-      handle: '.avatar',
-      items: 'li',
-      opacity: 0.4,
-      scroll: true,
-      update: function(){
-        $.ajax({
-        type: 'post',
-        data: $('#issues-table').sortable('serialize'),
-        dataType: 'script',
-        complete: function(request){
-          $('#issues-table').effect('highlight');
-        },
-        url: "#{sort_project_issues_path(@project)}"})
-        }
-      });
-  }
diff --git a/app/views/issues/index.js.haml b/app/views/issues/index.js.haml
index a534cfbf234..48d7f582be2 100644
--- a/app/views/issues/index.js.haml
+++ b/app/views/issues/index.js.haml
@@ -1,3 +1,2 @@
 :plain
   $('#issues-table').html("#{escape_javascript(render('issues'))}");
-  setSortable();
diff --git a/config/initializers/1_settings.rb b/config/initializers/1_settings.rb
index 7142047d9b3..a3b9ddd02a0 100644
--- a/config/initializers/1_settings.rb
+++ b/config/initializers/1_settings.rb
@@ -3,7 +3,7 @@ class Settings < Settingslogic
 
   class << self
     def web_protocol
-      self.web['protocol'] ||= web.https ? "https://" : "http://"
+      self.web['protocol'] ||= web.https ? "https" : "http"
     end
 
     def web_host 
@@ -18,10 +18,15 @@ class Settings < Settingslogic
       self['url'] ||= build_url
     end 
 
+    def web_port 
+      web['port'] ||= 80
+    end
+
     def build_url
       raw_url = self.web_protocol
-      raw_url << web.host
-      raw_url << ":#{web.port}" if web.port.to_i != 80
+      raw_url << "://"
+      raw_url << web_host
+      raw_url << ":#{web_port}" if web_port.to_i != 80
       raw_url
     end
 
diff --git a/lib/color.rb b/lib/color.rb
index 4eabe249c18..4723804e5f8 100644
--- a/lib/color.rb
+++ b/lib/color.rb
@@ -1,4 +1,6 @@
 module Color
+  extend self
+
   def colorize(text, color_code)
     "\033[#{color_code}#{text}\033[0m"
   end
diff --git a/spec/mailers/notify_spec.rb b/spec/mailers/notify_spec.rb
index aabb4334d0c..4df771b97fe 100644
--- a/spec/mailers/notify_spec.rb
+++ b/spec/mailers/notify_spec.rb
@@ -4,10 +4,6 @@ describe Notify do
   include EmailSpec::Helpers
   include EmailSpec::Matchers
 
-  before :all do
-    default_url_options[:host] = Gitlab.config.web_host
-  end
-
   let(:recipient) { Factory.create(:user, :email => 'recipient@example.com') }
   let(:project) { Factory.create(:project) }
 
@@ -18,7 +14,7 @@ describe Notify do
   end
 
   describe 'for new users, the email' do
-    let(:example_site_url) { root_url }
+    let(:example_site_path) { root_path }
     let(:new_user) { Factory.create(:user, :email => 'newguy@example.com') }
 
     subject { Notify.new_user_email(new_user.id, new_user.password) }
@@ -40,7 +36,7 @@ describe Notify do
     end
 
     it 'includes a link to the site' do
-      should have_body_text /#{example_site_url}/
+      should have_body_text /#{example_site_path}/
     end
   end
 
@@ -68,7 +64,7 @@ describe Notify do
           end
 
           it 'contains a link to the new issue' do
-            should have_body_text /#{project_issue_url project, issue}/
+            should have_body_text /#{project_issue_path project, issue}/
           end
         end
 
@@ -92,7 +88,7 @@ describe Notify do
           end
 
           it 'contains a link to the issue' do
-            should have_body_text /#{project_issue_url project, issue}/
+            should have_body_text /#{project_issue_path project, issue}/
           end
         end
       end
@@ -110,7 +106,7 @@ describe Notify do
           end
 
           it 'contains a link to the new merge request' do
-            should have_body_text /#{project_merge_request_url(project, merge_request)}/
+            should have_body_text /#{project_merge_request_path(project, merge_request)}/
           end
 
           it 'contains the source branch for the merge request' do
@@ -142,7 +138,7 @@ describe Notify do
           end
 
           it 'contains a link to the merge request' do
-            should have_body_text /#{project_merge_request_url project, merge_request}/
+            should have_body_text /#{project_merge_request_path project, merge_request}/
           end
 
         end
@@ -172,7 +168,7 @@ describe Notify do
       end
 
       describe 'on a project wall' do
-        let(:note_on_the_wall_url) { wall_project_url(project, :anchor => "note_#{note.id}") }
+        let(:note_on_the_wall_path) { wall_project_path(project, :anchor => "note_#{note.id}") }
 
         subject { Notify.note_wall_email(recipient.id, note.id) }
 
@@ -183,7 +179,7 @@ describe Notify do
         end
 
         it 'contains a link to the wall note' do
-          should have_body_text /#{note_on_the_wall_url}/
+          should have_body_text /#{note_on_the_wall_path}/
         end
       end
 
@@ -211,7 +207,7 @@ describe Notify do
 
       describe 'on a merge request' do
         let(:merge_request) { Factory.create(:merge_request, :project => project) }
-        let(:note_on_merge_request_url) { project_merge_request_url(project, merge_request, :anchor => "note_#{note.id}") }
+        let(:note_on_merge_request_path) { project_merge_request_path(project, merge_request, :anchor => "note_#{note.id}") }
         before(:each) { note.stub(:noteable).and_return(merge_request) }
 
         subject { Notify.note_merge_request_email(recipient.id, note.id) }
@@ -223,13 +219,13 @@ describe Notify do
         end
 
         it 'contains a link to the merge request note' do
-          should have_body_text /#{note_on_merge_request_url}/
+          should have_body_text /#{note_on_merge_request_path}/
         end
       end
 
       describe 'on an issue' do
         let(:issue) { Factory.create(:issue, :project => project) }
-        let(:note_on_issue_url) { project_issue_url(project, issue, :anchor => "note_#{note.id}") }
+        let(:note_on_issue_path) { project_issue_path(project, issue, :anchor => "note_#{note.id}") }
         before(:each) { note.stub(:noteable).and_return(issue) }
 
         subject { Notify.note_issue_email(recipient.id, note.id) }
@@ -241,7 +237,7 @@ describe Notify do
         end
 
         it 'contains a link to the issue note' do
-          should have_body_text /#{note_on_issue_url}/
+          should have_body_text /#{note_on_issue_path}/
         end
       end
     end
diff --git a/spec/models/project_hooks_spec.rb b/spec/models/project_hooks_spec.rb
index 9e2a9df2dbd..fcc969ceba5 100644
--- a/spec/models/project_hooks_spec.rb
+++ b/spec/models/project_hooks_spec.rb
@@ -106,7 +106,7 @@ describe Project, "Hooks" do
           it { should include(id: @commit.id) }
           it { should include(message: @commit.safe_message) }
           it { should include(timestamp: @commit.date.xmlschema) }
-          it { should include(url: "http://localhost/#{project.code}/commits/#{@commit.id}") }
+          it { should include(url: "#{Gitlab.config.url}/#{project.code}/commits/#{@commit.id}") }
 
           context "with a author" do
             subject { @data[:commits].first[:author] }
diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb
index 0c54ae0136a..381fe7592c9 100644
--- a/spec/models/project_spec.rb
+++ b/spec/models/project_spec.rb
@@ -46,7 +46,7 @@ describe Project do
 
   it "should return valid url to repo" do
     project = Project.new(:path => "somewhere")
-    project.url_to_repo.should == "git@localhost:somewhere.git"
+    project.url_to_repo.should == Gitlab.config.ssh_path + "somewhere.git"
   end
 
   it "should return path to repo" do
-- 
GitLab