Merge branch 'bootstrap'
Conflicts: Gemfile app/views/commits/_commits.html.haml app/views/projects/empty.html.haml
This commit is contained in:
commit
8ebfae9a07
127 changed files with 2464 additions and 2991 deletions
|
@ -6,34 +6,31 @@
|
|||
- @admin_project.errors.full_messages.each do |msg|
|
||||
%li= msg
|
||||
|
||||
.form-row
|
||||
.clearfix
|
||||
= f.label :name
|
||||
%br
|
||||
= f.text_field :name
|
||||
.form-row
|
||||
.input= f.text_field :name
|
||||
.clearfix
|
||||
= f.label :code
|
||||
%br
|
||||
= f.text_field :code
|
||||
.form-row
|
||||
.input= f.text_field :code
|
||||
.clearfix
|
||||
= f.label :path
|
||||
%br
|
||||
= f.text_field :path
|
||||
.input= f.text_field :path
|
||||
|
||||
.form-row
|
||||
= f.label :tag_list
|
||||
%br
|
||||
= f.text_area :tag_list, :placeholder => "project tags", :style => "height:50px", :id => :tag_field
|
||||
- unless @admin_project.new_record?
|
||||
.clearfix
|
||||
= f.label :owner_id
|
||||
.input= f.select :owner_id, User.all.map { |user| [user.name, user.id] }
|
||||
|
||||
.form-row
|
||||
.clearfix
|
||||
= f.label :description
|
||||
%br
|
||||
= f.text_area :description
|
||||
.input= f.text_area :description
|
||||
.clear
|
||||
%br
|
||||
.actions
|
||||
= f.submit 'Save', :class => "grey-button"
|
||||
= f.submit 'Save', :class => "btn"
|
||||
|
||||
:javascript
|
||||
$(function(){
|
||||
taggifyForm();
|
||||
$('#project_owner_id').chosen();
|
||||
})
|
||||
|
|
|
@ -19,4 +19,4 @@
|
|||
%td= link_to 'Destroy', [:admin, project], :confirm => 'Are you sure?', :method => :delete
|
||||
|
||||
= paginate @admin_projects
|
||||
= link_to 'New Project', new_admin_project_path, :class => "grey-button"
|
||||
= link_to 'New Project', new_admin_project_path, :class => "btn"
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
= @admin_project.description
|
||||
%tr
|
||||
%td{:colspan => 2}
|
||||
= link_to 'Edit', edit_admin_project_path(@admin_project), :class => "grey-button"
|
||||
= link_to 'Edit', edit_admin_project_path(@admin_project), :class => "btn"
|
||||
|
||||
|
||||
.span-14
|
||||
|
@ -53,7 +53,7 @@
|
|||
|
||||
%tr
|
||||
%td{ :colspan => 3 }
|
||||
= submit_tag 'Add', :class => "positive-button"
|
||||
= submit_tag 'Add', :class => "btn primary"
|
||||
|
||||
%table.round-borders
|
||||
%thead
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
= f.select :repo_access, options_for_select(Repository.access_options, @admin_team_member.repo_access), {}, :class => "repo-access-select"
|
||||
%br
|
||||
.actions
|
||||
= f.submit 'Save', :class => "grey-button"
|
||||
= f.submit 'Save', :class => "btn"
|
||||
|
||||
:css
|
||||
form select {
|
||||
|
|
|
@ -25,4 +25,4 @@
|
|||
%br
|
||||
|
||||
= paginate @admin_team_members
|
||||
= link_to 'New Team Member', new_admin_team_member_path, :class => "grey-button"
|
||||
= link_to 'New Team Member', new_admin_team_member_path, :class => "btn"
|
||||
|
|
|
@ -2,48 +2,41 @@
|
|||
= form_for [:admin, @admin_user] do |f|
|
||||
-if @admin_user.errors.any?
|
||||
#error_explanation
|
||||
%h2= "#{pluralize(@admin_user.errors.count, "error")} prohibited this admin_user from being saved:"
|
||||
%ul
|
||||
- @admin_user.errors.full_messages.each do |msg|
|
||||
%li= msg
|
||||
|
||||
.form-row
|
||||
.clearfix
|
||||
= f.label :name
|
||||
%br
|
||||
= f.text_field :name
|
||||
.form-row
|
||||
.input= f.text_field :name
|
||||
.clearfix
|
||||
= f.label :email
|
||||
%br
|
||||
= f.text_field :email
|
||||
.form-row
|
||||
.input= f.text_field :email
|
||||
.clearfix
|
||||
= f.label :password
|
||||
%br
|
||||
= f.password_field :password
|
||||
.form-row
|
||||
.input= f.password_field :password
|
||||
.clearfix
|
||||
= f.label :password_confirmation
|
||||
%br
|
||||
= f.password_field :password_confirmation
|
||||
.form-row
|
||||
.input= f.password_field :password_confirmation
|
||||
.clearfix
|
||||
= f.check_box :admin
|
||||
= f.label :admin
|
||||
|
||||
.form-row
|
||||
= f.text_field :projects_limit, :class => "small_input"
|
||||
.clearfix
|
||||
= f.label :projects_limit
|
||||
.input= f.text_field :projects_limit, :class => "small_input"
|
||||
|
||||
.form-row
|
||||
.clearfix
|
||||
= f.label :skype
|
||||
%br
|
||||
= f.text_field :skype
|
||||
.form-row
|
||||
.input= f.text_field :skype
|
||||
.clearfix
|
||||
= f.label :linkedin
|
||||
%br
|
||||
= f.text_field :linkedin
|
||||
.form-row
|
||||
.input= f.text_field :linkedin
|
||||
.clearfix
|
||||
= f.label :twitter
|
||||
%br
|
||||
= f.text_field :twitter
|
||||
.input= f.text_field :twitter
|
||||
.clear
|
||||
%br
|
||||
.actions
|
||||
= f.submit 'Save', :class => "grey-button"
|
||||
= f.submit 'Save', :class => "btn primary"
|
||||
= link_to 'Cancel', admin_users_path, :class => "btn"
|
||||
|
|
|
@ -18,4 +18,4 @@
|
|||
|
||||
= paginate @admin_users
|
||||
%br
|
||||
= link_to 'New User', new_admin_user_path, :class => "grey-button"
|
||||
= link_to 'New User', new_admin_user_path, :class => "btn"
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
%h1 New user
|
||||
|
||||
%h2 New user
|
||||
%hr
|
||||
= render 'form'
|
||||
|
||||
%br
|
||||
= link_to 'Back', admin_users_path, :class => ""
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
= @admin_user.twitter
|
||||
%tr
|
||||
%td{:colspan => 2}
|
||||
= link_to 'Edit', edit_admin_user_path(@admin_user), :class => "grey-button"
|
||||
= link_to 'Edit', edit_admin_user_path(@admin_user), :class => "btn"
|
||||
|
||||
.span-14
|
||||
%h2 Projects
|
||||
|
@ -66,4 +66,4 @@
|
|||
%td= link_to 'Edit', edit_admin_team_member_path(tm)
|
||||
%td= link_to 'Cancel', admin_team_member_path(tm), :confirm => 'Are you sure?', :method => :delete
|
||||
|
||||
= link_to 'Add To Another Project', new_admin_team_member_path(:team_member => {:user_id => @admin_user.id}), :class => "grey-button"
|
||||
= link_to 'Add To Another Project', new_admin_team_member_path(:team_member => {:user_id => @admin_user.id}), :class => "btn"
|
||||
|
|
|
@ -1,33 +1,19 @@
|
|||
- @commits.group_by { |c| c.committed_date.to_date }.each do |day, commits|
|
||||
%div{ :class => "commits-date ui-box ui-box-small ui-box-big" }
|
||||
.day-commits-table
|
||||
%h3= day.stamp("28 Aug, 2010")
|
||||
.data
|
||||
%h5.underlined= day.stamp("28 Aug, 2010")
|
||||
%br
|
||||
%ul.unstyled
|
||||
- commits.each do |commit|
|
||||
%a{ :class => "commit", :href => project_commit_path(@project, :id => commit.id) }
|
||||
%span.commit-info
|
||||
%data.commit-button
|
||||
= truncate(commit.id.to_s, :length => 16)
|
||||
%i
|
||||
%data.commit-browse{ :onclick => "location.href='#{tree_project_ref_path(@project, commit.id)}';return false;"}
|
||||
Browse Code
|
||||
- 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;"
|
||||
%span.commit-title
|
||||
%strong
|
||||
= truncate(commit.safe_message, :length => 70)
|
||||
%span.commit-author
|
||||
Authored by
|
||||
|
||||
%strong= commit.author_name
|
||||
= time_ago_in_words(commit.authored_date)
|
||||
ago
|
||||
- if commit.author_name != commit.committer_name or commit.author_email != commit.committer_email or commit.authored_date != commit.committed_date
|
||||
%span.commit-committer
|
||||
Committed by
|
||||
|
||||
%strong= commit.committer_name
|
||||
= time_ago_in_words(commit.committed_date)
|
||||
ago
|
||||
%li.entry
|
||||
= link_to project_commit_path(@project, :id => commit.id) do
|
||||
%div
|
||||
%strong
|
||||
= truncate commit.id.to_s, :length => 10
|
||||
–
|
||||
= image_tag gravatar_icon(commit.author_email), :class => "", :width => 16
|
||||
= truncate(commit.safe_message, :length => 50)
|
||||
|
||||
%span.right.cgray
|
||||
= time_ago_in_words(commit.committed_date)
|
||||
ago
|
||||
|
|
|
@ -1,16 +1,23 @@
|
|||
- content_for(:body_class, "project-page commits-page")
|
||||
- if current_user.private_token
|
||||
= content_for :rss_icon do
|
||||
.rss-icon
|
||||
%h3
|
||||
Commits
|
||||
- if current_user.private_token
|
||||
%span.rss-icon
|
||||
= link_to project_commits_path(@project, :atom, { :private_token => current_user.private_token, :ref => @ref }) do
|
||||
= image_tag "Rss-UI.PNG", :width => 22, :title => "feed"
|
||||
= form_tag switch_project_refs_path(@project), :method => :get, :class => "project-refs-form right" do
|
||||
= select_tag "ref", grouped_options_refs, :onchange => "$(this.form).trigger('submit');", :class => "project-refs-select"
|
||||
= hidden_field_tag :destination, "commits"
|
||||
%hr
|
||||
|
||||
- if params[:path]
|
||||
%h2
|
||||
= link_to project_commits_path(@project) do
|
||||
= @project.code
|
||||
\/
|
||||
%a{:href => "#"}= params[:path].split("/").join(" / ")
|
||||
%ul.breadcrumb
|
||||
%li
|
||||
= link_to project_commits_path(@project) do
|
||||
= @project.code
|
||||
%span.divider
|
||||
\/
|
||||
%li
|
||||
%a{:href => "#"}= params[:path].split("/").join(" / ")
|
||||
|
||||
%div{:id => dom_id(@project)}
|
||||
#commits_list= render "commits"
|
||||
|
@ -23,3 +30,8 @@
|
|||
$(function(){
|
||||
CommitsList.init("#{@ref}", 20);
|
||||
});
|
||||
|
||||
:javascript
|
||||
$(function(){
|
||||
$('.project-refs-select').chosen();
|
||||
});
|
||||
|
|
|
@ -1,10 +1,7 @@
|
|||
- content_for(:body_class, "project-page commits-page")
|
||||
.commit
|
||||
%span.commit-info
|
||||
= link_to tree_project_ref_path(@project, @commit.id) do
|
||||
%data.commit-button
|
||||
Browse Code
|
||||
%i
|
||||
= link_to tree_project_ref_path(@project, @commit.id), :class => "btn right" do
|
||||
Browse Code »
|
||||
- if @commit.author_email
|
||||
= image_tag gravatar_icon(@commit.author_email), :class => "left", :width => 40, :style => "padding-right:5px;"
|
||||
- else
|
||||
|
|
|
@ -1,26 +1,10 @@
|
|||
#feeds_content_holder
|
||||
- unless @issues.empty?
|
||||
.project-box.project-updates.ui-box.ui-box-small.ui-box-big
|
||||
.data
|
||||
- @issues.each do |update|
|
||||
%a.project-update{:href => dashboard_feed_path(update.project, update)}
|
||||
%strong.issue-number= "##{update.id}"
|
||||
%span.update-title
|
||||
= truncate update.title, :length => 35
|
||||
.right= truncate update.project.name
|
||||
%span.update-author
|
||||
%strong= update.author_name
|
||||
authored
|
||||
= time_ago_in_words(update.created_at)
|
||||
ago
|
||||
.right
|
||||
- if update.critical
|
||||
%span.tag.high critical
|
||||
- if update.today?
|
||||
%span.tag.today today
|
||||
|
||||
- else
|
||||
%h2
|
||||
No assigned
|
||||
%span.tag.open open
|
||||
issues
|
||||
- @issues.each do |issue|
|
||||
.alert-message.entry
|
||||
= link_to [issue.project, issue] do
|
||||
%p
|
||||
%strong
|
||||
= issue.project.name
|
||||
–
|
||||
Issue #
|
||||
= issue.id
|
||||
= truncate issue.title, :length => 50
|
||||
|
|
|
@ -1,24 +1,10 @@
|
|||
#feeds_content_holder
|
||||
- unless @merge_requests.empty?
|
||||
.project-box.project-updates.ui-box.ui-box-small.ui-box-big
|
||||
.data
|
||||
- @merge_requests.each do |update|
|
||||
%a.project-update{:href => project_merge_request_path(update.project, update)}
|
||||
= image_tag gravatar_icon(update.author_email), :class => "left", :width => 40
|
||||
%span.update-title
|
||||
= truncate update.title, :length => 35
|
||||
.right= truncate update.project.name
|
||||
%span.update-author
|
||||
%strong= update.author_name
|
||||
authored
|
||||
= time_ago_in_words(update.created_at)
|
||||
ago
|
||||
.right
|
||||
%span.tag.commit= update.source_branch
|
||||
→
|
||||
%span.tag.commit= update.target_branch
|
||||
- else
|
||||
%h2
|
||||
No authored or assigned
|
||||
%span.tag.open open
|
||||
merge requests
|
||||
- @merge_requests.each do |merge_request|
|
||||
.alert-message.entry
|
||||
= link_to [merge_request.project, merge_request] do
|
||||
%p
|
||||
%strong
|
||||
= merge_request.project.name
|
||||
–
|
||||
Merge Request #
|
||||
= merge_request.id
|
||||
= truncate merge_request.title, :length => 50
|
||||
|
|
|
@ -1,20 +1,17 @@
|
|||
#feeds_content_holder
|
||||
- @active_projects.first(3).each do |project|
|
||||
.project-box.project-updates.ui-box.ui-box-small.ui-box-big
|
||||
= link_to project do
|
||||
%h3= project.name
|
||||
.data
|
||||
- project.updates(3).each do |update|
|
||||
%a.project-update{:href => dashboard_feed_path(project, update)}
|
||||
= image_tag gravatar_icon(update.author_email), :class => "left", :width => 40
|
||||
%span.update-title
|
||||
= dashboard_feed_title(update)
|
||||
%span.update-author
|
||||
%strong= update.author_name
|
||||
authored
|
||||
= time_ago_in_words(update.created_at)
|
||||
ago
|
||||
.right
|
||||
- klass = update.class.to_s.split("::").last.downcase
|
||||
%span.tag{ :class => klass }= klass
|
||||
- @active_projects.first(3).each do |project|
|
||||
= link_to project do
|
||||
%h4= project.name
|
||||
- project.updates(3).each do |update|
|
||||
%a.project-update{:href => dashboard_feed_path(project, update)}
|
||||
= image_tag gravatar_icon(update.author_email), :class => "avatar", :width => 32
|
||||
%div
|
||||
= dashboard_feed_title(update)
|
||||
%span.update-author
|
||||
%strong= update.author_name
|
||||
authored
|
||||
= time_ago_in_words(update.created_at)
|
||||
ago
|
||||
.right
|
||||
- klass = update.class.to_s.split("::").last.downcase
|
||||
%span.tag{ :class => klass }= klass
|
||||
|
||||
|
|
|
@ -1,15 +0,0 @@
|
|||
%aside
|
||||
%h4
|
||||
- if current_user.can_create_project?
|
||||
%a.button-small.button-green{:href => new_project_path} New Project
|
||||
Your Projects
|
||||
%ol.project-list
|
||||
- @projects.each do |project|
|
||||
%li
|
||||
%a{:href => project_path(project)}
|
||||
-#%span.arrow →
|
||||
%span.project-name= project.name
|
||||
%span.time
|
||||
%strong Last activity:
|
||||
= project.last_activity_date_cached ? time_ago_in_words(project.last_activity_date_cached) + " ago" : "Never"
|
||||
|
|
@ -1,5 +1,3 @@
|
|||
- content_for(:body_class, "dashboard-page")
|
||||
|
||||
#dashboard-content.dashboard-content.content
|
||||
= render "dashboard/sidebar"
|
||||
#news-feed.news-feed= render "dashboard/projects_feed"
|
||||
%h3 Activities
|
||||
%hr
|
||||
.news-feed= render "dashboard/projects_feed"
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
- content_for(:body_class, "dashboard-page")
|
||||
%h3
|
||||
Issues
|
||||
%small ( assigned to you )
|
||||
|
||||
#dashboard-content.dashboard-content.content
|
||||
= render "dashboard/sidebar"
|
||||
#news-feed.news-feed= render "dashboard/issues_feed"
|
||||
%hr
|
||||
= render "dashboard/issues_feed"
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
- content_for(:body_class, "dashboard-page")
|
||||
%h3
|
||||
Merge Requests
|
||||
%small ( authored or assigned to you )
|
||||
|
||||
#dashboard-content.dashboard-content.content
|
||||
= render "dashboard/sidebar"
|
||||
#news-feed.news-feed= render "dashboard/merge_requests_feed"
|
||||
%hr
|
||||
= render "dashboard/merge_requests_feed"
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
%div
|
||||
= form_for [@project, @key], :url => project_deploy_keys_path do |f|
|
||||
-if @key.errors.any?
|
||||
%ul.errors_holder
|
||||
- @key.errors.full_messages.each do |msg|
|
||||
%li= msg
|
||||
|
||||
%table.no-borders
|
||||
%tr
|
||||
%td= f.label :title
|
||||
%td= f.text_field :title, :style => "width:300px"
|
||||
%tr
|
||||
%td= f.label :key
|
||||
%td= f.text_area :key, :style => "width:300px; height:130px"
|
||||
%br
|
||||
.merge-tabs
|
||||
= f.submit 'Save', :class => "positive-button"
|
||||
.alert-message.block-message.error
|
||||
%ul
|
||||
- @key.errors.full_messages.each do |msg|
|
||||
%li= msg
|
||||
|
||||
.clearfix
|
||||
= f.label :title
|
||||
.input= f.text_field :title
|
||||
.clearfix
|
||||
= f.label :key
|
||||
.input= f.text_area :key, :class => "xlarge"
|
||||
.actions
|
||||
= f.submit 'Save', :class => "primary btn"
|
||||
= link_to "Cancel", project_deploy_keys_path(@project), :class => "btn"
|
||||
|
||||
|
|
|
@ -1,17 +1,10 @@
|
|||
= render "repositories/head"
|
||||
- if can? current_user, :admin_project, @project
|
||||
.alert-message.block-message.info
|
||||
Deploy keys allow read-only access to repository.
|
||||
= link_to new_project_deploy_key_path(@project), :class => "btn small", :title => "New Deploy Key" do
|
||||
Add Deploy Key
|
||||
|
||||
%div#keys-table{ :class => "update-data ui-box ui-box-small ui-box-big" }
|
||||
.data
|
||||
- @keys.each do |key|
|
||||
= render(:partial => 'show', :locals => {:key => key})
|
||||
|
||||
- if @keys.blank?
|
||||
.notice_holder
|
||||
%li Deploy Keys do not exist yet.
|
||||
- if can? current_user, :admin_project, @project
|
||||
%li You can add a new one by clicking on "Add New" button
|
||||
|
||||
:javascript
|
||||
$('.delete-key').live('ajax:success', function() {
|
||||
$(this).closest('.update-item').fadeOut(); });
|
||||
|
||||
%ul.unstyled
|
||||
- @keys.each do |key|
|
||||
%li= render(:partial => 'show', :locals => {:key => key})
|
||||
|
|
|
@ -1,10 +1,7 @@
|
|||
.ui-box.width-100p
|
||||
%h3= @key.title
|
||||
.data
|
||||
%pre= @key.key
|
||||
.clear
|
||||
.buttons
|
||||
= link_to 'Remove', project_deploy_key_path(@key.project, @key), :confirm => 'Are you sure?', :method => :delete, :class => "red-button delete-key right"
|
||||
.clear
|
||||
|
||||
|
||||
= render "repositories/head"
|
||||
%h3= @key.title
|
||||
%hr
|
||||
%pre= @key.key
|
||||
.actions
|
||||
= link_to 'Remove', project_deploy_key_path(@key.project, @key), :confirm => 'Are you sure?', :method => :delete, :class => "danger btn delete-key"
|
||||
.clear
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
<%= devise_error_messages! %>
|
||||
<%= f.email_field :email, :placeholder => "Email", :class => "text top" %>
|
||||
<br/>
|
||||
<%= f.submit "Reset password", :class => "grey-button" %>
|
||||
<%= f.submit "Reset password", :class => "primary btn" %>
|
||||
<div class="right"> <%= render :partial => "devise/shared/links" %></div>
|
||||
<% end %>
|
||||
|
|
|
@ -4,10 +4,10 @@
|
|||
<%= f.password_field :password, :class => "text bottom", :placeholder => "Password" %>
|
||||
|
||||
<% if devise_mapping.rememberable? -%>
|
||||
<div><%= f.check_box :remember_me %> <%= f.label :remember_me %></div>
|
||||
<div class="clearfix"> <%= f.label :remember_me %><%= f.check_box :remember_me %></div>
|
||||
<% end -%>
|
||||
<br/>
|
||||
<%= f.submit "Sign in", :class => "grey-button" %>
|
||||
<%= f.submit "Sign in", :class => "primary btn" %>
|
||||
<div class="right"> <%= render :partial => "devise/shared/links" %></div>
|
||||
<% if ldap_enable? -%>
|
||||
<p><%= link_to "via LDAP", user_omniauth_authorize_path(:ldap)%></p>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<%- if controller_name != 'sessions' %>
|
||||
<%= link_to "Sign in", new_session_path(resource_name) %><br />
|
||||
<%= link_to "Sign in", new_session_path(resource_name), :class => "btn" %><br />
|
||||
<% end -%>
|
||||
|
||||
<%- if devise_mapping.registerable? && controller_name != 'registrations' %>
|
||||
|
@ -7,7 +7,7 @@
|
|||
<% end -%>
|
||||
|
||||
<%- if devise_mapping.recoverable? && controller_name != 'passwords' %>
|
||||
<%= link_to "Forgot your password?", new_password_path(resource_name) %><br />
|
||||
<%= link_to "Forgot your password?", new_password_path(resource_name), :class => "btn" %><br />
|
||||
<% end -%>
|
||||
|
||||
<%- if devise_mapping.confirmable? && controller_name != 'confirmations' %>
|
||||
|
|
|
@ -1,25 +1,18 @@
|
|||
= render "repositories/head"
|
||||
- unless @hooks.empty?
|
||||
%div.update-data.ui-box.ui-box-small
|
||||
.data
|
||||
- @hooks.each do |hook|
|
||||
%a.update-item{:href => project_hook_path(@project, hook)}
|
||||
%span.update-title{:style => "margin-bottom:0px;"}
|
||||
= hook.url
|
||||
%span.update-author.right
|
||||
Added
|
||||
= time_ago_in_words(hook.created_at)
|
||||
ago
|
||||
- else
|
||||
%h3 No hooks
|
||||
|
||||
.clear
|
||||
%hr
|
||||
%p
|
||||
Post receive hooks. For now only POST request allowed. We send some data with request. Example below
|
||||
- if can? current_user, :admin_project, @project
|
||||
.alert-message.block-message.info
|
||||
Post receive hooks for binding events when someone push to repository.
|
||||
= link_to new_project_hook_path(@project), :class => "btn small", :title => "New Web Hook" do
|
||||
Add Post Receive Hook
|
||||
|
||||
.view_file
|
||||
.view_file_header
|
||||
%strong POST data passed
|
||||
.data.no-padding
|
||||
= render "data_ex"
|
||||
%ul.unstyled
|
||||
- @hooks.each do |hook|
|
||||
%li
|
||||
%a.update-item{:href => project_hook_path(@project, hook)}
|
||||
= hook.url
|
||||
|
||||
.alert-message.block-message.info
|
||||
We send some data with POST request when someone makes git push
|
||||
|
||||
.well= render "data_ex"
|
||||
|
|
|
@ -1,11 +1,7 @@
|
|||
= render "repositories/head"
|
||||
%h3
|
||||
%span.commit.tag POST
|
||||
= @hook.url
|
||||
|
||||
%pre= @hook.url
|
||||
|
||||
- if can? current_user, :admin_project, @project
|
||||
.merge-tabs
|
||||
= link_to 'Test Hook', test_project_hook_path(@project, @hook), :class => "grey-button"
|
||||
.right
|
||||
= link_to 'Remove', project_hook_path(@project, @hook), :confirm => 'Are you sure?', :method => :delete, :class => "red-button"
|
||||
.actions
|
||||
= link_to 'Test Hook', test_project_hook_path(@project, @hook), :class => "btn"
|
||||
= link_to 'Remove', project_hook_path(@project, @hook), :confirm => 'Are you sure?', :method => :delete, :class => "danger btn"
|
||||
|
|
|
@ -1,51 +1,41 @@
|
|||
%div.issue-form-holder
|
||||
= form_for [@project, @issue], :remote => request.xhr? do |f|
|
||||
%div
|
||||
%span.entity-info
|
||||
- if request.xhr?
|
||||
= link_to "#back", :onclick => "backToIssues();" do
|
||||
.entity-button
|
||||
Issues
|
||||
%i
|
||||
- else
|
||||
- if @issue.new_record?
|
||||
= link_to project_issues_path(@project) do
|
||||
.entity-button
|
||||
Issues
|
||||
%i
|
||||
- else
|
||||
= link_to project_issue_path(@project, @issue) do
|
||||
.entity-button
|
||||
Show Issue
|
||||
%i
|
||||
|
||||
%h2= @issue.new_record? ? "New Issue" : "Edit Issue ##{@issue.id}"
|
||||
%hr
|
||||
%h3= @issue.new_record? ? "New Issue" : "Edit Issue ##{@issue.id}"
|
||||
%hr
|
||||
-if @issue.errors.any?
|
||||
%ul.errors_holder
|
||||
- @issue.errors.full_messages.each do |msg|
|
||||
%li= msg
|
||||
.alert-message.block-message.error
|
||||
%ul
|
||||
- @issue.errors.full_messages.each do |msg|
|
||||
%li= msg
|
||||
|
||||
%table.no-borders
|
||||
%tr
|
||||
%td= f.label :assignee_id
|
||||
%td= f.select(:assignee_id, @project.users.all.collect {|p| [ p.name, p.id ] }, { :include_blank => "Select user" })
|
||||
.clearfix
|
||||
= f.label :assignee_id
|
||||
.input= f.select(:assignee_id, @project.users.all.collect {|p| [ p.name, p.id ] }, { :include_blank => "Select user" })
|
||||
|
||||
%tr
|
||||
%td= f.label :critical, "Critical"
|
||||
%td= f.check_box :critical
|
||||
|
||||
- unless @issue.new_record?
|
||||
%tr
|
||||
%td= f.label :closed
|
||||
%td= f.check_box :closed
|
||||
.clearfix
|
||||
= f.label :critical, "Critical"
|
||||
.input= f.check_box :critical
|
||||
|
||||
= f.text_area :title, :style => "width:718px; height:100px", :maxlength => 255
|
||||
%br
|
||||
%br
|
||||
.merge-tabs
|
||||
= f.submit 'Save', :class => "positive-button"
|
||||
|
||||
- unless @issue.new_record?
|
||||
.clearfix
|
||||
= f.label :closed
|
||||
.input= f.check_box :closed
|
||||
|
||||
.clearfix
|
||||
= f.label :title
|
||||
.input= f.text_area :title, :maxlength => 255, :class => "xlarge"
|
||||
.actions
|
||||
= f.submit 'Save', :class => "primary btn"
|
||||
|
||||
- if request.xhr?
|
||||
= link_to "Cancel", "#back", :onclick => "backToIssues();", :class => "btn"
|
||||
- else
|
||||
- if @issue.new_record?
|
||||
= link_to "Cancel", project_issues_path(@project), :class => "btn"
|
||||
- else
|
||||
= link_to "Cancel", project_issue_path(@project, @issue), :class => "btn"
|
||||
|
||||
|
||||
- unless @issue.new_record?
|
||||
.right
|
||||
= link_to 'Remove', [@project, @issue], :confirm => 'Are you sure?', :method => :delete, :class => "red-button"
|
||||
= link_to 'Remove', [@project, @issue], :confirm => 'Are you sure?', :method => :delete, :class => "danger btn"
|
||||
|
|
|
@ -1,14 +1,4 @@
|
|||
.top-tabs
|
||||
= link_to project_issues_path(@project), :class => "tab #{'active' if current_page?(project_issues_path(@project)) }" do
|
||||
%span
|
||||
Issues
|
||||
|
||||
-#= link_to project_issues_path(@project), :class => "tab" do
|
||||
%span
|
||||
Milestones
|
||||
|
||||
- if current_page?(project_issues_path(@project))
|
||||
- if can? current_user, :write_issue, @project
|
||||
= link_to new_project_issue_path(@project), :class => "add_new", :title => "New Issue", :remote => true do
|
||||
Add new
|
||||
|
||||
.tabs
|
||||
%li{:class => "#{'active' if current_page?(project_issues_path(@project))}"}
|
||||
= link_to project_issues_path(@project), :class => "tab" do
|
||||
Issues
|
||||
|
|
|
@ -1,26 +1,32 @@
|
|||
%tr{ :id => dom_id(issue), :class => "issue #{issue.critical ? "critical" : ""}", :url => project_issue_path(issue.project, issue) }
|
||||
%td
|
||||
%strong.issue-number{:class => sort_class}= "##{issue.id}"
|
||||
%span
|
||||
= truncate(html_escape(issue.title), :length => 100)
|
||||
%br
|
||||
%br
|
||||
%div.note-author
|
||||
%strong= issue.assignee.name
|
||||
%cite.cgray
|
||||
= time_ago_in_words(issue.created_at)
|
||||
ago
|
||||
- if issue.critical
|
||||
%span.tag.high critical
|
||||
- if issue.today?
|
||||
%span.tag.today today
|
||||
.right.action-links
|
||||
- if can? current_user, :write_issue, issue
|
||||
- if issue.closed
|
||||
= link_to 'Reopen', project_issue_path(issue.project, issue, :issue => {:closed => false }, :status_only => true), :method => :put, :class => "cgray", :remote => true
|
||||
- else
|
||||
= link_to 'Resolve', project_issue_path(issue.project, issue, :issue => {:closed => true }, :status_only => true), :method => :put, :class => "cgray", :remote => true
|
||||
- if can? current_user, :write_issue, issue
|
||||
= link_to 'Edit', edit_project_issue_path(issue.project, issue), :class => "cgray edit-issue-link", :remote => true
|
||||
- if can?(current_user, :admin_issue, @project) || issue.author == current_user
|
||||
= link_to 'Remove', [issue.project, issue], :confirm => 'Are you sure?', :method => :delete, :remote => true, :class => "cred delete-issue negative", :id => "destroy_issue_#{issue.id}"
|
||||
%li.wll{ :id => dom_id(issue), :class => "issue #{issue.critical ? "critical" : ""}", :url => project_issue_path(issue.project, issue) }
|
||||
= image_tag gravatar_icon(issue.assignee_email), :class => "avatar"
|
||||
%span.update-author
|
||||
assigned to
|
||||
%strong
|
||||
= link_to project_team_member_path(@project, @project.team_member_by_id(issue.author_id)), :class => "author_link" do
|
||||
= issue.assignee_name
|
||||
- if issue.critical
|
||||
%span.label.important critical
|
||||
- if issue.today?
|
||||
%span.label.success today
|
||||
|
||||
.right
|
||||
- if can? current_user, :write_issue, issue
|
||||
- if issue.closed
|
||||
= link_to 'Reopen', project_issue_path(issue.project, issue, :issue => {:closed => false }, :status_only => true), :method => :put, :class => "btn small", :remote => true
|
||||
- else
|
||||
= link_to 'Resolve', project_issue_path(issue.project, issue, :issue => {:closed => true }, :status_only => true), :method => :put, :class => "success btn small", :remote => true
|
||||
- if can? current_user, :write_issue, issue
|
||||
= link_to 'Edit', edit_project_issue_path(issue.project, issue), :class => "btn small edit-issue-link", :remote => true
|
||||
-#- if can?(current_user, :admin_issue, @project) || issue.author == current_user
|
||||
= link_to 'Remove', [issue.project, issue], :confirm => 'Are you sure?', :method => :delete, :remote => true, :class => "danger btn small delete-issue", :id => "destroy_issue_#{issue.id}"
|
||||
|
||||
|
||||
= link_to project_issue_path(issue.project, issue) do
|
||||
%p
|
||||
Issue ##{issue.id}:
|
||||
= truncate(issue.title, :length => 50)
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,57 +1,54 @@
|
|||
= render "issues/head"
|
||||
- if current_user.private_token
|
||||
= content_for :rss_icon do
|
||||
.rss-icon
|
||||
.issues_content
|
||||
%h3
|
||||
Issues
|
||||
%span.rss-icon
|
||||
= link_to project_issues_path(@project, :atom, { :private_token => current_user.private_token }) do
|
||||
= image_tag "Rss-UI.PNG", :width => 22, :title => "feed"
|
||||
|
||||
%div#issues-table-holder
|
||||
.top_panel_issues
|
||||
= form_tag search_project_issues_path(@project), :method => :get, :remote => true, :class => :right, :id => "issue_search_form" do
|
||||
= hidden_field_tag :project_id, @project.id, { :id => 'project_id' }
|
||||
= search_field_tag :issue_search, nil, { :placeholder => 'Search', :class => 'issue_search' }
|
||||
|
||||
.left.issues_filter
|
||||
= form_tag project_issues_path(@project), :method => :get do
|
||||
.left
|
||||
= radio_button_tag :f, 0, (params[:f] || "0") == "0", :onclick => "setIssueFilter(this.form, 0)", :id => "open_issues", :class => "status"
|
||||
= label_tag "open_issues" do
|
||||
%span.tag.open Open
|
||||
.left
|
||||
= radio_button_tag :f, 2, params[:f] == "2", :onclick => "setIssueFilter(this.form, 2)", :id => "closed_issues", :class => "status"
|
||||
= label_tag "closed_issues" do
|
||||
%span.tag.closed Closed
|
||||
.left
|
||||
= radio_button_tag :f, 3, params[:f] == "3", :onclick => "setIssueFilter(this.form, 3)", :id => "my_issues", :class => "status"
|
||||
= label_tag "my_issues","To Me"
|
||||
.left
|
||||
= radio_button_tag :f, 1, params[:f] == "1", :onclick => "setIssueFilter(this.form, 1)", :id => "all_issues", :class => "status"
|
||||
= label_tag "all_issues","All"
|
||||
|
||||
.clear
|
||||
- if can? current_user, :write_issue, @project
|
||||
= link_to new_project_issue_path(@project), :class => "right btn small", :title => "New Issue", :remote => true do
|
||||
New Issue
|
||||
%hr
|
||||
%table.no-borders#issues-table
|
||||
= render "issues"
|
||||
%br
|
||||
%div#issues-table-holder
|
||||
.row
|
||||
.span8
|
||||
%ul.pills.left
|
||||
%li{:class => ("active" if (params[:f] == "0" || !params[:f]))}
|
||||
= link_to project_issues_path(@project, :f => 0) do
|
||||
Open
|
||||
%li{:class => ("active" if params[:f] == "2")}
|
||||
= link_to project_issues_path(@project, :f => 2) do
|
||||
Closed
|
||||
%li{:class => ("active" if params[:f] == "3")}
|
||||
= link_to project_issues_path(@project, :f => 3) do
|
||||
To Me
|
||||
%li{:class => ("active" if params[:f] == "1")}
|
||||
= link_to project_issues_path(@project, :f => 1) do
|
||||
All
|
||||
|
||||
.span2.right
|
||||
= form_tag search_project_issues_path(@project), :method => :get, :remote => true, :id => "issue_search_form", :class => :right do
|
||||
= hidden_field_tag :project_id, @project.id, { :id => 'project_id' }
|
||||
= hidden_field_tag :status, params[:f]
|
||||
= search_field_tag :issue_search, nil, { :placeholder => 'Search', :class => 'issue_search' }
|
||||
|
||||
%hr
|
||||
%ul#issues-table.unstyled= render "issues"
|
||||
|
||||
:javascript
|
||||
var href = $('.issue_search').parent().attr('action');
|
||||
var last_terms = '';
|
||||
|
||||
var setIssueFilter = function(form, value){
|
||||
$.cookie('issue_filter', value, { expires: 140 });
|
||||
form.submit();
|
||||
}
|
||||
|
||||
$('.issue_search').keyup(function() {
|
||||
var terms = $(this).val();
|
||||
var project_id = $('#project_id').val();
|
||||
var status = $('.status:checked').val();
|
||||
var status = $('#status').val();
|
||||
if (terms != last_terms) {
|
||||
last_terms = terms;
|
||||
|
||||
if (terms.length >= 2 || terms.length == 0) {
|
||||
$.get(href, { 'status': status, 'terms': terms, project: project_id }, function(response) {
|
||||
$('#issues-table tbody').html(response);
|
||||
$('#issues-table').html(response);
|
||||
setSortable();
|
||||
});
|
||||
}
|
||||
|
@ -62,7 +59,7 @@
|
|||
$(this).closest('tr').fadeOut(); updatePage();});
|
||||
|
||||
function setSortable(){
|
||||
$('#issues-table>tbody').sortable({
|
||||
$('#issues-table').sortable({
|
||||
axis: 'y',
|
||||
dropOnEmpty: false,
|
||||
handle: '.handle',
|
||||
|
@ -73,10 +70,10 @@
|
|||
update: function(){
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
data: $('#issues-table>tbody').sortable('serialize'),
|
||||
data: $('#issues-table').sortable('serialize'),
|
||||
dataType: 'script',
|
||||
complete: function(request){
|
||||
$('#issues-table>tbody').effect('highlight');
|
||||
$('#issues-table').effect('highlight');
|
||||
},
|
||||
url: "#{sort_project_issues_path(@project)}"})
|
||||
}
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
:plain
|
||||
$('#issues-table tbody').html("#{escape_javascript(render('issues'))}");
|
||||
$('#issues-table').html("#{escape_javascript(render('issues'))}");
|
||||
setSortable();
|
||||
|
|
|
@ -1,49 +1,42 @@
|
|||
%div
|
||||
%span.entity-info
|
||||
%h3
|
||||
Issue ##{@issue.id}
|
||||
%small
|
||||
created at
|
||||
= @issue.created_at.stamp("Aug 21, 2011")
|
||||
|
||||
%span.right
|
||||
- if can?(current_user, :admin_project, @project) || @issue.author == current_user
|
||||
= link_to edit_project_issue_path(@project, @issue) do
|
||||
.entity-button
|
||||
Edit Issue
|
||||
%i
|
||||
= image_tag gravatar_icon(@issue.author_email), :class => "left", :width => 40, :style => "padding-right:5px;"
|
||||
%span.commit-title
|
||||
%strong
|
||||
= "Issue ##{@issue.id}:"
|
||||
%span.commit-author
|
||||
%strong
|
||||
= link_to project_team_member_path(@project, @project.team_member_by_id(@issue.author.id)) do
|
||||
%span.author= @issue.author_name
|
||||
- if @issue.author != @issue.assignee
|
||||
→
|
||||
= link_to project_team_member_path(@project, @project.team_member_by_id(@issue.assignee.id)) do
|
||||
%span.author= @issue.assignee_name
|
||||
|
||||
- if @issue.closed
|
||||
= link_to 'Reopen', project_issue_path(@project, @issue, :issue => {:closed => false }, :status_only => true), :method => :put, :class => "btn"
|
||||
- else
|
||||
= link_to 'Close', project_issue_path(@project, @issue, :issue => {:closed => true }, :status_only => true), :method => :put, :class => "btn", :title => "Close merge request"
|
||||
- if can?(current_user, :admin_project, @project) || @issue.author == current_user
|
||||
= link_to edit_project_issue_path(@project, @issue), :class => "btn small" do
|
||||
Edit
|
||||
|
||||
|
||||
= @issue.created_at.stamp("Aug 21, 2011 9:23pm")
|
||||
%hr
|
||||
- if @issue.closed
|
||||
.alert-message.error Closed
|
||||
- else
|
||||
.alert-message.success Open
|
||||
|
||||
%hr
|
||||
%br
|
||||
%h3
|
||||
= simple_format @issue.title
|
||||
|
||||
.clear
|
||||
%br
|
||||
%br
|
||||
%div.well
|
||||
%div
|
||||
%cite.cgray Created by
|
||||
= image_tag gravatar_icon(@issue.author_email), :width => 16, :class => "lil_av"
|
||||
= link_to project_team_member_path(@project, @project.team_member_by_id(@issue.author.id)) do
|
||||
%strong.author= @issue.author_name
|
||||
|
||||
.merge-tabs
|
||||
= link_to "#notes", :class => "merge-notes-tab active tab" do
|
||||
%span
|
||||
Notes
|
||||
.right
|
||||
- if @issue.closed
|
||||
= link_to 'Reopen', project_issue_path(@project, @issue, :issue => {:closed => false }, :status_only => true), :method => :put, :class => "red-button"
|
||||
- else
|
||||
= link_to 'Close', project_issue_path(@project, @issue, :issue => {:closed => true }, :status_only => true), :method => :put, :class => "positive-button"
|
||||
%cite.cgray and currently assigned to
|
||||
= image_tag gravatar_icon(@issue.assignee_email), :width => 16, :class => "lil_av"
|
||||
= link_to project_team_member_path(@project, @project.team_member_by_id(@issue.assignee.id)) do
|
||||
%strong.author= @issue.assignee_name
|
||||
|
||||
%hr
|
||||
|
||||
%div= simple_format @issue.title
|
||||
|
||||
.merge-request-notes
|
||||
.issue_notes= render "notes/notes"
|
||||
.loading{ :style => "display:none;"}
|
||||
%center= image_tag "ajax-loader.gif"
|
||||
.clear
|
||||
|
||||
.issue_notes= render "notes/notes"
|
||||
|
||||
|
|
|
@ -1,16 +1,18 @@
|
|||
%div
|
||||
= form_for @key, :remote => true do |f|
|
||||
= form_for @key do |f|
|
||||
-if @key.errors.any?
|
||||
%ul
|
||||
- @key.errors.full_messages.each do |msg|
|
||||
%li= msg
|
||||
.alert-message.block-message.error
|
||||
%ul
|
||||
- @key.errors.full_messages.each do |msg|
|
||||
%li= msg
|
||||
|
||||
.form-row
|
||||
.clearfix
|
||||
= f.label :title
|
||||
= f.text_field :title, :style => "width:300px"
|
||||
.form-row
|
||||
.input= f.text_field :title
|
||||
.clearfix
|
||||
= f.label :key
|
||||
= f.text_area :key, :style => "width:300px; height:130px"
|
||||
.form-row
|
||||
= f.submit 'Save', :class => "grey-button"
|
||||
.input= f.text_area :key, :class => "xlarge"
|
||||
.actions
|
||||
= f.submit 'Save', :class => "primary btn"
|
||||
= link_to "Cancel", keys_path, :class => "btn"
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
%a.update-item{:href => key_path(key)}
|
||||
%span.update-title
|
||||
= key.title
|
||||
%span.update-author
|
||||
Added
|
||||
= time_ago_in_words(key.created_at)
|
||||
ago
|
||||
%li.entry
|
||||
= link_to key_path(key) do
|
||||
%strong= key.title
|
||||
%span.right.cgray
|
||||
Added
|
||||
= time_ago_in_words(key.created_at)
|
||||
ago
|
||||
|
|
|
@ -1,16 +1,10 @@
|
|||
%h2.icon
|
||||
%span>
|
||||
%h3
|
||||
SSH Keys
|
||||
%div#new-key-holder.right
|
||||
= link_to "Add new", new_key_path, :remote => true, :class => "grey-button"
|
||||
%br
|
||||
= link_to "Add new", new_key_path, :class => "btn small right"
|
||||
|
||||
%hr
|
||||
|
||||
%div#keys-table{ :class => "update-data ui-box ui-box-small ui-box-big" }
|
||||
.data
|
||||
%ul.unstyled
|
||||
- @keys.each do |key|
|
||||
= render(:partial => 'show', :locals => {:key => key})
|
||||
|
||||
:javascript
|
||||
$('.delete-key').live('ajax:success', function() {
|
||||
$(this).closest('.update-item').fadeOut(); });
|
||||
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
%h1 New key
|
||||
|
||||
%h3 New key
|
||||
%hr
|
||||
= render 'form'
|
||||
|
||||
= link_to 'Back', keys_path
|
||||
|
|
|
@ -1,10 +1,7 @@
|
|||
.ui-box.width-100p
|
||||
%h3= @key.title
|
||||
.data
|
||||
%pre= @key.key
|
||||
.clear
|
||||
.buttons
|
||||
= link_to 'Remove', @key, :confirm => 'Are you sure?', :method => :delete, :class => "red-button delete-key right"
|
||||
.clear
|
||||
%h3= @key.title
|
||||
%hr
|
||||
%pre= @key.key
|
||||
.actions
|
||||
= link_to 'Remove', @key, :confirm => 'Are you sure?', :method => :delete, :class => "btn danger delete-key"
|
||||
|
||||
|
||||
|
|
10
app/views/layouts/_app_side.html.haml
Normal file
10
app/views/layouts/_app_side.html.haml
Normal file
|
@ -0,0 +1,10 @@
|
|||
.fixed
|
||||
%aside
|
||||
-#= link_to "Activities", dashboard_path, :class => "#{"active" if current_page?(dashboard_path) || current_page?(root_path) }"
|
||||
= link_to "Projects", projects_path, :class => "#{"active" if current_page?(projects_path)}"
|
||||
= link_to "Issues", dashboard_issues_path, :class => "#{"active" if current_page?(dashboard_issues_path)}", :id => "issues_slide"
|
||||
= link_to "Requests", dashboard_merge_requests_path, :class => "#{"active" if current_page?(dashboard_merge_requests_path)}", :id => "merge_requests_slide"
|
||||
- if current_user.is_admin?
|
||||
= link_to admin_root_path, :class => "admin", :title => "Admin" do
|
||||
Admin
|
||||
= link_to "Help", help_path, :class => "#{"active" if controller.controller_name == "help"}"
|
|
@ -10,7 +10,7 @@
|
|||
$("#flash_container").click(function(){
|
||||
$(this).slideUp("slow");
|
||||
});
|
||||
setTimeout("hideFlash()",2000);
|
||||
setTimeout("hideFlash()",3000);
|
||||
});
|
||||
|
||||
function hideFlash(){
|
||||
|
|
|
@ -11,23 +11,7 @@
|
|||
= truncate @project.name, :length => 28
|
||||
.git_url_wrapper
|
||||
%input.git-url.text{:id => "", :name => "", :readonly => "", :type => "text", :value => @project.url_to_repo, :class => "one_click_select"}
|
||||
- if @project.repo_exists?
|
||||
.left{:style => "margin-left:5px;"}
|
||||
= render :partial => "projects/refs", :locals => { :destination => controller.controller_name == "commits" ? "commits" : "tree" }
|
||||
= yield :rss_icon
|
||||
|
||||
- else
|
||||
.dashboard_links
|
||||
= link_to "Activities", dashboard_path, :class => "#{"active" if current_page?(dashboard_path) || current_page?(root_path) }"
|
||||
= link_to "Projects", projects_path, :class => "#{"active" if current_page?(projects_path)}"
|
||||
= link_to "Issues", dashboard_issues_path, :class => "#{"active" if current_page?(dashboard_issues_path)}", :id => "issues_slide"
|
||||
= link_to "Requests", dashboard_merge_requests_path, :class => "#{"active" if current_page?(dashboard_merge_requests_path)}", :id => "merge_requests_slide"
|
||||
- if current_user.is_admin?
|
||||
= link_to admin_root_path, :class => "admin", :title => "Admin" do
|
||||
Admin
|
||||
= link_to "Help", help_path, :class => "#{"active" if controller.controller_name == "help"}"
|
||||
.search
|
||||
= text_field_tag "search", nil, :placeholder => "Search", :class => "search-input"
|
||||
|
||||
.account-box
|
||||
= link_to profile_path, :class => "pic" do
|
||||
|
@ -36,16 +20,3 @@
|
|||
= link_to profile_path, :class => "username" do
|
||||
My profile
|
||||
= link_to 'Logout', destroy_user_session_path, :class => "logout", :method => :delete
|
||||
- if current_user
|
||||
= javascript_tag do
|
||||
$(function(){
|
||||
$("#search").autocomplete({
|
||||
source: #{raw search_autocomplete_source},
|
||||
select: function(event, ui) { location.href = ui.item.url }
|
||||
});
|
||||
});
|
||||
|
||||
-#- if current_user.require_ssh_key?
|
||||
#no_ssh_key_defined.big-message.error
|
||||
%p
|
||||
No SSH Key is defined. You won't be able to use any Git command!. Click #{link_to( 'here', keys_path )} to add one!
|
||||
|
|
|
@ -6,14 +6,14 @@
|
|||
|
||||
- if @project.repo_exists?
|
||||
= link_to "Repository", project_repository_path(@project), :class => repository_tab_class
|
||||
= link_to "Tree", tree_project_ref_path(@project, @ref || @project.root_ref), :class => tree_tab_class
|
||||
= link_to "Commits", project_commits_path(@project, :ref => (@ref || @project.root_ref)), :class => (controller.controller_name == "commits") ? "current" : nil
|
||||
= link_to "Code", tree_project_ref_path(@project, @project.root_ref), :class => tree_tab_class
|
||||
= link_to "Commits", project_commits_path(@project), :class => (controller.controller_name == "commits") ? "current" : nil
|
||||
= link_to "Network", graph_project_path(@project), :class => current_page?(:controller => "projects", :action => "graph", :id => @project) ? "current" : nil
|
||||
= link_to project_issues_filter_path(@project), :class => (controller.controller_name == "issues") ? "current" : nil do
|
||||
Issues
|
||||
= link_to wall_project_path(@project), :class => current_page?(:controller => "projects", :action => "wall", :id => @project) ? "current" : nil do
|
||||
Wall
|
||||
- if @project.common_notes.today.count > 0
|
||||
%span{ :class => "number" }= @project.common_notes.today.count
|
||||
= link_to project_merge_requests_path(@project), :class => (controller.controller_name == "merge_requests") ? "current" : nil do
|
||||
Requests
|
||||
Merge Requests
|
||||
= link_to wall_project_path(@project), :class => current_page?(:controller => "projects", :action => "wall", :id => @project) ? "current" : nil do
|
||||
@Wall
|
||||
- if @project.common_notes.today.count > 0
|
||||
%span.label= @project.common_notes.today.count
|
||||
|
|
46
app/views/layouts/_project_side_right.html.haml
Normal file
46
app/views/layouts/_project_side_right.html.haml
Normal file
|
@ -0,0 +1,46 @@
|
|||
%aside.project-right
|
||||
- if content_for? :sidebar_all
|
||||
= render :sidebar_all
|
||||
- else
|
||||
- if content_for? :sidebar_top_block
|
||||
= yield :sidebar_top_block
|
||||
- else
|
||||
- if can? current_user, :write_project, @project
|
||||
.alert-message.block-message.info
|
||||
You have access to create new issue or merge request.
|
||||
%div
|
||||
= link_to new_project_issue_path(@project), :title => "New Issue", :class => "btn small" do
|
||||
New Issue »
|
||||
%div
|
||||
= link_to new_project_merge_request_path(@project), :title => "New Merge Request", :class => "btn small" do
|
||||
New Merge Request »
|
||||
|
||||
- if current_user.projects.count > 0
|
||||
%div.entry
|
||||
%h5
|
||||
Recent Projects:
|
||||
%ul
|
||||
- current_user.projects.order("id DESC").limit(5).each do |project|
|
||||
%li
|
||||
= link_to project_path(project) do
|
||||
= project.name
|
||||
= link_to "More » ", projects_path
|
||||
|
||||
-#%h4
|
||||
-#Recent Issues:
|
||||
-#%ul
|
||||
-#- current_user.assigned_issues.order("id DESC").limit(5).each do |issue|
|
||||
-#%li
|
||||
-#= link_to project_issue_path(issue.project, issue) do
|
||||
-#= truncate issue.title
|
||||
|
||||
|
||||
-#%h4
|
||||
-#Recent Requests:
|
||||
-#%ul
|
||||
-#- current_user.assigned_merge_requests.order("id DESC").limit(5).each do |issue|
|
||||
-#%li
|
||||
-#= link_to project_merge_request_path(issue.project, issue) do
|
||||
-#= truncate issue.title
|
||||
|
||||
|
38
app/views/layouts/_projects_side.html.haml
Normal file
38
app/views/layouts/_projects_side.html.haml
Normal file
|
@ -0,0 +1,38 @@
|
|||
%aside.projects
|
||||
- if current_user.can_create_project?
|
||||
.alert-message.block-message.info
|
||||
You can create at least
|
||||
= current_user.projects_limit
|
||||
projects. Click on button to add a new one
|
||||
= link_to new_project_path, :class => "btn small" do
|
||||
New Project
|
||||
|
||||
- if current_user.projects.count > 0
|
||||
%div.entry
|
||||
%h5
|
||||
Recent Projects:
|
||||
%ul
|
||||
- current_user.projects.order("id DESC").limit(5).each do |project|
|
||||
%li
|
||||
= link_to project_path(project) do
|
||||
= project.name
|
||||
= link_to "More » ", projects_path
|
||||
|
||||
-#%h5
|
||||
-#Your Issues:
|
||||
-#%ul
|
||||
-#- current_user.assigned_issues.order("id DESC").limit(5).each do |issue|
|
||||
-#%li
|
||||
-#= link_to project_issue_path(issue.project, issue) do
|
||||
-#= truncate issue.title
|
||||
|
||||
|
||||
-#%h5
|
||||
-#Your Merge Requests:
|
||||
-#%ul
|
||||
-#- current_user.assigned_merge_requests.order("id DESC").limit(5).each do |issue|
|
||||
-#%li
|
||||
-#= link_to project_merge_request_path(issue.project, issue) do
|
||||
-#= truncate issue.title
|
||||
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
!!!
|
||||
%html
|
||||
%head
|
||||
%meta{:charset => "utf-8"}
|
||||
%title
|
||||
GitLab #{" - #{@project.name}" if @project && !@project.new_record?}
|
||||
= favicon_link_tag 'favicon.ico'
|
||||
|
@ -10,19 +11,17 @@
|
|||
= javascript_tag do
|
||||
REQ_URI = "#{request.env["REQUEST_URI"]}";
|
||||
REQ_REFFER = "#{request.env["HTTP_REFERER"]}";
|
||||
%body{ :class => body_class('project-page'), :id => yield(:boyd_id)}
|
||||
%body.admin
|
||||
= render :partial => "layouts/flash"
|
||||
#container
|
||||
= render :partial => "layouts/head_panel"
|
||||
.project-container
|
||||
.project-sidebar
|
||||
.fixed
|
||||
%aside
|
||||
= link_to "Users", admin_users_path, :class => controller.controller_name == "users" ? "current" : nil
|
||||
= link_to "Projects", admin_projects_path, :class => controller.controller_name == "projects" ? "current" : nil
|
||||
= link_to "Teams", admin_team_members_path, :class => controller.controller_name == "team_members" ? "current" : nil
|
||||
= link_to "Emails", admin_emails_path, :class => controller.controller_name == "mailer" ? "current" : nil
|
||||
= link_to "Resque", "/info/resque"
|
||||
= render :partial => "layouts/head_panel"
|
||||
.container-fluid
|
||||
.sidebar
|
||||
.fixed
|
||||
%aside
|
||||
= link_to "Users", admin_users_path, :class => controller.controller_name == "users" ? "current" : nil
|
||||
= link_to "Projects", admin_projects_path, :class => controller.controller_name == "projects" ? "current" : nil
|
||||
= link_to "Teams", admin_team_members_path, :class => controller.controller_name == "team_members" ? "current" : nil
|
||||
= link_to "Emails", admin_emails_path, :class => controller.controller_name == "mailer" ? "current" : nil
|
||||
= link_to "Resque", "/info/resque"
|
||||
|
||||
.project-content
|
||||
= yield
|
||||
.content= yield
|
||||
|
|
|
@ -1,18 +1,20 @@
|
|||
!!!
|
||||
%html
|
||||
%head
|
||||
%meta{:charset => "utf-8"}
|
||||
%title
|
||||
GitLab
|
||||
= favicon_link_tag 'favicon.ico'
|
||||
= stylesheet_link_tag "application"
|
||||
= javascript_include_tag "application"
|
||||
= csrf_meta_tags
|
||||
= javascript_tag do
|
||||
REQ_URI = "#{request.env["REQUEST_URI"]}";
|
||||
REQ_REFFER = "#{request.env["HTTP_REFERER"]}";
|
||||
%body{ :class => body_class, :id => yield(:boyd_id)}
|
||||
%body.application
|
||||
= render :partial => "layouts/flash"
|
||||
#container
|
||||
= render :partial => "layouts/head_panel"
|
||||
= render :partial => "layouts/page_title"
|
||||
= yield
|
||||
= render :partial => "layouts/head_panel"
|
||||
.container-fluid
|
||||
.sidebar
|
||||
= render :partial => "layouts/app_side"
|
||||
.content
|
||||
.row
|
||||
.span10= yield
|
||||
.span4= render "layouts/projects_side"
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
!!!
|
||||
%html
|
||||
%head
|
||||
%meta{:charset => "utf-8"}
|
||||
%title
|
||||
GitLab #{" - #{@project.name}" if @project && !@project.new_record?}
|
||||
= favicon_link_tag 'favicon.ico'
|
||||
|
@ -12,4 +13,4 @@
|
|||
REQ_REFFER = "#{request.env["HTTP_REFERER"]}";
|
||||
%body.login-page
|
||||
= render :partial => "layouts/flash"
|
||||
= yield
|
||||
.container-fluid= yield
|
||||
|
|
|
@ -1,30 +1,27 @@
|
|||
!!!
|
||||
%html
|
||||
%head
|
||||
%meta{:charset => "utf-8"}
|
||||
%title
|
||||
GitLab #{" - #{@project.name}" if @project && !@project.new_record?}
|
||||
= favicon_link_tag 'favicon.ico'
|
||||
= stylesheet_link_tag "application"
|
||||
= javascript_include_tag "application"
|
||||
= csrf_meta_tags
|
||||
= javascript_tag do
|
||||
REQ_URI = "#{request.env["REQUEST_URI"]}";
|
||||
REQ_REFFER = "#{request.env["HTTP_REFERER"]}";
|
||||
%body{ :class => body_class('project-page'), :id => yield(:boyd_id)}
|
||||
%body.profile
|
||||
= render :partial => "layouts/flash"
|
||||
#container
|
||||
= render :partial => "layouts/head_panel"
|
||||
.project-container
|
||||
.project-sidebar
|
||||
.fixed
|
||||
%aside
|
||||
= link_to "Profile", profile_path, :class => current_page?(:controller => "profile", :action => :show) ? "current" : nil
|
||||
= link_to "Password & token", profile_password_path, :class => current_page?(:controller => "profile", :action => :password) ? "current" : nil
|
||||
= link_to "Design", profile_design_path, :class => current_page?(:controller => "profile", :action => :design) ? "current" : nil
|
||||
= link_to keys_path, :class => controller.controller_name == "keys" ? "current" : nil do
|
||||
Keys
|
||||
- unless current_user.keys.empty?
|
||||
%span{ :class => "number" }= current_user.keys.count
|
||||
|
||||
.project-content
|
||||
= yield
|
||||
= render :partial => "layouts/head_panel"
|
||||
.container-fluid
|
||||
.sidebar
|
||||
%aside
|
||||
= link_to "Profile", profile_path, :class => current_page?(:controller => "profile", :action => :show) ? "current" : nil
|
||||
= link_to "Password & token", profile_password_path, :class => current_page?(:controller => "profile", :action => :password) ? "current" : nil
|
||||
= link_to "Design", profile_design_path, :class => current_page?(:controller => "profile", :action => :design) ? "current" : nil
|
||||
= link_to keys_path, :class => controller.controller_name == "keys" ? "current" : nil do
|
||||
Keys
|
||||
- unless current_user.keys.empty?
|
||||
%span.label= current_user.keys.count
|
||||
.content
|
||||
.row
|
||||
.span10= yield
|
||||
.span4= render "layouts/projects_side"
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
!!!
|
||||
%html
|
||||
%head
|
||||
%meta{:charset => "utf-8"}
|
||||
%title
|
||||
GitLab #{" - #{@project.name}" if @project && !@project.new_record?}
|
||||
GitLab
|
||||
= " - #{@project.name}" if @project && !@project.new_record?
|
||||
= favicon_link_tag 'favicon.ico'
|
||||
= stylesheet_link_tag "application"
|
||||
= javascript_include_tag "application"
|
||||
|
@ -11,14 +13,16 @@
|
|||
- if request.path == project_issues_path(@project)
|
||||
= auto_discovery_link_tag(:atom, project_issues_url(@project, :atom, :private_token => current_user.private_token), :title => "#{@project.name} issues")
|
||||
= csrf_meta_tags
|
||||
= javascript_tag do
|
||||
REQ_URI = "#{request.env["REQUEST_URI"]}";
|
||||
REQ_REFFER = "#{request.env["HTTP_REFERER"]}";
|
||||
%body{ :class => body_class('project-page'), :id => yield(:boyd_id)}
|
||||
%body.project
|
||||
= render :partial => "layouts/flash"
|
||||
#container
|
||||
= render :partial => "layouts/head_panel"
|
||||
.project-container
|
||||
= render :partial => "layouts/project_side"
|
||||
.project-content
|
||||
= render :partial => "layouts/head_panel"
|
||||
.container-fluid
|
||||
.sidebar= render :partial => "layouts/project_side"
|
||||
.content
|
||||
- if @full_content
|
||||
= yield
|
||||
- else
|
||||
.row
|
||||
.span10= yield
|
||||
.span4= render "layouts/project_side_right"
|
||||
|
||||
|
|
|
@ -1,19 +1,15 @@
|
|||
- if @commits.size > 0
|
||||
.merge-request-commits.ui-box.width-100p
|
||||
.merge-request-commits
|
||||
- @commits.each do |commit|
|
||||
%a{ :class => "commit", :href => project_commit_path(@project, :id => commit.id) }
|
||||
- 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;"
|
||||
%span.update-title
|
||||
= truncate commit.safe_message, :length => 60
|
||||
%span.update-author
|
||||
%strong= commit.author_name
|
||||
authored
|
||||
= time_ago_in_words(commit.created_at)
|
||||
ago
|
||||
.clear
|
||||
.entry
|
||||
= link_to project_commit_path(@project, :id => commit.id) do
|
||||
%strong
|
||||
= truncate(commit.id.to_s, :length => 10)
|
||||
= image_tag gravatar_icon(commit.author_email), :class => "", :width => 16
|
||||
%span= truncate(commit.safe_message, :length => 40)
|
||||
%span.right
|
||||
= time_ago_in_words(commit.committed_date)
|
||||
ago
|
||||
|
||||
- if @commits.empty?
|
||||
%p.cgray Nothing to merge
|
||||
|
|
|
@ -1,46 +1,35 @@
|
|||
= form_for [@project, @merge_request] do |f|
|
||||
%div
|
||||
%span.entity-info
|
||||
- if @merge_request.new_record?
|
||||
= link_to project_merge_requests_path(@project) do
|
||||
.entity-button
|
||||
Merge Requests
|
||||
%i
|
||||
- else
|
||||
= link_to project_merge_request_path(@project, @merge_request) do
|
||||
.entity-button
|
||||
Show Merge Request
|
||||
%i
|
||||
-if @merge_request.errors.any?
|
||||
.alert-message.block-message.error
|
||||
%ul
|
||||
- @merge_request.errors.full_messages.each do |msg|
|
||||
%li= msg
|
||||
|
||||
%h2= @merge_request.new_record? ? "New Merge Request" : "Edit Merge Request ##{@merge_request.id}"
|
||||
.clearfix
|
||||
= f.label :source_branch, "From"
|
||||
.input= f.select(:source_branch, @project.heads.map(&:name), { :include_blank => "Select branch" }, :style => "width:250px")
|
||||
.clearfix
|
||||
= f.label :target_branch, "To"
|
||||
.input= f.select(:target_branch, @project.heads.map(&:name), { :include_blank => "Select branch" }, :style => "width:250px")
|
||||
.clearfix
|
||||
= f.label :assignee_id, "Assign to"
|
||||
.input= f.select(:assignee_id, @project.users.all.collect {|p| [ p.name, p.id ] }, { :include_blank => "Select user" }, :style => "width:250px")
|
||||
|
||||
%hr
|
||||
%table.no-borders
|
||||
-if @merge_request.errors.any?
|
||||
%tr
|
||||
%td{:colspan => 2}
|
||||
#error_explanation
|
||||
- @merge_request.errors.full_messages.each do |msg|
|
||||
%span= msg
|
||||
%br
|
||||
%tr
|
||||
%td= f.label :source_branch, "From"
|
||||
%td= f.select(:source_branch, @project.heads.map(&:name), { :include_blank => "Select branch" }, :style => "width:250px")
|
||||
%tr
|
||||
%td= f.label :target_branch, "To"
|
||||
%td= f.select(:target_branch, @project.heads.map(&:name), { :include_blank => "Select branch" }, :style => "width:250px")
|
||||
%tr
|
||||
%td= f.label :assignee_id, "Assign to"
|
||||
%td= f.select(:assignee_id, @project.users.all.collect {|p| [ p.name, p.id ] }, { :include_blank => "Select user" }, :style => "width:250px")
|
||||
= f.text_area :title, :style => "width:718px; height:100px", :maxlength => 255
|
||||
%br
|
||||
%br
|
||||
.merge-tabs
|
||||
= f.submit 'Save', :class => "positive-button"
|
||||
.clearfix
|
||||
= f.label :title
|
||||
.input= f.text_area :title, :class => "xlarge", :maxlength => 255, :rows => 5
|
||||
.actions
|
||||
= f.submit 'Save', :class => "primary btn"
|
||||
- if @merge_request.new_record?
|
||||
= link_to project_merge_requests_path(@project), :class => "btn" do
|
||||
Cancel
|
||||
- else
|
||||
= link_to project_merge_request_path(@project, @merge_request), :class => "btn" do
|
||||
Cancel
|
||||
|
||||
- unless @merge_request.new_record?
|
||||
.right
|
||||
= link_to 'Remove', [@project, @merge_request], :confirm => 'Are you sure?', :method => :delete, :class => "red-button"
|
||||
= link_to 'Remove', [@project, @merge_request], :confirm => 'Are you sure?', :method => :delete, :class => "btn danger"
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -2,11 +2,4 @@
|
|||
= link_to project_merge_requests_path(@project), :class => "tab #{'active' if current_page?(project_merge_requests_path(@project)) }" do
|
||||
%span
|
||||
Merge Requests
|
||||
|
||||
|
||||
- if current_page?(project_merge_requests_path(@project))
|
||||
- if can? current_user, :write_merge_request, @project
|
||||
= link_to new_project_merge_request_path(@project), :class => "add_new", :title => "New Merge request" do
|
||||
Add new
|
||||
|
||||
|
||||
|
|
|
@ -1,14 +1,17 @@
|
|||
%a.update-item{:href => project_merge_request_path(merge_request.project, merge_request)}
|
||||
= image_tag gravatar_icon(merge_request.author_email), :class => "left", :width => 40
|
||||
%span.update-title
|
||||
= truncate(merge_request.title, :length => 60)
|
||||
%li.wll
|
||||
= image_tag gravatar_icon(merge_request.author_email), :class => "avatar"
|
||||
%span.update-author
|
||||
%strong= merge_request.author_name
|
||||
%strong
|
||||
= link_to project_team_member_path(@project, @project.team_member_by_id(merge_request.author_id)), :class => "author_link" do
|
||||
= merge_request.author_name
|
||||
authored
|
||||
= time_ago_in_words(merge_request.created_at)
|
||||
ago
|
||||
.right
|
||||
%span.tag.commit= merge_request.source_branch
|
||||
%span.label= merge_request.source_branch
|
||||
→
|
||||
%span.tag.commit= merge_request.target_branch
|
||||
|
||||
%span.label= merge_request.target_branch
|
||||
= link_to project_merge_request_path(merge_request.project, merge_request) do
|
||||
%p
|
||||
Merge Request ##{merge_request.id}:
|
||||
= truncate(merge_request.title, :length => 50)
|
||||
|
|
|
@ -1 +1,4 @@
|
|||
%h3
|
||||
= "Edit merge request #{@merge_request.id}"
|
||||
%hr
|
||||
= render 'form'
|
||||
|
|
|
@ -1,30 +1,19 @@
|
|||
= render "merge_requests/head"
|
||||
%h3
|
||||
Merge Requests
|
||||
- if can? current_user, :write_issue, @project
|
||||
= link_to new_project_merge_request_path(@project), :class => "right btn small", :title => "New Merge Request" do
|
||||
New Merge Request
|
||||
|
||||
.left.issues_filter
|
||||
= form_tag project_merge_requests_path(@project), :method => :get do
|
||||
.left
|
||||
= radio_button_tag :f, 0, (params[:f] || "0") == "0", :onclick => "this.form.submit()", :id => "open_merge_requests", :class => "status"
|
||||
= label_tag "open_merge_requests" do
|
||||
%span.tag.open Open
|
||||
.left
|
||||
= radio_button_tag :f, 2, params[:f] == "2", :onclick => "this.form.submit()", :id => "closed_merge_requests", :class => "status"
|
||||
= label_tag "closed_merge_requests" do
|
||||
%span.tag.closed Closed
|
||||
|
||||
.clear
|
||||
%hr
|
||||
|
||||
- if @merge_requests.count > 0
|
||||
%div{ :class => "update-data ui-box ui-box-small ui-box-big" }
|
||||
.data
|
||||
= render @merge_requests
|
||||
%ul.pills
|
||||
%li{:class => ("active" if (params[:f] == "0" || !params[:f]))}
|
||||
= link_to project_merge_requests_path(@project, :f => 0) do
|
||||
Open
|
||||
%li{:class => ("active" if params[:f] == "2")}
|
||||
= link_to project_merge_requests_path(@project, :f => 2) do
|
||||
Closed
|
||||
|
||||
.clear
|
||||
%br
|
||||
|
||||
- unless @merge_requests.count > 0 || params[:f] == "2"
|
||||
.notice_holder
|
||||
%li Merge Requests do not exist yet.
|
||||
- if can? current_user, :write_merge_request, @project
|
||||
%li You can add a new one by clicking on "Add New" button
|
||||
%hr
|
||||
%ul.unstyled= render @merge_requests
|
||||
|
||||
|
|
|
@ -1 +1,3 @@
|
|||
%h3 New Merge Request
|
||||
%hr
|
||||
= render 'form'
|
||||
|
|
|
@ -1,60 +1,64 @@
|
|||
%div
|
||||
%span.entity-info
|
||||
%h3
|
||||
= "Merge Request ##{@merge_request.id}:"
|
||||
|
||||
%span.label= @merge_request.source_branch
|
||||
→
|
||||
%span.label= @merge_request.target_branch
|
||||
|
||||
%small
|
||||
created at
|
||||
= @merge_request.created_at.stamp("Aug 21, 2011")
|
||||
|
||||
%span.right
|
||||
- if can?(current_user, :admin_project, @project) || @merge_request.author == current_user
|
||||
= link_to edit_project_merge_request_path(@project, @merge_request) do
|
||||
.entity-button
|
||||
Edit Merge Request
|
||||
%i
|
||||
= image_tag gravatar_icon(@merge_request.author_email), :class => "left", :width => 40, :style => "padding-right:5px;"
|
||||
%span.commit-title
|
||||
%strong
|
||||
= "Merge Request ##{@merge_request.id}:"
|
||||
|
||||
.tag.commit.inline= @merge_request.source_branch
|
||||
→
|
||||
.tag.commit.inline= @merge_request.target_branch
|
||||
%span.commit-author
|
||||
%strong
|
||||
= link_to project_team_member_path(@project, @project.team_member_by_id(@merge_request.author.id)) do
|
||||
%span.author= @merge_request.author_name
|
||||
→
|
||||
= link_to project_team_member_path(@project, @project.team_member_by_id(@merge_request.assignee.id)) do
|
||||
%span.author= @merge_request.assignee_name
|
||||
|
||||
|
||||
|
||||
= @merge_request.created_at.stamp("Aug 21, 2011 9:23pm")
|
||||
|
||||
%hr
|
||||
%br
|
||||
%h3
|
||||
= simple_format @merge_request.title
|
||||
|
||||
.clear
|
||||
%br
|
||||
%br
|
||||
|
||||
.merge-tabs
|
||||
= link_to "#notes", :class => "merge-notes-tab active tab" do
|
||||
%span
|
||||
Notes
|
||||
= link_to "#commits", "data-url" => commits_project_merge_request_path(@project, @merge_request), :class => "merge-commits-tab tab" do
|
||||
%span
|
||||
Commits
|
||||
= link_to "#diffs", "data-url" => diffs_project_merge_request_path(@project, @merge_request), :class => "merge-diffs-tab tab" do
|
||||
%span
|
||||
Diff
|
||||
|
||||
- if can?(current_user, :admin_project, @project) || @merge_request.author == current_user
|
||||
.right
|
||||
- if @merge_request.closed
|
||||
= link_to 'Reopen', project_merge_request_path(@project, @merge_request, :merge_request => {:closed => false }, :status_only => true), :method => :put, :class => "red-button"
|
||||
= link_to 'Reopen', project_merge_request_path(@project, @merge_request, :merge_request => {:closed => false }, :status_only => true), :method => :put, :class => "btn"
|
||||
- else
|
||||
= link_to 'Close', project_merge_request_path(@project, @merge_request, :merge_request => {:closed => true }, :status_only => true), :method => :put, :class => "positive-button", :title => "Close merge request"
|
||||
= link_to 'Close', project_merge_request_path(@project, @merge_request, :merge_request => {:closed => true }, :status_only => true), :method => :put, :class => "btn", :title => "Close merge request"
|
||||
- if can?(current_user, :admin_project, @project) || @merge_request.author == current_user
|
||||
= link_to edit_project_merge_request_path(@project, @merge_request), :class => "btn small" do
|
||||
Edit
|
||||
|
||||
%hr
|
||||
- if @merge_request.closed
|
||||
.alert-message.error Closed
|
||||
- else
|
||||
.alert-message.success Open
|
||||
|
||||
|
||||
%div.well
|
||||
%div
|
||||
%cite.cgray Created by
|
||||
= image_tag gravatar_icon(@merge_request.author_email), :width => 16, :class => "lil_av"
|
||||
= link_to project_team_member_path(@project, @project.team_member_by_id(@merge_request.author.id)) do
|
||||
%strong.author= @merge_request.author_name
|
||||
|
||||
%cite.cgray and currently assigned to
|
||||
= image_tag gravatar_icon(@merge_request.assignee_email), :width => 16, :class => "lil_av"
|
||||
= link_to project_team_member_path(@project, @project.team_member_by_id(@merge_request.assignee.id)) do
|
||||
%strong.author= @merge_request.assignee_name
|
||||
|
||||
%hr
|
||||
|
||||
|
||||
%div= simple_format @merge_request.title
|
||||
|
||||
|
||||
.tabs
|
||||
%li.active
|
||||
= link_to "#notes", :class => "merge-notes-tab tab" do
|
||||
Notes
|
||||
%li
|
||||
= link_to "#commits", "data-url" => commits_project_merge_request_path(@project, @merge_request), :class => "merge-commits-tab tab" do
|
||||
Commits
|
||||
%li
|
||||
= link_to "#diffs", "data-url" => diffs_project_merge_request_path(@project, @merge_request), :class => "merge-diffs-tab tab" do
|
||||
Diff
|
||||
|
||||
%img{:src => "/assets/ajax-loader-facebook.gif", :class => "dashboard-loader"}
|
||||
|
||||
.merge-request-notes
|
||||
.issue_notes= render "notes/notes"
|
||||
.merge_request_notes= render "notes/notes"
|
||||
.loading{ :style => "display:none;"}
|
||||
%center= image_tag "ajax-loader.gif"
|
||||
.clear
|
||||
|
|
|
@ -1,36 +1,31 @@
|
|||
%div
|
||||
= form_for [@project, @note], :remote => "true", :multipart => true do |f|
|
||||
-if @note.errors.any?
|
||||
.errors.error
|
||||
- @note.errors.full_messages.each do |msg|
|
||||
%div= msg
|
||||
= form_for [@project, @note], :remote => "true", :multipart => true do |f|
|
||||
%h3 Leave a note
|
||||
-if @note.errors.any?
|
||||
.alert-message.block-message.error
|
||||
- @note.errors.full_messages.each do |msg|
|
||||
%div= msg
|
||||
|
||||
= f.hidden_field :noteable_id
|
||||
= f.hidden_field :noteable_type
|
||||
= f.hidden_field :noteable_id
|
||||
= f.hidden_field :noteable_type
|
||||
= f.text_area :note, :size => 255
|
||||
|
||||
%div
|
||||
= f.label :note
|
||||
%cite.cgray markdown supported
|
||||
%br
|
||||
%br
|
||||
= f.text_area :note, :size => 255
|
||||
|
||||
%div.attach_holder
|
||||
%br
|
||||
= f.label :attachment
|
||||
%cite.cgray (less than 10 MB)
|
||||
|
||||
= f.file_field :attachment
|
||||
|
||||
%p.notify_controls
|
||||
%span Notify:
|
||||
= check_box_tag :notify, 1, @note.noteable_type != "Commit"
|
||||
= label_tag :notify, "Project team"
|
||||
.row
|
||||
.span4
|
||||
%h5 Notify via email:
|
||||
.clearfix
|
||||
= label_tag :notify do
|
||||
= check_box_tag :notify, 1, @note.noteable_type != "Commit"
|
||||
%span Project team
|
||||
|
||||
-if @note.noteable_type == "Commit"
|
||||
= check_box_tag :notify_author, 1 , @note.noteable_type == "Commit"
|
||||
= label_tag :notify_author, "Commit author"
|
||||
= label_tag :notify_author do
|
||||
= check_box_tag :notify_author, 1 , @note.noteable_type == "Commit"
|
||||
%span Commit author
|
||||
.span4.right
|
||||
%h5 Attachment:
|
||||
.clearfix
|
||||
= f.label :attachment, "Any file, < 10 MB"
|
||||
.input= f.file_field :attachment, :class => "input-file"
|
||||
|
||||
.clear
|
||||
%br
|
||||
= f.submit 'Add note', :class => "positive-button", :id => "submit_note"
|
||||
|
||||
= f.submit 'Add note', :class => "btn primary", :id => "submit_note"
|
||||
|
|
|
@ -1,29 +1,22 @@
|
|||
%table{:style => "display:none;"}
|
||||
%tr.per_line_form
|
||||
%td{:colspan => 3 }
|
||||
%div
|
||||
%div.well
|
||||
= form_for [@project, @note], :remote => "true", :multipart => true do |f|
|
||||
%h3 Leave a note
|
||||
-if @note.errors.any?
|
||||
.errors.error
|
||||
.alert-message.block-message.error
|
||||
- @note.errors.full_messages.each do |msg|
|
||||
%div= msg
|
||||
|
||||
= f.hidden_field :noteable_id
|
||||
= f.hidden_field :noteable_type
|
||||
= f.hidden_field :line_code
|
||||
|
||||
%div
|
||||
= f.label :note
|
||||
%cite.cgray markdown supported
|
||||
%br
|
||||
%br
|
||||
= f.text_area :note, :size => 255
|
||||
|
||||
.clear
|
||||
%br
|
||||
= f.submit 'Add note', :class => "positive-button", :id => "submit_note"
|
||||
.right
|
||||
= link_to "Close", "#", :class => "grey-button hide-button"
|
||||
= f.text_area :note, :size => 255
|
||||
.prepend-top-10
|
||||
= f.submit 'Add note', :class => "btn primary", :id => "submit_note"
|
||||
.right
|
||||
= link_to "Close", "#", :class => "btn hide-button"
|
||||
|
||||
:javascript
|
||||
$(function(){
|
||||
|
|
|
@ -1,22 +1,20 @@
|
|||
.ui-box.width-100p
|
||||
%h3 Design
|
||||
= form_for @user, :url => profile_update_path, :method => :put do |f|
|
||||
.data
|
||||
.left.dark_scheme_box
|
||||
%label{:for => "user_dark_scheme_false"}
|
||||
= image_tag "white.png", :width => 310, :height => 212
|
||||
%center
|
||||
%h4
|
||||
= f.radio_button :dark_scheme, false
|
||||
White code preview
|
||||
.right.dark_scheme_box
|
||||
%label{:for => "user_dark_scheme_true"}
|
||||
= image_tag "dark.png", :width => 310, :height => 212
|
||||
%center
|
||||
%h4
|
||||
= f.radio_button :dark_scheme, true
|
||||
Dark code preview
|
||||
.clear
|
||||
.buttons
|
||||
= f.submit 'Save', :class => "grey-button"
|
||||
%h3 Design
|
||||
%hr
|
||||
= form_for @user, :url => profile_update_path, :method => :put do |f|
|
||||
.row
|
||||
%label.span4{:for => "user_dark_scheme_false"}
|
||||
= image_tag "white.png", :width => 210
|
||||
%center
|
||||
%h4
|
||||
= f.radio_button :dark_scheme, false
|
||||
White code preview
|
||||
%label.span4{:for => "user_dark_scheme_true"}
|
||||
= image_tag "dark.png", :width => 210
|
||||
%center
|
||||
%h4
|
||||
= f.radio_button :dark_scheme, true
|
||||
Dark code preview
|
||||
.clearfix
|
||||
.actions
|
||||
= f.submit 'Save', :class => "btn"
|
||||
|
||||
|
|
|
@ -1,44 +1,41 @@
|
|||
.ui-box.width-100p.append-bottom-20
|
||||
%h3 Password
|
||||
= form_for @user, :url => profile_password_path, :method => :put do |f|
|
||||
.data
|
||||
%p After successfull password update you will be redirected to login page where you should login with new password
|
||||
-if @user.errors.any?
|
||||
#error_explanation
|
||||
%ul
|
||||
- @user.errors.full_messages.each do |msg|
|
||||
%li= msg
|
||||
%h3 Password
|
||||
%hr
|
||||
= form_for @user, :url => profile_password_path, :method => :put do |f|
|
||||
.data
|
||||
%p After successfull password update you will be redirected to login page where you should login with new password
|
||||
-if @user.errors.any?
|
||||
#error_explanation
|
||||
%ul
|
||||
- @user.errors.full_messages.each do |msg|
|
||||
%li= msg
|
||||
|
||||
.form-row
|
||||
= f.label :password
|
||||
%br
|
||||
= f.password_field :password
|
||||
.form-row
|
||||
= f.label :password_confirmation
|
||||
%br
|
||||
= f.password_field :password_confirmation
|
||||
.buttons
|
||||
= f.submit 'Save', :class => "grey-button"
|
||||
.clear
|
||||
|
||||
.ui-box.width-100p
|
||||
%h3
|
||||
Private token
|
||||
%em.cred.right
|
||||
keep it in secret!
|
||||
= form_for @user, :url => profile_reset_private_token_path, :method => :put do |f|
|
||||
.data
|
||||
%p Private token used to access application resources without authentication.
|
||||
%p For example its required to access commits feed.
|
||||
%hr
|
||||
%p.cgray
|
||||
- if current_user.private_token
|
||||
= text_field_tag "token", current_user.private_token
|
||||
- else
|
||||
You don`t have one yet. Click generate to fix it.
|
||||
.buttons
|
||||
.clearfix
|
||||
= f.label :password
|
||||
.input= f.password_field :password
|
||||
.clearfix
|
||||
= f.label :password_confirmation
|
||||
.input= f.password_field :password_confirmation
|
||||
.actions
|
||||
= f.submit 'Save', :class => "btn"
|
||||
|
||||
%h3
|
||||
Private token
|
||||
%span.cred.right
|
||||
keep it in secret!
|
||||
%hr
|
||||
= form_for @user, :url => profile_reset_private_token_path, :method => :put do |f|
|
||||
.data
|
||||
%p Private token used to access application resources without authentication.
|
||||
%p For example its required to access commits feed.
|
||||
%hr
|
||||
%p.cgray
|
||||
- if current_user.private_token
|
||||
= f.submit 'Reset', :confirm => "Are you sure?", :class => "grey-button"
|
||||
= text_field_tag "token", current_user.private_token
|
||||
- else
|
||||
= f.submit 'Generate', :class => "positive-button"
|
||||
You don`t have one yet. Click generate to fix it.
|
||||
.actions
|
||||
- if current_user.private_token
|
||||
= f.submit 'Reset', :confirm => "Are you sure?", :class => "btn"
|
||||
- else
|
||||
= f.submit 'Generate', :class => "btn"
|
||||
|
||||
|
|
|
@ -1,38 +1,32 @@
|
|||
.ui-box.width-100p
|
||||
%h3= @user.name
|
||||
= form_for @user, :url => profile_update_path, :method => :put do |f|
|
||||
.data
|
||||
.left
|
||||
-if @user.errors.any?
|
||||
#error_explanation
|
||||
%ul
|
||||
- @user.errors.full_messages.each do |msg|
|
||||
%li= msg
|
||||
.media-grid
|
||||
= link_to "#" do
|
||||
= image_tag gravatar_icon(@user.email, 90), :class => "thumbnail"
|
||||
%h3.media_h= @user.name
|
||||
|
||||
.form-row
|
||||
= f.label :name
|
||||
%br
|
||||
= f.text_field :name
|
||||
.form-row
|
||||
= f.label :email
|
||||
%br
|
||||
= f.text_field :email
|
||||
.form-row
|
||||
= f.label :skype
|
||||
%br
|
||||
= f.text_field :skype
|
||||
.form-row
|
||||
= f.label :linkedin
|
||||
%br
|
||||
= f.text_field :linkedin
|
||||
.form-row
|
||||
= f.label :twitter
|
||||
%br
|
||||
= f.text_field :twitter
|
||||
%hr
|
||||
|
||||
.right
|
||||
= image_tag gravatar_icon(current_user.email,64), :width => 64, :style => "margin:5px; border:5px solid #eee;"
|
||||
.clear
|
||||
.buttons
|
||||
= f.submit 'Save', :class => "grey-button"
|
||||
= form_for @user, :url => profile_update_path, :method => :put do |f|
|
||||
-if @user.errors.any?
|
||||
%div.alert-message.block-message.error
|
||||
%ul
|
||||
- @user.errors.full_messages.each do |msg|
|
||||
%li= msg
|
||||
|
||||
.clearfix
|
||||
= f.label :name
|
||||
.input= f.text_field :name
|
||||
.clearfix
|
||||
= f.label :email
|
||||
.input= f.text_field :email
|
||||
.clearfix
|
||||
= f.label :skype
|
||||
.input= f.text_field :skype
|
||||
.clearfix
|
||||
= f.label :linkedin
|
||||
.input= f.text_field :linkedin
|
||||
.clearfix
|
||||
= f.label :twitter
|
||||
.input= f.text_field :twitter
|
||||
|
||||
= f.submit 'Save', :class => "primary btn"
|
||||
|
||||
|
|
|
@ -1,79 +1,29 @@
|
|||
- if update.kind_of?(Note)
|
||||
%a.project-update.titled{:href => dashboard_feed_path(project, update)}
|
||||
= image_tag gravatar_icon(update.author_email), :class => "left", :width => 40
|
||||
%span.update-title
|
||||
= dashboard_feed_title(update)
|
||||
%span.update-author
|
||||
%strong= update.author_name
|
||||
= time_ago_in_words(update.created_at)
|
||||
ago
|
||||
- noteable = update.target
|
||||
- if noteable.kind_of?(MergeRequest)
|
||||
.title-block
|
||||
%span.update-title
|
||||
%span.commit.tag
|
||||
Merge Request #
|
||||
= noteable.id
|
||||
%span.update-author
|
||||
%span= noteable.source_branch
|
||||
%li.wll
|
||||
.row
|
||||
.span9
|
||||
= image_tag gravatar_icon(update.author_email), :class => "avatar thumb"
|
||||
%p
|
||||
%strong.author= update.author_name
|
||||
%span
|
||||
–
|
||||
authored
|
||||
= time_ago_in_words(update.created_at)
|
||||
ago
|
||||
- if update.kind_of? MergeRequest
|
||||
= link_to project_merge_request_path(@project, update) do
|
||||
= "Opened merge request ##{update.id}."
|
||||
%span.label= update.source_branch
|
||||
→
|
||||
%span= noteable.target_branch
|
||||
|
||||
- elsif noteable.kind_of?(Issue)
|
||||
.title-block
|
||||
%span.update-title
|
||||
%span.commit.tag
|
||||
Issue #
|
||||
= noteable.id
|
||||
%span.update-author
|
||||
.left= truncate noteable.title
|
||||
|
||||
- elsif noteable.kind_of?(Commit)
|
||||
.title-block
|
||||
%span.update-title
|
||||
%span.commit.tag
|
||||
commit
|
||||
%span.update-author
|
||||
.left= truncate noteable.id
|
||||
- else
|
||||
.title-block
|
||||
%span.update-title
|
||||
%span.commit.tag
|
||||
Project Wall
|
||||
|
||||
|
||||
- elsif update.kind_of?(MergeRequest)
|
||||
%a.project-update.titled{:href => project_merge_request_path(project, update)}
|
||||
= image_tag gravatar_icon(update.author_email), :class => "left", :width => 40
|
||||
%span.update-title
|
||||
Opened merge request
|
||||
%span.update-author
|
||||
%strong= update.author_name
|
||||
= time_ago_in_words(update.created_at)
|
||||
ago
|
||||
.title-block
|
||||
%span.update-title
|
||||
%span.commit.tag
|
||||
Merge Request #
|
||||
= update.id
|
||||
%span.update-author
|
||||
%span= update.source_branch
|
||||
→
|
||||
%span= update.target_branch
|
||||
|
||||
- elsif update.kind_of?(Issue)
|
||||
%a.project-update.titled{:href => dashboard_feed_path(project, update)}
|
||||
= image_tag gravatar_icon(update.author_email), :class => "left", :width => 40
|
||||
%span.update-title
|
||||
Created new Issue
|
||||
%span.update-author
|
||||
%strong= update.author_name
|
||||
= time_ago_in_words(update.created_at)
|
||||
ago
|
||||
.title-block
|
||||
%span.update-title
|
||||
%span.commit.tag
|
||||
Issue #
|
||||
= update.id
|
||||
%span.update-author
|
||||
.left= truncate update.title
|
||||
%span.label= update.target_branch
|
||||
- elsif update.kind_of? Issue
|
||||
= link_to project_issue_path(@project, update) do
|
||||
Opened new
|
||||
%span.label.important= "issue ##{update.id}"
|
||||
= truncate update.title
|
||||
- else
|
||||
= link_to [@project, update.target] do
|
||||
%p
|
||||
= update.target.class.name.titleize
|
||||
= truncate(update.target.id.to_s, :length => 10)
|
||||
|
||||
= dashboard_feed_title(update)
|
||||
|
|
|
@ -1,67 +1,38 @@
|
|||
= form_for(@project, :remote => true) do |f|
|
||||
%div.form_content
|
||||
- unless @project.new_record?
|
||||
%h2.icon
|
||||
%span
|
||||
= @project.name
|
||||
.clear
|
||||
- if @project.errors.any?
|
||||
%ul.errors_holder
|
||||
- if @project.errors.any?
|
||||
.alert-message.block-message.error
|
||||
%ul
|
||||
- @project.errors.full_messages.each do |msg|
|
||||
%li= msg
|
||||
%table
|
||||
%tr
|
||||
%td= f.label :name
|
||||
%td= f.text_field :name, :placeholder => "Example Project"
|
||||
%tr
|
||||
%td
|
||||
.left= f.label :path
|
||||
%cite.right= "git@#{GIT_HOST["host"]}:"
|
||||
%td
|
||||
= f.text_field :path, :placeholder => "example_project", :disabled => !@project.new_record?
|
||||
%tr
|
||||
%td
|
||||
.left= f.label :code
|
||||
%cite.right= "http://#{GIT_HOST["host"]}/"
|
||||
%td= f.text_field :code, :placeholder => "example"
|
||||
.clearfix
|
||||
= f.label :name
|
||||
.input= f.text_field :name, :placeholder => "Example Project"
|
||||
.clearfix
|
||||
= f.label :path do
|
||||
Path
|
||||
%cite= "git@#{GIT_HOST["host"]}:"
|
||||
.input= f.text_field :path, :placeholder => "example_project", :disabled => !@project.new_record?
|
||||
.clearfix
|
||||
= f.label :code do
|
||||
Code
|
||||
%cite= "http://#{GIT_HOST["host"]}/"
|
||||
.input= f.text_field :code, :placeholder => "example"
|
||||
|
||||
- unless @project.new_record? || @project.heads.empty?
|
||||
%tr
|
||||
%td= f.label :default_branch, "Default Branch"
|
||||
%td= f.select(:default_branch, @project.heads.map(&:name), {}, :style => "width:300px;")
|
||||
- unless @project.new_record? || @project.heads.empty?
|
||||
.clearfix
|
||||
= f.label :default_branch, "Default Branch"
|
||||
.input= f.select(:default_branch, @project.heads.map(&:name), {}, :style => "width:210px;")
|
||||
|
||||
-#%tr
|
||||
%td= f.label :tag_list
|
||||
%td= f.text_area :tag_list, :placeholder => "project tags", :style => "height:50px", :id => :tag_field
|
||||
%tr
|
||||
%td= f.label :description
|
||||
%td= f.text_area :description, :placeholder => "project description", :style => "height:50px"
|
||||
|
||||
.clearfix
|
||||
= f.label :description
|
||||
.input= f.text_area :description, :placeholder => "project description", :style => "height:50px"
|
||||
|
||||
%br
|
||||
%div{ :class => "ajax_loader", :style => "display:none;height:200px;"}
|
||||
%center
|
||||
= image_tag "ajax-loader.gif", :class => "append-bottom"
|
||||
- if @project.new_record?
|
||||
%h3.prepend-top Creating project & repository. Please wait for few minutes
|
||||
- else
|
||||
%h3.prepend-top Updating project & repository. Please wait for few minutes
|
||||
%br
|
||||
|
||||
.merge-tabs
|
||||
= f.submit 'Save', :class => "grey-button"
|
||||
|
||||
.actions
|
||||
= f.submit 'Save', :class => "btn primary"
|
||||
= link_to 'Cancel', @project, :class => "btn"
|
||||
- unless @project.new_record?
|
||||
.right
|
||||
= link_to 'Remove', @project, :confirm => 'Are you sure?', :method => :delete, :class => "red-button"
|
||||
|
||||
|
||||
:javascript
|
||||
$(function(){
|
||||
$('.new_project, .edit_project').bind('ajax:before', function() {
|
||||
$(this).find(".form_content").hide();
|
||||
$('.ajax_loader').show();
|
||||
});
|
||||
|
||||
taggifyForm();
|
||||
|
||||
$('form #project_default_branch').chosen();
|
||||
})
|
||||
= link_to 'Remove', @project, :confirm => 'Are you sure?', :method => :delete, :class => "btn danger"
|
||||
|
|
|
@ -1,27 +1,30 @@
|
|||
.top-tabs
|
||||
= link_to project_path(@project), :class => "activities-tab tab #{'active' if current_page?(project_path(@project)) }" do
|
||||
%span
|
||||
Activities
|
||||
= link_to info_project_path(@project), :class => "stat-tab tab #{'active' if current_page?(info_project_path(@project)) || current_page?(edit_project_path(@project)) }" do
|
||||
%span
|
||||
Info
|
||||
= link_to team_project_path(@project), :class => "team-tab tab #{'active' if current_page?(team_project_path(@project)) }" do
|
||||
%span
|
||||
Team
|
||||
= link_to files_project_path(@project), :class => "files-tab tab #{'active' if current_page?(files_project_path(@project)) }" do
|
||||
%span
|
||||
Files
|
||||
= link_to project_snippets_path(@project), :class => "snippets-tab tab #{'active' if current_page?(project_snippets_path(@project)) }" do
|
||||
%span
|
||||
Snippets
|
||||
%ul.tabs
|
||||
%li{ :class => "#{'active' if current_page?(project_path(@project)) }" }
|
||||
= link_to project_path(@project), :class => "activities-tab tab" do
|
||||
Activities
|
||||
%li{ :class => "#{'active' if current_page?(info_project_path(@project)) || current_page?(edit_project_path(@project)) }" }
|
||||
= link_to info_project_path(@project), :class => "stat-tab tab " do
|
||||
Info
|
||||
|
||||
%li{ :class => " #{'active' if current_page?(team_project_path(@project)) }" }
|
||||
= link_to team_project_path(@project), :class => "team-tab tab" do
|
||||
Team
|
||||
%li{ :class => "#{'active' if current_page?(files_project_path(@project)) }" }
|
||||
= link_to files_project_path(@project), :class => "files-tab tab " do
|
||||
Files
|
||||
%li{ :class => " #{'active' if current_page?(project_snippets_path(@project)) }" }
|
||||
= link_to project_snippets_path(@project), :class => "snippets-tab tab" do
|
||||
Snippets
|
||||
|
||||
- if current_page?(project_snippets_path(@project))
|
||||
- if can? current_user, :write_snippet, @project
|
||||
= link_to new_project_snippet_path(@project), :class => "add_new", :title => "New Snippet" do
|
||||
Add new
|
||||
%li
|
||||
= link_to new_project_snippet_path(@project), :class => "add_new", :title => "New Snippet" do
|
||||
Add new
|
||||
|
||||
|
||||
- if current_page?(team_project_path(@project))
|
||||
- if can? current_user, :admin_team_member, @project
|
||||
= link_to new_project_team_member_path(@project), :class => "add_new", :title => "New Team Member" do
|
||||
Add New
|
||||
%li
|
||||
= link_to new_project_team_member_path(@project), :class => "add_new", :title => "New Team Member" do
|
||||
Add New
|
||||
|
|
|
@ -1,10 +1,4 @@
|
|||
%table.no-borders#team-table
|
||||
%thead
|
||||
%th Name
|
||||
%th Project
|
||||
%th Repository
|
||||
- if can? current_user, :admin_team_member, @project
|
||||
%th Actions
|
||||
%ul.media-grid
|
||||
- @project.users_projects.each do |up|
|
||||
= render(:partial => 'team_members/show', :locals => {:member => up})
|
||||
|
||||
|
@ -15,5 +9,7 @@
|
|||
});
|
||||
})
|
||||
|
||||
/*
|
||||
$('.delete-team-member').live('ajax:success', function() {
|
||||
$(this).closest('tr').fadeOut(); });
|
||||
*/
|
||||
|
|
|
@ -1,20 +1,11 @@
|
|||
- @projects.in_groups_of(3, false) do |projects|
|
||||
- projects.each_with_index do |project, i|
|
||||
%div.grid_1.projects_selector
|
||||
%div{ :class => "project-box ui-box ui-box-big" }
|
||||
- @projects.in_groups_of(2, false) do |projects|
|
||||
.row
|
||||
- projects.each_with_index do |project, i|
|
||||
.span4.well
|
||||
= link_to project_path(project) do
|
||||
%h3= truncate(project.name, :length => 20)
|
||||
.data
|
||||
%p.title.repository.git_url_wrapper
|
||||
%span Repository:
|
||||
%input{ :value => project.url_to_repo, :class => ['git-url', 'one_click_select', 'text', 'project_list_url'], :readonly => 'readonly' }
|
||||
%p.title.activity
|
||||
%span Last Activity:
|
||||
- if project.last_activity_date_cached
|
||||
= project.last_activity_date_cached.stamp("Aug 24, 2011")
|
||||
- else
|
||||
Never
|
||||
%p.title.repository.git_url_wrapper
|
||||
%input{ :value => project.url_to_repo, :class => ['git-url', 'one_click_select', 'text', 'project_list_url'], :readonly => 'readonly' }
|
||||
|
||||
.buttons
|
||||
%a.browse-code.button.yellow{:href => tree_project_ref_path(project, project.root_ref)} Browse code
|
||||
%a.commits.button.green{:href => project_commits_path(project)} Commits
|
||||
%a.btn{:href => tree_project_ref_path(project, project.root_ref)} Browse code
|
||||
%a.btn{:href => project_commits_path(project)} Commits
|
||||
|
|
|
@ -4,3 +4,4 @@
|
|||
- else
|
||||
:plain
|
||||
$("#new_project").replaceWith("#{escape_javascript(render('form'))}");
|
||||
$('.ajax_loader').hide();
|
||||
|
|
|
@ -1,69 +1,29 @@
|
|||
= render "project_head"
|
||||
|
||||
= form_for(@project, :remote => true) do |f|
|
||||
%div
|
||||
%span.entity-info
|
||||
= link_to info_project_path(@project) do
|
||||
.entity-button
|
||||
Info
|
||||
%i
|
||||
%h2= @project.name
|
||||
%hr
|
||||
%table.no-borders
|
||||
-if @project.errors.any?
|
||||
%tr
|
||||
%td{:colspan => 2}
|
||||
#error_explanation
|
||||
- @project.errors.full_messages.each do |msg|
|
||||
%span= msg
|
||||
%br
|
||||
|
||||
%tr
|
||||
%td= f.label :name
|
||||
%td= f.text_field :name, :placeholder => "Example Project"
|
||||
%tr
|
||||
%td
|
||||
.left= f.label :path
|
||||
%cite.right= "git@#{GIT_HOST["host"]}:"
|
||||
%td
|
||||
= f.text_field :path, :placeholder => "example_project", :disabled => !@project.new_record?
|
||||
%tr
|
||||
%td
|
||||
.left= f.label :code
|
||||
%cite.right= "http://#{GIT_HOST["host"]}/"
|
||||
%td= f.text_field :code, :placeholder => "example"
|
||||
|
||||
- unless @project.new_record? || @project.heads.empty?
|
||||
%tr
|
||||
%td= f.label :default_branch, "Default Branch"
|
||||
%td= f.select(:default_branch, @project.heads.map(&:name), {}, :style => "width:300px;")
|
||||
|
||||
%tr
|
||||
%td= f.label :description
|
||||
%td= f.text_area :description, :placeholder => "project description", :style => "height:50px"
|
||||
|
||||
%br
|
||||
|
||||
.merge-tabs
|
||||
= f.submit 'Save', :class => "grey-button"
|
||||
|
||||
- unless @project.new_record?
|
||||
.right
|
||||
= link_to 'Remove', @project, :confirm => 'Are you sure?', :method => :delete, :class => "red-button"
|
||||
|
||||
%h3 Edit Project
|
||||
%hr
|
||||
= render "projects/form"
|
||||
%div{ :class => "ajax_loader", :style => "display:none;height:200px;"}
|
||||
%center
|
||||
= image_tag "ajax-loader.gif", :class => "append-bottom"
|
||||
%h3.prepend-top Updating project & repository. Please wait for few minutes
|
||||
|
||||
:javascript
|
||||
$('.edit_project').bind('ajax:before', function() {
|
||||
$(".edit_project").hide();
|
||||
$('.ajax_loader').show();
|
||||
});
|
||||
%h3.prepend-top Saving project & repository. Please wait...
|
||||
|
||||
:javascript
|
||||
$(function(){
|
||||
$('#project_default_branch').chosen();
|
||||
})
|
||||
$("#project_name").live("change", function(){
|
||||
var slug = slugify($(this).val());
|
||||
$("#project_code").val(slug);
|
||||
$("#project_path").val(slug);
|
||||
});
|
||||
});
|
||||
|
||||
function slugify(text) {
|
||||
return text.replace(/[^-a-zA-Z0-9]+/g, '_').toLowerCase();
|
||||
}
|
||||
|
||||
$(function(){
|
||||
$('.edit_project').live('ajax:before', function() {
|
||||
$(this).hide();
|
||||
$('.ajax_loader').show();
|
||||
});
|
||||
$('form #project_default_branch').chosen();
|
||||
})
|
||||
|
|
|
@ -1,13 +1,14 @@
|
|||
- if current_user.require_ssh_key?
|
||||
%ul.errors_holder
|
||||
%li You have no ssh keys added to your profile.
|
||||
%li You wont be able to pull/push repository.
|
||||
%li Visit profile → keys and add public key of every machine you want to use for work with gitlabhq.
|
||||
.alert-message.block-message.error
|
||||
%ul
|
||||
%li You have no ssh keys added yo tour profile.
|
||||
%li You wont be able to pull/push repository.
|
||||
%li Visit profile → keys and add public key of every machine you want to use for work with gitlabhq.
|
||||
|
||||
|
||||
%ul.alert_holder
|
||||
%li You should push repository to proceed.
|
||||
%li After push you will be able to browse code, commits etc.
|
||||
.alert-message.block-message.error
|
||||
%ul.alert_holder
|
||||
%li You should push repository to proceed.
|
||||
%li After push you will be able to browse code, commits etc.
|
||||
|
||||
- bash_lexer = Pygments::Lexer[:bash]
|
||||
%div.git-empty
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
.top-tabs
|
||||
= link_to graph_project_path(@project), :class => "tab #{'active' if current_page?(graph_project_path(@project)) }" do
|
||||
%span
|
||||
Network Graph
|
||||
#holder.graph
|
||||
%h3 Network Graph
|
||||
%hr
|
||||
#holder.graph.well
|
||||
|
||||
:javascript
|
||||
var chunk1={commits:#{@commits_json}};
|
||||
|
|
|
@ -1,29 +1,19 @@
|
|||
- content_for(:body_class, "projects-page")
|
||||
.container_4
|
||||
.grid_4
|
||||
- if current_user.can_create_project?
|
||||
%a.grey-button.right{:href => new_project_path} Create new project
|
||||
%h2.icon
|
||||
%span
|
||||
Projects
|
||||
%h3
|
||||
Projects
|
||||
%small= "( #{current_user.projects.count} )"
|
||||
%hr
|
||||
- unless @projects.empty?
|
||||
%div.tile= render "tile"
|
||||
|
||||
%div.clear
|
||||
- unless @projects.empty?
|
||||
%div{:class => "tile"}
|
||||
= render "tile"
|
||||
-# If projects requris paging
|
||||
-# We add ajax loader & init script
|
||||
- if @projects.count == @limit
|
||||
.loading{ :style => "display:none;"}
|
||||
%center= image_tag "ajax-loader.gif"
|
||||
|
||||
-# If projects requris paging
|
||||
-# We add ajax loader & init script
|
||||
- if @projects.count == @limit
|
||||
.clear
|
||||
.loading{ :style => "display:none;"}
|
||||
%center= image_tag "ajax-loader.gif"
|
||||
|
||||
:javascript
|
||||
$(function(){
|
||||
ProjectsList.init(16);
|
||||
});
|
||||
- else
|
||||
%center.prepend-top
|
||||
%h2
|
||||
%cite Nothing here
|
||||
:javascript
|
||||
$(function(){
|
||||
ProjectsList.init(16);
|
||||
});
|
||||
- else
|
||||
%h2 Nothing here
|
||||
|
|
|
@ -1,15 +1,14 @@
|
|||
= render "project_head"
|
||||
%h3= @project.name
|
||||
%br
|
||||
|
||||
%div
|
||||
%span.entity-info
|
||||
= link_to edit_project_path(@project) do
|
||||
.entity-button
|
||||
Edit
|
||||
%i
|
||||
%h2= @project.name
|
||||
%hr
|
||||
|
||||
|
||||
%table.no-borders
|
||||
%pre
|
||||
= "git clone #{@project.url_to_repo}"
|
||||
|
||||
|
||||
%table
|
||||
%tr
|
||||
%td Name
|
||||
%td= @project.name
|
||||
|
@ -17,6 +16,36 @@
|
|||
%tr
|
||||
%td Slug
|
||||
%td= @project.code
|
||||
|
||||
%tr
|
||||
%td Path
|
||||
%td= @project.path
|
||||
|
||||
%tr
|
||||
%td Owner
|
||||
%td= link_to @project.owner.name, project_team_member_path(@project, @project.team_member_by_id(@project.owner))
|
||||
|
||||
%tr
|
||||
%td Last commit
|
||||
%td
|
||||
= time_ago_in_words(@project.commit.committed_date)
|
||||
ago
|
||||
|
||||
%tr
|
||||
%td Team
|
||||
%td
|
||||
= @project.users_projects.count
|
||||
users
|
||||
|
||||
%tr
|
||||
%td Open Issues
|
||||
%td
|
||||
= @project.issues.opened.count
|
||||
|
||||
%tr
|
||||
%td Merge Requests
|
||||
%td
|
||||
= @project.merge_requests.opened.count
|
||||
|
||||
%tr
|
||||
%td Created
|
||||
|
@ -25,4 +54,6 @@
|
|||
%tr
|
||||
%td{:colspan => 2}= simple_format @project.description
|
||||
|
||||
.actions
|
||||
= link_to "Edit", edit_project_path(@project), :class => "btn"
|
||||
|
||||
|
|
|
@ -1,17 +1,14 @@
|
|||
- content_for(:body_class, "new-project-page")
|
||||
- content_for(:page_title) do
|
||||
.new-project-hodler
|
||||
.container
|
||||
%h2.icon
|
||||
%span
|
||||
New Project
|
||||
|
||||
%div.clear
|
||||
= render 'form'
|
||||
%h3 New Project
|
||||
%hr
|
||||
= render 'form'
|
||||
%div{ :class => "ajax_loader", :style => "display:none;height:200px;"}
|
||||
%center
|
||||
= image_tag "ajax-loader.gif", :class => "append-bottom"
|
||||
%h3.prepend-top Creating project & repository. Please wait for few minutes
|
||||
|
||||
:javascript
|
||||
$(function(){
|
||||
$("#project_name").change(function(){
|
||||
$("#project_name").live("change", function(){
|
||||
var slug = slugify($(this).val());
|
||||
$("#project_code").val(slug);
|
||||
$("#project_path").val(slug);
|
||||
|
@ -21,3 +18,11 @@
|
|||
function slugify(text) {
|
||||
return text.replace(/[^-a-zA-Z0-9]+/g, '_').toLowerCase();
|
||||
}
|
||||
|
||||
$(function(){
|
||||
$('.new_project').live('ajax:before', function() {
|
||||
$(this).hide();
|
||||
$('.ajax_loader').show();
|
||||
});
|
||||
$('form #project_default_branch').chosen();
|
||||
})
|
||||
|
|
|
@ -1,13 +1,21 @@
|
|||
- content_for(:body_class, "project-page dashboard")
|
||||
|
||||
= render "project_head"
|
||||
#news-feed.news-feed
|
||||
.project-box.project-updates
|
||||
- @activities.each do |update|
|
||||
= render "projects/feed", :update => update, :project => @project
|
||||
|
||||
:javascript
|
||||
function updateDashboard(){
|
||||
$('.project-content').load("#{escape_javascript(project_path(@project))} .project-content>*");
|
||||
}
|
||||
setInterval("updateDashboard()", 300000);
|
||||
- @activities.each do |update|
|
||||
.alert-message.entry
|
||||
= link_to dashboard_feed_path(@project, update) do
|
||||
- if update.kind_of? Note
|
||||
%p
|
||||
%strong
|
||||
= update.target.class.name.titleize
|
||||
= truncate update.target.id.to_s, :length => 10
|
||||
commented
|
||||
–
|
||||
= image_tag gravatar_icon(update.author_email), :class => "", :width => 16
|
||||
= truncate dashboard_feed_title(update), :length => 50
|
||||
- else
|
||||
%p
|
||||
%strong
|
||||
= update.class.name.titleize
|
||||
= truncate update.id.to_s
|
||||
–
|
||||
= image_tag gravatar_icon(update.author_email), :class => "", :width => 16
|
||||
= truncate dashboard_feed_title(update), :length => 50
|
||||
|
|
|
@ -4,3 +4,4 @@
|
|||
- else
|
||||
:plain
|
||||
$(".edit_project").replaceWith("#{escape_javascript(render('form'))}");
|
||||
$('.ajax_loader').hide();
|
||||
|
|
|
@ -1,19 +1,25 @@
|
|||
#tree-breadcrumbs
|
||||
%div
|
||||
%ul.breadcrumb
|
||||
%li
|
||||
= form_tag switch_project_refs_path(@project), :method => :get, :class => "project-refs-form left", :remote => true do
|
||||
= select_tag "ref", grouped_options_refs, :onchange => "$(this.form).trigger('submit');", :class => "project-refs-select"
|
||||
= hidden_field_tag :destination, "tree"
|
||||
= hidden_field_tag :path, params[:path]
|
||||
|
||||
%li
|
||||
= link_to tree_project_ref_path(@project, @ref, :path => nil), :remote => true do
|
||||
= @project.code
|
||||
- tree.breadcrumbs(6) do |link|
|
||||
\/
|
||||
= link
|
||||
|
||||
%span.tree_progress
|
||||
- tree.breadcrumbs(6) do |link|
|
||||
\/
|
||||
%li= link
|
||||
.clear
|
||||
%div.tree_progress
|
||||
= image_tag "ajax-loader.gif"
|
||||
#tree-content-holder
|
||||
- if tree.is_blob?
|
||||
= render :partial => "refs/tree_file", :locals => { :name => tree.name, :content => tree.data, :file => tree }
|
||||
- else
|
||||
- contents = tree.contents
|
||||
%table#tree-slider.no-borders
|
||||
%table#tree-slider
|
||||
%thead
|
||||
%th Name
|
||||
%th Last Update
|
||||
|
@ -43,12 +49,20 @@
|
|||
- else
|
||||
= simple_format(content.data)
|
||||
|
||||
- if params[:path]
|
||||
- history_path = tree_file_project_ref_path(@project, @ref, params[:path])
|
||||
- else
|
||||
- history_path = tree_project_ref_path(@project, @ref)
|
||||
:javascript
|
||||
$(function(){
|
||||
$('select#branch').selectmenu({style:'popup', width:200});
|
||||
$('select#tag').selectmenu({style:'popup', width:200});
|
||||
$('.project-refs-select').chosen();
|
||||
|
||||
history.pushState({ path: this.path }, '', "#{history_path}")
|
||||
});
|
||||
|
||||
|
||||
- if params[:path] && request.xhr?
|
||||
:javascript
|
||||
$(window).unbind('popstate');
|
||||
|
|
|
@ -1,15 +1,13 @@
|
|||
%a.project-update.titled{:href => project_commits_path(project, :ref => update.head.name)}
|
||||
= image_tag gravatar_icon(update.author_email), :class => "left", :width => 40
|
||||
%span.update-title
|
||||
= dashboard_feed_title(update)
|
||||
%span.update-author
|
||||
%strong= update.author_name
|
||||
authored
|
||||
= time_ago_in_words(update.created_at)
|
||||
ago
|
||||
.title-block
|
||||
%span.update-title
|
||||
%span.commit.tag= update.head.name
|
||||
%span.update-author
|
||||
.left= truncate update.commit.id
|
||||
|
||||
- commit = update
|
||||
.alert-message.entry
|
||||
= link_to project_commits_path(@project, :ref => commit.head.name) do
|
||||
%p
|
||||
%strong
|
||||
= commit.head.name
|
||||
–
|
||||
= truncate(commit.id.to_s, :length => 10)
|
||||
= image_tag gravatar_icon(commit.author_email), :class => "", :width => 16
|
||||
= truncate(commit.safe_message, :length => 40)
|
||||
%span.right
|
||||
= time_ago_in_words(commit.committed_date)
|
||||
ago
|
||||
|
|
|
@ -1,28 +1,23 @@
|
|||
.top-tabs.repository
|
||||
= link_to project_repository_path(@project), :class => "activities-tab tab #{'active' if current_page?(project_repository_path(@project)) }" do
|
||||
%span
|
||||
Activities
|
||||
= link_to branches_project_repository_path(@project), :class => "tab #{'active' if current_page?(branches_project_repository_path(@project)) }" do
|
||||
%span
|
||||
Branches
|
||||
= link_to tags_project_repository_path(@project), :class => "tab #{'active' if current_page?(tags_project_repository_path(@project)) }" do
|
||||
%span
|
||||
Tags
|
||||
= link_to project_hooks_path, :class => "tab #{'active' if controller.controller_name == "hooks" }" do
|
||||
%span
|
||||
Hooks
|
||||
- if can? current_user, :admin_project, @project
|
||||
= link_to project_deploy_keys_path(@project), :class => "tab #{'active' if controller.controller_name == "deploy_keys"}" do
|
||||
%ul.tabs
|
||||
%li{:class => "#{'active' if current_page?(project_repository_path(@project)) }"}
|
||||
= link_to project_repository_path(@project) do
|
||||
%span
|
||||
Deploy Keys
|
||||
|
||||
- if current_page?(project_hooks_path(@project))
|
||||
Activities
|
||||
%li{:class => "#{'active' if current_page?(branches_project_repository_path(@project)) }"}
|
||||
= link_to branches_project_repository_path(@project) do
|
||||
%span
|
||||
Branches
|
||||
%li{:class => "#{'active' if current_page?(tags_project_repository_path(@project)) }"}
|
||||
= link_to tags_project_repository_path(@project) do
|
||||
%span
|
||||
Tags
|
||||
%li{:class => "#{'active' if controller.controller_name == "hooks" }"}
|
||||
= link_to project_hooks_path do
|
||||
%span
|
||||
Hooks
|
||||
%li{:class => "#{'active' if controller.controller_name == "deploy_keys"}"}
|
||||
- if can? current_user, :admin_project, @project
|
||||
= link_to new_project_hook_path(@project), :class => "add_new", :title => "New Web Hook" do
|
||||
Add new
|
||||
|
||||
- if current_page?(project_deploy_keys_path(@project))
|
||||
- if can? current_user, :admin_project, @project
|
||||
= link_to new_project_deploy_key_path(@project), :class => "add_new", :title => "New Deploy Key" do
|
||||
Add new
|
||||
= link_to project_deploy_keys_path(@project) do
|
||||
%span
|
||||
Deploy Keys
|
||||
|
||||
|
|
|
@ -1,13 +1,20 @@
|
|||
= render "head"
|
||||
- unless @branches.empty?
|
||||
%div.update-data.ui-box.ui-box-small
|
||||
.data
|
||||
%table
|
||||
%thead
|
||||
%tr
|
||||
%th Name
|
||||
%th Last commit
|
||||
%tbody
|
||||
- @branches.each do |branch|
|
||||
%a.update-item{:href => project_commits_path(@project, :ref => branch.name)}
|
||||
%span.update-title{:style => "margin-bottom:0px;"}
|
||||
= branch.name
|
||||
%span.update-author.right
|
||||
= time_ago_in_words(branch.commit.committed_date)
|
||||
ago
|
||||
- else
|
||||
%h3 No brances
|
||||
%tr
|
||||
%td
|
||||
= link_to project_commits_path(@project, :ref => branch.name) do
|
||||
%strong= branch.name
|
||||
- if branch.name == @project.root_ref
|
||||
%span.label default
|
||||
%td
|
||||
= link_to project_commits_path(@project, branch.commit.id) do
|
||||
= truncate branch.commit.id.to_s, :length => 10
|
||||
= time_ago_in_words(branch.commit.committed_date)
|
||||
ago
|
||||
|
|
|
@ -1,8 +1,5 @@
|
|||
- content_for(:body_class, "project-page dashboard")
|
||||
= render "head"
|
||||
|
||||
#news-feed.news-feed
|
||||
.project-box.project-updates
|
||||
- @activities.each do |update|
|
||||
= render "repositories/feed", :update => update, :project => @project
|
||||
%ul.unstyled
|
||||
- @activities.each do |update|
|
||||
= render "repositories/feed", :update => update, :project => @project
|
||||
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
- user = member.user
|
||||
- allow_admin = can? current_user, :admin_project, @project
|
||||
%tr{:id => dom_id(member)}
|
||||
%td
|
||||
= link_to image_tag(gravatar_icon(user.email), :class => "left", :width => 40, :style => "padding:0 5px;"), project_team_member_path(@project, member)
|
||||
%li{:id => dom_id(member)}
|
||||
= link_to project_team_member_path(@project, member), :title => user.name do
|
||||
= image_tag gravatar_icon(user.email, 90), :class => "thumbnail"
|
||||
.row
|
||||
.span6
|
||||
%h4
|
||||
= truncate(user.name, :lenght => 24)
|
||||
%small= truncate user.email, :lenght => 24
|
||||
|
||||
= link_to truncate(user.name, :lenght => 24), project_team_member_path(@project, member)
|
||||
%br
|
||||
.cgray{:style => "padding-top:10px;"}= truncate user.email, :lenght => 24
|
||||
%td
|
||||
.span3
|
||||
= form_for(member, :as => :team_member, :url => project_team_member_path(@project, member)) do |f|
|
||||
= f.select :project_access, options_for_select(Project.access_options, member.project_access), {}, :class => "project-access-select", :disabled => !allow_admin
|
||||
%td
|
||||
= f.select :project_access, options_for_select(Project.access_options, member.project_access), {}, :class => "medium project-access-select", :disabled => !allow_admin
|
||||
.span3
|
||||
= form_for(member, :as => :team_member, :url => project_team_member_path(@project, member)) do |f|
|
||||
= f.select :repo_access, options_for_select(Repository.access_options, member.repo_access), {}, :class => "repo-access-select", :disabled => !allow_admin
|
||||
- if allow_admin
|
||||
%td
|
||||
= link_to 'Cancel', project_team_member_path(:project_id => @project, :id => member.id), :confirm => 'Are you sure?', :method => :delete, :class => "grey-button negative delete-team-member", :remote => true
|
||||
|
||||
= f.select :repo_access, options_for_select(Repository.access_options, member.repo_access), {}, :class => "medium repo-access-select", :disabled => !allow_admin
|
||||
- if @project.owner == user
|
||||
%span.label Project Owner
|
||||
|
|
|
@ -1,21 +1,13 @@
|
|||
- allow_admin = can? current_user, :admin_project, @project
|
||||
- user = @team_member.user
|
||||
%div
|
||||
%span.entity-info
|
||||
= link_to team_project_path(@project) do
|
||||
.entity-button
|
||||
Team
|
||||
%i
|
||||
= link_to team_project_path(@project), :class => "btn right" do
|
||||
Team »
|
||||
|
||||
= image_tag gravatar_icon(user.email), :class => "left", :width => 40, :style => "padding-right:5px;"
|
||||
%span.commit-title
|
||||
%strong
|
||||
= user.name
|
||||
%span.commit-author
|
||||
%strong
|
||||
= user.email
|
||||
%hr
|
||||
%br
|
||||
.media-grid
|
||||
= link_to "#" do
|
||||
= image_tag gravatar_icon(user.email, 90), :class => "thumbnail"
|
||||
%h3.media_h= user.name
|
||||
|
||||
%table.no-borders
|
||||
%tr
|
||||
|
@ -59,9 +51,8 @@
|
|||
%td= user.twitter
|
||||
|
||||
- if can? current_user, :admin_project, @project
|
||||
.merge-tabs
|
||||
.right
|
||||
= link_to 'Remove from team', [@project, @issue], :confirm => 'Are you sure?', :method => :delete, :class => "red-button"
|
||||
.actions
|
||||
= link_to 'Remove from team', project_team_member_path(:project_id => @project, :id => @team_member.id), :confirm => 'Are you sure?', :method => :delete, :class => "btn danger"
|
||||
|
||||
:javascript
|
||||
$(function(){
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue