Bootstrap: Issues, Merge Requests, SSH Key completed
This commit is contained in:
parent
20721eff1c
commit
fca1ffb888
32 changed files with 213 additions and 1010 deletions
|
@ -6,28 +6,24 @@
|
|||
- @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
|
||||
|
@ -36,4 +32,5 @@
|
|||
:javascript
|
||||
$(function(){
|
||||
taggifyForm();
|
||||
$('#project_owner_id').chosen();
|
||||
})
|
||||
|
|
|
@ -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 => "btn"
|
||||
= f.submit 'Save', :class => "btn primary"
|
||||
= link_to 'Cancel', admin_users_path, :class => "btn"
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
%h1 New user
|
||||
|
||||
%h2 New user
|
||||
%hr
|
||||
= render 'form'
|
||||
|
||||
%br
|
||||
= link_to 'Back', admin_users_path, :class => ""
|
||||
|
|
|
@ -29,5 +29,9 @@
|
|||
:javascript
|
||||
$(function(){
|
||||
CommitsList.init("#{@ref}", 20);
|
||||
$('.project-refs-select').chosen();
|
||||
});
|
||||
|
||||
:javascript
|
||||
$(function(){
|
||||
$('.project-refs-select').chosen();
|
||||
});
|
||||
|
|
|
@ -5,6 +5,6 @@
|
|||
%strong
|
||||
= merge_request.project.name
|
||||
–
|
||||
Issue #
|
||||
Merge Request #
|
||||
= merge_request.id
|
||||
= truncate merge_request.title, :length => 50
|
||||
|
|
|
@ -1,12 +1,10 @@
|
|||
%li.wll{ :id => dom_id(issue), :class => "issue #{issue.critical ? "critical" : ""}", :url => project_issue_path(issue.project, issue) }
|
||||
= image_tag gravatar_icon(issue.author_email), :class => "avatar"
|
||||
= 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.author_name
|
||||
authored
|
||||
= time_ago_in_words(issue.created_at)
|
||||
ago
|
||||
= issue.assignee_name
|
||||
- if issue.critical
|
||||
%span.label.important critical
|
||||
- if issue.today?
|
||||
|
|
|
@ -1,13 +1,10 @@
|
|||
- if current_user.private_token
|
||||
= content_for :rss_icon do
|
||||
.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"
|
||||
|
||||
|
||||
.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"
|
||||
|
||||
- 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
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
:plain
|
||||
$('#issues-table tbody').html("#{escape_javascript(render('issues'))}");
|
||||
$('#issues-table').html("#{escape_javascript(render('issues'))}");
|
||||
setSortable();
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
%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
|
||||
|
@ -20,21 +23,18 @@
|
|||
|
||||
%div.well
|
||||
%div
|
||||
%span.entity-info
|
||||
= image_tag gravatar_icon(@issue.author_email), :class => "left", :width => 40, :style => "padding-right:5px;"
|
||||
%span.commit-title
|
||||
%strong
|
||||
%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
|
||||
→
|
||||
= link_to project_team_member_path(@project, @project.team_member_by_id(@issue.assignee.id)) do
|
||||
%span.author= @issue.assignee_name
|
||||
%br
|
||||
.cgray= @issue.created_at.stamp("Aug 21, 2011 9:23pm")
|
||||
|
||||
%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
|
||||
|
||||
%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
|
||||
|
||||
|
||||
|
|
|
@ -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"
|
||||
|
||||
|
||||
|
|
|
@ -11,10 +11,6 @@
|
|||
= 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
|
||||
|
||||
|
||||
.account-box
|
||||
|
|
|
@ -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, @project.root_ref), :class => tree_tab_class
|
||||
= 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 project_merge_requests_path(@project), :class => (controller.controller_name == "merge_requests") ? "current" : nil do
|
||||
Merge Requests
|
||||
= link_to wall_project_path(@project), :class => current_page?(:controller => "projects", :action => "wall", :id => @project) ? "current" : nil do
|
||||
Wall
|
||||
@Wall
|
||||
- if @project.common_notes.today.count > 0
|
||||
%span.label= @project.common_notes.today.count
|
||||
= link_to project_merge_requests_path(@project), :class => (controller.controller_name == "merge_requests") ? "current" : nil do
|
||||
Requests
|
||||
|
|
|
@ -13,13 +13,15 @@
|
|||
= render :partial => "layouts/head_panel"
|
||||
.container-fluid
|
||||
.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
|
||||
.content= yield
|
||||
%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"
|
||||
|
|
|
@ -5,6 +5,10 @@
|
|||
→
|
||||
%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
|
||||
- if @merge_request.closed
|
||||
|
@ -24,19 +28,17 @@
|
|||
|
||||
%div.well
|
||||
%div
|
||||
%span.entity-info
|
||||
= image_tag gravatar_icon(@merge_request.author_email), :class => "left", :width => 40, :style => "padding-right:5px;"
|
||||
%span.commit-title
|
||||
%strong
|
||||
%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
|
||||
%br
|
||||
.cgray= @merge_request.created_at.stamp("Aug 21, 2011 9:23pm")
|
||||
%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
|
||||
|
@ -56,7 +58,7 @@
|
|||
%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,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 => "btn"
|
||||
%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 => "btn"
|
||||
.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 => "btn"
|
||||
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,4 +1,9 @@
|
|||
%h3= @user.name
|
||||
.media-grid
|
||||
= link_to "#" do
|
||||
= image_tag gravatar_icon(@user.email, 90), :class => "thumbnail"
|
||||
%h3.media_h= @user.name
|
||||
|
||||
%hr
|
||||
|
||||
= form_for @user, :url => profile_update_path, :method => :put do |f|
|
||||
-if @user.errors.any?
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue