Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorVSizov <fk@sphere.com>2011-10-15 20:56:53 +0400
committerVSizov <fk@sphere.com>2011-10-15 20:56:53 +0400
commitcb02f1cb82ad424ed6e9845e8654fa17e3c38351 (patch)
treec430f98daf7e31d730654f486e4db167293887f1 /app
parentde5d6e95566d4f9a6b673fcf3f95f84a5f96cb85 (diff)
Sortable issues
Diffstat (limited to 'app')
-rw-r--r--app/assets/javascripts/dashboard.js.coffee3
-rw-r--r--app/assets/javascripts/issues.js.coffee3
-rw-r--r--app/assets/javascripts/profile.js.coffee3
-rw-r--r--app/assets/javascripts/projects.js1
-rw-r--r--app/assets/stylesheets/projects.css.scss4
-rw-r--r--app/controllers/issues_controller.rb10
-rw-r--r--app/models/issue.rb2
-rw-r--r--app/models/project.rb2
-rw-r--r--app/views/issues/_show.html.haml2
-rw-r--r--app/views/issues/index.html.haml26
-rw-r--r--app/views/issues/index.js.haml1
11 files changed, 46 insertions, 11 deletions
diff --git a/app/assets/javascripts/dashboard.js.coffee b/app/assets/javascripts/dashboard.js.coffee
deleted file mode 100644
index 761567942fc..00000000000
--- a/app/assets/javascripts/dashboard.js.coffee
+++ /dev/null
@@ -1,3 +0,0 @@
-# Place all the behaviors and hooks related to the matching controller here.
-# All this logic will automatically be available in application.js.
-# You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/
diff --git a/app/assets/javascripts/issues.js.coffee b/app/assets/javascripts/issues.js.coffee
deleted file mode 100644
index 761567942fc..00000000000
--- a/app/assets/javascripts/issues.js.coffee
+++ /dev/null
@@ -1,3 +0,0 @@
-# Place all the behaviors and hooks related to the matching controller here.
-# All this logic will automatically be available in application.js.
-# You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/
diff --git a/app/assets/javascripts/profile.js.coffee b/app/assets/javascripts/profile.js.coffee
deleted file mode 100644
index 761567942fc..00000000000
--- a/app/assets/javascripts/profile.js.coffee
+++ /dev/null
@@ -1,3 +0,0 @@
-# Place all the behaviors and hooks related to the matching controller here.
-# All this logic will automatically be available in application.js.
-# You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/
diff --git a/app/assets/javascripts/projects.js b/app/assets/javascripts/projects.js
index dc13d006077..74f0e643c21 100644
--- a/app/assets/javascripts/projects.js
+++ b/app/assets/javascripts/projects.js
@@ -34,6 +34,7 @@ $(document).ready(function(){
e.preventDefault();
}
});
+
});
function focusSearch() {
diff --git a/app/assets/stylesheets/projects.css.scss b/app/assets/stylesheets/projects.css.scss
index 0ee40f512ac..fdfd2b8653b 100644
--- a/app/assets/stylesheets/projects.css.scss
+++ b/app/assets/stylesheets/projects.css.scss
@@ -539,3 +539,7 @@ tbody tr:nth-child(2n) td, tbody tr.even td {
float:left;
}
}
+
+.handle:hover{
+ cursor: move;
+}
diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb
index f8b4719809b..3e5f2898228 100644
--- a/app/controllers/issues_controller.rb
+++ b/app/controllers/issues_controller.rb
@@ -69,4 +69,14 @@ class IssuesController < ApplicationController
format.js { render :nothing => true }
end
end
+
+ def sort
+ @issues = @project.issues.all
+ @issues.each do |issue|
+ issue.position = params['issue'].index(issue.id.to_s) + 1
+ issue.save
+ end
+
+ render :nothing => true
+ end
end
diff --git a/app/models/issue.rb b/app/models/issue.rb
index 0399607efe6..9b1b923eaa0 100644
--- a/app/models/issue.rb
+++ b/app/models/issue.rb
@@ -21,6 +21,8 @@ class Issue < ActiveRecord::Base
scope :opened, where(:closed => false)
scope :closed, where(:closed => true)
scope :assigned, lambda { |u| where(:assignee_id => u.id)}
+
+ acts_as_list
end
# == Schema Information
#
diff --git a/app/models/project.rb b/app/models/project.rb
index 17b556c3471..06a36a275b9 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -3,7 +3,7 @@ require "grit"
class Project < ActiveRecord::Base
belongs_to :owner, :class_name => "User"
- has_many :issues, :dependent => :destroy
+ has_many :issues, :dependent => :destroy, :order => "position"
has_many :users_projects, :dependent => :destroy
has_many :users, :through => :users_projects
has_many :notes, :dependent => :destroy
diff --git a/app/views/issues/_show.html.haml b/app/views/issues/_show.html.haml
index 131d0d4c8a2..cf01020806a 100644
--- a/app/views/issues/_show.html.haml
+++ b/app/views/issues/_show.html.haml
@@ -1,6 +1,6 @@
%tr{ :id => dom_id(issue), :class => "issue", :url => project_issue_path(@project, issue) }
%td
- = image_tag gravatar_icon(issue.assignee.email), :class => "left", :width => 40, :style => "padding:0 5px;"
+ = image_tag gravatar_icon(issue.assignee.email), :class => ["left", "handle"], :width => 40, :style => "padding:0 5px;"
= truncate issue.assignee.name, :lenght => 20
%td ##{issue.id}
%td= html_escape issue.title
diff --git a/app/views/issues/index.html.haml b/app/views/issues/index.html.haml
index 7157d2c385d..6f4548a8066 100644
--- a/app/views/issues/index.html.haml
+++ b/app/views/issues/index.html.haml
@@ -22,3 +22,29 @@
:javascript
$('.delete-issue').live('ajax:success', function() {
$(this).closest('tr').fadeOut(); });
+
+ function setSortable(){
+ $('#issues-table>tbody').sortable({
+ axis: 'y',
+ dropOnEmpty: false,
+ handle: '.handle',
+ cursor: 'crosshair',
+ items: 'tr',
+ opacity: 0.4,
+ scroll: true,
+ update: function(){
+ $.ajax({
+ type: 'post',
+ data: $('#issues-table>tbody').sortable('serialize'),
+ dataType: 'script',
+ complete: function(request){
+ $('#issues-table>tbody').effect('highlight');
+ },
+ url: "#{sort_project_issues_path(@project)}"})
+ }
+ });
+ }
+
+ $(function(){
+ setSortable();
+ });
diff --git a/app/views/issues/index.js.haml b/app/views/issues/index.js.haml
index 1f051309233..bc18ac15151 100644
--- a/app/views/issues/index.js.haml
+++ b/app/views/issues/index.js.haml
@@ -1,2 +1,3 @@
:plain
$('#issues-table-holder').html("#{escape_javascript(render('issues'))}");
+ setSortable();