#446: updated UI, logic
This commit is contained in:
parent
fe8d24eb99
commit
8cd175c840
|
@ -89,4 +89,5 @@ $(document).ready(function() {
|
|||
$(this).button('loading');
|
||||
});
|
||||
|
||||
$('[data-toggle="tooltip"]').tooltip();
|
||||
});
|
||||
|
|
|
@ -48,6 +48,9 @@ class Projects::ProjectsController < Projects::BaseController
|
|||
end
|
||||
|
||||
def edit
|
||||
@project_aliases = Project.where.not(id: @project.id).
|
||||
where('alias_from_id IN (:ids) OR id IN (:ids)', { ids: [@project.alias_from_id, @project.id] }).
|
||||
paginate(page: current_page)
|
||||
end
|
||||
|
||||
def create
|
||||
|
|
|
@ -134,6 +134,14 @@ module Git
|
|||
|
||||
protected
|
||||
|
||||
def aliases_path
|
||||
File.join(APP_CONFIG['git_path'], 'git_projects', '.aliases')
|
||||
end
|
||||
|
||||
def alias_path
|
||||
File.join(aliases_path, "#{alias_from_id}.git")
|
||||
end
|
||||
|
||||
def build_path(dir)
|
||||
File.join(APP_CONFIG['git_path'], 'git_projects', "#{dir}.git")
|
||||
end
|
||||
|
@ -158,9 +166,7 @@ module Git
|
|||
# Do nothing if GIT repo already exist
|
||||
unless dummy
|
||||
if alias_from_id
|
||||
aliases_path = File.join(APP_CONFIG['git_path'], 'git_projects', '.aliases')
|
||||
FileUtils.mkdir_p(aliases_path)
|
||||
alias_path = File.join(aliases_path, "#{alias_from_id}.git")
|
||||
if !Dir.exists?(alias_path) && alias_from
|
||||
# Move GIT repo into aliases
|
||||
FileUtils.mv(alias_from.path, alias_path, force: true)
|
||||
|
@ -178,6 +184,10 @@ module Git
|
|||
|
||||
def destroy_git_repo
|
||||
FileUtils.rm_rf path
|
||||
return unless alias_from_id
|
||||
unless Project.where.not(id: id).where(alias_from_id: alias_from_id).exists?
|
||||
FileUtils.rm_rf alias_path
|
||||
end
|
||||
end
|
||||
|
||||
def write_hook
|
||||
|
|
|
@ -1,44 +0,0 @@
|
|||
- content_for :submenu do
|
||||
- act = action_name.to_sym; contr = controller_name.to_sym; treeish = @project.default_head(params[:treeish])
|
||||
%nav.navbar.navbar-default{ role: 'navigation' }
|
||||
.container-fluid
|
||||
/ Brand and toggle get grouped for better mobile display
|
||||
.navbar-header
|
||||
%button.navbar-toggle{ 'data-target' => '#submenu-navbar-collapse', 'data-toggle' => 'collapse', type: 'button' }
|
||||
%span.sr-only Toggle navigation
|
||||
%span.icon-bar
|
||||
%span.icon-bar
|
||||
%span.icon-bar
|
||||
.navbar-brand
|
||||
= fa_visibility_icon @project
|
||||
= link_to @project.owner.uname, @project.owner
|
||||
\/
|
||||
= link_to @project.name, project_path(@project)
|
||||
/ Collect the nav links, forms, and other content for toggling
|
||||
#submenu-navbar-collapse.collapse.navbar-collapse
|
||||
%ul.nav.navbar-nav.left-border
|
||||
- if @project.parent
|
||||
%li
|
||||
= link_to project_path(@project.parent), class: 'small' do
|
||||
= fa_icon 'code-fork'
|
||||
= @project.parent.name_with_owner
|
||||
%li{ class: ('active' if act.in?([:show, :edit, :branches, :tags]) && contr.in?([:trees, :blobs]) || contr == :commits) }
|
||||
= link_to t('project_menu.code'), tree_path(@project, treeish)
|
||||
- if @project.is_package and can?(:read, @project => BuildList)
|
||||
%li{ class: ('active' if contr == :build_lists) }
|
||||
= link_to t('project_menu.builds'), project_build_lists_path(@project)
|
||||
|
||||
- if @project.has_issues
|
||||
%li{ class: ('active' if contr == :issues && act == :index) }
|
||||
= link_to t('project_menu.tracker', count: @opened_issues_count), project_issues_path(@project)
|
||||
%li{ class: ('active' if contr == :issues && act == :pull_requests) }
|
||||
=link_to t('project_menu.pull_requests', count: @opened_pull_requests_count), project_pull_requests_path(@project)
|
||||
- if @project.has_wiki
|
||||
%li{ class: ('active' if contr == :wiki) }
|
||||
= link_to t('project_menu.wiki'), project_wiki_index_path(@project)
|
||||
%li=# link_to t('project_menu.readme'), '#' #pending
|
||||
- if can? :update, @project
|
||||
%li{ class: ('active' if act.in?(%i[edit update sections]) && contr == :projects) }
|
||||
= link_to t('project_menu.settings'), edit_project_path(@project)
|
||||
/ /.navbar-collapse
|
||||
/ /.container-fluid
|
|
@ -0,0 +1,50 @@
|
|||
- content_for :submenu do
|
||||
- act = action_name.to_sym; contr = controller_name.to_sym; treeish = @project.default_head(params[:treeish])
|
||||
nav.navbar.navbar-default role='navigation'
|
||||
.container-fluid
|
||||
/ Brand and toggle get grouped for better mobile display
|
||||
.navbar-header
|
||||
button.navbar-toggle data-target='#submenu-navbar-collapse' data-toggle='collapse' type='button'
|
||||
span.sr-only Toggle navigation
|
||||
span.icon-bar
|
||||
span.icon-bar
|
||||
span.icon-bar
|
||||
.navbar-brand
|
||||
= fa_visibility_icon @project
|
||||
= link_to @project.owner.uname, @project.owner
|
||||
| /
|
||||
= link_to @project.name, project_path(@project)
|
||||
/ Collect the nav links, forms, and other content for toggling
|
||||
#submenu-navbar-collapse.collapse.navbar-collapse
|
||||
ul.nav.navbar-nav.left-border
|
||||
- if @project.parent
|
||||
- is_alias = @project.alias_from_id.present?
|
||||
- tooltip_title = t(".tooltips.#{is_alias ? 'alias' : 'fork' }", name: @project.parent.name_with_owner)
|
||||
li data-toggle='tooltip' data-placement='bottom' title=tooltip_title
|
||||
= link_to project_path(@project.parent), class: 'small' do
|
||||
- if is_alias
|
||||
= fa_icon 'share-alt'
|
||||
- else
|
||||
= fa_icon 'code-fork'
|
||||
=< @project.parent.name_with_owner
|
||||
li class=('active' if act.in?([:show, :edit, :branches, :tags]) && contr.in?([:trees, :blobs]) || contr == :commits)
|
||||
= link_to t('project_menu.code'), tree_path(@project, treeish)
|
||||
- if @project.is_package and can?(:read, @project => BuildList)
|
||||
li class=('active' if contr == :build_lists)
|
||||
= link_to t('project_menu.builds'), project_build_lists_path(@project)
|
||||
|
||||
- if @project.has_issues
|
||||
li class=('active' if contr == :issues && act == :index)
|
||||
= link_to t('project_menu.tracker', count: @opened_issues_count), project_issues_path(@project)
|
||||
li class=('active' if contr == :issues && act == :pull_requests)
|
||||
= link_to t('project_menu.pull_requests', count: @opened_pull_requests_count), project_pull_requests_path(@project)
|
||||
- if @project.has_wiki
|
||||
li class=('active' if contr == :wiki)
|
||||
= link_to t('project_menu.wiki'), project_wiki_index_path(@project)
|
||||
li
|
||||
/ = link_to t('project_menu.readme'), '#' #pending
|
||||
- if can? :update, @project
|
||||
li class=('active' if act.in?(%i[edit update sections]) && contr == :projects)
|
||||
= link_to t('project_menu.settings'), edit_project_path(@project)
|
||||
/ /.navbar-collapse
|
||||
/ /.container-fluid
|
|
@ -0,0 +1,15 @@
|
|||
.col-sm-9.col-sm-offset-3
|
||||
|
||||
h3= t('.header')
|
||||
|
||||
table.table.table-condensed.offset20
|
||||
thead
|
||||
tr
|
||||
th= t('.name')
|
||||
tbody
|
||||
- @project_aliases.each do |project|
|
||||
tr
|
||||
td
|
||||
= fa_visibility_icon @project
|
||||
= link_to project.name_with_owner, project_path(project)
|
||||
= will_paginate @project_aliases
|
|
@ -1,16 +1,19 @@
|
|||
-set_meta_tags title: [title_object(@project), t('layout.projects.edit')]
|
||||
= render 'submenu'
|
||||
== render 'submenu'
|
||||
|
||||
.container.col-md-offset-2.col-md-8
|
||||
.row
|
||||
= render 'settings_menu'
|
||||
== render 'settings_menu'
|
||||
|
||||
= simple_form_for @project, html: { class: 'form-horizontal' },
|
||||
wrapper: :horizontal_form,
|
||||
wrapper_mappings: { boolean: :horizontal_boolean } do |f|
|
||||
= render "form", f: f
|
||||
== render "form", f: f
|
||||
|
||||
= render 'build_schedule'
|
||||
== render 'build_schedule'
|
||||
- if true #@project_aliases.present?
|
||||
hr.col-sm-12
|
||||
== render 'aliases'
|
||||
|
||||
hr.col-sm-12
|
||||
.col-sm-9.col-sm-offset-3
|
||||
|
|
|
@ -1,4 +1,17 @@
|
|||
en:
|
||||
|
||||
projects:
|
||||
projects:
|
||||
aliases:
|
||||
header: "Aliases"
|
||||
name: "Project name"
|
||||
|
||||
base:
|
||||
submenu:
|
||||
tooltips:
|
||||
alias: "Alias of %{name}"
|
||||
fork: "Fork of %{name}"
|
||||
|
||||
layout:
|
||||
projects:
|
||||
placeholder:
|
||||
|
|
|
@ -1,4 +1,18 @@
|
|||
ru:
|
||||
|
||||
projects:
|
||||
projects:
|
||||
aliases:
|
||||
header: "Ссылкы"
|
||||
name: "Название проекта"
|
||||
|
||||
|
||||
base:
|
||||
submenu:
|
||||
tooltips:
|
||||
alias: "Ссылка %{name}"
|
||||
fork: "Клонирование %{name}"
|
||||
|
||||
layout:
|
||||
projects:
|
||||
placeholder:
|
||||
|
|
Loading…
Reference in New Issue