1.1pre1
This commit is contained in:
parent
3a2b273316
commit
6b030fd41d
83 changed files with 1089 additions and 136 deletions
|
@ -25,13 +25,26 @@
|
|||
= f.label :password_confirmation
|
||||
%br
|
||||
= f.password_field :password_confirmation
|
||||
.span-11
|
||||
.field.prepend-top.append-bottom
|
||||
.field.prepend-top
|
||||
= f.check_box :admin
|
||||
= f.label :admin
|
||||
.span-11
|
||||
.field.prepend-top
|
||||
= f.text_field :projects_limit, :class => "small_input"
|
||||
= f.label :projects_limit
|
||||
|
||||
.field
|
||||
= f.label :skype
|
||||
%br
|
||||
= f.text_field :skype
|
||||
.field
|
||||
= f.label :linkedin
|
||||
%br
|
||||
= f.text_field :linkedin
|
||||
.field
|
||||
= f.label :twitter
|
||||
%br
|
||||
= f.text_field :twitter
|
||||
.clear
|
||||
%br
|
||||
.actions
|
||||
|
|
|
@ -14,6 +14,17 @@
|
|||
%b Projects limit:
|
||||
= @admin_user.projects_limit
|
||||
|
||||
%p
|
||||
%b Skype:
|
||||
= @admin_user.skype
|
||||
%p
|
||||
%b LinkedIn:
|
||||
= @admin_user.linkedin
|
||||
%p
|
||||
%b Twitter:
|
||||
= @admin_user.twitter
|
||||
|
||||
|
||||
.clear
|
||||
= link_to 'Edit', edit_admin_user_path(@admin_user)
|
||||
\|
|
||||
|
|
|
@ -11,12 +11,12 @@
|
|||
= image_tag "no_avatar.png", :class => "left", :width => 40, :style => "padding-right:5px;"
|
||||
%p
|
||||
%strong
|
||||
= commit.message.length > 60 ? (commit.message[0..59] + "...") : commit.message
|
||||
= truncate_commit_message(commit)
|
||||
= link_to "Browse Code", tree_project_path(@project, :commit_id => commit.id), :class => "lite_button", :style => "float:right"
|
||||
= link_to truncate(commit.id.to_s, :length => 16), project_commit_path(@project, :id => commit.id), :class => "lite_button", :style => "width:120px;float:right"
|
||||
%span
|
||||
%span
|
||||
[ #{commit.author} ]
|
||||
%span.author
|
||||
= commit.author
|
||||
= time_ago_in_words(commit.committed_date)
|
||||
ago
|
||||
= more_commits_link if @commits.size > 99
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
- require "utils"
|
||||
.file_stats
|
||||
- @commit.diffs.each do |diff|
|
||||
- if diff.deleted_file
|
||||
|
@ -35,7 +34,7 @@
|
|||
%strong{:id => "#{diff.b_path}"}= diff.b_path
|
||||
%br/
|
||||
.diff_file_content
|
||||
- if file.mime_type =~ /application|text/ && !Utils.binary?(file.data)
|
||||
- if file.text?
|
||||
- lines_arr = diff.diff.lines.to_a
|
||||
- line_old = lines_arr[2].match(/-(\d)/)[0].to_i.abs rescue 0
|
||||
- line_new = lines_arr[2].match(/\+(\d)/)[0].to_i.abs rescue 0
|
||||
|
@ -50,9 +49,9 @@
|
|||
- else
|
||||
- line_new += 1
|
||||
- line_old += 1
|
||||
- elsif file.mime_type =~ /image/
|
||||
- elsif file.image?
|
||||
.diff_file_content_image
|
||||
%img{:src => "data:image/jpeg;base64,#{Base64.encode64(file.data)}"}
|
||||
%img{:src => "data:#{file.mime_type};base64,#{Base64.encode64(file.data)}"}
|
||||
- else
|
||||
%p
|
||||
%center No preview for this file type
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
%h3
|
||||
= "[ #{@commit.committer} ] #{truncate @commit.message, :length => 80}"
|
||||
= "[ #{@commit.committer} ] #{truncate_commit_message(@commit, 80)}"
|
||||
-#= link_to 'Back', project_commits_path(@project), :class => "button"
|
||||
%table.round-borders
|
||||
%tr
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
:plain
|
||||
-#:plain
|
||||
$("#side-commit-preview").remove();
|
||||
var side = $("<div id='side-commit-preview'></div>");
|
||||
side.html("#{escape_javascript(render "commits/show")}");
|
||||
$("##{dom_id(@project)}").parent().append(side);
|
||||
$("##{dom_id(@project)}").addClass("span-14");
|
||||
:plain
|
||||
$("#notes-list").html("#{escape_javascript(render(:partial => 'notes/notes_list'))}");
|
||||
|
|
2
app/views/issues/show.js.haml
Normal file
2
app/views/issues/show.js.haml
Normal file
|
@ -0,0 +1,2 @@
|
|||
:plain
|
||||
$("#notes-list").html("#{escape_javascript(render(:partial => 'notes/notes_list'))}");
|
|
@ -12,9 +12,9 @@
|
|||
= f.label :note
|
||||
%cite (255 symbols only)
|
||||
%br
|
||||
= f.text_area :note, :style => "width:97%;height:100px", :size => 255
|
||||
= f.text_area :note, :size => 255
|
||||
|
||||
%div
|
||||
%div.attach_holder
|
||||
= f.label :attachment
|
||||
%cite (less than 10 MB)
|
||||
%br
|
||||
|
@ -25,4 +25,4 @@
|
|||
|
||||
.clear
|
||||
%br
|
||||
= f.submit 'Add note', :class => "lbutton vm"
|
||||
= f.submit 'Add note', :class => "lbutton vm", :id => "submit_note"
|
||||
|
|
|
@ -1,15 +1,28 @@
|
|||
%ul#notes-list
|
||||
- @notes.each do |note|
|
||||
- next unless note.author
|
||||
= render :partial => "notes/show", :locals => {:note => note}
|
||||
- if controller.action_name == "wall"
|
||||
%ul#notes-list= render "notes/notes_list"
|
||||
|
||||
%br
|
||||
%br
|
||||
- if can? current_user, :write_note, @project
|
||||
= render "notes/form"
|
||||
- else
|
||||
%ul#notes-list= render "notes/notes_list"
|
||||
%br
|
||||
%br
|
||||
- if can? current_user, :write_note, @project
|
||||
= render "notes/form"
|
||||
|
||||
:javascript
|
||||
$('.delete-note').live('ajax:success', function() {
|
||||
$(this).closest('li').fadeOut(); });
|
||||
|
||||
$("#new_note").live("ajax:before", function(){
|
||||
$("#submit_note").attr("disabled", "disabled");
|
||||
})
|
||||
|
||||
$("#new_note").live("ajax:complete", function(){
|
||||
$("#submit_note").removeAttr("disabled");
|
||||
})
|
||||
|
||||
|
||||
- if ["issues", "projects"].include?(controller.controller_name)
|
||||
:javascript
|
||||
$(function(){
|
||||
var int =self.setInterval("updatePage()", 20000);
|
||||
});
|
||||
|
|
4
app/views/notes/_notes_list.html.haml
Normal file
4
app/views/notes/_notes_list.html.haml
Normal file
|
@ -0,0 +1,4 @@
|
|||
- @notes.each do |note|
|
||||
- next unless note.author
|
||||
= render :partial => "notes/show", :locals => {:note => note}
|
||||
|
|
@ -1,19 +1,17 @@
|
|||
%li{:id => dom_id(note)}
|
||||
%div.note_author
|
||||
= image_tag gravatar_icon(note.author.email), :class => "left", :width => 40, :style => "padding-right:5px;"
|
||||
%div.note_content
|
||||
%div.note_content.left
|
||||
= simple_format(html_escape(note.note))
|
||||
- if note.attachment.url
|
||||
Attachment:
|
||||
= link_to note.attachment_identifier, note.attachment.url
|
||||
= link_to note.attachment_identifier, note.attachment.url, :target => "_blank"
|
||||
%br
|
||||
%span
|
||||
%span
|
||||
[ #{note.author.name} ]
|
||||
|
||||
%span.author= note.author.name
|
||||
%cite.ago
|
||||
= time_ago_in_words(note.updated_at)
|
||||
ago
|
||||
%br
|
||||
%br
|
||||
- if(note.author_id == current_user.id) || can?(current_user, :admin_note, @project)
|
||||
= link_to 'Remove', [@project, note], :confirm => 'Are you sure?', :method => :delete, :remote => true, :class => "lbutton delete-note right negative"
|
||||
.clear
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
- if @note.valid?
|
||||
:plain
|
||||
$("#new_note .errors").remove();
|
||||
$("#notes-list").append("#{escape_javascript(render(:partial => 'show', :locals => {:note => @note} ))}");
|
||||
updatePage();
|
||||
$('#note_note').val("");
|
||||
- else
|
||||
:plain
|
||||
$("#new_note").replaceWith("#{escape_javascript(render('form'))}");
|
||||
|
||||
:plain
|
||||
$("#submit_note").removeAttr("disabled");
|
||||
|
|
|
@ -6,3 +6,28 @@
|
|||
%p
|
||||
%b Email:
|
||||
= @user.email
|
||||
|
||||
%br
|
||||
|
||||
= form_for @user, :url => profile_edit_path, :method => :put do |f|
|
||||
-if @user.errors.any?
|
||||
#error_explanation
|
||||
%ul
|
||||
- @user.errors.full_messages.each do |msg|
|
||||
%li= msg
|
||||
|
||||
.div
|
||||
= f.label :skype
|
||||
%br
|
||||
= f.text_field :skype
|
||||
.div
|
||||
= f.label :linkedin
|
||||
%br
|
||||
= f.text_field :linkedin
|
||||
.div
|
||||
= f.label :twitter
|
||||
%br
|
||||
= f.text_field :twitter
|
||||
.actions
|
||||
= f.submit 'Save', :class => "lbutton vm"
|
||||
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
= form_for(@project, :remote => true) do |f|
|
||||
%div.form_content
|
||||
- if @project.new_record?
|
||||
%h1 New Project
|
||||
- else
|
||||
- unless @project.new_record?
|
||||
%h1 Edit Project
|
||||
- if @project.errors.any?
|
||||
#error_explanation
|
||||
|
@ -26,7 +24,7 @@
|
|||
%td
|
||||
.left= f.label :code
|
||||
%cite.right http://yourserver/
|
||||
%td= f.text_field :code, :placeholder => "example (3..12 symbols only)"
|
||||
%td= f.text_field :code, :placeholder => "example"
|
||||
.field
|
||||
= f.label :description
|
||||
%br/
|
||||
|
|
18
app/views/projects/_recent_commits.html.haml
Normal file
18
app/views/projects/_recent_commits.html.haml
Normal file
|
@ -0,0 +1,18 @@
|
|||
- @commits.each do |commit|
|
||||
%div.commit
|
||||
- if commit.author.email
|
||||
= image_tag gravatar_icon(commit.author.email), :class => "left", :width => 40, :style => "padding-right:5px;"
|
||||
- else
|
||||
= image_tag "no_avatar.png", :class => "left", :width => 40, :style => "padding-right:5px;"
|
||||
%p{:style => "margin-bottom: 3px;"}
|
||||
%strong
|
||||
= link_to truncate_commit_message(commit, 60), project_commit_path(@project, :id => commit.id)
|
||||
|
||||
%span
|
||||
%span.author
|
||||
= commit.author.name.force_encoding("UTF-8")
|
||||
%cite
|
||||
= time_ago_in_words(commit.committed_date)
|
||||
ago
|
||||
%br
|
||||
|
52
app/views/projects/_recent_messages.html.haml
Normal file
52
app/views/projects/_recent_messages.html.haml
Normal file
|
@ -0,0 +1,52 @@
|
|||
- @messages.group_by{ |x| [x.noteable_id, x.noteable_type]}.each do |item, notes|
|
||||
- id, type = item[0], item[1]
|
||||
- parent = load_note_parent(id, type, @project)
|
||||
- next unless parent
|
||||
|
||||
- case type
|
||||
- when "Issue"
|
||||
- css_class = "dash_issue"
|
||||
- issue = parent
|
||||
- item_code = issue.author.email
|
||||
- link_item_name = truncate(issue.title, :length => 50)
|
||||
- link_to_item = project_issue_path(@project, issue)
|
||||
- when "Snippet"
|
||||
- css_class = "dash_snippet"
|
||||
- item_code = parent.author.email
|
||||
- link_item_name = parent.title
|
||||
- link_to_item = project_snippet_path(@project, parent)
|
||||
- when "Commit"
|
||||
- css_class = "dash_commit"
|
||||
- commit = parent
|
||||
- item_code = commit.author.email
|
||||
- link_item_name = truncate_commit_message(commit, 50)
|
||||
- link_to_item = project_commit_path(@project, :id => commit.id)
|
||||
- else
|
||||
- css_class = "dash_wall"
|
||||
- item_code = @project.name
|
||||
- link_item_name = "Project Wall"
|
||||
- link_to_item = wall_project_path(@project)
|
||||
|
||||
%div{ :class => "recent_message_parent #{css_class}"}
|
||||
= image_tag gravatar_icon(item_code), :class => "left", :width => 40
|
||||
%h4
|
||||
= link_to(link_item_name, link_to_item)
|
||||
%span
|
||||
= type
|
||||
.clear
|
||||
- notes.sort {|x,y| x.updated_at <=> y.updated_at }.each do |note|
|
||||
%div.message
|
||||
= image_tag gravatar_icon(note.author.email), :class => "left", :width => 24, :style => "padding-right:5px;"
|
||||
%p{:style => "margin-bottom: 3px;"}
|
||||
%span.author
|
||||
= note.author.name
|
||||
= link_to truncate(note.note, :length => 200), link_to_item + "#note_#{note.id}"
|
||||
- if note.attachment.url
|
||||
%br
|
||||
Attachment:
|
||||
= link_to note.attachment_identifier, note.attachment.url
|
||||
%br
|
||||
%br
|
||||
.append-bottom
|
||||
|
||||
.clear
|
|
@ -4,7 +4,7 @@
|
|||
%div{ :class => "project", :url => project_path(project) }
|
||||
%h2
|
||||
= image_tag gravatar_icon(project.name), :class => "left", :width => 40, :style => "padding-right:5px;"
|
||||
= "/" + project.code
|
||||
= link_to ("/" + project.code), project_path(project), :style => "text-decoration:none"
|
||||
%p= project.name
|
||||
%p= project.url_to_repo
|
||||
-#%p
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
%div.top_project_menu
|
||||
-#%span= link_to @project.code.capitalize, @project, :class => current_page?(:controller => "projects", :action => "show", :id => @project) ? "current" : nil
|
||||
- if @project.repo_exists?
|
||||
%span= link_to "Tree", tree_project_path(@project), :class => current_page?(:controller => "projects", :action => "show", :id => @project) || current_page?(:controller => "projects", :action => "tree", :id => @project) ? "current" : nil
|
||||
%span= link_to image_tag("home.png", :width => 20), project_path(@project), :class => current_page?(:controller => "projects", :action => "show", :id => @project) ? "current" : nil
|
||||
%span= link_to "Tree", tree_project_path(@project), :class => current_page?(:controller => "projects", :action => "tree", :id => @project) ? "current" : nil
|
||||
%span= link_to "Commits", project_commits_path(@project), :class => current_page?(:controller => "commits", :action => "index", :project_id => @project) ? "current" : nil
|
||||
%span
|
||||
= link_to team_project_path(@project), :class => current_page?(:controller => "projects", :action => "team", :id => @project) ? "current" : nil do
|
||||
= link_to team_project_path(@project), :class => (current_page?(:controller => "projects", :action => "team", :id => @project) || controller.controller_name == "team_members") ? "current" : nil do
|
||||
Team
|
||||
- if @project.users_projects.count > 0
|
||||
%span{ :class => "top_menu_count" }= @project.users_projects.count
|
||||
|
@ -18,6 +19,11 @@
|
|||
Wall
|
||||
- if @project.common_notes.count > 0
|
||||
%span{ :class => "top_menu_count" }= @project.common_notes.count
|
||||
%span
|
||||
= link_to project_snippets_path(@project), :class => (controller.controller_name == "snippets") ? "current" : nil do
|
||||
Snippets
|
||||
- if @project.snippets.count > 0
|
||||
%span{ :class => "top_menu_count" }= @project.snippets.count
|
||||
|
||||
- if @commit
|
||||
%span= link_to truncate(commit_name(@project,@commit), :length => 15), project_commit_path(@project, :id => @commit.id), :class => current_page?(:controller => "commits", :action => "show", :project_id => @project, :id => @commit.id) ? "current" : nil
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
- require "utils"
|
||||
:css
|
||||
.view_file
|
||||
.view_file_header
|
||||
%strong
|
||||
|
@ -6,14 +6,13 @@
|
|||
= link_to "raw", blob_project_path(@project, :commit_id => @commit.id, :path => params[:path] ), :class => "right", :target => "_blank"
|
||||
= link_to "history", project_commits_path(@project, :path => params[:path]), :class => "right", :style => "margin-right:10px;"
|
||||
%br/
|
||||
- if file.mime_type =~ /application|text/ && !Utils.binary?(file.data)
|
||||
- if file.text?
|
||||
.view_file_content
|
||||
- ft = handle_file_type(file.name, file.mime_type)
|
||||
:erb
|
||||
<%= raw Albino.colorize(content, ft, :html, 'utf-8', "linenos=True") %>
|
||||
- elsif file.mime_type =~ /image/
|
||||
<%= raw file.colorize %>
|
||||
- elsif file.image?
|
||||
.view_file_content_image
|
||||
%img{ :src => "data:image/jpeg;base64,#{Base64.encode64(file.data)}"}
|
||||
%img{ :src => "data:#{file.mime_type};base64,#{Base64.encode64(file.data)}"}
|
||||
- else
|
||||
%p
|
||||
%center No preview for this file type
|
||||
|
|
|
@ -12,4 +12,4 @@
|
|||
= time_ago_in_words(content_commit.committed_date)
|
||||
ago
|
||||
%td
|
||||
= link_to truncate(content_commit.message, :length => 40), project_commit_path(@project, content_commit)
|
||||
= link_to truncate_commit_message(content_commit, 40), project_commit_path(@project, content_commit)
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
<% bash_lexer = Pygments::Lexer[:bash] %>
|
||||
<div class="">
|
||||
<div class="git-empty">
|
||||
<h2>Git global setup:</h2>
|
||||
|
@ -6,7 +7,7 @@ git config --global user.name "#{current_user.name}"
|
|||
git config --global user.email "#{current_user.email}"
|
||||
eos
|
||||
%>
|
||||
<%= raw Albino.colorize(setup_str, :bash) %>
|
||||
<%= raw bash_lexer.highlight(setup_str) %>
|
||||
<br />
|
||||
<br />
|
||||
<h2>Next steps:</h2>
|
||||
|
@ -21,7 +22,7 @@ git remote add origin #{@project.url_to_repo}
|
|||
git push -u origin master
|
||||
eos
|
||||
%>
|
||||
<%= raw Albino.colorize(repo_setup_str, :bash) %>
|
||||
<%= raw bash_lexer.highlight(repo_setup_str) %>
|
||||
|
||||
<br /><br />
|
||||
<h2>Existing Git Repo?</h2>
|
||||
|
@ -31,7 +32,7 @@ git remote add origin #{@project.url_to_repo}
|
|||
git push -u origin master
|
||||
eos
|
||||
%>
|
||||
<%= raw Albino.colorize(exist_repo_setup_str, :bash) %>
|
||||
<%= raw bash_lexer.highlight(exist_repo_setup_str) %>
|
||||
|
||||
<br /><br />
|
||||
<h2>Remove this project?</h2>
|
||||
|
|
|
@ -1,3 +1,23 @@
|
|||
%div
|
||||
%div#tree-holder
|
||||
= render :partial => "tree", :locals => {:repo => @repo, :commit => @commit, :tree => @commit.tree}
|
||||
%h2.left History
|
||||
.right
|
||||
= form_tag project_path(@project), :method => :get do
|
||||
.span-2
|
||||
= radio_button_tag :view, "recent", (params[:view] || "recent") == "recent", :onclick => "this.form.submit()", :id => "recent_view"
|
||||
= label_tag "recent_view","Recent"
|
||||
.span-2
|
||||
= radio_button_tag :view, "day", params[:view] == "day", :onclick => "this.form.submit()", :id => "day_view"
|
||||
= label_tag "day_view","Today"
|
||||
.span-2
|
||||
= radio_button_tag :view, "week", params[:view] == "week", :onclick => "this.form.submit()", :id => "week_view"
|
||||
= label_tag "week_view","Week"
|
||||
.clear
|
||||
%hr
|
||||
.span-11
|
||||
%h3 Commits
|
||||
=render "projects/recent_commits"
|
||||
|
||||
.span-11.right
|
||||
%h3 Talk
|
||||
=render "projects/recent_messages"
|
||||
|
||||
|
|
|
@ -1 +1,29 @@
|
|||
%div.wall_page
|
||||
- if can? current_user, :write_note, @project
|
||||
= render "notes/form"
|
||||
.right
|
||||
= form_tag wall_project_path(@project), :method => :get do
|
||||
.span-2
|
||||
= radio_button_tag :view, "recent", (params[:view] || "recent") == "recent", :onclick => "this.form.submit()", :id => "recent_view"
|
||||
= label_tag "recent_view","Recent"
|
||||
.span-2
|
||||
= radio_button_tag :view, "day", params[:view] == "day", :onclick => "this.form.submit()", :id => "day_view"
|
||||
= label_tag "day_view","Today"
|
||||
.span-2
|
||||
= radio_button_tag :view, "week", params[:view] == "week", :onclick => "this.form.submit()", :id => "week_view"
|
||||
= label_tag "week_view","Week"
|
||||
.span-2
|
||||
= radio_button_tag :view, "all", params[:view] == "all", :onclick => "this.form.submit()", :id => "all_view"
|
||||
= label_tag "all_view","All"
|
||||
.clear
|
||||
%br
|
||||
%hr
|
||||
= render "notes/notes"
|
||||
|
||||
:javascript
|
||||
$(function(){
|
||||
$("#note_note").live("click", function(){
|
||||
$(this).css("height", "100px");
|
||||
$('.attach_holder').show();
|
||||
});
|
||||
});
|
||||
|
|
2
app/views/projects/wall.js.haml
Normal file
2
app/views/projects/wall.js.haml
Normal file
|
@ -0,0 +1,2 @@
|
|||
:plain
|
||||
$("#notes-list").html("#{escape_javascript(render(:partial => 'notes/notes_list'))}");
|
22
app/views/snippets/_form.html.haml
Normal file
22
app/views/snippets/_form.html.haml
Normal file
|
@ -0,0 +1,22 @@
|
|||
%div
|
||||
= form_for [@project, @snippet] do |f|
|
||||
-if @snippet.errors.any?
|
||||
%ul
|
||||
- @snippet.errors.full_messages.each do |msg|
|
||||
%li= msg
|
||||
|
||||
%table.round-borders
|
||||
%tr
|
||||
%td= f.label :title
|
||||
%td= f.text_field :title, :placeholder => "Example Snippet"
|
||||
%tr
|
||||
%td= f.label :file_name
|
||||
%td= f.text_field :file_name, :placeholder => "example.rb"
|
||||
%tr
|
||||
%td{:colspan => 2}
|
||||
= f.label :content, "Code"
|
||||
%br
|
||||
= f.text_area :content, :style => "height:240px;width:932px;"
|
||||
|
||||
.actions.prepend-top
|
||||
= f.submit 'Save', :class => "lbutton vm"
|
11
app/views/snippets/_snippet.html.haml
Normal file
11
app/views/snippets/_snippet.html.haml
Normal file
|
@ -0,0 +1,11 @@
|
|||
%tr{ :id => dom_id(snippet), :class => "snippet", :url => project_snippet_path(@project, snippet) }
|
||||
%td
|
||||
= image_tag gravatar_icon(snippet.author.email), :class => "left", :width => 40, :style => "padding:0 5px;"
|
||||
= truncate snippet.author.name, :lenght => 20
|
||||
%td= html_escape snippet.title
|
||||
%td= html_escape snippet.file_name
|
||||
%td
|
||||
- if can?(current_user, :admin_snippet, @project) || snippet.author == current_user
|
||||
= link_to 'Edit', edit_project_snippet_path(@project, snippet), :class => "lbutton positive"
|
||||
- if can?(current_user, :admin_snippet, @project) || snippet.author == current_user
|
||||
= link_to 'Destroy', [@project, snippet], :confirm => 'Are you sure?', :method => :delete, :remote => true, :class => "lbutton delete-snippet negative", :id => "destroy_snippet_#{snippet.id}"
|
1
app/views/snippets/edit.html.haml
Normal file
1
app/views/snippets/edit.html.haml
Normal file
|
@ -0,0 +1 @@
|
|||
= render "snippets/form"
|
14
app/views/snippets/index.html.haml
Normal file
14
app/views/snippets/index.html.haml
Normal file
|
@ -0,0 +1,14 @@
|
|||
%div
|
||||
- if can? current_user, :write_snippet, @project
|
||||
.left= link_to 'New Snippet', new_project_snippet_path(@project), :class => "lbutton vm"
|
||||
|
||||
%table.round-borders#snippets-table
|
||||
%tr
|
||||
%th Author
|
||||
%th Title
|
||||
%th File name
|
||||
%th
|
||||
= render @snippets
|
||||
:javascript
|
||||
$('.delete-snippet').live('ajax:success', function() {
|
||||
$(this).closest('tr').fadeOut(); });
|
1
app/views/snippets/new.html.haml
Normal file
1
app/views/snippets/new.html.haml
Normal file
|
@ -0,0 +1 @@
|
|||
= render "snippets/form"
|
22
app/views/snippets/show.html.haml
Normal file
22
app/views/snippets/show.html.haml
Normal file
|
@ -0,0 +1,22 @@
|
|||
%h2
|
||||
= "Snippet ##{@snippet.id} - #{@snippet.title}"
|
||||
|
||||
.view_file
|
||||
.view_file_header
|
||||
%strong
|
||||
= @snippet.file_name
|
||||
%br/
|
||||
.view_file_content
|
||||
:erb
|
||||
<%= raw @snippet.colorize %>
|
||||
|
||||
- if can?(current_user, :admin_snippet, @project) || @snippet.author == current_user
|
||||
= link_to 'Edit', edit_project_snippet_path(@project, @snippet), :class => "lbutton positive"
|
||||
- if can?(current_user, :admin_snippet, @project) || @snippet.author == current_user
|
||||
= link_to 'Destroy', [@project, @snippet], :confirm => 'Are you sure?', :method => :delete, :class => "lbutton delete-snippet negative", :id => "destroy_snippet_#{@snippet.id}"
|
||||
.clear
|
||||
%br
|
||||
.snippet_notes= render "notes/notes"
|
||||
|
||||
.clear
|
||||
|
|
@ -1,8 +1,10 @@
|
|||
- user = member.user
|
||||
%tr{:id => dom_id(member)}
|
||||
%td
|
||||
= image_tag gravatar_icon(user.email), :class => "left", :width => 40, :style => "padding:0 5px;"
|
||||
= truncate user.name, :lenght => 16
|
||||
= link_to image_tag(gravatar_icon(user.email), :class => "left", :width => 40, :style => "padding:0 5px;"), project_team_member_path(@project, member)
|
||||
|
||||
= link_to truncate(user.name, :lenght => 16), project_team_member_path(@project, member)
|
||||
|
||||
%td= truncate user.email, :lenght => 16
|
||||
- if can? current_user, :admin_project, @project
|
||||
= form_for(member, :as => :team_member, :url => project_team_member_path(@project, member)) do |f|
|
||||
|
|
28
app/views/team_members/show.html.haml
Normal file
28
app/views/team_members/show.html.haml
Normal file
|
@ -0,0 +1,28 @@
|
|||
- user = @team_member.user
|
||||
.span-2
|
||||
= image_tag gravatar_icon(user.email), :class => "left", :width => 60, :style => "padding-right:5px;"
|
||||
%p
|
||||
%b Name:
|
||||
= user.name
|
||||
%p
|
||||
%b Email:
|
||||
= user.email
|
||||
|
||||
%br
|
||||
|
||||
- unless user.skype.empty?
|
||||
.div
|
||||
%b Skype:
|
||||
= user.skype
|
||||
|
||||
- unless user.linkedin.empty?
|
||||
.div
|
||||
%b LinkedIn:
|
||||
= user.linkedin
|
||||
|
||||
- unless user.twitter.empty?
|
||||
.div
|
||||
%b Twitter:
|
||||
= user.twitter
|
||||
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue