#757: merge master into branch
This commit is contained in:
commit
3e9c28e238
|
@ -59,8 +59,42 @@ $(document).ready(function() {
|
||||||
if (dialog.is(':visible')) { dialog.dialog('close'); } else { dialog.dialog('open'); }
|
if (dialog.is(':visible')) { dialog.dialog('close'); } else { dialog.dialog('open'); }
|
||||||
});
|
});
|
||||||
|
|
||||||
|
var ownership_btn = $('.btn.ownership');
|
||||||
|
ownership_btn.click(function() {
|
||||||
|
ownership_btn.removeClass('active');
|
||||||
|
$('#filter_ownership').val($(this).val());
|
||||||
|
$(this).addClass('active');
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
var perpage_btn = $('.btn.per_page');
|
||||||
|
perpage_btn.click(function() {
|
||||||
|
perpage_btn.removeClass('active');
|
||||||
|
$('#per_page').val($(this).val());
|
||||||
|
$(this).addClass('active');
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
$('a#updated_at_clear').click(function() {
|
||||||
|
$($(this).attr('href')).val('');
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#filter_clear').click(function() {
|
||||||
|
$('#monitoring_filter .input_cleanse').val('');
|
||||||
|
$('.btn-group .btn').removeClass('active');
|
||||||
|
if(ownership_btn.length > 0) { ownership_btn[0].click(); }
|
||||||
|
perpage_btn[0].click();
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
$('.mediumheight.min').datepicker({
|
||||||
|
dateFormat: 'dd/mm/yy',
|
||||||
|
showButtonPanel: true
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
function updateExtraReposAndContainers() {
|
function updateExtraReposAndContainers() {
|
||||||
$.get("/build_lists/update_extra_repos_and_containers", $('#new_build_list').serialize())
|
$.get("/build_lists/update_extra_repos_and_containers", $('#new_build_list').serialize())
|
||||||
.done(function(data) {
|
.done(function(data) {
|
||||||
|
|
|
@ -3,3 +3,4 @@
|
||||||
@import "design/git";
|
@import "design/git";
|
||||||
@import "design/common";
|
@import "design/common";
|
||||||
@import "design/custom";
|
@import "design/custom";
|
||||||
|
@import "design/build_lists_monitoring";
|
|
@ -0,0 +1,164 @@
|
||||||
|
article .all .top {
|
||||||
|
background: #e9f4fb;
|
||||||
|
border: 1px solid #dfeefa;
|
||||||
|
-moz-border-radius: 5px;
|
||||||
|
-webkit-border-radius: 5px;
|
||||||
|
border-radius: 5px;
|
||||||
|
// width: 760px;
|
||||||
|
color: 477cae;
|
||||||
|
padding: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
article .all .top .column {
|
||||||
|
width: 190px;
|
||||||
|
margin: 5px 10px;
|
||||||
|
float:left;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.reloader {
|
||||||
|
float: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.floatright, article input.floatright {
|
||||||
|
float: right;
|
||||||
|
margin-right: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.floatleft {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
h3.medium {
|
||||||
|
font-size: 13px;
|
||||||
|
margin: 5px 0px;
|
||||||
|
padding: 3px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.switch {
|
||||||
|
font-size: 11px;
|
||||||
|
float: center;
|
||||||
|
text-align: center;
|
||||||
|
color: #125687;
|
||||||
|
font-weight: bold;
|
||||||
|
//margin: -7px 0;
|
||||||
|
margin-bottom: -7px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.top .switch a {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
.btn-group {
|
||||||
|
width: 180px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-group .btn {
|
||||||
|
width: 40%;
|
||||||
|
height: 26px;
|
||||||
|
padding: 2px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-group > .btn:first-child,
|
||||||
|
.btn-group > .btn:last-child {
|
||||||
|
width: 30%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sel80.medium {
|
||||||
|
display: inline-block;
|
||||||
|
width: 180px;
|
||||||
|
margin-bottom: 0px;
|
||||||
|
height: 26px;
|
||||||
|
line-height: 26px;
|
||||||
|
padding: 4px 2px;
|
||||||
|
// margin-bottom: 5px;
|
||||||
|
color: #555;
|
||||||
|
vertical-align: middle;
|
||||||
|
-webkit-border-radius: 4px;
|
||||||
|
-moz-border-radius: 4px;
|
||||||
|
border-radius: 4px;
|
||||||
|
background-color: white;
|
||||||
|
border: 1px solid #CCC;
|
||||||
|
}
|
||||||
|
|
||||||
|
input.mediumheight {
|
||||||
|
height: 20px;
|
||||||
|
margin-bottom: 0px;
|
||||||
|
width: 180px;
|
||||||
|
margin-right: -19px;
|
||||||
|
}
|
||||||
|
input.mediumheight.min {
|
||||||
|
width: 85px;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
article .all .top form .butgrp {
|
||||||
|
margin-top: 20px;
|
||||||
|
float: right;
|
||||||
|
margin-right: 17px;
|
||||||
|
}
|
||||||
|
|
||||||
|
article .all .top form .butgrp input[type="submit"] {
|
||||||
|
width: 100px;
|
||||||
|
padding: 3px 5px 5px;
|
||||||
|
float: right;
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui-datepicker, .ui-widget, .ui-widget-content, .ui-helper-clearfix, .ui-corner-all {
|
||||||
|
font-size: 75%;
|
||||||
|
z-index: 99!important;
|
||||||
|
}
|
||||||
|
|
||||||
|
article label {
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
article .all .top form .floatleft a img,
|
||||||
|
article .all .top form .floatright a img {
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* bootstrap 3149*/
|
||||||
|
.btn {
|
||||||
|
display: inline-block;
|
||||||
|
padding: 4px 12px;
|
||||||
|
margin-bottom: 0;
|
||||||
|
line-height: 20px;
|
||||||
|
color: #333333;
|
||||||
|
text-align: center;
|
||||||
|
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
|
||||||
|
vertical-align: middle;
|
||||||
|
cursor: pointer;
|
||||||
|
background-color: #f5f5f5;
|
||||||
|
background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
|
||||||
|
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
|
||||||
|
background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
|
||||||
|
background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
|
||||||
|
background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
border: 1px solid #bbbbbb;
|
||||||
|
border-color: #e6e6e6 #e6e6e6 #bfbfbf;
|
||||||
|
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
||||||
|
border-bottom-color: #a2a2a2;
|
||||||
|
-webkit-border-radius: 4px;
|
||||||
|
-moz-border-radius: 4px;
|
||||||
|
border-radius: 4px;
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
|
||||||
|
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
|
||||||
|
-moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
|
||||||
|
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* bootstrap 3190*/
|
||||||
|
.btn:hover, .btn:active, .btn.active, .btn.disabled, .btn[disabled] {
|
||||||
|
color: #333333;
|
||||||
|
background-color: #e6e6e6;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* bootstrap 3222*/
|
||||||
|
.btn.active, .btn:active {
|
||||||
|
background-image: none;
|
||||||
|
outline: 0;
|
||||||
|
-webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
|
||||||
|
-moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
|
||||||
|
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
|
||||||
|
}
|
|
@ -1767,27 +1767,60 @@ table#myTable thead tr.search th form.button_to div input {
|
||||||
border: 1px solid #DDDDDD;
|
border: 1px solid #DDDDDD;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#extra-repos-and-containers {
|
||||||
/*
|
width: 330px;
|
||||||
table.tablesorter {
|
.actions { width: 15px; }
|
||||||
th.lpadding6 {
|
|
||||||
padding-left: 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
td a {
|
|
||||||
font-size: 10px;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
div.right.slim {
|
.semi {
|
||||||
padding-right: 5px;
|
opacity: 0.5;
|
||||||
width: 705px;
|
}
|
||||||
|
|
||||||
table.tablesorter {
|
#filter_new_build {
|
||||||
font-size: 10px;
|
display: inline-block;
|
||||||
}
|
white-space: nowrap;
|
||||||
|
background-color: #125687;
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#68a3d8), to(#125687));
|
||||||
|
background-image: -webkit-linear-gradient(top, #68a3d8, #125687);
|
||||||
|
background-image: -moz-linear-gradient(top, #68a3d8, #125687);
|
||||||
|
background-image: -ms-linear-gradient(top, #68a3d8, #125687);
|
||||||
|
background-image: -o-linear-gradient(top, #68a3d8, #125687);
|
||||||
|
background-image: linear-gradient(top, #68a3d8, #125687);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#68a3d8', EndColorStr='#125687');
|
||||||
|
border: 1px solid #5084b4;
|
||||||
|
padding: 3px 20px 5px;
|
||||||
|
margin: 0;
|
||||||
|
font-size: 12px;
|
||||||
|
text-decoration: none;
|
||||||
|
color: #FFF;
|
||||||
|
-moz-border-radius: 5px;
|
||||||
|
-webkit-border-radius: 5px;
|
||||||
|
border-radius: 5px;
|
||||||
|
text-align: center;
|
||||||
|
height: auto;
|
||||||
|
width: auto;
|
||||||
|
font-family: Tahoma;
|
||||||
|
}
|
||||||
|
|
||||||
|
#filter_new_build:hover{
|
||||||
|
background-color: #34719d;
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#7fb3e1), to(#34719d));
|
||||||
|
background-image: -webkit-linear-gradient(top, #7fb3e1, #34719d);
|
||||||
|
background-image: -moz-linear-gradient(top, #7fb3e1, #34719d);
|
||||||
|
background-image: -ms-linear-gradient(top, #7fb3e1, #34719d);
|
||||||
|
background-image: -o-linear-gradient(top, #7fb3e1, #34719d);
|
||||||
|
background-image: linear-gradient(top, #7fb3e1, #34719d);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#7fb3e1', EndColorStr='#34719d');
|
||||||
|
text-decoration: none;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
#filter_new_build {
|
||||||
|
width: 100px;
|
||||||
|
padding: 3px 5px 5px;
|
||||||
|
float: right;
|
||||||
|
margin-left: 10px;
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
#extra-repos-and-containers {
|
#extra-repos-and-containers {
|
||||||
width: 330px;
|
width: 330px;
|
||||||
|
|
|
@ -16,6 +16,7 @@ class Projects::BuildListsController < Projects::BaseController
|
||||||
params[:filter].each do |k,v|
|
params[:filter].each do |k,v|
|
||||||
new_params[:filter][k] = v unless v.empty?
|
new_params[:filter][k] = v unless v.empty?
|
||||||
end
|
end
|
||||||
|
new_params[:per_page] = params[:per_page] if params[:per_page].present?
|
||||||
redirect_to @project ? project_build_lists_path(@project, new_params) : build_lists_path(new_params)
|
redirect_to @project ? project_build_lists_path(@project, new_params) : build_lists_path(new_params)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -24,7 +25,8 @@ class Projects::BuildListsController < Projects::BaseController
|
||||||
@filter = BuildList::Filter.new(@project, current_user, params[:filter] || {})
|
@filter = BuildList::Filter.new(@project, current_user, params[:filter] || {})
|
||||||
|
|
||||||
page = params[:page].to_i == 0 ? nil : params[:page]
|
page = params[:page].to_i == 0 ? nil : params[:page]
|
||||||
@bls = @filter.find.recent.paginate :page => page
|
@per_page = BuildList::Filter::PER_PAGE.include?(params[:per_page].to_i) ? params[:per_page].to_i : 25
|
||||||
|
@bls = @filter.find.recent.paginate :page => page, :per_page => @per_page
|
||||||
@build_lists = BuildList.where(:id => @bls.pluck("#{BuildList.table_name}.id")).recent
|
@build_lists = BuildList.where(:id => @bls.pluck("#{BuildList.table_name}.id")).recent
|
||||||
@build_lists = @build_lists.includes [:save_to_platform, :save_to_repository, :arch, :user, :project => [:owner]]
|
@build_lists = @build_lists.includes [:save_to_platform, :save_to_repository, :arch, :user, :project => [:owner]]
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ class Projects::Git::BaseController < Projects::BaseController
|
||||||
protected
|
protected
|
||||||
|
|
||||||
def set_treeish_and_path
|
def set_treeish_and_path
|
||||||
@treeish, @path = @project.default_head(params[:treeish]), params[:path]
|
@treeish, @path = params[:treeish].presence || @project.default_head, params[:path]
|
||||||
end
|
end
|
||||||
|
|
||||||
def set_branch_and_tree
|
def set_branch_and_tree
|
||||||
|
|
|
@ -4,9 +4,10 @@ class Projects::Git::TreesController < Projects::Git::BaseController
|
||||||
skip_before_filter :set_branch_and_tree, :set_treeish_and_path, :only => :archive
|
skip_before_filter :set_branch_and_tree, :set_treeish_and_path, :only => :archive
|
||||||
|
|
||||||
def show
|
def show
|
||||||
|
render('empty') and return unless @project.repo.commit nil
|
||||||
@tree = @tree / @path if @path.present?
|
@tree = @tree / @path if @path.present?
|
||||||
@commit = @branch.present? ? @branch.commit() : @project.repo.log(@treeish, @path, :max_count => 1).first
|
@commit = @branch.present? ? @branch.commit() : @project.repo.log(@treeish, @path, :max_count => 1).first
|
||||||
render 'empty' unless @commit
|
raise Grit::NoSuchPathError unless @commit
|
||||||
end
|
end
|
||||||
|
|
||||||
def archive
|
def archive
|
||||||
|
@ -32,7 +33,8 @@ class Projects::Git::TreesController < Projects::Git::BaseController
|
||||||
end
|
end
|
||||||
|
|
||||||
def branches
|
def branches
|
||||||
@branches = @project.repo.branches.sort_by(&:name).select{ |b| b.name != @branch.name }.unshift(@branch)
|
raise Grit::NoSuchPathError if !@branch && @project.repo.commit(nil)
|
||||||
|
@branches = @project.repo.branches.sort_by(&:name).select{ |b| b.name != @branch.name }.unshift(@branch).compact
|
||||||
render 'refs'
|
render 'refs'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -4,8 +4,6 @@ module ApplicationHelper
|
||||||
case
|
case
|
||||||
when controller_name == 'issues' && action_name == 'new'
|
when controller_name == 'issues' && action_name == 'new'
|
||||||
'right nopadding'
|
'right nopadding'
|
||||||
when controller_name == 'build_lists' && action_name == 'index'
|
|
||||||
'right slim'
|
|
||||||
when controller_name == 'build_lists' && ['new', 'create'].include?(action_name)
|
when controller_name == 'build_lists' && ['new', 'create'].include?(action_name)
|
||||||
nil
|
nil
|
||||||
when controller_name == 'platforms' && ['build_all', 'mass_builds'].include?(action_name)
|
when controller_name == 'platforms' && ['build_all', 'mass_builds'].include?(action_name)
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
# -*- encoding : utf-8 -*-
|
# -*- encoding : utf-8 -*-
|
||||||
class BuildList::Filter
|
class BuildList::Filter
|
||||||
|
PER_PAGE = [25, 50, 100]
|
||||||
|
|
||||||
def initialize(project, user, options = {})
|
def initialize(project, user, options = {})
|
||||||
@project = project
|
@project = project
|
||||||
@user = user
|
@user = user
|
||||||
|
@ -70,14 +72,10 @@ class BuildList::Filter
|
||||||
end
|
end
|
||||||
|
|
||||||
def build_date_from_params(field_name, params)
|
def build_date_from_params(field_name, params)
|
||||||
if params[field_name].present?
|
return nil if params[field_name].blank?
|
||||||
Time.at(params[field_name].to_i)
|
params[field_name].strip!
|
||||||
elsif params["#{field_name}(1i)"].present? || params["#{field_name}(2i)"].present? || params["#{field_name}(3i)"].present?
|
return Date.parse(params[field_name]) if params[field_name] =~ /\A\d{2}\/\d{2}\/\d{4}\z/
|
||||||
Date.civil((params["#{field_name}(1i)"].presence || Date.today.year).to_i,
|
return Time.at(params[field_name].to_i) if params[field_name] =~ /\A\d+\z/
|
||||||
(params["#{field_name}(2i)"].presence || Date.today.month).to_i,
|
nil
|
||||||
(params["#{field_name}(3i)"].presence || Date.today.day).to_i)
|
|
||||||
else
|
|
||||||
nil
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
- act = action_name.to_sym; contr = controller_name.to_sym; treeish = project.default_head(params[:treeish])
|
- act = action_name.to_sym; contr = controller_name.to_sym; treeish = project.default_head(params[:treeish]); branch = @branch.try(:name) || project.default_head
|
||||||
#description-top
|
#description-top
|
||||||
-if @commit
|
-if @commit
|
||||||
%ul.nav.zip
|
%ul.nav.zip
|
||||||
|
@ -34,7 +34,7 @@
|
||||||
%li{:class => ('selected' if act == :index && contr == :commits )}
|
%li{:class => ('selected' if act == :index && contr == :commits )}
|
||||||
= link_to t('project_menu.commits'), commits_path(project, treeish)
|
= link_to t('project_menu.commits'), commits_path(project, treeish)
|
||||||
%li{:class => ('selected' if act == :branches && contr == :trees )}
|
%li{:class => ('selected' if act == :branches && contr == :trees )}
|
||||||
= link_to t('project_menu.branches', :count => project.repo.branches.count), branches_path(project, treeish)
|
= link_to t('project_menu.branches', :count => project.repo.branches.count), branches_path(project, branch)
|
||||||
%li.tags{:class => ('selected' if act == :tags && contr == :trees )}
|
%li.tags{:class => ('selected' if act == :tags && contr == :trees )}
|
||||||
= link_to t('project_menu.tags', :count => project.repo.tags.count), tags_path(project)
|
= link_to t('project_menu.tags', :count => project.repo.tags.count), tags_path(project)
|
||||||
.both
|
.both
|
||||||
|
|
|
@ -20,3 +20,4 @@
|
||||||
%td= link_to "#{build_list.save_to_platform.name}/#{build_list.save_to_repository.name}#{build_for}", [build_list.save_to_platform, build_list.save_to_repository]
|
%td= link_to "#{build_list.save_to_platform.name}/#{build_list.save_to_repository.name}#{build_for}", [build_list.save_to_platform, build_list.save_to_repository]
|
||||||
%td= build_list.arch.try(:name) || t("layout.arches.unexisted_arch")
|
%td= build_list.arch.try(:name) || t("layout.arches.unexisted_arch")
|
||||||
%td= link_to build_list.user.try(:fullname), build_list.user
|
%td= link_to build_list.user.try(:fullname), build_list.user
|
||||||
|
%td= build_list.updated_at.strftime('%d/%m/%Y')
|
||||||
|
|
|
@ -1,49 +1,107 @@
|
||||||
- content_for :sidebar do
|
-html_options = {:class => 'sel80 medium input_cleanse', :tabindex => 2}
|
||||||
= render 'server_status'
|
.top
|
||||||
|
.filter
|
||||||
|
= form_for :filter, :url => @action_url, :html => { :method => :post, :class => :form, :id => 'monitoring_filter' } do |f|
|
||||||
|
.column
|
||||||
|
= render 'server_status'
|
||||||
|
= hidden_field_tag :servertime, Time.now.utc.to_i
|
||||||
|
.reloader
|
||||||
|
= label_tag :autoreload do
|
||||||
|
= check_box_tag :autoreload, true, true
|
||||||
|
= t 'layout.autoreload_page'
|
||||||
|
.column
|
||||||
|
- if current_user
|
||||||
|
.bordered.nopadding
|
||||||
|
%h3.medium= t("layout.build_lists.ownership.header")
|
||||||
|
=f.hidden_field :ownership
|
||||||
|
.btn-group
|
||||||
|
- ownerships = %w[owned everything]
|
||||||
|
- ownerships << 'related' unless @project
|
||||||
|
- ownerships.each do |ownership|
|
||||||
|
-options = {:class => @filter.ownership == ownership ? 'active' : '', :value => ownership, :style => (@project ? 'width:50%;' : '')}
|
||||||
|
%button.btn.ownership{options}= t "layout.build_lists.ownership.#{ownership}"
|
||||||
|
%h3.medium= t 'number_rows'
|
||||||
|
=hidden_field_tag :per_page, @per_page
|
||||||
|
.btn-group
|
||||||
|
-BuildList::Filter::PER_PAGE.each do |num|
|
||||||
|
%button.btn.per_page{:value => num, :class => @per_page == num ? 'active' : ''}=num
|
||||||
|
%h3.medium= 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},
|
||||||
|
html_options.merge(:id => 'status')
|
||||||
|
.both
|
||||||
|
%br/
|
||||||
|
.column
|
||||||
|
%h3.medium= t 'activerecord.models.platform'
|
||||||
|
.lineForm.aside
|
||||||
|
= f.select :platform_id, Platform.main.collect{|pl| [pl.name, pl.id]}, {:include_blank => true, :selected => @filter.platform_id}, html_options.merge(:id => 'platform')
|
||||||
|
%h3.medium= 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}, html_options.merge(:id => 'architecture')
|
||||||
|
%h3.medium= t 'activerecord.models.mass_build'
|
||||||
|
.lineForm.aside
|
||||||
|
= f.select :mass_build_id, options_from_collection_for_select( MassBuild.all, :id, :name, @filter.mass_build_id ), {:include_blank => true, :selected => @filter.mass_build_id},
|
||||||
|
html_options.merge(:id => 'mass_build')
|
||||||
|
|
||||||
= form_for :filter, :url => @action_url, :html => { :method => :post, :class => :form } do |f|
|
.column
|
||||||
- if current_user
|
-[:updated_at_start, :updated_at_end].each do |attr|
|
||||||
.bordered.nopadding
|
-class_name, message = attr == :updated_at_start ? %w[floatleft _on] : %w[floatright until]
|
||||||
%h3= t("layout.build_lists.ownership.header")
|
%div{:class => class_name}
|
||||||
.table
|
%h3.medium= t message
|
||||||
.lefter= f.radio_button :ownership, 'owned', :class => 'niceRadio', :id => 'myradio1'
|
-date = @filter.send(attr) ? @filter.send(attr).strftime('%d/%m/%Y') : nil
|
||||||
.lefter= t("layout.build_lists.ownership.owned")
|
=f.text_field attr, :readonly => "readonly", :size => 10, :class => 'mediumheight min input_cleanse', :value => date
|
||||||
|
=link_to image_tag('x.png', :alt => 'x', :class => 'semi'), "#filter_#{attr}", :id => 'updated_at_clear'
|
||||||
.both
|
.both
|
||||||
- unless @project
|
-%w[project_name bs_id].each do |filter|
|
||||||
.table
|
%h3.medium= t "layout.build_lists.#{filter}_search"
|
||||||
.lefter= f.radio_button :ownership, 'related', :class => 'niceRadio', :id => 'myradio2'
|
%input.mediumheight.input_cleanse{:id => "filter_#{filter}", :name => "filter[#{filter}]", :size => "30", :type => "text"}/
|
||||||
.lefter= t("layout.build_lists.ownership.related")
|
%br/
|
||||||
.both
|
%br/
|
||||||
.table
|
.butgrp
|
||||||
.lefter= f.radio_button :ownership, 'everything', :class => 'niceRadio', :id => 'myradio3'
|
= f.submit t('layout.search.header')
|
||||||
.lefter= t("layout.build_lists.ownership.everything")
|
= f.submit t('reset'), :id => 'filter_clear'
|
||||||
.both
|
-if @project and can?(:create, @project.build_lists.build)
|
||||||
%br
|
%input{:id => 'filter_new_build', :type => 'button', :onclick => "location.href='#{new_project_build_list_path(@project)}'", :value => t('layout.build_lists.new_header')}
|
||||||
= f.submit t("layout.search.header")
|
.both
|
||||||
.block
|
.both
|
||||||
%h3.small= t("activerecord.attributes.build_list.new_core")
|
.switch
|
||||||
.lineForm.aside= f.select :new_core, build_list_options_for_new_core, {:include_blank => true, :selected => @filter.new_core}, {:class => 'sel80 aside', :id => 'new_core', :tabindex => 2}
|
%a{:href => "#"}= t 'layout.build_lists.hide_filter'
|
||||||
%h3.small= t("activerecord.attributes.build_list.status")
|
:javascript
|
||||||
.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}
|
var MONITORING_FILTER_HIDE = "monitoring_filter_hide";
|
||||||
%h3.small= t("activerecord.models.platform")
|
$(".switch").toggle(
|
||||||
.lineForm.aside= f.select :platform_id, Platform.main.collect{|pl| [pl.name, pl.id]}, {:include_blank => true, :selected => @filter.platform_id}, {:class => 'sel80 aside', :id => 'platform', :tabindex => 2}
|
function () {
|
||||||
%h3.small= t("activerecord.attributes.build_list.mass_build")
|
var d = new Date();
|
||||||
.lineForm.aside= f.select :mass_build_id, options_from_collection_for_select( MassBuild.all, :id, :name, @filter.mass_build_id ), {:include_blank => true}
|
d.setMonth(d.getMonth() + 1);
|
||||||
%h3.small= t("activerecord.attributes.build_list.arch")
|
$(".filter").hide("slow");
|
||||||
.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}
|
$(".switch a").text("#{t 'layout.build_lists.show_filter'}");
|
||||||
-# TODO [BuildList#created_at filters] Uncomment here and in BuildList::Filter to return filters
|
setCookie(MONITORING_FILTER_HIDE, 'true', d);
|
||||||
%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)
|
function () {
|
||||||
%h3.small= t("layout.build_lists.created_at_end")
|
$(".filter").show("slow");
|
||||||
.date_select= f.date_select(:created_at_end, :include_blank => true, :selected => @filter.created_at_end)
|
$(".switch a").text("#{t 'layout.build_lists.hide_filter'}");
|
||||||
%h3.small= t("layout.build_lists.updated_at_start")
|
var d = new Date();
|
||||||
.date_select= f.date_select(:updated_at_start, :include_blank => true, :selected => @filter.updated_at_start)
|
d.setMonth(d.getMonth() + 1);
|
||||||
%h3.small= t("layout.build_lists.updated_at_end")
|
setCookie(MONITORING_FILTER_HIDE, 'false', d);
|
||||||
.date_select= f.date_select(:updated_at_end, :include_blank => true, :selected => @filter.updated_at_end)
|
}
|
||||||
%h3.small= t("layout.build_lists.project_name_search")
|
);
|
||||||
= f.text_field :project_name
|
#{cookies[:monitoring_filter_hide] == 'true' ? "$('.switch').click();" : ''}
|
||||||
%h3.small= t("layout.build_lists.bs_id_search")
|
#{if I18n.locale == :ru
|
||||||
= f.text_field :bs_id
|
"$.datepicker.regional['ru'] = {
|
||||||
%br
|
closeText: 'Закрыть',
|
||||||
%br
|
prevText: '<Пред',
|
||||||
= f.submit t("layout.search.header")
|
nextText: 'След>',
|
||||||
|
currentText: 'Сейчас',
|
||||||
|
monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь',
|
||||||
|
'Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
|
||||||
|
dayNames: ['Воскресенье','Понедельник','Вторник','Среда','Четверг','Пятница','Суббота'],
|
||||||
|
dayNamesMin: ['Вс','Пн','Вт','Ср','Чт','Пт','Сб'],
|
||||||
|
weekHeader: 'Не',
|
||||||
|
dateFormat: 'dd/mm/yy',
|
||||||
|
firstDay: 1,
|
||||||
|
isRTL: false,
|
||||||
|
showMonthAfterYear: false,
|
||||||
|
yearSuffix: ''
|
||||||
|
};
|
||||||
|
$.datepicker.setDefaults($.datepicker.regional['ru']);"
|
||||||
|
end
|
||||||
|
}
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
- queues ||= [:rpm, :publish]
|
- queues ||= [:rpm, :publish]
|
||||||
.bordered.nopadding
|
.bordered.nopadding
|
||||||
%h3= t('layout.build_lists.build_server_status.header')
|
%h3.medium= t('layout.build_lists.build_server_status.header')
|
||||||
|
|
||||||
- queues.each do |queue|
|
- queues.each do |queue|
|
||||||
.table
|
.table
|
||||||
.lefter= t("layout.build_lists.build_server_status.#{queue}_workers")
|
.lefter= t("layout.build_lists.build_server_status.#{queue}_workers")
|
||||||
|
@ -12,4 +11,3 @@
|
||||||
.righter= @build_server_status[queue][metric]
|
.righter= @build_server_status[queue][metric]
|
||||||
.both
|
.both
|
||||||
%br
|
%br
|
||||||
= link_to t('layout.build_lists.new_header'), new_project_build_list_path(@project), :class => 'button' if @project and can?(:create, @project.build_lists.build)
|
|
|
@ -1,11 +1,6 @@
|
||||||
-set_meta_tags :title => t('.title')
|
-set_meta_tags :title => t('.title')
|
||||||
|
|
||||||
= hidden_field_tag :servertime, Time.now.utc.to_i
|
= render 'filter'
|
||||||
%div.reloader
|
|
||||||
= label_tag :autoreload do
|
|
||||||
= check_box_tag :autoreload, true, true
|
|
||||||
= t("layout.autoreload_page")
|
|
||||||
.both
|
|
||||||
|
|
||||||
%table.tablesorter{:cellpadding => "0", :cellspacing => "0"}
|
%table.tablesorter{:cellpadding => "0", :cellspacing => "0"}
|
||||||
%thead
|
%thead
|
||||||
|
@ -18,6 +13,7 @@
|
||||||
%th.lpadding16= t("activerecord.attributes.build_list.save_to_repository")
|
%th.lpadding16= t("activerecord.attributes.build_list.save_to_repository")
|
||||||
%th.lpadding6= t("activerecord.attributes.build_list.arch_short")
|
%th.lpadding6= t("activerecord.attributes.build_list.arch_short")
|
||||||
%th.lpadding16= t("activerecord.attributes.build_list.user")
|
%th.lpadding16= t("activerecord.attributes.build_list.user")
|
||||||
|
%th.lpadding6= t("activerecord.attributes.build_list.updated_at")
|
||||||
%tbody= render :partial => 'projects/build_lists/build_list', :collection => @build_lists
|
%tbody= render :partial => 'projects/build_lists/build_list', :collection => @build_lists
|
||||||
.both
|
.both
|
||||||
|
|
||||||
|
@ -74,5 +70,4 @@
|
||||||
|
|
||||||
= will_paginate @bls
|
= will_paginate @bls
|
||||||
|
|
||||||
= render 'filter'
|
|
||||||
= render @project ? 'projects/base/submenu' : 'projects/build_lists/submenu'
|
= render @project ? 'projects/base/submenu' : 'projects/build_lists/submenu'
|
||||||
|
|
|
@ -20,6 +20,7 @@ en:
|
||||||
user_list: User list
|
user_list: User list
|
||||||
edit: Edit
|
edit: Edit
|
||||||
show: View
|
show: View
|
||||||
|
hide: Hide
|
||||||
cancel: Cancel
|
cancel: Cancel
|
||||||
create: Create
|
create: Create
|
||||||
update: Update
|
update: Update
|
||||||
|
@ -203,3 +204,7 @@ en:
|
||||||
from: from
|
from: from
|
||||||
by: by
|
by: by
|
||||||
diff: Diff
|
diff: Diff
|
||||||
|
number_rows: Number rows
|
||||||
|
reset: Reset
|
||||||
|
_on: 'On'
|
||||||
|
until: Until
|
||||||
|
|
|
@ -154,6 +154,9 @@ en:
|
||||||
600000: "10 m"
|
600000: "10 m"
|
||||||
900000: "15 m"
|
900000: "15 m"
|
||||||
|
|
||||||
|
show_filter: Show filters
|
||||||
|
hide_filter: Hide filters
|
||||||
|
|
||||||
flash:
|
flash:
|
||||||
build_list:
|
build_list:
|
||||||
saved: Build list for project version '%{project_version}', platform '%{build_for_platform}' and architecture '%{arch}' has been created successfully
|
saved: Build list for project version '%{project_version}', platform '%{build_for_platform}' and architecture '%{arch}' has been created successfully
|
||||||
|
|
|
@ -97,8 +97,8 @@ ru:
|
||||||
|
|
||||||
ownership:
|
ownership:
|
||||||
header: Принадлежность заданий
|
header: Принадлежность заданий
|
||||||
owned: Мне
|
owned: Мои
|
||||||
related: Связанные со мной
|
related: Связанные
|
||||||
everything: Все
|
everything: Все
|
||||||
|
|
||||||
build_server_status:
|
build_server_status:
|
||||||
|
@ -153,6 +153,9 @@ ru:
|
||||||
600000: "10 мин"
|
600000: "10 мин"
|
||||||
900000: "15 мин"
|
900000: "15 мин"
|
||||||
|
|
||||||
|
show_filter: Показать фильтры
|
||||||
|
hide_filter: Скрыть фильтры
|
||||||
|
|
||||||
flash:
|
flash:
|
||||||
build_list:
|
build_list:
|
||||||
saved: Билд лист для версии '%{project_version}', платформы '%{build_for_platform}' и архитектуры '%{arch}' создан успешно
|
saved: Билд лист для версии '%{project_version}', платформы '%{build_for_platform}' и архитектуры '%{arch}' создан успешно
|
||||||
|
|
|
@ -20,6 +20,7 @@ ru:
|
||||||
user_list: Список пользователей
|
user_list: Список пользователей
|
||||||
edit: Редактировать
|
edit: Редактировать
|
||||||
show: Просмотр
|
show: Просмотр
|
||||||
|
hide: Скрыть
|
||||||
cancel: Отмена
|
cancel: Отмена
|
||||||
create: Создать
|
create: Создать
|
||||||
update: Обновить
|
update: Обновить
|
||||||
|
@ -204,3 +205,7 @@ ru:
|
||||||
from: из
|
from: из
|
||||||
by: от
|
by: от
|
||||||
diff: Изменения
|
diff: Изменения
|
||||||
|
number_rows: Количество строк
|
||||||
|
reset: Сброс
|
||||||
|
_on: с
|
||||||
|
until: по
|
||||||
|
|
Loading…
Reference in New Issue