Merge branch 'bootstrap'

Conflicts:
	Gemfile
	app/views/commits/_commits.html.haml
	app/views/projects/empty.html.haml
This commit is contained in:
Dmitriy Zaporozhets 2012-01-30 00:45:35 +02:00
commit 8ebfae9a07
127 changed files with 2464 additions and 2991 deletions

View file

@ -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();
})

View file

@ -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"

View file

@ -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

View file

@ -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 {

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -1,6 +1,3 @@
%h1 New user
%h2 New user
%hr
= render 'form'
%br
= link_to 'Back', admin_users_path, :class => ""

View file

@ -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"

View file

@ -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

View file

@ -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();
});

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -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})

View file

@ -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

View file

@ -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 %>

View file

@ -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>

View file

@ -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' %>

View file

@ -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"

View file

@ -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"

View file

@ -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"
&nbsp;
- 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"

View file

@ -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

View file

@ -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)

View file

@ -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)}"})
}

View file

@ -1,3 +1,3 @@
:plain
$('#issues-table tbody').html("#{escape_javascript(render('issues'))}");
$('#issues-table').html("#{escape_javascript(render('issues'))}");
setSortable();

View file

@ -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
&rarr;
= link_to project_team_member_path(@project, @project.team_member_by_id(@issue.assignee.id)) do
%span.author= @issue.assignee_name
&nbsp;
- 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
&nbsp;
= @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"

View file

@ -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"

View file

@ -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

View file

@ -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(); });

View file

@ -1,5 +1,3 @@
%h1 New key
%h3 New key
%hr
= render 'form'
= link_to 'Back', keys_path

View file

@ -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"

View 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"}"

View file

@ -10,7 +10,7 @@
$("#flash_container").click(function(){
$(this).slideUp("slow");
});
setTimeout("hideFlash()",2000);
setTimeout("hideFlash()",3000);
});
function hideFlash(){

View file

@ -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!

View file

@ -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

View 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

View 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

View file

@ -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

View file

@ -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"

View file

@ -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

View file

@ -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"

View file

@ -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"

View file

@ -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

View file

@ -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
&nbsp;
- 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"

View file

@ -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

View file

@ -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
&rarr;
%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)

View file

@ -1 +1,4 @@
%h3
= "Edit merge request #{@merge_request.id}"
%hr
= render 'form'

View file

@ -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

View file

@ -1 +1,3 @@
%h3 New Merge Request
%hr
= render 'form'

View file

@ -1,60 +1,64 @@
%div
%span.entity-info
%h3
= "Merge Request ##{@merge_request.id}:"
&nbsp;
%span.label= @merge_request.source_branch
&rarr;
%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}:"
&nbsp;
.tag.commit.inline= @merge_request.source_branch
&rarr;
.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
&rarr;
= link_to project_team_member_path(@project, @project.team_member_by_id(@merge_request.assignee.id)) do
%span.author= @merge_request.assignee_name
&nbsp;
&nbsp;
= @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

View file

@ -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)
&nbsp;
= 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"

View file

@ -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(){

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -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
&ndash;
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
&rarr;
%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
&rarr;
%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)
&nbsp;
= dashboard_feed_title(update)

View file

@ -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 &amp; repository. Please wait for few minutes
- else
%h3.prepend-top Updating project &amp; repository. Please wait for few minutes
%br
.merge-tabs
= f.submit 'Save', :class => "grey-button"
&nbsp;
.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"

View file

@ -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

View file

@ -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(); });
*/

View file

@ -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

View file

@ -4,3 +4,4 @@
- else
:plain
$("#new_project").replaceWith("#{escape_javascript(render('form'))}");
$('.ajax_loader').hide();

View file

@ -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"
&nbsp;
- 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 &amp; repository. Please wait for few minutes
:javascript
$('.edit_project').bind('ajax:before', function() {
$(".edit_project").hide();
$('.ajax_loader').show();
});
%h3.prepend-top Saving project &amp; 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();
})

View file

@ -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 &rarr; 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 &rarr; 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

View file

@ -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}};

View file

@ -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

View file

@ -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"

View file

@ -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 &amp; 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();
})

View file

@ -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
&ndash;
= 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
&ndash;
= image_tag gravatar_icon(update.author_email), :class => "", :width => 16
= truncate dashboard_feed_title(update), :length => 50

View file

@ -4,3 +4,4 @@
- else
:plain
$(".edit_project").replaceWith("#{escape_javascript(render('form'))}");
$('.ajax_loader').hide();

View file

@ -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
&nbsp;
%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');

View file

@ -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
&ndash;
= 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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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(){