[issue #428] Added advisories list. Added translations.
This commit is contained in:
parent
6fe0e5b530
commit
05ef799fa4
|
@ -456,6 +456,18 @@ table.tablesorter.platforms .th2 {
|
||||||
width: 280px;
|
width: 280px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
table.tablesorter.advisories .th1 {
|
||||||
|
width: 120px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tablesorter.advisories .th2 {
|
||||||
|
width: 250px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tablesorter.advisories .th3 {
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
|
||||||
table.tablesorter tr td.buttons {
|
table.tablesorter tr td.buttons {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
@ -921,3 +933,13 @@ div#git_help_data p {
|
||||||
.dropdown.open .dropdown-toggle {
|
.dropdown.open .dropdown-toggle {
|
||||||
background: none repeat scroll 0 0;
|
background: none repeat scroll 0 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.rightlist p {
|
||||||
|
padding-bottom: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.leftlist span.hint {
|
||||||
|
padding-top: 1em;
|
||||||
|
display: block;
|
||||||
|
font-size: 0.9em;
|
||||||
|
}
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
# -*- encoding : utf-8 -*-
|
# -*- encoding : utf-8 -*-
|
||||||
class Platforms::AdvisoriesController < Platforms::BaseController
|
class Advisories::AdvisoriesController < Advisories::BaseController
|
||||||
before_filter :authenticate_user!
|
before_filter :authenticate_user!
|
||||||
before_filter :find_advisory, :only => [:show]
|
before_filter :find_advisory, :only => [:show]
|
||||||
load_and_authorize_resource
|
load_and_authorize_resource
|
||||||
|
|
||||||
def index
|
def index
|
||||||
|
@advisories = @advisories.paginate(:page => params[:page])
|
||||||
end
|
end
|
||||||
|
|
||||||
def show
|
def show
|
|
@ -0,0 +1,3 @@
|
||||||
|
# -*- encoding : utf-8 -*-
|
||||||
|
class Advisories::BaseController < ApplicationController
|
||||||
|
end
|
|
@ -0,0 +1,12 @@
|
||||||
|
# -*- encoding : utf-8 -*-
|
||||||
|
module AdvisoriesHelper
|
||||||
|
def construct_ref_link(ref)
|
||||||
|
ref = sanitize(ref)
|
||||||
|
url = if ref =~ %r[^http(s?)://*]
|
||||||
|
ref
|
||||||
|
else
|
||||||
|
'http://' << ref
|
||||||
|
end
|
||||||
|
link_to url, url
|
||||||
|
end
|
||||||
|
end
|
|
@ -73,6 +73,8 @@ class Ability
|
||||||
end
|
end
|
||||||
can(:cancel, BuildList) {|build_list| build_list.can_cancel? && can?(:write, build_list.project)}
|
can(:cancel, BuildList) {|build_list| build_list.can_cancel? && can?(:write, build_list.project)}
|
||||||
|
|
||||||
|
can [:read], Advisory
|
||||||
|
|
||||||
can [:read, :members], Platform, :visibility => 'open'
|
can [:read, :members], Platform, :visibility => 'open'
|
||||||
can [:read, :owned, :related, :members], Platform, :owner_type => 'User', :owner_id => user.id
|
can [:read, :owned, :related, :members], Platform, :owner_type => 'User', :owner_id => user.id
|
||||||
can [:read, :related, :members], Platform, :owner_type => 'Group', :owner_id => user.group_ids
|
can [:read, :related, :members], Platform, :owner_type => 'Group', :owner_id => user.group_ids
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
%table#myTable.tablesorter.advisories{:cellspacing => "0", :cellpadding => "0"}
|
||||||
|
%thead
|
||||||
|
%tr
|
||||||
|
%th.th1= t("activerecord.attributes.advisory.advisory_id")
|
||||||
|
%th.th2= t("layout.advisories.affected_versions")
|
||||||
|
%th.th3= t("activerecord.attributes.advisory.description")
|
||||||
|
%tbody
|
||||||
|
= render :partial => 'list_item', :collection => list, :as => :advisory
|
|
@ -0,0 +1,7 @@
|
||||||
|
%tr{:class => cycle("odd", "even")}
|
||||||
|
%td= link_to advisory.advisory_id, advisory_path(advisory)
|
||||||
|
%td
|
||||||
|
- advisory.platforms.each do |platform|
|
||||||
|
= link_to platfrom_printed_name(platform), platform_path(platform)
|
||||||
|
%br
|
||||||
|
%td= truncate(advisory.description, :length => 50)
|
|
@ -0,0 +1,4 @@
|
||||||
|
- set_meta_tags :title => t('layout.advisories.list_header')
|
||||||
|
- render :partial => 'submenu'
|
||||||
|
= render :partial => 'list', :object => @advisories
|
||||||
|
= will_paginate @advisories
|
|
@ -1,11 +1,13 @@
|
||||||
-#set_meta_tags :title => [title_object(@build_list.project), t('activerecord.models.build_list')]
|
-#set_meta_tags :title => [title_object(@build_list.project), t('activerecord.models.build_list')]
|
||||||
|
- render :partial => 'submenu'
|
||||||
|
|
||||||
%h3= "#{t("activerecord.models.advisory")} #{@advisory.advisory_id}".html_safe
|
%h3= "#{t("activerecord.models.advisory")} #{@advisory.advisory_id}".html_safe
|
||||||
|
|
||||||
.leftlist= "#{t("layout.advisories.project_name")}:".html_safe
|
.leftlist= "#{t("layout.advisories.project_name")}:".html_safe
|
||||||
.rightlist= @advisory.project.name
|
.rightlist= link_to @advisory.project.name, project_path(@advisory.project)
|
||||||
.both
|
.both
|
||||||
|
|
||||||
.leftlist= "#{t("layout.advisories.creation_date")}:".html_safe
|
.leftlist= "#{t("activerecord.attributes.advisory.created_at")}:".html_safe
|
||||||
.rightlist= @advisory.created_at
|
.rightlist= @advisory.created_at
|
||||||
.both
|
.both
|
||||||
|
|
||||||
|
@ -16,18 +18,18 @@
|
||||||
.leftlist= "#{t("layout.advisories.affected_versions")}:".html_safe
|
.leftlist= "#{t("layout.advisories.affected_versions")}:".html_safe
|
||||||
.rightlist
|
.rightlist
|
||||||
- @advisory.platforms.each do |platform|
|
- @advisory.platforms.each do |platform|
|
||||||
= link_to platform.name, platform_path(platform)
|
= link_to platform_printed_name(platform), platform_path(platform)
|
||||||
%br
|
%br
|
||||||
.both
|
.both
|
||||||
|
|
||||||
.leftlist= "#{t("activerecord.attributes.advisory.description")}:".html_safe
|
.leftlist= "#{t("activerecord.attributes.advisory.description")}:".html_safe
|
||||||
.rightlist= @advisory.description
|
.rightlist= simple_format @advisory.description
|
||||||
.both
|
.both
|
||||||
|
|
||||||
.leftlist= "#{t("activerecord.attributes.advisories.references")}:".html_safe
|
.leftlist= "#{t("activerecord.attributes.advisory.references")}:".html_safe
|
||||||
.rightlist
|
.rightlist
|
||||||
- sanitize(@advisory.references).gsub("\r", '').split("\n").each do |ref|
|
- @advisory.references.gsub(/\r| /, '').split("\n").each do |ref|
|
||||||
= link_to ref
|
= construct_ref_link(ref)
|
||||||
%br
|
%br
|
||||||
.both
|
.both
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
- content_for :submenu do
|
||||||
|
- act = action_name.to_sym; contr = controller_name.to_sym
|
||||||
|
.left
|
||||||
|
= @advisory.advisory_id if @advisory.present?
|
||||||
|
%nav
|
||||||
|
%ul
|
||||||
|
%li= link_to t('layout.list'), advisories_path, :class => act.in?([:index]) ? 'active' : nil
|
|
@ -56,7 +56,7 @@
|
||||||
.both
|
.both
|
||||||
|
|
||||||
- if @build_list.advisory.present?
|
- if @build_list.advisory.present?
|
||||||
.leftlist= t("layout.build_lists.connected_advisory")
|
.leftlist= t("layout.build_lists.attached_advisory")
|
||||||
.rightlist= link_to @build_list.advisory.advisory_id, advisory_path(@build_list.advisory)
|
.rightlist= link_to @build_list.advisory.advisory_id, advisory_path(@build_list.advisory)
|
||||||
.both
|
.both
|
||||||
- if !@build_list.in_work? && @build_list.started_at
|
- if !@build_list.in_work? && @build_list.started_at
|
||||||
|
@ -76,7 +76,7 @@
|
||||||
.rightlist= check_box_tag :create_advisory, 1, false
|
.rightlist= check_box_tag :create_advisory, 1, false
|
||||||
.both
|
.both
|
||||||
= f.fields_for @build_list.build_advisory do |f|
|
= f.fields_for @build_list.build_advisory do |f|
|
||||||
= render :partial => 'advisories/form', :locals => {:f => f}
|
= render :partial => 'advisories/advisories/form', :locals => {:f => f}
|
||||||
|
|
||||||
=# link_to t("layout.publish"), publish_build_list_path(@build_list), :method => "put", :confirm => t("layout.confirm"), :class => "button tmargin10" if @build_list.can_publish? and can?(:publish, @build_list)
|
=# link_to t("layout.publish"), publish_build_list_path(@build_list), :method => "put", :confirm => t("layout.confirm"), :class => "button tmargin10" if @build_list.can_publish? and can?(:publish, @build_list)
|
||||||
=# link_to t("layout.reject_publish"), reject_publish_build_list_path(@build_list), :method => "put", :confirm => t("layout.confirm"), :class => "button tmargin10" if @build_list.can_reject_publish? and can?(:reject_publish, @build_list)
|
=# link_to t("layout.reject_publish"), reject_publish_build_list_path(@build_list), :method => "put", :confirm => t("layout.confirm"), :class => "button tmargin10" if @build_list.can_reject_publish? and can?(:reject_publish, @build_list)
|
||||||
|
|
|
@ -4,6 +4,8 @@ en:
|
||||||
turned_on: on
|
turned_on: on
|
||||||
turned_off: off
|
turned_off: off
|
||||||
|
|
||||||
|
list: List
|
||||||
|
|
||||||
year: year
|
year: year
|
||||||
|
|
||||||
enter_commit_message: Commit message
|
enter_commit_message: Commit message
|
||||||
|
|
|
@ -4,6 +4,8 @@ ru:
|
||||||
turned_on: включены
|
turned_on: включены
|
||||||
turned_off: выключены
|
turned_off: выключены
|
||||||
|
|
||||||
|
list: Список
|
||||||
|
|
||||||
year: год
|
year: год
|
||||||
|
|
||||||
enter_commit_message: Сопровождающее сообщение
|
enter_commit_message: Сопровождающее сообщение
|
||||||
|
|
|
@ -8,6 +8,7 @@ en:
|
||||||
projects: Projects
|
projects: Projects
|
||||||
build_lists: Task monitoring
|
build_lists: Task monitoring
|
||||||
groups: Groups
|
groups: Groups
|
||||||
|
advisories: Advisories
|
||||||
bottom_menu:
|
bottom_menu:
|
||||||
copyright: ROSA Lab © 2012
|
copyright: ROSA Lab © 2012
|
||||||
about: About the company
|
about: About the company
|
||||||
|
|
|
@ -8,6 +8,7 @@ ru:
|
||||||
projects: Проекты
|
projects: Проекты
|
||||||
build_lists: Мониторинг задач
|
build_lists: Мониторинг задач
|
||||||
groups: Группы
|
groups: Группы
|
||||||
|
advisories: Бюллетени
|
||||||
bottom_menu:
|
bottom_menu:
|
||||||
copyright: ROSA Лаб. © 2012
|
copyright: ROSA Лаб. © 2012
|
||||||
about: О компании
|
about: О компании
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
en:
|
||||||
|
layout:
|
||||||
|
advisories:
|
||||||
|
list_header: Advisories
|
||||||
|
form_header: New advisory
|
||||||
|
project_name: Project
|
||||||
|
affected_versions: Affected versions
|
||||||
|
ref_comment: Add links one by row
|
||||||
|
|
||||||
|
flash:
|
||||||
|
advisories:
|
||||||
|
|
||||||
|
activerecord:
|
||||||
|
models:
|
||||||
|
advisory: Advisory
|
||||||
|
|
||||||
|
attributes:
|
||||||
|
advisory:
|
||||||
|
created_at: Creation date
|
||||||
|
advisory_id: Identifier
|
||||||
|
description: Description
|
||||||
|
references: References
|
|
@ -0,0 +1,22 @@
|
||||||
|
ru:
|
||||||
|
layout:
|
||||||
|
advisories:
|
||||||
|
list_header: Бюллетени
|
||||||
|
form_header: Новый бюллетень
|
||||||
|
project_name: Проект
|
||||||
|
affected_versions: Применен в версиях
|
||||||
|
ref_comment: Вставляйте ссылки по одной на строку
|
||||||
|
|
||||||
|
flash:
|
||||||
|
advisories:
|
||||||
|
|
||||||
|
activerecord:
|
||||||
|
models:
|
||||||
|
advisory: Бюллетень
|
||||||
|
|
||||||
|
attributes:
|
||||||
|
advisory:
|
||||||
|
created_at: Дата создания
|
||||||
|
advisory_id: Идентификатор
|
||||||
|
description: Описание проблемы
|
||||||
|
references: Ссылки
|
|
@ -62,9 +62,13 @@ en:
|
||||||
action: Action
|
action: Action
|
||||||
new_header: New build
|
new_header: New build
|
||||||
main_data: Main data
|
main_data: Main data
|
||||||
|
|
||||||
human_current_duration: Build currently takes %{hours} h. %{minutes} min.
|
human_current_duration: Build currently takes %{hours} h. %{minutes} min.
|
||||||
human_duration: Builded in %{hours} h. %{minutes} min.
|
human_duration: Builded in %{hours} h. %{minutes} min.
|
||||||
|
|
||||||
|
attached_advisory: Attached advisory
|
||||||
|
create_advisory: Create new advisory
|
||||||
|
|
||||||
ownership:
|
ownership:
|
||||||
header: Build list ownership
|
header: Build list ownership
|
||||||
owned: My
|
owned: My
|
||||||
|
|
|
@ -65,6 +65,9 @@ ru:
|
||||||
human_current_duration: Сборка длится уже %{hours} ч. %{minutes} мин.
|
human_current_duration: Сборка длится уже %{hours} ч. %{minutes} мин.
|
||||||
human_duration: Собрано за %{hours} ч. %{minutes} мин.
|
human_duration: Собрано за %{hours} ч. %{minutes} мин.
|
||||||
|
|
||||||
|
attached_advisory: Связанный бюллетень
|
||||||
|
create_advisory: Создать новый бюллетень
|
||||||
|
|
||||||
ownership:
|
ownership:
|
||||||
header: Принадлежность заданий
|
header: Принадлежность заданий
|
||||||
owned: Мне
|
owned: Мне
|
||||||
|
|
|
@ -34,6 +34,10 @@ Rosa::Application.routes.draw do
|
||||||
resources :event_logs, :only => :index
|
resources :event_logs, :only => :index
|
||||||
end
|
end
|
||||||
|
|
||||||
|
scope :module => 'advisories' do
|
||||||
|
resources :advisories, :only => [:index, :show]
|
||||||
|
end
|
||||||
|
|
||||||
scope :module => 'platforms' do
|
scope :module => 'platforms' do
|
||||||
resources :platforms do
|
resources :platforms do
|
||||||
resources :private_users, :except => [:show, :destroy, :update]
|
resources :private_users, :except => [:show, :destroy, :update]
|
||||||
|
@ -60,7 +64,6 @@ Rosa::Application.routes.draw do
|
||||||
end
|
end
|
||||||
match '/private/:platform_name/*file_path' => 'privates#show'
|
match '/private/:platform_name/*file_path' => 'privates#show'
|
||||||
|
|
||||||
resources :advisories, :only => [:index, :show]
|
|
||||||
resources :product_build_lists, :only => [:index]
|
resources :product_build_lists, :only => [:index]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue