Apply new design for projects build monitoring page. Improve and refactor filters. Improve abilities. Switch off old statuses. Separate build_lists translations. Refactor and remove duplicate translations. Refactor and code cleanup. Fix specs. Apply layout class helper. Refs #223

This commit is contained in:
Pavel Chipiga 2012-02-29 16:04:04 +02:00
parent 645d4b04ce
commit cefaa902b1
19 changed files with 415 additions and 598 deletions

View File

@ -128,3 +128,7 @@ article h3 {
article div.date-block div.date {
height: 52px;
}
.date_select {
select {margin:3px 0px; padding:0px;}
}

View File

@ -19,18 +19,11 @@ class BuildListsController < ApplicationController
params[:filter].each do |k,v|
new_params[:filter][k] = v unless v.empty?
end
redirect_to build_lists_path(new_params)
else
filter_params = params[:filter] || {}
if @project
@action_url = project_build_lists_path(@project)
else
@action_url = build_lists_path
end
@filter = BuildList::Filter.new(@project, filter_params)
@build_lists = @filter.find.accessible_by(current_ability).recent.paginate :page => params[:page]
@action_url = @project ? project_build_lists_path(@project) : build_lists_path
@filter = BuildList::Filter.new(@project, current_user, params[:filter] || {})
@build_lists = @filter.find.recent.paginate :page => params[:page]
@build_server_status = begin
BuildServer.get_status

View File

@ -9,4 +9,15 @@ module ApplicationHelper
return title
end
def layout_class
case
when params[:controller] == 'issues' && params[:action] == 'new'
'nopadding'
when params[:controller] == 'build_lists'
'slim'
else
nil
end
end
end

View File

@ -55,12 +55,14 @@ class Ability
#can :create, AutoBuildList
#can [:index, :destroy], AutoBuildList, :project_id => user.own_project_ids
can [:read, :owned], BuildList, :user_id => user.id
can :read, BuildList, :project => {:visibility => 'open'}
can :read, BuildList, :project => {:owner_type => 'User', :owner_id => user.id}
can :read, BuildList, :project => {:owner_type => 'Group', :owner_id => user.group_ids}
can [:read, :related], BuildList, :project => {:owner_type => 'User', :owner_id => user.id}
can [:read, :related], BuildList, :project => {:owner_type => 'Group', :owner_id => user.group_ids}
can(:read, BuildList, read_relations_for('build_lists', 'projects')) {|build_list| can? :read, build_list.project}
can(:create, BuildList) {|build_list| can? :write, build_list.project}
can(:publish, BuildList) {|build_list| build_list.can_publish? && can?(:write, build_list.project)}
can(:cancel, BuildList) {|build_list| build_list.can_cancel? && can?(:write, build_list.project)}
can :read, Platform, :visibility => 'open'
can :read, Platform, :owner_type => 'User', :owner_id => user.id

View File

@ -35,8 +35,9 @@ class BuildList < ActiveRecord::Base
BuildServer::PLATFORM_PENDING,
BuildServer::PROJECT_NOT_FOUND,
BuildServer::PROJECT_VERSION_NOT_FOUND,
BuildServer::BINARY_TEST_FAILED,
BuildServer::DEPENDENCY_TEST_FAILED ]
# BuildServer::BINARY_TEST_FAILED,
# BuildServer::DEPENDENCY_TEST_FAILED
]
HUMAN_STATUSES = { WAITING_FOR_RESPONSE => :waiting_for_response,
BUILD_CANCELED => :build_canceled,
@ -51,8 +52,8 @@ class BuildList < ActiveRecord::Base
BuildServer::PLATFORM_PENDING => :platform_pending,
BuildServer::PROJECT_NOT_FOUND => :project_not_found,
BuildServer::PROJECT_VERSION_NOT_FOUND => :project_version_not_found,
BuildServer::DEPENDENCY_TEST_FAILED => :dependency_test_failed,
BuildServer::BINARY_TEST_FAILED => :binary_test_failed
# BuildServer::DEPENDENCY_TEST_FAILED => :dependency_test_failed,
# BuildServer::BINARY_TEST_FAILED => :binary_test_failed
}
scope :recent, order("#{table_name}.updated_at DESC")

View File

@ -1,7 +1,8 @@
# -*- encoding : utf-8 -*-
class BuildList::Filter
def initialize(project, options = {})
def initialize(project, user, options = {})
@project = project
@user = user
set_options(options)
end
@ -11,6 +12,7 @@ class BuildList::Filter
if @options[:bs_id]
build_lists = build_lists.where(:bs_id => @options[:bs_id])
else
build_lists = build_lists.accessible_by(::Ability.new(@user), @options[:ownership].to_sym) if @options[:ownership]
build_lists = build_lists.for_status(@options[:status]) if @options[:status]
build_lists = build_lists.scoped_to_arch(@options[:arch_id]) if @options[:arch_id]
build_lists = build_lists.scoped_to_project_version(@options[:project_version]) if @options[:project_version]
@ -25,7 +27,7 @@ class BuildList::Filter
end
end
build_lists.recent
build_lists
end
def respond_to?(name)
@ -41,6 +43,7 @@ class BuildList::Filter
def set_options(options)
@options = HashWithIndifferentAccess.new(options.reverse_merge({
:ownership => nil,
:status => nil,
:created_at_start => nil,
:created_at_end => nil,
@ -53,6 +56,7 @@ class BuildList::Filter
:project_name => nil
}))
@options[:ownership] = @options[:ownership].presence || 'index'
@options[:status] = @options[:status].present? ? @options[:status].to_i : nil
@options[:created_at_start] = build_date_from_params(:created_at_start, @options)
@options[:created_at_end] = build_date_from_params(:created_at_end, @options)

View File

@ -0,0 +1,9 @@
%tr{:id => "row#{build_list_counter}"}
%td= link_to (build_list.bs_id.present? ? build_list.bs_id : t("layout.build_lists.bs_id_not_set")), build_list
%td= build_list.human_status
%td= link_to build_list.project_version, "#"
%td= link_to build_list.project.name, build_list.project
%td= build_list.arch.name
%td= link_to build_list.user.fullname, build_list.user
%td= link_to image_tag('x.png', :class => 'delete-row', :id => "delete-row#{build_list_counter}"), cancel_build_list_path(build_list), :method => :put, :confirm => t('layout.confirm') if can?(:cancel, build_list)
%td= build_list.notified_at

View File

@ -1,25 +0,0 @@
%table.table
%tr
%th.first= t("activerecord.attributes.build_list.bs_id")
%th= t("activerecord.attributes.build_list.status")
%th= t("activerecord.attributes.build_list.project_version")
%th= t("activerecord.attributes.build_list.project")
%th= t("activerecord.attributes.build_list.arch")
%th= t("activerecord.attributes.build_list.user")
- unless @project
%th= t("layout.build_lists.cancel_button_header")
%th.last= t("activerecord.attributes.build_list.notified_at")
- build_lists.each do |build_list|
%tr{:class => cycle("odd", "even")}
%td= link_to (build_list.bs_id.present? ? build_list.bs_id : t("layout.build_lists.bs_id_not_set")), build_list
%td= build_list.human_status
%td= link_to build_list.project_version, "#"
%td= link_to build_list.project.name, project_path(build_list.project)
%td= build_list.arch.name
%td= build_list.user.try(:fullname)
- unless @project
%td= link_to t("layout.build_lists.cancel_button"), cancel_build_list_path(build_list), :method => "put", :confirm => t("layout.confirm") if build_list.can_cancel?
%td.last= build_list.notified_at
= will_paginate build_lists

View File

@ -1,50 +0,0 @@
%h2.title= t("layout.build_lists.filter_header")
= form_for :filter, :url => @action_url, :html => { :method => :post, :class => :form } do |f|
.columns.wat-cf
.column.left
.group
= f.label :status, t("activerecord.attributes.build_list.status"), :class => :label
= f.select :status, BuildList::STATUSES.collect{|status| [BuildList.human_status(status), status]}, :include_blank => true, :selected => @filter.status
.group
= f.label :arch_id, t("activerecord.attributes.build_list.arch"), :class => :label
= f.select :arch_id, Arch.recent.collect{|arch| [arch.name, arch.id]}, :include_blank => true, :selected => @filter.arch_id
.column.right
- if @project
.group
= f.label :project_version, t("activerecord.attributes.build_list.project_version"), :class => :label
= f.select :project_version, @project.versions, :include_blank => true, :selected => @filter.project_version
.group
= f.label :is_circle, t("activerecord.attributes.build_list.is_circle"), :class => :label
= f.select :is_circle, [[t("layout.yes_"), 1], [t("layout.no_"), 0]], :include_blank => true, :selected => @filter.is_circle.present? ? (@filter.is_circle ? "1" : "0") : nil
.columns.wat-cf
.column.left
.group
= f.label :created_at_start, t("layout.build_lists.created_at_start"), :class => :label
= f.date_select(:created_at_start, :include_blank => true, :selected => @filter.created_at_start)
.group
= f.label :notified_at_start, t("layout.build_lists.notified_at_start"), :class => :label
= f.date_select(:notified_at_start, :include_blank => true, :selected => @filter.notified_at_start)
.column.right
.group
= f.label :created_at_end, t("layout.build_lists.created_at_end"), :class => :label
= f.date_select(:created_at_end, :include_blank => true, :selected => @filter.created_at_end)
.group
= f.label :notified_at_end, t("layout.build_lists.notified_at_end"), :class => :label
= f.date_select(:notified_at_end, :include_blank => true, :selected => @filter.notified_at_end)
.columns.wat-cf
.column.left
.group
= f.label :project_name, t("layout.build_lists.project_name_search"), :class => :label
= f.text_field :project_name, :class => :text_field
.column.right
.group
= f.label :bs_id, t("layout.build_lists.bs_id_search"), :class => :label
= f.text_field :bs_id, :class => :text_field
.group.navform.wat-cf
%button.button{ :type => "submit" }
= image_tag("choose.png", :alt => "Save")
= t("layout.search")

View File

@ -1,10 +1,53 @@
.block.notice
%h3= t("layout.repositories.current_repository_header")
.content
- project.repositories.each do |repository|
%p= link_to "#{repository.name} (#{repository.platform.name})", platform_repository_path(repository.platform, repository)
- content_for :sidebar do
.bordered.nopadding
%h3= t('layout.build_lists.build_server_status.header')
.table
.lefter= t('layout.build_lists.build_server_status.client_count')
.righter= @build_server_status['client_count']
.both
.table
.lefter= t('layout.build_lists.build_server_status.count_new_task')
.righter= @build_server_status['count_new_task']
.both
.table
.lefter= t('layout.build_lists.build_server_status.count_build_task')
.righter= @build_server_status['count_build_task']
.both
.block.notice
%h3= t("layout.projects.current_project_header")
.content
%p= link_to project.name, project
= form_for :filter, :url => @action_url, :html => { :method => :post, :class => :form } do |f|
.bordered.nopadding
%h3= t("layout.build_lists.ownership.header")
.table
.lefter= f.radio_button :ownership, 'owned', :class => 'niceRadio', :id => 'myradio1'
.lefter= t("layout.build_lists.ownership.owned")
.both
.table
.lefter= f.radio_button :ownership, 'related', :class => 'niceRadio', :id => 'myradio2'
.lefter= t("layout.build_lists.ownership.related")
.both
.table
.lefter= f.radio_button :ownership, 'index', :class => 'niceRadio', :id => 'myradio3'
.lefter= t("layout.build_lists.ownership.index")
.both
.block
%h3.small= t("activerecord.attributes.build_list.status")
.lineForm.aside= f.select :status, BuildList::STATUSES.collect{|status| [BuildList.human_status(status), status]}, {:include_blank => true, :selected => @filter.status}, {:class => 'sel80 aside', :id => 'status', :tabindex => 2}
%h3.small= t("activerecord.attributes.build_list.is_circle")
.lineForm.aside= f.select :is_circle, [[t("layout.yes_"), 1], [t("layout.no_"), 0]], {:include_blank => true, :selected => @filter.is_circle.present? ? (@filter.is_circle ? "1" : "0") : nil}, {:class => 'sel80 aside', :id => 'recurrent', :tabindex => 2}
%h3.small= t("activerecord.attributes.build_list.arch")
.lineForm.aside= f.select :arch_id, Arch.recent.collect{|arch| [arch.name, arch.id]}, {:include_blank => true, :selected => @filter.arch_id}, {:class => 'sel80 aside', :id => 'architecture', :tabindex => 2}
%h3.small= t("layout.build_lists.created_at_start")
.date_select= f.date_select(:created_at_start, :include_blank => true, :selected => @filter.created_at_start)
%h3.small= t("layout.build_lists.created_at_end")
.date_select= f.date_select(:created_at_end, :include_blank => true, :selected => @filter.created_at_end)
%h3.small= t("layout.build_lists.notified_at_start")
.date_select= f.date_select(:notified_at_start, :include_blank => true, :selected => @filter.notified_at_start)
%h3.small= t("layout.build_lists.notified_at_end")
.date_select= f.date_select(:notified_at_end, :include_blank => true, :selected => @filter.notified_at_end)
%h3.small= t("layout.build_lists.project_name_search")
= f.text_field :project_name
%h3.small= t("layout.build_lists.bs_id_search")
= f.text_field :bs_id
%br
%br
= f.submit t("layout.search")

View File

@ -0,0 +1,6 @@
- content_for :sub_menu do
.left
%nav
%ul
%li= link_to t('layout.projects.list_header'), build_lists_path, :class => current_page?(:controller => 'build_lists') ? 'active' : nil
%li= link_to t('layout.products.list_header'), '#'

View File

@ -1,28 +1,19 @@
.block
- if @project
.secondary-navigation
%ul.wat-cf
%li.first= link_to t("layout.build_lists.current"), project_path(@project) + "#build_lists"
%li.active= link_to t("layout.build_lists.all"), project_build_lists_path(@project)
/ #myTable
%table.tablesorter{:cellpadding => "0", :cellspacing => "0"}
%thead
%tr
%th.lpadding16= t("activerecord.attributes.build_list.bs_id")
%th.lpadding16= t("activerecord.attributes.build_list.status")
%th.lpadding16= t("activerecord.attributes.build_list.project_version")
%th.lpadding16= t("activerecord.attributes.build_list.project")
%th.lpadding16= t("activerecord.attributes.build_list.arch")
%th.lpadding16= t("activerecord.attributes.build_list.user")
%th= t("layout.build_lists.action")
%th.lpadding16= t("activerecord.attributes.build_list.notified_at")
%tbody= render @build_lists
.both
.content
- unless @project
.inner
%h2= t('layout.build_lists.build_server_status.header')
.field
%span= t('layout.build_lists.build_server_status.client_count') + ":"
%span= @build_server_status['client_count']
.field
%span= t('layout.build_lists.build_server_status.count_new_task') + ":"
%span= @build_server_status['count_new_task']
.field
%span= t('layout.build_lists.build_server_status.count_build_task') + ":"
%span= @build_server_status['count_build_task']
.inner
= render :partial => "build_lists/filter", :action_url => @action_url
= will_paginate @build_lists
.inner
= render :partial => "build_lists/build_lists", :object => @build_lists
- content_for :sidebar, render('sidebar', :project => @project) if @project
= render 'build_lists/sub_menu'
= render 'build_lists/sidebar'

View File

@ -1,7 +1,5 @@
-render :partial => 'projects/submenu'
-render :partial => 'issues/create_sidebar'
-content_for :right_nopadding do
dummy
%h3.bpadding10= t("layout.issues.create_header")
= form_for :issue, :url => project_issues_path(@project), :html => { :class => 'form issue' } do |f|

View File

@ -43,7 +43,7 @@
%article
- if content_for?(:sidebar)
%aside= yield :sidebar
.right{:class => content_for?(:right_nopadding) ? ' nopadding' : ''}= yield
.right{:class => layout_class}= yield
- else
.all= yield
.both

View File

@ -0,0 +1,107 @@
en:
activerecord:
models:
build_list: Build list
build_list_item: Build list item
attributes:
build_list:
bs_id: Id
name: Name
container_path: Container path
status: Status
project_id: Project
project: Project
arch_id: Architecture
arch: Architecture
is_circle: Recurrent
notified_at: Notified at
additional_repos: Additional repository
include_repos: Includes repository
updated_at: Updated
created_at: Created
pl: Packet list repository
pl_id: Packet list repository
bpl: Platform
bpl_id: Platform
update_type: Update type
build_requires: Dependable build requires
auto_publish: Automated publising
project_version: Version
user: User
build_list/item:
name: Name
level: Level
status: Status
version: Version
build_list: Build list
layout:
build_lists:
filter_header: Filter
current: Curent
created_at_start: "Build start from:"
created_at_end: "Build start to:"
notified_at_start: "Last update time by BS from:"
notified_at_end: " Last update time by BS to:"
bs_id_search: 'Id search'
project_name_search: Project name search
bs_id_not_set: Id isnt set
items_header: Build items
no_items_data: No data
show: Show
cancel_success: 'Build canceled'
cancel_fail: 'Errors on build cancelling!'
publish_success: 'Build on publish queue'
publish_fail: 'Errors on publish queue!'
container_published: 'Container in a repository'
action: Action
ownership:
header: Build list ownership
owned: My
related: Related
index: All
build_server_status:
header: Build server status
client_count: Clients count
count_new_task: New task count
count_build_task: Build task count
items:
statuses:
build_started: Build started
build_error: Build error
dependencies_error: Dependences not found
success: Build complete
unknown: Build waiting
git_error: Git error
statuses:
build_error: Build error
build_published: Build published
build_publish: Build publishing
failed_publish: Publishing error
dependencies_fail: Dependences not found
waiting_for_response: Waiting for response
build_pending: Build pending
dependency_test_failed: Dependency test failed
binary_test_failed: Binary test failed
build_canceled: Build canceled
success: Build complete
build_started: Build started
platform_not_found: Platform not found
platform_pending: Platforn pending
project_not_found: Project not found
project_version_not_found: Project version not found
flash:
build_list:
saved: Project version '%{project_version}' build list, platform '%{bpl}', architecture '%{arch}' creation success
save_error: Project version '%{project_version}' build list, platform '%{bpl}', architecture '%{arch}' creation error
no_project_version_selected: Select any version of project
no_project_version_found: Project version '%{project_version}' not found
no_arch_or_platform_selected: At least one of architecture of platform must selected
wrong_platform: For the main repository its mail platform can be chosen only!
can_not_published: Build publishing with status "Build" available only

View File

@ -0,0 +1,107 @@
ru:
activerecord:
models:
build_list: Сборочный лист
build_list_item: Элемент сборочного листа
attributes:
build_list:
bs_id: Id
name: Название
container_path: Путь до контейнера
status: Статус
project_id: Проект
project: Проект
arch_id: Архитектура
arch: Архитектура
is_circle: Циклическая сборка
notified_at: Информация получена
additional_repos: Дополнительные репозитории
include_repos: Подключаемые репозитории
updated_at: Обновлен
created_at: Создан
pl: Репозиторий для сохранения пакетов
pl_id: Репозиторий для сохранения пакетов
bpl: Платформа
bpl_id: Платформа
update_type: Критичность обновления
build_requires: Пересборка с зависимостями
auto_publish: Автоматическая публикация
project_version: Версия
user: Пользователь
build_list/item:
name: Название
level: Уровень
status: Статус
version: Версия
build_list: Сборочный лист
layout:
build_lists:
filter_header: Фильтр
current: Текущие
created_at_start: "Время постановки на сборку с:"
created_at_end: "Время постановки на сборку по:"
notified_at_start: "Время последнего обновления от BS с:"
notified_at_end: "Время последнего обновления от BS по:"
bs_id_search: 'Поиск по Id'
project_name_search: Поиск по названию проекта
bs_id_not_set: Id еще не присвоен
items_header: Элементы сборки
no_items_data: Данных нет
show: Просмотр
cancel_success: 'Сборка отменена.'
cancel_fail: 'При отмене сборки произошла ошибка!'
publish_success: 'Сборка поставлена в очередь на публикацию.'
publish_fail: 'При публикации сборки произошла ошибка!'
container_published: 'Контейнер размещен в репозитории'
action: Действие
ownership:
header: Принадлежность заданий
owned: Мне
related: Связанные со мной
index: Все
build_server_status:
header: Статус сборочного сервера
client_count: Число клиентов
count_new_task: Число заданий в очереди
count_build_task: Число выполняемых заданий
items:
statuses:
build_started: собирается
build_error: ошибка сборки
dependencies_error: зависимости не найдены
success: собран
unknown: ожидает сборки
git_error: проблема с гит
statuses:
build_error: ошибка сборки
build_published: опубликован
build_publish: публикуется
failed_publish: ошибка публикации
dependencies_fail: зависимости не найдены
waiting_for_response: ожидает ответа
build_pending: ожидает сборку
dependency_test_failed: тестирование зависимостей не пройдено
binary_test_failed: тестирование бинарной совместимости не пройдено
build_canceled: сборка отменена
success: собран
build_started: собирается
platform_not_found: платформа не найдена
platform_pending: платформа в процессе создания
project_not_found: проект не найден
project_version_not_found: версия не найдена
flash:
build_list:
saved: Билд лист для версии '%{project_version}', платформы '%{bpl}' и архитектуры '%{arch}' создан успешно
save_error: Не удалось сохранить билд лист для версии '%{project_version}', платформы '%{bpl}' и архитектуры '%{arch}'
no_project_version_selected: Выберите какую-нибудь версию
no_project_version_found: Выбранная версия '%{project_version}' не найдена
no_arch_or_platform_selected: Выберите хотя бы одну ахритектуру и платформу
wrong_platform: Для основного репозитория (main) может быть выбран только его же основная платформа!
can_not_published: Опубликовать сборку можно только со статусом "Собран"

View File

@ -272,122 +272,6 @@ en:
filter_header: Filter
git:
upload: Upload
not_access: Access denied!
owner: Owner
confirm: Sure?
back: Back
settings:
label: Settings
notifier: Notifier setting
notifiers:
edit_header: Notifier setting
processing: working ...
invalid_content_type: incorrect type
devise:
shared_links:
sign_in: Sign in
sign_up: Sign up
forgot_password: Forgot your password?
confirm_again: Do not receive the confirmation link?
unlock: Do not receive unlock instructions?
sign_in_through: Sign in by %{provider}
downloads:
title: Downloads statistic
message: Automatically updated every 5 minutes
refresh_btn: Refresh
auto_build_lists:
header: Automated build projects
message: All projects build under user repository and architecture i586
project: Project
action: Action
automate_btn: Automate
cancel_btn: Cancel
not_automated: Not automated
already_automated: Automated
weekdays:
Monday: Monday
Tuesday: Tuesday
Wednesday: Wednesday
Thursday: Thursday
Friday: Friday
Saturday: Saturday
Sunday: Sunday
sessions:
sign_in_header: Sign in
private_users:
list: List
new: New pair
list_header: Pair login/password
confirm_delete: Are you sure to delete this pair login/password?
confirm_regenerate: Are you sure to regenerate this pair login/password?
regenerate_btn: Regenerate
warning_message: Warning - Old data set as invalid when new data obtaining
categories:
list: List
new: Create
edit: Edit
platforms: By platform
list_header: Catalogue
new_header: New category
edit_header: Edit category
confirm_delete: Are you sure to delete this category?
commits:
subscribe_btn: Subscribe to commit
unsubscribe_btn: Unsubscribe from commit
comments:
confirm_delete: Are you sure to delete the comment?
new_header: New comment
edit_header: Editing a comment
platforms:
admin_id: Owner
build_all: Build all
list: List
new: Create
edit: Edit
new_header: New platform
edit_header: Edit
list_header: Platforms
list_header_main: General
list_header_personal: Personal
list_header_all: All
clone_header: Platform clone
show: Platform
projects: Projects
products: Products
location: Location
repositories: Repositories
back_to_the_list: ⇐To platform list
freeze: Freeze
unfreeze: Unfeeze
confirm_freeze: Are you sure to freeze this platform?
confirm_freeze: Are you sure to clone this platform?
confirm_unfreeze: Are you sure to defrost this platform?
released_suffix: (released)
confirm_delete: Are you sure to delete this platform?
current_platform_header: Current platform
owner: Owner
visibility: Visibility
platform_type: Platform type
distrib_type: Distribution kit type
private_users: Access data
confirm_clone: To clone?
clone: To clone
event_logs:
list: List
list_header: Event log
repositories:
empty: "Repository is empty. You need to wait some time if you have forked project or imported package"
source: Source
@ -405,60 +289,6 @@ en:
'1': 'build error'
'2': 'build in progress'
build_lists:
filter_header: Filter
current: Curent
created_at_start: "Build start from:"
created_at_end: "Build start to:"
notified_at_start: "Last update time by BS from:"
notified_at_end: " Last update time by BS to:"
bs_id_search: 'Id search'
project_name_search: Project name search
bs_id_not_set: Id isnt set
items_header: Build items
no_items_data: No data
show: Show
cancel_button_header: Action
cancel_button: Cancel
cancel_success: 'Build canceled'
cancel_fail: 'Errors on build cancelling!'
publish_success: 'Build on publish queue'
publish_fail: 'Errors on publish queue!'
container_published: 'Container in a repository'
build_server_status:
header: Build server status
client_count: Clients count
count_new_task: New task count
count_build_task: Build task count
items:
statuses:
build_started: Build started
build_error: Build error
dependencies_error: Dependences not found
success: Build complete
unknown: Build waiting
git_error: Git error
statuses:
build_error: Build error
build_published: Build published
build_publish: Build publishing
failed_publish: Publishing error
dependencies_fail: Dependences not found
waiting_for_response: Waiting for response
build_pending: Build pending
dependency_test_failed: Dependency test failed
binary_test_failed: Binary test failed
build_canceled: Build canceled
success: Build complete
build_started: Build started
platform_not_found: Platform not found
platform_pending: Platforn pending
project_not_found: Project not found
project_version_not_found: Project version not found
flash:
settings:
saved: Settings saved success
@ -551,15 +381,6 @@ en:
build_all_success: All project build in progress
clone_success: Cloned successfully
build_list:
saved: Project version '%{project_version}' build list, platform '%{bpl}', architecture '%{arch}' creation success
save_error: Project version '%{project_version}' build list, platform '%{bpl}', architecture '%{arch}' creation error
no_project_version_selected: Select any version of project
no_project_version_found: Project version '%{project_version}' not found
no_arch_or_platform_selected: At least one of architecture of platform must selected
wrong_platform: For the main repository its mail platform can be chosen only!
can_not_published: Build publishing with status "Build" available only
wiki:
ref_not_exist: No such version
successfully_updated: Page '%{name}' successfully updated
@ -579,7 +400,6 @@ en:
remember_me: Remember
name: Name
parent_platform_id: Parent platform
build_list: Build list
activerecord:
@ -604,8 +424,6 @@ en:
private_user: Private user
product: Product
product_build_list: Product build list
build_list: Build list
build_list_item: Build list item
download: Statistics
auto_build_list: Auto rebuild list
settings:
@ -774,38 +592,6 @@ en:
status: Status
notified_at: Notified at
build_list:
bs_id: Id
name: Name
container_path: Container path
status: Status
project_id: Project
project: Project
arch_id: Architecture
arch: Architecture
is_circle: Recurrent
notified_at: Notified at
additional_repos: Additional repository
include_repos: Includes repository
updated_at: Updated
created_at: Created
pl: Packet list repository
pl_id: Packet list repository
bpl: Platform
bpl_id: Platform
update_type: Update type
build_requires: Dependable build requires
auto_publish: Automated publising
project_version: Version
user: User
build_list/item:
name: Name
level: Level
status: Status
version: Version
build_list: Build list
download:
name: Name
version: Version
@ -821,97 +607,3 @@ en:
issue_assign_notification: New task assigned
new_commit_comment_notification: New comment to commit
invite_approve_notification: Invitation to ABF
project:
category_id: Category
name: Name
description: Descripton
owner: Owner
visibility: Visibility
repository_id: Repository
repository: Repository
created_at: Created
updated_at: Updated
has_issues: Tracker on
srpm: Import code from src.rpm
rpm:
name: Name
arch_id: Arch
arch: Arch
project_id: Project
project: Project
created_at: Created
updated_at: Updated
role:
name: Name
on: Slave
to: Master
use_default: By default
use_default_for_owner: Default by owner
group:
name: Name
uname: Nickname
owner: Owner
created_at: Created
updated_at: Updated
user:
name: User
login: Nickname or Email
email: Email
uname: Nickname
ssh_key: SSH key
current_password: Current password
role: Role
created_at: Created
updated_at: Updated
role: System role
language: Language
product_build_list:
id: Id
product: Product
status: Status
notified_at: Notified at
build_list:
bs_id: Id
name: Name
container_path: Container path
status: Status
project_id: Project
project: Project
arch_id: Architecture
arch: Architecture
is_circle: Recurrent
notified_at: Notified at
additional_repos: Additional repository
include_repos: Includes repository
updated_at: Updated
created_at: Created
pl: Packet list repository
pl_id: Packet list repository
bpl: Platform
bpl_id: Platform
update_type: Update type
build_requires: Dependable build requires
auto_publish: Automated publising
project_version: Version
user: User
build_list/item:
name: Name
level: Level
status: Status
version: Version
build_list: Build list
download:
name: Name
version: Version
distro: Source
platform: Platform
counter: Downloads

View File

@ -289,60 +289,6 @@ ru:
'1': 'ошибка сборки'
'2': 'собирается'
build_lists:
filter_header: Фильтр
current: Текущие
created_at_start: "Время постановки на сборку с:"
created_at_end: "Время постановки на сборку по:"
notified_at_start: "Время последнего обновления от BS с:"
notified_at_end: "Время последнего обновления от BS по:"
bs_id_search: 'Поиск по Id'
project_name_search: Поиск по названию проекта
bs_id_not_set: Id еще не присвоен
items_header: Элементы сборки
no_items_data: Данных нет
show: Просмотр
cancel_button_header: Действие
cancel_button: Отмена
cancel_success: 'Сборка отменена.'
cancel_fail: 'При отмене сборки произошла ошибка!'
publish_success: 'Сборка поставлена в очередь на публикацию.'
publish_fail: 'При публикации сборки произошла ошибка!'
container_published: 'Контейнер размещен в репозитории'
build_server_status:
header: Статус сборочного сервера
client_count: Число клиентов
count_new_task: Число заданий в очереди
count_build_task: Число выполняемых заданий
items:
statuses:
build_started: собирается
build_error: ошибка сборки
dependencies_error: зависимости не найдены
success: собран
unknown: ожидает сборки
git_error: проблема с гит
statuses:
build_error: ошибка сборки
build_published: опубликован
build_publish: публикуется
failed_publish: ошибка публикации
dependencies_fail: зависимости не найдены
waiting_for_response: ожидает ответа
build_pending: ожидает сборку
dependency_test_failed: тестирование зависимостей не пройдено
binary_test_failed: тестирование бинарной совместимости не пройдено
build_canceled: сборка отменена
success: собран
build_started: собирается
platform_not_found: платформа не найдена
platform_pending: платформа в процессе создания
project_not_found: проект не найден
project_version_not_found: версия не найдена
flash:
settings:
saved: Настройки успешно сохранены
@ -440,15 +386,6 @@ ru:
build_all_success: Все проекты успешно отправлены на сборку
clone_success: Клонирование успешно
build_list:
saved: Билд лист для версии '%{project_version}', платформы '%{bpl}' и архитектуры '%{arch}' создан успешно
save_error: Не удалось сохранить билд лист для версии '%{project_version}', платформы '%{bpl}' и архитектуры '%{arch}'
no_project_version_selected: Выберите какую-нибудь версию
no_project_version_found: Выбранная версия '%{project_version}' не найдена
no_arch_or_platform_selected: Выберите хотя бы одну ахритектуру и платформу
wrong_platform: Для основного репозитория (main) может быть выбран только его же основная платформа!
can_not_published: Опубликовать сборку можно только со статусом "Собран"
wiki:
ref_not_exist: Версия не существует
successfully_updated: Страница '%{name}' успешно обновлена
@ -468,7 +405,6 @@ ru:
remember_me: Запомнить
name: Название
parent_platform_id: Родительская платформа
build_list: Сборочный лист
activerecord:
@ -493,8 +429,6 @@ ru:
private_user: Приватный пользователь
product: Продукт
product_build_list: Сборочный лист продукта
build_list: Сборочный лист
build_list_item: Элемент сборочного листа
download: Статистика
auto_build_list: Автоматическая пересборка пакетов
settings:
@ -653,38 +587,6 @@ ru:
status: Статус
notified_at: Информация получена
build_list:
bs_id: Id
name: Название
container_path: Путь до контейнера
status: Статус
project_id: Проект
project: Проект
arch_id: Архитектура
arch: Архитектура
is_circle: Циклическая сборка
notified_at: Информация получена
additional_repos: Дополнительные репозитории
include_repos: Подключаемые репозитории
updated_at: Обновлен
created_at: Создан
pl: Репозиторий для сохранения пакетов
pl_id: Репозиторий для сохранения пакетов
bpl: Платформа
bpl_id: Платформа
update_type: Критичность обновления
build_requires: Пересборка с зависимостями
auto_publish: Автоматическая публикация
project_version: Версия
user: Пользователь
build_list/item:
name: Название
level: Уровень
status: Статус
version: Версия
build_list: Сборочный лист
download:
name: Название
version: Версия

View File

@ -11,12 +11,12 @@
#
# It's strongly recommended to check this file into your version control system.
ActiveRecord::Schema.define(:version => 20120220185458) do
ActiveRecord::Schema.define(:version => 20120228100121) do
create_table "arches", :force => true do |t|
t.string "name", :null => false
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.datetime "created_at"
t.datetime "updated_at"
end
add_index "arches", ["name"], :name => "index_arches_on_name", :unique => true
@ -25,8 +25,8 @@ ActiveRecord::Schema.define(:version => 20120220185458) do
t.integer "user_id"
t.string "provider"
t.string "uid"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.datetime "created_at"
t.datetime "updated_at"
end
add_index "authentications", ["provider", "uid"], :name => "index_authentications_on_provider_and_uid", :unique => true
@ -37,8 +37,8 @@ ActiveRecord::Schema.define(:version => 20120220185458) do
t.integer "arch_id"
t.integer "pl_id"
t.integer "bpl_id"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "build_list_items", :force => true do |t|
@ -46,8 +46,8 @@ ActiveRecord::Schema.define(:version => 20120220185458) do
t.integer "level"
t.integer "status"
t.integer "build_list_id"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.datetime "created_at"
t.datetime "updated_at"
t.string "version"
end
@ -61,8 +61,8 @@ ActiveRecord::Schema.define(:version => 20120220185458) do
t.integer "project_id"
t.integer "arch_id"
t.datetime "notified_at"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.datetime "created_at"
t.datetime "updated_at"
t.boolean "is_circle", :default => false
t.text "additional_repos"
t.string "name"
@ -85,16 +85,16 @@ ActiveRecord::Schema.define(:version => 20120220185458) do
t.string "name"
t.string "ancestry"
t.integer "projects_count", :default => 0, :null => false
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "comments", :force => true do |t|
t.string "commentable_type"
t.integer "user_id"
t.text "body"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.datetime "created_at"
t.datetime "updated_at"
t.decimal "commentable_id", :precision => 50, :scale => 0
end
@ -102,8 +102,8 @@ ActiveRecord::Schema.define(:version => 20120220185458) do
t.string "name", :null => false
t.integer "project_id", :null => false
t.integer "owner_id", :null => false
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "delayed_jobs", :force => true do |t|
@ -115,8 +115,8 @@ ActiveRecord::Schema.define(:version => 20120220185458) do
t.datetime "locked_at"
t.datetime "failed_at"
t.string "locked_by"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.datetime "created_at"
t.datetime "updated_at"
t.string "queue"
end
@ -128,8 +128,8 @@ ActiveRecord::Schema.define(:version => 20120220185458) do
t.string "distro"
t.string "platform"
t.integer "counter", :default => 0
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "event_logs", :force => true do |t|
@ -144,15 +144,15 @@ ActiveRecord::Schema.define(:version => 20120220185458) do
t.string "controller"
t.string "action"
t.text "message"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "groups", :force => true do |t|
t.string "name"
t.integer "owner_id"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.datetime "created_at"
t.datetime "updated_at"
t.string "uname"
t.integer "own_projects_count", :default => 0, :null => false
end
@ -164,18 +164,40 @@ ActiveRecord::Schema.define(:version => 20120220185458) do
t.string "title"
t.text "body"
t.string "status", :default => "open"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.datetime "created_at"
t.datetime "updated_at"
t.integer "creator_id"
t.datetime "closed_at"
t.integer "closed_by"
end
add_index "issues", ["project_id", "serial_id"], :name => "index_issues_on_project_id_and_serial_id", :unique => true
create_table "labelings", :force => true do |t|
t.integer "label_id", :null => false
t.integer "issue_id"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
add_index "labelings", ["issue_id"], :name => "index_labelings_on_issue_id"
create_table "labels", :force => true do |t|
t.string "name", :null => false
t.string "color", :null => false
t.integer "project_id"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
add_index "labels", ["project_id"], :name => "index_labels_on_project_id"
create_table "platforms", :force => true do |t|
t.string "description"
t.string "name"
t.integer "parent_platform_id"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.datetime "created_at"
t.datetime "updated_at"
t.boolean "released", :default => false
t.integer "owner_id"
t.string "owner_type"
@ -188,8 +210,8 @@ ActiveRecord::Schema.define(:version => 20120220185458) do
t.integer "platform_id"
t.string "login"
t.string "password"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.datetime "created_at"
t.datetime "updated_at"
t.integer "user_id"
end
@ -197,8 +219,8 @@ ActiveRecord::Schema.define(:version => 20120220185458) do
t.integer "product_id"
t.integer "status", :default => 2, :null => false
t.datetime "notified_at"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.datetime "created_at"
t.datetime "updated_at"
end
add_index "product_build_lists", ["product_id"], :name => "index_product_build_lists_on_product_id"
@ -208,8 +230,8 @@ ActiveRecord::Schema.define(:version => 20120220185458) do
t.integer "platform_id", :null => false
t.integer "build_status", :default => 2, :null => false
t.string "build_path"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.datetime "created_at"
t.datetime "updated_at"
t.text "build_script"
t.text "counter"
t.text "ks"
@ -229,8 +251,8 @@ ActiveRecord::Schema.define(:version => 20120220185458) do
t.string "name"
t.string "version"
t.datetime "file_mtime"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.datetime "created_at"
t.datetime "updated_at"
t.integer "platform_id"
end
@ -239,14 +261,14 @@ ActiveRecord::Schema.define(:version => 20120220185458) do
create_table "project_to_repositories", :force => true do |t|
t.integer "project_id"
t.integer "repository_id"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "projects", :force => true do |t|
t.string "name"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.datetime "created_at"
t.datetime "updated_at"
t.integer "owner_id"
t.string "owner_type"
t.string "visibility", :default => "open"
@ -254,11 +276,11 @@ ActiveRecord::Schema.define(:version => 20120220185458) do
t.text "description"
t.string "ancestry"
t.boolean "has_issues", :default => true
t.boolean "has_wiki", :default => false
t.string "srpm_file_name"
t.string "srpm_content_type"
t.integer "srpm_file_size"
t.datetime "srpm_updated_at"
t.boolean "has_wiki", :default => false
end
add_index "projects", ["category_id"], :name => "index_projects_on_category_id"
@ -270,8 +292,8 @@ ActiveRecord::Schema.define(:version => 20120220185458) do
t.string "token"
t.boolean "approved", :default => false
t.boolean "rejected", :default => false
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.datetime "created_at"
t.datetime "updated_at"
t.string "interest"
t.text "more"
end
@ -284,16 +306,16 @@ ActiveRecord::Schema.define(:version => 20120220185458) do
t.string "object_type"
t.integer "target_id"
t.string "target_type"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.datetime "created_at"
t.datetime "updated_at"
t.string "role"
end
create_table "repositories", :force => true do |t|
t.string "description", :null => false
t.integer "platform_id", :null => false
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.datetime "created_at"
t.datetime "updated_at"
t.string "name", :null => false
end
@ -301,8 +323,8 @@ ActiveRecord::Schema.define(:version => 20120220185458) do
t.string "name", :null => false
t.integer "arch_id", :null => false
t.integer "project_id", :null => false
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.datetime "created_at"
t.datetime "updated_at"
end
add_index "rpms", ["project_id", "arch_id"], :name => "index_rpms_on_project_id_and_arch_id"
@ -315,8 +337,8 @@ ActiveRecord::Schema.define(:version => 20120220185458) do
t.boolean "new_comment_reply", :default => true
t.boolean "new_issue", :default => true
t.boolean "issue_assign", :default => true
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.datetime "created_at"
t.datetime "updated_at"
t.boolean "new_comment_commit_owner", :default => true
t.boolean "new_comment_commit_repo_owner", :default => true
t.boolean "new_comment_commit_commentor", :default => true
@ -325,8 +347,8 @@ ActiveRecord::Schema.define(:version => 20120220185458) do
create_table "subscribes", :force => true do |t|
t.string "subscribeable_type"
t.integer "user_id"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.datetime "created_at"
t.datetime "updated_at"
t.boolean "status", :default => true
t.integer "project_id"
t.decimal "subscribeable_id", :precision => 50, :scale => 0
@ -334,18 +356,18 @@ ActiveRecord::Schema.define(:version => 20120220185458) do
create_table "users", :force => true do |t|
t.string "name"
t.string "email", :default => "", :null => false
t.string "encrypted_password", :default => "", :null => false
t.string "email", :default => "", :null => false
t.string "encrypted_password", :limit => 128, :default => "", :null => false
t.string "reset_password_token"
t.datetime "reset_password_sent_at"
t.datetime "remember_created_at"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.datetime "created_at"
t.datetime "updated_at"
t.text "ssh_key"
t.string "uname"
t.string "role"
t.string "language", :default => "en"
t.integer "own_projects_count", :default => 0, :null => false
t.string "language", :default => "en"
t.datetime "reset_password_sent_at"
t.integer "own_projects_count", :default => 0, :null => false
end
add_index "users", ["email"], :name => "index_users_on_email", :unique => true