Commit 15fa14f1 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

get rid off modal window for issue create/edit

parent 16bd018f
function switchToNewIssue(form){
$("#issues-table-holder").hide("slide", { direction: "left" }, 150, function(){
$(".project-content").append(form);
$('select#issue_assignee_id').chosen();
$("#new_issue_dialog").show("slide", { direction: "right" }, 150);
});
}
function switchToEditIssue(form){
$("#issues-table-holder").hide("slide", { direction: "left" }, 150, function(){
$(".project-content").append(form);
$('select#issue_assignee_id').chosen();
$("#edit_issue_dialog").show("slide", { direction: "right" }, 150);
});
}
function switchFromNewIssue(){
backToIssues();
}
function switchFromEditIssue(){
backToIssues();
}
function backToIssues(){
$("#edit_issue_dialog, #new_issue_dialog").hide("slide", { direction: "right" }, 150, function(){
$("#issues-table-holder").show("slide", { direction: "left" }, 150, function() {
$("#edit_issue_dialog").remove();
$("#new_issue_dialog").remove();
});
});
}
...@@ -40,3 +40,6 @@ ...@@ -40,3 +40,6 @@
.prepend-top-10 { .prepend-top-10 {
margin-top:10px; margin-top:10px;
} }
.no-borders {
border:none;
}
...@@ -48,3 +48,21 @@ ...@@ -48,3 +48,21 @@
width:100%; width:100%;
.data p { font-size:16px } .data p { font-size:16px }
} }
#issue_assignee_id {
width:300px;
}
.issue-form-holder .ui-box .data {
margin: 0;
padding: 0;
}
body.project-page .issue-form-holder table.no-borders tr,
body.project-page .issue-form-holder table.no-borders td
{
&:hover {
background:none;
}
}
...@@ -387,3 +387,10 @@ body.dashboard.project-page .news-feed .project-updates a.project-update span.up ...@@ -387,3 +387,10 @@ body.dashboard.project-page .news-feed .project-updates a.project-update span.up
body.project-page .team_member_new .span-6, .team_member_edit .span-6{ padding:10px 0; } body.project-page .team_member_new .span-6, .team_member_edit .span-6{ padding:10px 0; }
body.projects-page input.text.git-url.project_list_url { width:165px; } body.projects-page input.text.git-url.project_list_url { width:165px; }
body.project-page table.no-borders tr,
body.project-page table.no-borders td{
border:none;
}
%div %div.issue-form-holder
= form_for [@project, @issue], :remote => "true" do |f| .issue-show-holder.ui-box
-if @issue.errors.any? %h3
%ul = @issue.new_record? ? "New issue" : "Edit Issue ##{@issue.id}"
- @issue.errors.full_messages.each do |msg| - unless @issue.new_record?
%li= msg .right
- if @issue.closed
%span.tag.high Resolved
- else
%span.tag.today Open
= form_for [@project, @issue], :remote => "true" do |f|
.data
%table.no-borders
-if @issue.errors.any?
%tr
%td Errors
%td
#error_explanation
- @issue.errors.full_messages.each do |msg|
%span= msg
%br
.form-row %tr
= f.label :title %td= f.label :title
= f.text_area :title, :style => "width:450px; height:100px", :maxlength => 255 %td= f.text_area :title, :style => "width:450px; height:100px", :maxlength => 255
.form-row
= f.label :assignee_id %tr
= f.select(:assignee_id, @project.users.all.collect {|p| [ p.name, p.id ] }, { :include_blank => "Select user" }) %td= f.label :assignee_id
.form-row %td= f.select(:assignee_id, @project.users.all.collect {|p| [ p.name, p.id ] }, { :include_blank => "Select user" })
= f.label :critical, "Critical"
%br %tr
= f.check_box :critical %td= f.label :critical, "Critical"
- unless @issue.new_record? %td= f.check_box :critical
.form-row
= f.label :closed - unless @issue.new_record?
%br %tr
= f.check_box :closed %td= f.label :closed
.form-row %td= f.check_box :closed
= f.submit 'Save', :class => "grey-button" .buttons
= f.submit 'Save', :class => "grey-button"
.right
- if request.xhr?
= link_to_function "Back", "backToIssues();", :class => "grey-button"
- else
= link_to "Back", [@project, @issue], :class => "grey-button"
- if @issue.valid? - if @issue.valid?
:plain :plain
$("#new_issue_dialog").dialog("close"); switchFromNewIssue();
$("#issues-table").prepend("#{escape_javascript(render(:partial => 'show', :locals => {:issue => @issue} ))}"); $("#issues-table").prepend("#{escape_javascript(render(:partial => 'show', :locals => {:issue => @issue} ))}");
$.ajax({type: "GET", url: location.href, dataType: "script"}); $.ajax({type: "GET", url: location.href, dataType: "script"});
- else - else
:plain :plain
$("#new_issue_dialog").empty(); $("#new_issue_dialog").empty();
$("#new_issue_dialog").append("#{escape_javascript(render('form'))}"); $("#new_issue_dialog").append("#{escape_javascript(render('form'))}");
$('select#issue_assignee_id').selectmenu({width:300}); $('select#issue_assignee_id').chosen();
%div.issue-form-holder = render "form"
= form_for [@project, @issue] do |f|
-if @issue.errors.any?
%ul
- @issue.errors.full_messages.each do |msg|
%li= msg
%table
%thead
%th Name
%th Value
%tr
%td= f.label :title
%td= f.text_area :title, :style => "width:450px; height:100px", :maxlength => 255
%tr
%td= f.label :assignee_id
%td= f.select(:assignee_id, @project.users.all.collect {|p| [ p.name, p.id ] }, { :include_blank => "Select user" })
-#%tr
%td= f.label :branch_name
%td= f.select(:branch_name, @project.heads.map(&:name), { :include_blank => "Select git branch" })
%tr
%td
= f.label :critical, "Critical"
%br
%td= f.check_box :critical
- unless @issue.new_record?
%tr
%td= f.label :closed
%td= f.check_box :closed
= f.submit 'Save', :class => "grey-button"
:javascript :javascript
$(function(){ $(function(){
$('select#issue_branch_name').selectmenu({width:300}); $('select#issue_assignee_id').chosen();
$('select#issue_assignee_id').selectmenu({width:300});
}); });
:plain :plain
var edit_issue_dialog = $("<div id='edit_issue_dialog'></div>"); var edit_issue_dialog = $("<div id='edit_issue_dialog'></div>");
edit_issue_dialog.html("#{escape_javascript(render('form'))}"); edit_issue_dialog.html("#{escape_javascript(render('form'))}");
$(edit_issue_dialog).dialog({ switchToEditIssue(edit_issue_dialog);
width: 500,
resizable: false,
draggable: false,
title: "Issue ##{@issue.id} #{"[CLOSED]" if @issue.closed}",
close: function(event, ui) { $("#edit_issue_dialog").remove();},
modal: true
});
$('select#issue_assignee_id').selectmenu({width:300});
= render "form"
:javascript
$(function(){
$('select#issue_assignee_id').chosen();
});
:plain :plain
var new_issue_dialog = $("<div id='new_issue_dialog'></div>"); var new_issue_dialog = $("<div id='new_issue_dialog'></div>");
new_issue_dialog.html("#{escape_javascript(render('form'))}"); new_issue_dialog.html("#{escape_javascript(render('form'))}");
$(new_issue_dialog).dialog({ switchToNewIssue(new_issue_dialog);
width: 500,
resizable: false,
draggable: false,
title: "Add new issue",
modala: true,
close: function(event, ui) { $("#new_issue_dialog").remove();}
});
$('select#issue_assignee_id').selectmenu({width:300});
...@@ -5,10 +5,10 @@ ...@@ -5,10 +5,10 @@
- else - else
- if @issue.valid? - if @issue.valid?
:plain :plain
$("#edit_issue_dialog").dialog("close");
updatePage(); updatePage();
switchFromEditIssue();
- else - else
:plain :plain
$("#edit_issue_dialog").empty(); $("#edit_issue_dialog").empty();
$("#edit_issue_dialog").append("#{escape_javascript(render('form'))}"); $("#edit_issue_dialog").append("#{escape_javascript(render('form'))}");
$('select#issue_assignee_id').selectmenu({width:300}); $('select#issue_assignee_id').chosen();
...@@ -95,18 +95,16 @@ describe "Issues" do ...@@ -95,18 +95,16 @@ describe "Issues" do
click_link "New Issue" click_link "New Issue"
end end
it "should open new issue popup" do it "should open new issue form" do
page.should have_content("Add new issue") page.should have_content("New issue")
end end
describe "fill in" do describe "fill in" do
describe 'assign to me' do describe 'assign to me' do
before do before do
fill_in "issue_title", :with => "bug 345" fill_in "issue_title", :with => "bug 345"
click_link "Select user" page.execute_script("$('#issue_assignee_id').show();")
within "#issue_assignee_id-menu" do select @user.name, :from => "issue_assignee_id"
click_link @user.name
end
end end
it { expect { click_button "Save" }.to change {Issue.count}.by(1) } it { expect { click_button "Save" }.to change {Issue.count}.by(1) }
...@@ -129,10 +127,8 @@ describe "Issues" do ...@@ -129,10 +127,8 @@ describe "Issues" do
describe 'assign to other' do describe 'assign to other' do
before do before do
fill_in "issue_title", :with => "bug 345" fill_in "issue_title", :with => "bug 345"
click_link "Select user" page.execute_script("$('#issue_assignee_id').show();")
within "#issue_assignee_id-menu" do select @user2.name, :from => "issue_assignee_id"
click_link @user2.name
end
end end
it { expect { click_button "Save" }.to change {Issue.count}.by(1) } it { expect { click_button "Save" }.to change {Issue.count}.by(1) }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment