Merge branch '3.2-master' into 265-activity_feed_messages
Conflicts: config/locales/menu.en.yml config/locales/menu.ru.yml
This commit is contained in:
commit
86871ab32d
|
@ -3,6 +3,7 @@
|
||||||
//= require jquery-ui
|
//= require jquery-ui
|
||||||
//= require autocomplete-rails
|
//= require autocomplete-rails
|
||||||
//= require vendor
|
//= require vendor
|
||||||
|
//= require jquery.dataTables_ext
|
||||||
//= require_tree ./design
|
//= require_tree ./design
|
||||||
//= require_tree ./extra
|
//= require_tree ./extra
|
||||||
//= require_self
|
//= require_self
|
||||||
|
|
|
@ -0,0 +1,139 @@
|
||||||
|
(function($, window, document, undefined) {
|
||||||
|
$.extend( $.fn.DataTable.ext.oPagination, {
|
||||||
|
"will_paginate_like": {
|
||||||
|
/*
|
||||||
|
* Function: oPagination.full_numbers.fnInit
|
||||||
|
* Purpose: Initialise dom elements required for pagination with a list of the pages
|
||||||
|
* Returns: -
|
||||||
|
* Inputs: object:oSettings - dataTables settings object
|
||||||
|
* node:nPaging - the DIV which contains this pagination control
|
||||||
|
* function:fnCallbackDraw - draw function which must be called on update
|
||||||
|
*/
|
||||||
|
"fnInit": function ( oSettings, nPaging, fnCallbackDraw ) {
|
||||||
|
var oLang = oSettings.oLanguage.oPaginate;
|
||||||
|
var oClasses = oSettings.oClasses;
|
||||||
|
var fnClickHandler = function ( e ) {
|
||||||
|
if ( oSettings.oApi._fnPageChange( oSettings, e.data.action ) )
|
||||||
|
{
|
||||||
|
fnCallbackDraw( oSettings );
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
$(nPaging).append(
|
||||||
|
'<a tabindex="'+oSettings.iTabIndex+'" class="'+oClasses.sPageButton+" "+oClasses.sPagePrevious+'">'+oLang.sPrevious+'</a>'+
|
||||||
|
'<span></span>'+
|
||||||
|
'<a tabindex="'+oSettings.iTabIndex+'" class="'+oClasses.sPageButton+" "+oClasses.sPageNext+'">'+oLang.sNext+'</a>'
|
||||||
|
);
|
||||||
|
var els = $('a', nPaging);
|
||||||
|
var nPrev = els[0],
|
||||||
|
nNext = els[1]
|
||||||
|
|
||||||
|
oSettings.oApi._fnBindAction( nPrev, {action: "previous"}, fnClickHandler );
|
||||||
|
oSettings.oApi._fnBindAction( nNext, {action: "next"}, fnClickHandler );
|
||||||
|
|
||||||
|
/* ID the first elements only */
|
||||||
|
if ( !oSettings.aanFeatures.p )
|
||||||
|
{
|
||||||
|
nPaging.id = oSettings.sTableId+'_paginate';
|
||||||
|
nPrev.id =oSettings.sTableId+'_previous';
|
||||||
|
nNext.id =oSettings.sTableId+'_next';
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Function: oPagination.full_numbers.fnUpdate
|
||||||
|
* Purpose: Update the list of page buttons shows
|
||||||
|
* Returns: -
|
||||||
|
* Inputs: object:oSettings - dataTables settings object
|
||||||
|
* function:fnCallbackDraw - draw function to call on page change
|
||||||
|
*/
|
||||||
|
"fnUpdate": function ( oSettings, fnCallbackDraw ) {
|
||||||
|
if ( !oSettings.aanFeatures.p )
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var iPageCount = $.fn.DataTable.ext.oPagination.iFullNumbersShowPages;
|
||||||
|
var iPageCountHalf = Math.floor(iPageCount / 2);
|
||||||
|
var iPages = Math.ceil((oSettings.fnRecordsDisplay()) / oSettings._iDisplayLength);
|
||||||
|
var iCurrentPage = Math.ceil(oSettings._iDisplayStart / oSettings._iDisplayLength) + 1;
|
||||||
|
var sList = "";
|
||||||
|
var iStartButton, iEndButton, i, iLen;
|
||||||
|
var oClasses = oSettings.oClasses;
|
||||||
|
var anButtons, anStatic, nPaginateList;
|
||||||
|
var an = oSettings.aanFeatures.p;
|
||||||
|
var fnBind = function (j) {
|
||||||
|
oSettings.oApi._fnBindAction( this, {"page": j+iStartButton-1}, function(e) {
|
||||||
|
/* Use the information in the element to jump to the required page */
|
||||||
|
oSettings.oApi._fnPageChange( oSettings, e.data.page );
|
||||||
|
fnCallbackDraw( oSettings );
|
||||||
|
e.preventDefault();
|
||||||
|
} );
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Pages calculation */
|
||||||
|
if (iPages < iPageCount)
|
||||||
|
{
|
||||||
|
iStartButton = 1;
|
||||||
|
iEndButton = iPages;
|
||||||
|
}
|
||||||
|
else if (iCurrentPage <= iPageCountHalf)
|
||||||
|
{
|
||||||
|
iStartButton = 1;
|
||||||
|
iEndButton = iPageCount;
|
||||||
|
}
|
||||||
|
else if (iCurrentPage >= (iPages - iPageCountHalf))
|
||||||
|
{
|
||||||
|
iStartButton = iPages - iPageCount + 1;
|
||||||
|
iEndButton = iPages;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
iStartButton = iCurrentPage - Math.ceil(iPageCount / 2) + 1;
|
||||||
|
iEndButton = iStartButton + iPageCount - 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Build the dynamic list */
|
||||||
|
for ( i=iStartButton ; i<=iEndButton ; i++ )
|
||||||
|
{
|
||||||
|
sList += (iCurrentPage !== i) ?
|
||||||
|
'<a tabindex="'+oSettings.iTabIndex+'" class="'+oClasses.sPageButton+'">'+oSettings.fnFormatNumber(i)+'</a>' :
|
||||||
|
'<a tabindex="'+oSettings.iTabIndex+'" class="'+oClasses.sPageButtonActive+'">'+oSettings.fnFormatNumber(i)+'</a>';
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Loop over each instance of the pager */
|
||||||
|
for ( i=0, iLen=an.length ; i<iLen ; i++ )
|
||||||
|
{
|
||||||
|
if ( an[i].childNodes.length === 0 )
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Build up the dynamic list forst - html and listeners */
|
||||||
|
$('span:eq(0)', an[i])
|
||||||
|
.html( sList )
|
||||||
|
.children('a').each( fnBind );
|
||||||
|
|
||||||
|
/* Update the premanent botton's classes */
|
||||||
|
anButtons = an[i].getElementsByTagName('a');
|
||||||
|
anStatic = [
|
||||||
|
anButtons[0], anButtons[anButtons.length-1]
|
||||||
|
];
|
||||||
|
|
||||||
|
$(anStatic).removeClass( oClasses.sPageButton+" "+oClasses.sPageButtonActive+" "+oClasses.sPageButtonStaticDisabled );
|
||||||
|
$([anStatic[0]]).addClass(
|
||||||
|
(iCurrentPage==1) ?
|
||||||
|
oClasses.sPageButtonStaticDisabled :
|
||||||
|
oClasses.sPageButton
|
||||||
|
);
|
||||||
|
$([anStatic[1]]).addClass(
|
||||||
|
(iPages===0 || iCurrentPage===iPages || oSettings._iDisplayLength===-1) ?
|
||||||
|
oClasses.sPageButtonStaticDisabled :
|
||||||
|
oClasses.sPageButton
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} );
|
||||||
|
}(jQuery, window, document, undefined));
|
|
@ -443,4 +443,137 @@ table.wiki .history .td2 .name span.username {
|
||||||
width: 164px;
|
width: 164px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
table.tablesorter.platforms .th1 {
|
||||||
|
width: 290px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tablesorter.platforms .th2 {
|
||||||
|
width: 280px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tablesorter tr td.buttons {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tablesorter tr td.buttons a span.delete {
|
||||||
|
background: image-url('x.png') no-repeat 0 0 transparent;
|
||||||
|
width: 12px;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
#fork-and-edit {display:block;}
|
#fork-and-edit {display:block;}
|
||||||
|
|
||||||
|
a.button.left_floated {
|
||||||
|
display: inline-block;
|
||||||
|
float: left;
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.buttons_block {
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tablesorter.unbordered {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tablesorter.unbordered tr td {
|
||||||
|
border: none;
|
||||||
|
padding: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tablesorter.repo-projects th.th1 {
|
||||||
|
width: 250px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tablesorter.repo-projects th.th3 {
|
||||||
|
width: 60px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tablesorter.repo-projects td.td2,
|
||||||
|
.table-sort-right {
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dataTables_filter {
|
||||||
|
margin-bottom: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dataTables_paginate {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dataTables_info {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dataTables_info,
|
||||||
|
div.dataTables_paginate.paging_will_paginate_like {
|
||||||
|
margin-top: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dataTables_paginate.paging_will_paginate_like a.paginate_button,
|
||||||
|
div.dataTables_paginate.paging_will_paginate_like a.paginate_active {
|
||||||
|
background: none repeat scroll 0 0 #EDEDED;
|
||||||
|
color: #4C90D0 !important;
|
||||||
|
border: 1px solid #DDDDDD;
|
||||||
|
border-radius: 1px 1px 1px 1px;
|
||||||
|
padding: 3px 7px;
|
||||||
|
margin-right: 3px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dataTables_paginate.paging_will_paginate_like a.paginate_button_disabled,
|
||||||
|
div.dataTables_paginate.paging_will_paginate_like a.paginate_active {
|
||||||
|
color: #565657 !important;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dataTables_paginate.paging_will_paginate_like a.paginate_button_disabled:hover,
|
||||||
|
div.dataTables_paginate.paging_will_paginate_like a.paginate_active:hover {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dataTables_paginate.paging_will_paginate_like a.previous {
|
||||||
|
margin-left: 0px;
|
||||||
|
margin-right: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dataTables_paginate.paging_will_paginate_like a.next {
|
||||||
|
margin-left: 1px;
|
||||||
|
margin-right: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dataTables_paginate.paging_will_paginate_like a.paginate_active {
|
||||||
|
background: none repeat scroll 0 0 #D5E7F9;
|
||||||
|
border: 1px solid #C1DAED;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dataTables_processing {
|
||||||
|
z-index: 999;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.rightlist textarea {
|
||||||
|
resize: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#crontab_generator .leftlist,
|
||||||
|
div#crontab_generator .rightlist {
|
||||||
|
width: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#crontab_generator .leftlist select,
|
||||||
|
div#crontab_generator .rightlist select {
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.dataTable tr.odd td.sorting_1 {
|
||||||
|
background-color: #F0F0F6;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.dataTable tr.even td.sorting_1 {
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -440,7 +440,7 @@ article a.button {
|
||||||
background-image: linear-gradient(top, #68a3d8, #125687);
|
background-image: linear-gradient(top, #68a3d8, #125687);
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#68a3d8', EndColorStr='#125687');
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#68a3d8', EndColorStr='#125687');
|
||||||
border: 1px solid #5084b4;
|
border: 1px solid #5084b4;
|
||||||
padding: 4px 20px;
|
padding: 4px 20px 6px;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
|
@ -509,7 +509,7 @@ article input[type="submit"] {
|
||||||
background-image: linear-gradient(top, #68a3d8, #125687);
|
background-image: linear-gradient(top, #68a3d8, #125687);
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#68a3d8', EndColorStr='#125687');
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#68a3d8', EndColorStr='#125687');
|
||||||
border: 1px solid #5084b4;
|
border: 1px solid #5084b4;
|
||||||
padding: 0px 20px 0px;
|
padding: 3px 20px 5px;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
|
@ -519,7 +519,6 @@ article input[type="submit"] {
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
height: auto;
|
height: auto;
|
||||||
height: 28px;
|
|
||||||
width: auto;
|
width: auto;
|
||||||
font-family: Tahoma;
|
font-family: Tahoma;
|
||||||
}
|
}
|
||||||
|
@ -2212,3 +2211,9 @@ div.width400.rmargin55 {
|
||||||
div.tmargin10 {
|
div.tmargin10 {
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*My projects*/
|
||||||
|
|
||||||
|
article h3 a {
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
|
@ -14,7 +14,7 @@ class PlatformsController < ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def index
|
def index
|
||||||
@platforms = Platform.accessible_by(current_ability).paginate(:page => params[:platform_page])
|
@platforms = @platforms.paginate(:page => params[:page], :per_page => 20)
|
||||||
end
|
end
|
||||||
|
|
||||||
def easy_urpmi
|
def easy_urpmi
|
||||||
|
@ -35,8 +35,8 @@ class PlatformsController < ApplicationController
|
||||||
|
|
||||||
def show
|
def show
|
||||||
@platform = Platform.find params[:id], :include => :repositories
|
@platform = Platform.find params[:id], :include => :repositories
|
||||||
@repositories = @platform.repositories
|
#@repositories = @platform.repositories
|
||||||
@members = @platform.members.uniq
|
#@members = @platform.members.uniq
|
||||||
end
|
end
|
||||||
|
|
||||||
def new
|
def new
|
||||||
|
@ -57,10 +57,10 @@ class PlatformsController < ApplicationController
|
||||||
@platform.owner = @admin_id.blank? ? get_owner : User.find(@admin_id)
|
@platform.owner = @admin_id.blank? ? get_owner : User.find(@admin_id)
|
||||||
|
|
||||||
if @platform.save
|
if @platform.save
|
||||||
flash[:notice] = I18n.t("flash.platform.saved")
|
flash[:notice] = I18n.t("flash.platform.created")
|
||||||
redirect_to @platform
|
redirect_to @platform
|
||||||
else
|
else
|
||||||
flash[:error] = I18n.t("flash.platform.save_error")
|
flash[:error] = I18n.t("flash.platform.create_error")
|
||||||
render :action => :new
|
render :action => :new
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -125,7 +125,7 @@ class PlatformsController < ApplicationController
|
||||||
@platform.delay.destroy if @platform
|
@platform.delay.destroy if @platform
|
||||||
|
|
||||||
flash[:notice] = t("flash.platform.destroyed")
|
flash[:notice] = t("flash.platform.destroyed")
|
||||||
redirect_to root_path
|
redirect_to platforms_path
|
||||||
end
|
end
|
||||||
|
|
||||||
def forbidden
|
def forbidden
|
||||||
|
|
|
@ -8,6 +8,10 @@ class ProductsController < ApplicationController
|
||||||
load_and_authorize_resource :platform
|
load_and_authorize_resource :platform
|
||||||
load_and_authorize_resource :product, :through => :platform
|
load_and_authorize_resource :product, :through => :platform
|
||||||
|
|
||||||
|
def index
|
||||||
|
@products = @products.paginate(:page => params[:page])
|
||||||
|
end
|
||||||
|
|
||||||
def new
|
def new
|
||||||
@product = @platform.products.new
|
@product = @platform.products.new
|
||||||
@product.ks = DEFAULT_KS
|
@product.ks = DEFAULT_KS
|
||||||
|
@ -31,7 +35,7 @@ class ProductsController < ApplicationController
|
||||||
@product = @platform.products.new params[:product]
|
@product = @platform.products.new params[:product]
|
||||||
if @product.save
|
if @product.save
|
||||||
flash[:notice] = t('flash.product.saved')
|
flash[:notice] = t('flash.product.saved')
|
||||||
redirect_to @platform
|
redirect_to platform_product_path(@platform, @product)
|
||||||
else
|
else
|
||||||
flash[:error] = t('flash.product.save_error')
|
flash[:error] = t('flash.product.save_error')
|
||||||
render :action => :new
|
render :action => :new
|
||||||
|
@ -54,7 +58,7 @@ class ProductsController < ApplicationController
|
||||||
def destroy
|
def destroy
|
||||||
@product.destroy
|
@product.destroy
|
||||||
flash[:notice] = t("flash.product.destroyed")
|
flash[:notice] = t("flash.product.destroyed")
|
||||||
redirect_to @platform
|
redirect_to platform_products_path(@platform)
|
||||||
end
|
end
|
||||||
|
|
||||||
protected
|
protected
|
||||||
|
|
|
@ -12,9 +12,9 @@ class RepositoriesController < ApplicationController
|
||||||
|
|
||||||
def index
|
def index
|
||||||
if params[:platform_id]
|
if params[:platform_id]
|
||||||
@repositories = Platform.find(params[:platform_id]).repositories.paginate(:page => params[:repository_page])
|
@repositories = Platform.find(params[:platform_id]).repositories.paginate(:page => params[:page])
|
||||||
else
|
else
|
||||||
@repositories = Repository.paginate(:page => params[:repository_page])
|
@repositories = Repository.paginate(:page => params[:page])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@ class RepositoriesController < ApplicationController
|
||||||
platform_id = @repository.platform_id
|
platform_id = @repository.platform_id
|
||||||
|
|
||||||
flash[:notice] = t("flash.repository.destroyed")
|
flash[:notice] = t("flash.repository.destroyed")
|
||||||
redirect_to platform_path(platform_id)
|
redirect_to platform_repositories_path(platform_id)
|
||||||
end
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
|
@ -60,13 +60,14 @@ class RepositoriesController < ApplicationController
|
||||||
else
|
else
|
||||||
flash[:error] = t('flash.repository.project_not_added')
|
flash[:error] = t('flash.repository.project_not_added')
|
||||||
end
|
end
|
||||||
redirect_to repository_path(@repository)
|
redirect_to platform_repository_path(@platform, @repository)
|
||||||
else
|
else
|
||||||
render :projects_list
|
render :projects_list
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def projects_list
|
def projects_list
|
||||||
|
|
||||||
owner_subquery = "
|
owner_subquery = "
|
||||||
INNER JOIN (
|
INNER JOIN (
|
||||||
SELECT id, 'User' AS type, uname
|
SELECT id, 'User' AS type, uname
|
||||||
|
@ -76,27 +77,31 @@ class RepositoriesController < ApplicationController
|
||||||
FROM groups
|
FROM groups
|
||||||
) AS owner
|
) AS owner
|
||||||
ON projects.owner_id = owner.id AND projects.owner_type = owner.type"
|
ON projects.owner_id = owner.id AND projects.owner_type = owner.type"
|
||||||
colName = ['owner.uname', 'projects.name']
|
colName = ['projects.name']
|
||||||
sort_col = params[:iSortCol_0] || 0
|
sort_col = params[:iSortCol_0] || 0
|
||||||
sort_dir = params[:sSortDir_0]=="asc" ? 'asc' : 'desc'
|
sort_dir = params[:sSortDir_0]=="asc" ? 'asc' : 'desc'
|
||||||
order = "#{colName[sort_col.to_i]} #{sort_dir}"
|
order = "#{colName[sort_col.to_i]} #{sort_dir}"
|
||||||
|
|
||||||
|
if params[:added] == "true"
|
||||||
|
@projects = @repository.projects
|
||||||
|
else
|
||||||
@projects = Project.joins(owner_subquery).addable_to_repository(@repository.id)
|
@projects = Project.joins(owner_subquery).addable_to_repository(@repository.id)
|
||||||
@projects = @projects.paginate(:page => (params[:iDisplayStart].to_i/params[:iDisplayLength].to_i).to_i + 1, :per_page => params[:iDisplayLength])
|
|
||||||
@projects = @projects.by_visibilities('open') if @repository.platform.platform_type == 'main'
|
@projects = @projects.by_visibilities('open') if @repository.platform.platform_type == 'main'
|
||||||
|
end
|
||||||
|
@projects = @projects.paginate(:page => (params[:iDisplayStart].to_i/params[:iDisplayLength].to_i).to_i + 1, :per_page => params[:iDisplayLength])
|
||||||
|
|
||||||
@total_projects = @projects.count
|
@total_projects = @projects.count
|
||||||
@projects = @projects.where(['projects.name LIKE ?', "#{params[:sSearch]}%"]) if params[:sSearch] and !params[:sSearch].empty?
|
@projects = @projects.where(['projects.name ILIKE ?', "#{params[:sSearch]}%"]) if params[:sSearch] and !params[:sSearch].empty?
|
||||||
@total_project = @projects.count
|
@total_project = @projects.count
|
||||||
@projects = @projects.order(order)#.includes(:owner) #WTF????
|
@projects = @projects.order(order)#.includes(:owner) #WTF????
|
||||||
|
|
||||||
render :partial => 'proj_ajax', :layout => false
|
render :partial => (params[:added] == "true") ? 'project' : 'proj_ajax', :layout => false
|
||||||
end
|
end
|
||||||
|
|
||||||
def remove_project
|
def remove_project
|
||||||
@project = Project.find(params[:project_id])
|
@project = Project.find(params[:project_id])
|
||||||
ProjectToRepository.where(:project_id => @project.id, :repository_id => @repository.id).destroy_all
|
ProjectToRepository.where(:project_id => @project.id, :repository_id => @repository.id).destroy_all
|
||||||
redirect_to repository_path(@repository), :notice => t('flash.repository.project_removed')
|
redirect_to platform_repository_path(@platform, @repository), :notice => t('flash.repository.project_removed')
|
||||||
end
|
end
|
||||||
|
|
||||||
protected
|
protected
|
||||||
|
|
|
@ -18,6 +18,10 @@ module ApplicationHelper
|
||||||
'right slim'
|
'right slim'
|
||||||
when params[:controller] == 'build_lists' && ['new', 'create'].include?(params[:action])
|
when params[:controller] == 'build_lists' && ['new', 'create'].include?(params[:action])
|
||||||
nil
|
nil
|
||||||
|
when params[:controller] == 'platforms' && params[:action] == 'show'
|
||||||
|
'right bigpadding'
|
||||||
|
when params[:controller] == 'platforms' && params[:action] == 'clone'
|
||||||
|
'right middlepadding'
|
||||||
else
|
else
|
||||||
content_for?(:sidebar) ? 'right' : 'all'
|
content_for?(:sidebar) ? 'right' : 'all'
|
||||||
end
|
end
|
||||||
|
|
|
@ -73,21 +73,26 @@ class Ability
|
||||||
can :read, Platform, :owner_type => 'User', :owner_id => user.id
|
can :read, Platform, :owner_type => 'User', :owner_id => user.id
|
||||||
can :read, Platform, :owner_type => 'Group', :owner_id => user.group_ids
|
can :read, Platform, :owner_type => 'Group', :owner_id => user.group_ids
|
||||||
can(:read, Platform, read_relations_for('platforms')) {|platform| local_reader? platform}
|
can(:read, Platform, read_relations_for('platforms')) {|platform| local_reader? platform}
|
||||||
can([:update, :build_all], Platform) {|platform| local_admin? platform}
|
# can([:update, :build_all], Platform) {|platform| local_admin? platform}
|
||||||
can([:freeze, :unfreeze, :destroy], Platform) {|platform| owner? platform}
|
can([:freeze, :unfreeze, :update], Platform) {|platform| local_admin? platform}
|
||||||
|
#can([:freeze, :unfreeze, :destroy], Platform) {|platform| owner? platform}
|
||||||
|
can(:destroy, Platform) {|platform| owner? platform}
|
||||||
can :autocomplete_user_uname, Platform
|
can :autocomplete_user_uname, Platform
|
||||||
|
|
||||||
can :read, Repository, :platform => {:visibility => 'open'}
|
can [:read, :projects_list], Repository, :platform => {:visibility => 'open'}
|
||||||
can :read, Repository, :platform => {:owner_type => 'User', :owner_id => user.id}
|
can [:read, :projects_list], Repository, :platform => {:owner_type => 'User', :owner_id => user.id}
|
||||||
can :read, Repository, :platform => {:owner_type => 'Group', :owner_id => user.group_ids}
|
can [:read, :projects_list], Repository, :platform => {:owner_type => 'Group', :owner_id => user.group_ids}
|
||||||
can(:read, Repository, read_relations_for('repositories', 'platforms')) {|repository| local_reader? repository.platform}
|
can([:read, :projects_list], Repository, read_relations_for('repositories', 'platforms')) {|repository| local_reader? repository.platform}
|
||||||
can([:create, :update, :projects_list, :add_project, :remove_project], Repository) {|repository| local_admin? repository.platform}
|
can([:create, :update, :projects_list, :add_project, :remove_project], Repository) {|repository| local_admin? repository.platform}
|
||||||
can([:change_visibility, :settings, :destroy], Repository) {|repository| owner? repository.platform}
|
can([:change_visibility, :settings, :destroy], Repository) {|repository| owner? repository.platform}
|
||||||
|
|
||||||
|
can :read, Product, :platform => {:platform_type => 'main'}
|
||||||
can :read, Product, :platform => {:owner_type => 'User', :owner_id => user.id}
|
can :read, Product, :platform => {:owner_type => 'User', :owner_id => user.id}
|
||||||
can :read, Product, :platform => {:owner_type => 'Group', :owner_id => user.group_ids}
|
can :read, Product, :platform => {:owner_type => 'Group', :owner_id => user.group_ids}
|
||||||
can(:manage, Product, read_relations_for('products', 'platforms')) {|product| local_admin? product.platform}
|
can(:read, Product, read_relations_for('products', 'platforms')) {|product| product.platform.platform_type == 'main'}
|
||||||
can(:create, ProductBuildList) {|pbl| pbl.product.can_build? and can?(:update, pbl.product)}
|
can([:create, :update, :destroy, :clone], Product) {|product| local_admin? product.platform }
|
||||||
|
|
||||||
|
can(:create, ProductBuildList) {|pbl| can?(:update, pbl.product)}
|
||||||
can(:destroy, ProductBuildList) {|pbl| can?(:destroy, pbl.product)}
|
can(:destroy, ProductBuildList) {|pbl| can?(:destroy, pbl.product)}
|
||||||
|
|
||||||
can [:read, :platforms], Category
|
can [:read, :platforms], Category
|
||||||
|
@ -111,10 +116,15 @@ class Ability
|
||||||
|
|
||||||
# Shared cannot rights for all users (registered, admin)
|
# Shared cannot rights for all users (registered, admin)
|
||||||
cannot :destroy, Platform, :platform_type => 'personal'
|
cannot :destroy, Platform, :platform_type => 'personal'
|
||||||
cannot :destroy, Repository, :platform => {:platform_type => 'personal'}
|
cannot [:create, :destroy, :add_project, :remove_project], Repository, :platform => {:platform_type => 'personal'}
|
||||||
cannot :fork, Project, :owner_id => user.id, :owner_type => user.class.to_s
|
cannot :fork, Project, :owner_id => user.id, :owner_type => user.class.to_s
|
||||||
cannot :destroy, Issue
|
cannot :destroy, Issue
|
||||||
|
|
||||||
|
# cannot :read, Product, :platform => {:platform_type => 'personal'}
|
||||||
|
# cannot(:read, Product, read_relations_for('products', 'platforms')) {|product| product.platform.platform_type == 'personal'}
|
||||||
|
cannot [:create, :update, :destroy, :clone], Product, :platform => {:platform_type => 'personal'}
|
||||||
|
cannot [:clone, :build_all, :freeze, :unfreeze], Platform, :platform_type => 'personal'
|
||||||
|
|
||||||
can :create, Subscribe do |subscribe|
|
can :create, Subscribe do |subscribe|
|
||||||
!subscribe.subscribeable.subscribes.exists?(:user_id => user.id)
|
!subscribe.subscribeable.subscribes.exists?(:user_id => user.id)
|
||||||
end
|
end
|
||||||
|
|
|
@ -23,7 +23,7 @@ class ActivityFeedObserver < ActiveRecord::Observer
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
if record.user_id_was != record.user_id
|
if record.user_id_changed?
|
||||||
UserMailer.delay.issue_assign_notification(record, record.user) if record.user.notifier.issue_assign && record.user.notifier.can_notify
|
UserMailer.delay.issue_assign_notification(record, record.user) if record.user.notifier.issue_assign && record.user.notifier.can_notify
|
||||||
ActivityFeed.create(
|
ActivityFeed.create(
|
||||||
:user => record.user,
|
:user => record.user,
|
||||||
|
@ -119,7 +119,7 @@ class ActivityFeedObserver < ActiveRecord::Observer
|
||||||
def after_update(record)
|
def after_update(record)
|
||||||
case record.class.to_s
|
case record.class.to_s
|
||||||
when 'Issue'
|
when 'Issue'
|
||||||
if record.user_id_was != record.user_id
|
if record.user_id && record.user_id_changed?
|
||||||
UserMailer.delay.issue_assign_notification(record, record.user) if record.user.notifier.issue_assign && record.user.notifier.can_notify
|
UserMailer.delay.issue_assign_notification(record, record.user) if record.user.notifier.issue_assign && record.user.notifier.can_notify
|
||||||
ActivityFeed.create(
|
ActivityFeed.create(
|
||||||
:user => record.user,
|
:user => record.user,
|
||||||
|
|
|
@ -73,13 +73,14 @@ class Issue < ActiveRecord::Base
|
||||||
def subscribe_users
|
def subscribe_users
|
||||||
recipients = collect_recipient_ids
|
recipients = collect_recipient_ids
|
||||||
recipients.each do |recipient_id|
|
recipients.each do |recipient_id|
|
||||||
ss = self.subscribes.build(:user_id => recipient_id)
|
if User.find(recipient_id).notifier.new_comment && !self.subscribes.exists?(:user_id => recipient_id)
|
||||||
ss.save!
|
ss = self.subscribes.create(:user_id => recipient_id)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def subscribe_issue_assigned_user
|
def subscribe_issue_assigned_user
|
||||||
if self.user_id_was != self.user_id
|
if self.user_id && self.user_id_changed?
|
||||||
self.subscribes.where(:user_id => self.user_id_was).first.destroy unless self.user_id_was.blank?
|
self.subscribes.where(:user_id => self.user_id_was).first.destroy unless self.user_id_was.blank?
|
||||||
if self.user.notifier.issue_assign && !self.subscribes.exists?(:user_id => self.user_id)
|
if self.user.notifier.issue_assign && !self.subscribes.exists?(:user_id => self.user_id)
|
||||||
self.subscribes.create(:user_id => self.user_id)
|
self.subscribes.create(:user_id => self.user_id)
|
||||||
|
|
|
@ -23,16 +23,7 @@ class Product < ActiveRecord::Base
|
||||||
@delete_tar = value
|
@delete_tar = value
|
||||||
end
|
end
|
||||||
|
|
||||||
def can_clone?
|
|
||||||
is_template
|
|
||||||
end
|
|
||||||
|
|
||||||
def can_build?
|
|
||||||
!is_template
|
|
||||||
end
|
|
||||||
|
|
||||||
def clone_from!(template)
|
def clone_from!(template)
|
||||||
raise "Only templates can be cloned" unless template.can_clone?
|
|
||||||
attrs = ATTRS_TO_CLONE.inject({}) {|result, attr|
|
attrs = ATTRS_TO_CLONE.inject({}) {|result, attr|
|
||||||
result[attr] = template.send(attr)
|
result[attr] = template.send(attr)
|
||||||
result
|
result
|
||||||
|
|
|
@ -4,8 +4,6 @@ class Subscribe < ActiveRecord::Base
|
||||||
belongs_to :user
|
belongs_to :user
|
||||||
belongs_to :project
|
belongs_to :project
|
||||||
|
|
||||||
scope :finder_hack, order('') # FIXME .subscribes - error; .subscribes.finder_hack - success Oo
|
|
||||||
|
|
||||||
def commit_subscribe?
|
def commit_subscribe?
|
||||||
subscribeable_type == 'Grit::Commit'
|
subscribeable_type == 'Grit::Commit'
|
||||||
end
|
end
|
||||||
|
|
|
@ -112,6 +112,14 @@ class User < ActiveRecord::Base
|
||||||
email.downcase == commit.committer.email.downcase
|
email.downcase == commit.committer.email.downcase
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def owner_of? object
|
||||||
|
if object.respond_to? :owner
|
||||||
|
object.owner_id == self.id or self.group_ids.include? object.owner_id
|
||||||
|
else
|
||||||
|
false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def create_settings_notifier
|
def create_settings_notifier
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
%tr{:id => "row#{platform_build_list_counter}"}
|
||||||
|
%td= link_to (platform_build_list.bs_id.present? ? platform_build_list.bs_id : t("layout.build_lists.bs_id_not_set")), platform_build_list
|
||||||
|
%td= platform_build_list.human_status
|
||||||
|
%td= link_to platform_build_list.project.name, platform_build_list.project
|
||||||
|
%td= platform_build_list.notified_at
|
|
@ -1,5 +1,5 @@
|
||||||
-content_for :sidebar do
|
-content_for :sidebar do
|
||||||
- can_manage = can? :write, @issue.project
|
- can_manage = can?(:update, @issue) && @issue.persisted? || @issue.new_record?
|
||||||
- if @issue.persisted?
|
- if @issue.persisted?
|
||||||
.bordered.nopadding
|
.bordered.nopadding
|
||||||
%h3=t('activerecord.attributes.issue.status')
|
%h3=t('activerecord.attributes.issue.status')
|
||||||
|
@ -14,6 +14,7 @@
|
||||||
- if @issue.persisted?
|
- if @issue.persisted?
|
||||||
-if can_manage
|
-if can_manage
|
||||||
=form_for :issue, :url => [@project, @issue], :method => :put, :html => { :class => 'edit_executor issue'} do |f|
|
=form_for :issue, :url => [@project, @issue], :method => :put, :html => { :class => 'edit_executor issue'} do |f|
|
||||||
|
=hidden_field_tag "user-default_executor", nil, :name => 'issue[user_id]'
|
||||||
.current_executor
|
.current_executor
|
||||||
- if @issue.user
|
- if @issue.user
|
||||||
#user-0.people.nopointer
|
#user-0.people.nopointer
|
||||||
|
@ -21,7 +22,7 @@
|
||||||
.name="#{@issue.user.uname} (#{@issue.user.name})"
|
.name="#{@issue.user.uname} (#{@issue.user.name})"
|
||||||
=hidden_field_tag "user-0", @issue.user.id, :name => 'issue[user_id]'
|
=hidden_field_tag "user-0", @issue.user.id, :name => 'issue[user_id]'
|
||||||
.both
|
.both
|
||||||
- else
|
- elsif @issue.user
|
||||||
.people.nopointer
|
.people.nopointer
|
||||||
.avatar=image_tag avatar_url(@issue.user), :alt => 'avatar'
|
.avatar=image_tag avatar_url(@issue.user), :alt => 'avatar'
|
||||||
.name="#{@issue.user.uname} (#{@issue.user.name})"
|
.name="#{@issue.user.uname} (#{@issue.user.name})"
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
.fulltext.view.issue_body=@issue.body
|
.fulltext.view.issue_body=@issue.body
|
||||||
.both
|
.both
|
||||||
%br
|
%br
|
||||||
- if can? :write, @issue.project
|
- if can? :update, @issue
|
||||||
=link_to t('layout.edit'), '#', :id => 'edit_issue_content', :class => 'button'
|
=link_to t('layout.edit'), '#', :id => 'edit_issue_content', :class => 'button'
|
||||||
=form_for :issue, :url => [@project, @issue], :method => :put, :html => { :class => 'edit_form issue', :style => 'display:none;' } do |f|
|
=form_for :issue, :url => [@project, @issue], :method => :put, :html => { :class => 'edit_form issue', :style => 'display:none;' } do |f|
|
||||||
.leftlist= t('activerecord.attributes.issue.title') + ':'
|
.leftlist= t('activerecord.attributes.issue.title') + ':'
|
||||||
|
|
|
@ -1,33 +1,34 @@
|
||||||
- unless ['edit', 'update'].include? controller.action_name
|
- unless ['edit', 'update'].include? controller.action_name
|
||||||
.group
|
.leftlist= f.label :name, :class => :label
|
||||||
= f.label :name, :class => :label
|
.rightlist= f.text_field :name, :class => 'text_field'
|
||||||
= f.text_field :name, :class => 'text_field'
|
.both
|
||||||
|
|
||||||
.group
|
.leftlist= f.label :description, :class => :label
|
||||||
= f.label :description, :class => :label
|
.rightlist= f.text_area :description, :class => 'text_field'
|
||||||
= f.text_field :description, :class => 'text_field'
|
.both
|
||||||
|
|
||||||
- unless ['edit', 'update'].include? controller.action_name
|
- unless ['edit', 'update'].include? controller.action_name
|
||||||
.group
|
.leftlist= f.label :distrib_type, :class => :label
|
||||||
= f.label :distrib_type, :class => :label
|
.rightlist= f.select :distrib_type, options_for_select(APP_CONFIG['distr_types'])
|
||||||
= f.select :distrib_type, options_for_select(APP_CONFIG['distr_types'])
|
.both
|
||||||
|
|
||||||
.group
|
.leftlist= f.label :parent, :class => :label
|
||||||
= f.label :parent, :class => :label
|
.rightlist= f.collection_select :parent_platform_id, Platform.all, :id, :description, :include_blank => true
|
||||||
= f.collection_select :parent_platform_id, Platform.all, :id, :description, :include_blank => true
|
.both
|
||||||
|
|
||||||
.group
|
.leftlist= f.label :released, :class => :label
|
||||||
= f.label :released, :class => :label
|
.rightlist= f.check_box :released, :class => 'check_box'
|
||||||
= f.check_box :released, :class => 'check_box'
|
.both
|
||||||
|
|
||||||
.group
|
.leftlist= label_tag "", t("layout.platforms.admin_id"), :class => :label
|
||||||
= label_tag "", t("layout.platforms.admin_id"), :class => :label
|
.rightlist= autocomplete_field_tag 'admin_id', @admin_uname, autocomplete_user_uname_platforms_path, :id_element => '#admin_id_field'
|
||||||
= autocomplete_field_tag 'admin_id', @admin_uname, autocomplete_user_uname_platforms_path, :id_element => '#admin_id_field'
|
|
||||||
= hidden_field_tag 'admin_id', @admin_id, :id => 'admin_id_field'
|
= hidden_field_tag 'admin_id', @admin_id, :id => 'admin_id_field'
|
||||||
|
.both
|
||||||
|
|
||||||
.group.navform.wat-cf
|
.button_block
|
||||||
%button.button{:type => "submit"}
|
= submit_tag t("layout.save")
|
||||||
= image_tag("choose.png", :alt => t("layout.save"))
|
-#%input.button{:type => "submit", :class => "button"}
|
||||||
= t("layout.save")
|
-#= image_tag("choose.png", :alt => t("layout.save"))
|
||||||
|
-#= t("layout.clone")
|
||||||
%span.text_button_padding= t("layout.or")
|
%span.text_button_padding= t("layout.or")
|
||||||
= link_to t("layout.cancel"), @platforms_path, :class => "text_button_padding link_button"
|
= link_to t("layout.cancel"), @platform.new_record? ? root_path : platform_path(@platform), :class => "button"
|
||||||
|
|
|
@ -1,4 +1,22 @@
|
||||||
%table.table
|
%table#myTable.tablesorter.platforms{:cellspacing => "0", :cellpadding => "0"}
|
||||||
|
%thead
|
||||||
|
%tr
|
||||||
|
%th.th1= t("activerecord.attributes.platform.name")
|
||||||
|
%th.th2= t("activerecord.attributes.platform.distrib_type")
|
||||||
|
%th.th3= t("layout.delete")
|
||||||
|
%tbody
|
||||||
|
- @platforms.each do |platform|
|
||||||
|
%tr{:class => cycle("odd", "even")}
|
||||||
|
%td
|
||||||
|
= link_to platform.name, platform_path(platform)
|
||||||
|
%td
|
||||||
|
= platform.distrib_type
|
||||||
|
%td.buttons
|
||||||
|
- if can? :destroy, platform
|
||||||
|
= link_to platform_path(platform), :method => :delete, :confirm => t("layout.platforms.confirm_delete") do
|
||||||
|
%span.delete
|
||||||
|
|
||||||
|
-#%table.table
|
||||||
%tr
|
%tr
|
||||||
%th.first= t("activerecord.attributes.platform.name")
|
%th.first= t("activerecord.attributes.platform.name")
|
||||||
%th.first= t("activerecord.attributes.platform.distrib_type")
|
%th.first= t("activerecord.attributes.platform.distrib_type")
|
||||||
|
|
|
@ -1,4 +1,21 @@
|
||||||
.block.notice
|
- act = action_name.to_sym
|
||||||
|
- contr = controller_name.to_sym
|
||||||
|
|
||||||
|
- content_for :sidebar do
|
||||||
|
%aside
|
||||||
|
.admin-preferences
|
||||||
|
%ul
|
||||||
|
%li{:class => (act == :show && contr == :platforms) ? 'active' : ''}
|
||||||
|
= link_to t("layout.platforms.about"), platform_path(@platform)
|
||||||
|
%li{:class => (contr == :repositories) ? 'active' : ''}
|
||||||
|
= link_to t("layout.repositories.list_header"), platform_repositories_path(@platform)
|
||||||
|
- if can? :read, @platform.products.build
|
||||||
|
%li{:class => (contr == :products) ? 'active' : ''}
|
||||||
|
= link_to t("layout.products.list_header"), platform_products_path(@platform)
|
||||||
|
-#- if current_user.owner_of? @platform or current_user.admin?
|
||||||
|
%li{:class => (act == :index && contr == :private_users) ? 'active' : ''}
|
||||||
|
= link_to t("layout.platforms.private_users"), platform_private_users_path(@platform)
|
||||||
|
-#.block.notice
|
||||||
%h3= t("layout.groups.members")
|
%h3= t("layout.groups.members")
|
||||||
.content
|
.content
|
||||||
- @platform.members.uniq.each do |member|
|
- @platform.members.uniq.each do |member|
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
- content_for :submenu do
|
||||||
|
- act = action_name.to_sym; contr = controller_name.to_sym
|
||||||
|
.left= @platform.name
|
||||||
|
%nav
|
||||||
|
%ul
|
||||||
|
- if can? :update, @platform
|
||||||
|
%li= link_to t("platform_menu.settings"), edit_platform_path(@platform), :class => (act == :edit && contr == :platforms) ? 'active' : nil
|
|
@ -1,4 +1,23 @@
|
||||||
.block
|
= render :partial => 'submenu'
|
||||||
|
= render :partial => 'sidebar'
|
||||||
|
|
||||||
|
= form_for @cloned, :url => make_clone_platform_path(@platform), :html => { :class => :form } do |f|
|
||||||
|
.leftlist= f.label :name, :class => :label
|
||||||
|
.rightlist= f.text_field :name, :class => 'text_field'
|
||||||
|
|
||||||
|
.leftlist= f.label :description, :class => :label
|
||||||
|
.rightlist= f.text_field :description, :class => 'text_field'
|
||||||
|
|
||||||
|
.both
|
||||||
|
|
||||||
|
.button_block
|
||||||
|
= submit_tag t("layout.clone")
|
||||||
|
-#%input.button{:type => "submit", :class => "button"}
|
||||||
|
-#= image_tag("choose.png", :alt => t("layout.save"))
|
||||||
|
-#= t("layout.clone")
|
||||||
|
%span.text_button_padding= t("layout.or")
|
||||||
|
= link_to t("layout.cancel"), @platforms_path, :class => "button"
|
||||||
|
-#.block
|
||||||
.secondary-navigation
|
.secondary-navigation
|
||||||
%ul.wat-cf
|
%ul.wat-cf
|
||||||
%li.first= link_to "#{t("layout.platforms.list")}", @platforms_path
|
%li.first= link_to "#{t("layout.platforms.list")}", @platforms_path
|
||||||
|
|
|
@ -1,4 +1,9 @@
|
||||||
.block
|
= render :partial => 'submenu'
|
||||||
|
= render :partial => 'sidebar'
|
||||||
|
|
||||||
|
= form_for @platform, :url => platform_path(@platform), :html => { :class => :form } do |f|
|
||||||
|
= render :partial => "form", :locals => {:f => f}
|
||||||
|
-#.block
|
||||||
.secondary-navigation
|
.secondary-navigation
|
||||||
%ul.wat-cf
|
%ul.wat-cf
|
||||||
%li.first= link_to t("layout.platforms.list"), platforms_path
|
%li.first= link_to t("layout.platforms.list"), platforms_path
|
||||||
|
@ -10,4 +15,4 @@
|
||||||
.inner
|
.inner
|
||||||
= form_for @platform, :url => platform_path(@platform), :html => { :class => :form } do |f|
|
= form_for @platform, :url => platform_path(@platform), :html => { :class => :form } do |f|
|
||||||
= render :partial => "form", :locals => {:f => f}
|
= render :partial => "form", :locals => {:f => f}
|
||||||
- content_for :sidebar, render(:partial => 'sidebar')
|
-# content_for :sidebar, render(:partial => 'sidebar')
|
||||||
|
|
|
@ -1,35 +1,3 @@
|
||||||
.block
|
= link_to t("layout.platforms.new"), new_platform_path, :class => 'button' if can? :create, Platform
|
||||||
.secondary-navigation
|
|
||||||
%ul.wat-cf
|
|
||||||
%li.first.active= link_to t("layout.platforms.list"), platforms_path
|
|
||||||
%li= link_to t("layout.platforms.new"), new_platform_path if can? :create, Platform
|
|
||||||
.content
|
|
||||||
%h2.title
|
|
||||||
= t("layout.platforms.list_header")
|
|
||||||
.inner
|
|
||||||
= render :partial => 'shared/search_form'
|
|
||||||
= render :partial => 'platforms/list', :object => @platforms
|
= render :partial => 'platforms/list', :object => @platforms
|
||||||
.actions-bar.wat-cf
|
= will_paginate @platforms
|
||||||
.actions
|
|
||||||
= will_paginate @platforms, :param_name => :platform_page
|
|
||||||
/.block
|
|
||||||
/ .secondary-navigation
|
|
||||||
/ %ul.wat-cf
|
|
||||||
/ %li.first.active= link_to t("layout.platforms.list"), platforms_path
|
|
||||||
/ %li= link_to t("layout.platforms.new"), new_platform_path
|
|
||||||
/ .content
|
|
||||||
/ %h2.title
|
|
||||||
/ = t("layout.platforms.list_header")
|
|
||||||
/ .inner
|
|
||||||
/ %table.table
|
|
||||||
/ %tr
|
|
||||||
/ %th.first= t("activerecord.attributes.platform.name")
|
|
||||||
/ %th.last
|
|
||||||
/ - @platforms.each do |platform|
|
|
||||||
/ %tr{:class => cycle("odd", "even")}
|
|
||||||
/ %td
|
|
||||||
/ = link_to platform.name, platform_path(platform)
|
|
||||||
/ %td.last
|
|
||||||
/ #{link_to t("layout.show"), platform_path(platform)} | #{link_to t("layout.delete"), platform_path(platform), :method => :delete, :confirm => t("layout.platforms.confirm_delete")}
|
|
||||||
/ .actions-bar.wat-cf
|
|
||||||
/ .actions
|
|
||||||
|
|
|
@ -1,4 +1,9 @@
|
||||||
.block
|
%h3= t("layout.platforms.new_header")
|
||||||
|
|
||||||
|
= form_for :platform, :url => platforms_path, :html => { :class => :form } do |f|
|
||||||
|
= render :partial => "form", :locals => {:f => f}
|
||||||
|
|
||||||
|
-#.block
|
||||||
.secondary-navigation
|
.secondary-navigation
|
||||||
%ul.wat-cf
|
%ul.wat-cf
|
||||||
%li.first= link_to "#{t("layout.platforms.list")}", @platforms_path
|
%li.first= link_to "#{t("layout.platforms.list")}", @platforms_path
|
||||||
|
|
|
@ -1,4 +1,46 @@
|
||||||
.block
|
= render :partial => 'submenu'
|
||||||
|
= render :partial => 'sidebar'
|
||||||
|
|
||||||
|
%h3.fix= t("layout.platforms.about")
|
||||||
|
|
||||||
|
%p= @platform.description
|
||||||
|
|
||||||
|
%table.tablesorter.unbordered
|
||||||
|
- if @platform.parent
|
||||||
|
%tr
|
||||||
|
%td
|
||||||
|
%b= "#{t("activerecord.attributes.platform.parent")}:"
|
||||||
|
%td= link_to @platform.parent.description, platform_path(@platform.parent)
|
||||||
|
%tr
|
||||||
|
%td
|
||||||
|
%b= "#{t('layout.platforms.owner')}:"
|
||||||
|
%td= link_to @platform.owner.try(:name), url_for(@platform.owner)
|
||||||
|
%tr
|
||||||
|
%td
|
||||||
|
%b= "#{t('layout.platforms.visibility')}:"
|
||||||
|
%td= t("layout.visibilities.#{@platform.visibility}")
|
||||||
|
%tr
|
||||||
|
%td
|
||||||
|
%b= "#{t('layout.platforms.platform_type')}:"
|
||||||
|
%td= @platform.platform_type
|
||||||
|
%tr
|
||||||
|
%td
|
||||||
|
%b= "#{t('layout.platforms.distrib_type')}:"
|
||||||
|
%td= @platform.distrib_type
|
||||||
|
|
||||||
|
.buttons_block
|
||||||
|
- if can? :build_all, @platform
|
||||||
|
= link_to t("layout.platforms.build_all"), build_all_platform_path(@platform), :confirm => I18n.t("layout.confirm"), :method => :post, :class => "button left_floated"
|
||||||
|
- if @platform.released?
|
||||||
|
- if can? :unfreeze, @platform
|
||||||
|
= link_to t("layout.platforms.unfreeze"), unfreeze_platform_path(@platform), :confirm => I18n.t("layout.platforms.confirm_unfreeze"), :method => :post, :class => "button left_floated"
|
||||||
|
- else
|
||||||
|
- if can? :freeze, @platform
|
||||||
|
= link_to t("layout.platforms.freeze"), freeze_platform_path(@platform), :confirm => I18n.t("layout.platforms.confirm_freeze"), :method => :post, :class => "button left_floated"
|
||||||
|
= link_to "Клонировать", clone_platform_path(@platform), :class => "button left_floated" if can? :clone, @platform
|
||||||
|
.both
|
||||||
|
|
||||||
|
-#.block
|
||||||
.secondary-navigation
|
.secondary-navigation
|
||||||
%ul.wat-cf
|
%ul.wat-cf
|
||||||
%li.first= link_to t("layout.platforms.list"), platforms_path
|
%li.first= link_to t("layout.platforms.list"), platforms_path
|
||||||
|
@ -66,8 +108,8 @@
|
||||||
= link_to t("layout.platforms.build_all"), build_all_platform_path(@platform), :confirm => I18n.t("layout.confirm"), :method => :post, :class => "button" if can? :build_all, @platform
|
= link_to t("layout.platforms.build_all"), build_all_platform_path(@platform), :confirm => I18n.t("layout.confirm"), :method => :post, :class => "button" if can? :build_all, @platform
|
||||||
= link_to t("layout.platforms.edit"), edit_platform_path(@platform), :class => "button" if can? :edit, @platform
|
= link_to t("layout.platforms.edit"), edit_platform_path(@platform), :class => "button" if can? :edit, @platform
|
||||||
|
|
||||||
%a{ :name => "repositories" }
|
-#%a{ :name => "repositories" }
|
||||||
.block
|
-#.block
|
||||||
.secondary-navigation
|
.secondary-navigation
|
||||||
%ul.wat-cf
|
%ul.wat-cf
|
||||||
%li.first.active= link_to t("layout.repositories.list"), platform_path(@platform) + "#repositories"
|
%li.first.active= link_to t("layout.repositories.list"), platform_path(@platform) + "#repositories"
|
||||||
|
@ -91,8 +133,8 @@
|
||||||
.actions-bar.wat-cf
|
.actions-bar.wat-cf
|
||||||
.actions
|
.actions
|
||||||
|
|
||||||
%a{ :name => "producs" }
|
-#%a{ :name => "producs" }
|
||||||
.block
|
-#.block
|
||||||
.secondary-navigation
|
.secondary-navigation
|
||||||
%ul.wat-cf
|
%ul.wat-cf
|
||||||
%li.first.active= link_to t("layout.products.list"), platform_path(@platform) + "#products"
|
%li.first.active= link_to t("layout.products.list"), platform_path(@platform) + "#products"
|
||||||
|
@ -116,4 +158,4 @@
|
||||||
=# (product.can_clone? ? "| #{link_to t("layout.products.clone"), clone_platform_product_path(@platform, product)}" : "").html_safe
|
=# (product.can_clone? ? "| #{link_to t("layout.products.clone"), clone_platform_product_path(@platform, product)}" : "").html_safe
|
||||||
.actions-bar.wat-cf
|
.actions-bar.wat-cf
|
||||||
.actions
|
.actions
|
||||||
- content_for :sidebar, render(:partial => 'sidebar')
|
-# content_for :sidebar, render(:partial => 'sidebar')
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
%tr{:class => cycle("odd", "even")}
|
%tr{:class => cycle("odd", "even")}
|
||||||
%td= product_build_list.id
|
%td= product_build_list.id
|
||||||
%td= link_to product_build_list.product.name, [product_build_list.product.platform, product_build_list.product]
|
|
||||||
%td= link_to nil, product_build_list.container_path
|
|
||||||
%td= product_build_list.human_status
|
%td= product_build_list.human_status
|
||||||
%td= link_to t("layout.product_build_lists.delete"), platform_product_product_build_list_path(product_build_list.product.platform, product_build_list.product, product_build_list), :method => "delete", :confirm => t("layout.confirm") if can? :destroy, product_build_list
|
%td= link_to nil, product_build_list.container_path
|
||||||
%td= product_build_list.notified_at
|
%td= l(product_build_list.notified_at, :format => :long)
|
||||||
|
|
|
@ -63,16 +63,15 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.group
|
.leftlist= form.label :use_cron
|
||||||
= form.check_box :use_cron
|
.rightlist= form.check_box :use_cron
|
||||||
= form.label :use_cron
|
.both
|
||||||
|
|
||||||
#genereator_btn
|
#genereator_btn
|
||||||
%a{ :href => "#" }= t("layout.products.cron_tab_generator.show")
|
%a{ :href => "#" }= t("layout.products.cron_tab_generator.show")
|
||||||
|
|
||||||
#crontab_generator{ :style => "display: none;" }
|
#crontab_generator{ :style => "display: none;" }
|
||||||
.columns.wat-cf
|
.leftlist
|
||||||
.column.left
|
|
||||||
%h3.title= t("layout.products.cron_tab_generator.minutes")
|
%h3.title= t("layout.products.cron_tab_generator.minutes")
|
||||||
.group
|
.group
|
||||||
= label_tag :minute_chooser_every, t("layout.products.cron_tab_generator.every_minute"), :class => :label
|
= label_tag :minute_chooser_every, t("layout.products.cron_tab_generator.every_minute"), :class => :label
|
||||||
|
@ -86,7 +85,7 @@
|
||||||
- (0..59).each do |min|
|
- (0..59).each do |min|
|
||||||
%option{ :value => min, :selected => @product.cron_tab_minutes.include?(min) }= min
|
%option{ :value => min, :selected => @product.cron_tab_minutes.include?(min) }= min
|
||||||
|
|
||||||
.column.right
|
.rightlist
|
||||||
%h3.title= t("layout.products.cron_tab_generator.hours")
|
%h3.title= t("layout.products.cron_tab_generator.hours")
|
||||||
.group
|
.group
|
||||||
= label_tag :hour_chooser_every, t("layout.products.cron_tab_generator.every_hour"), :class => :label
|
= label_tag :hour_chooser_every, t("layout.products.cron_tab_generator.every_hour"), :class => :label
|
||||||
|
@ -99,9 +98,9 @@
|
||||||
%select{ :name => :hour, :id => :hour, :multiple => true, :disabled => @product.cron_tab_hours.blank?, :class => "cron" }
|
%select{ :name => :hour, :id => :hour, :multiple => true, :disabled => @product.cron_tab_hours.blank?, :class => "cron" }
|
||||||
- (0..23).each do |hour|
|
- (0..23).each do |hour|
|
||||||
%option{ :value => hour, :selected => @product.cron_tab_hours.include?(hour) }= hour
|
%option{ :value => hour, :selected => @product.cron_tab_hours.include?(hour) }= hour
|
||||||
|
.both
|
||||||
|
|
||||||
.columns.wat-cf
|
.leftlist
|
||||||
.column.left
|
|
||||||
%h3.title= t("layout.products.cron_tab_generator.days")
|
%h3.title= t("layout.products.cron_tab_generator.days")
|
||||||
.group
|
.group
|
||||||
= label_tag :day_chooser_every, t("layout.products.cron_tab_generator.every_day"), :class => :label
|
= label_tag :day_chooser_every, t("layout.products.cron_tab_generator.every_day"), :class => :label
|
||||||
|
@ -115,7 +114,7 @@
|
||||||
- (1..31).each do |day|
|
- (1..31).each do |day|
|
||||||
%option{ :value => day, :selected => @product.cron_tab_days.include?(day) }= day
|
%option{ :value => day, :selected => @product.cron_tab_days.include?(day) }= day
|
||||||
|
|
||||||
.column.right
|
.rightlist
|
||||||
%h3.title= t("layout.products.cron_tab_generator.months")
|
%h3.title= t("layout.products.cron_tab_generator.months")
|
||||||
.group
|
.group
|
||||||
= label_tag :month_chooser_every, t("layout.products.cron_tab_generator.every_month"), :class => :label
|
= label_tag :month_chooser_every, t("layout.products.cron_tab_generator.every_month"), :class => :label
|
||||||
|
@ -128,9 +127,9 @@
|
||||||
%select{ :name => "month", :id => "month", :multiple => true, :disabled => @product.cron_tab_months.blank?, :class => "cron" }
|
%select{ :name => "month", :id => "month", :multiple => true, :disabled => @product.cron_tab_months.blank?, :class => "cron" }
|
||||||
- (1..12).each do |month|
|
- (1..12).each do |month|
|
||||||
%option{ :value => month, :selected => @product.cron_tab_months.include?(month) }= I18n.localize(Time.local(2000, month), :format => "%B")
|
%option{ :value => month, :selected => @product.cron_tab_months.include?(month) }= I18n.localize(Time.local(2000, month), :format => "%B")
|
||||||
|
.both
|
||||||
|
|
||||||
.columns.wat-cf
|
.leftlist
|
||||||
.column.left
|
|
||||||
%h3.title= t("layout.products.cron_tab_generator.weekdays")
|
%h3.title= t("layout.products.cron_tab_generator.weekdays")
|
||||||
.group
|
.group
|
||||||
= label_tag :weekday_chooser_every, t("layout.products.cron_tab_generator.every_weekday"), :class => :label
|
= label_tag :weekday_chooser_every, t("layout.products.cron_tab_generator.every_weekday"), :class => :label
|
||||||
|
@ -143,8 +142,10 @@
|
||||||
%select{ :name => "weekday", :id => "weekday", :multiple => true, :disabled => @product.cron_tab_weekdays.blank?, :class => "cron" }
|
%select{ :name => "weekday", :id => "weekday", :multiple => true, :disabled => @product.cron_tab_weekdays.blank?, :class => "cron" }
|
||||||
- Date::DAYNAMES.each_with_index do |day, index|
|
- Date::DAYNAMES.each_with_index do |day, index|
|
||||||
%option{ :value => index, :selected => @product.cron_tab_weekdays.include?(index) }= t("layout.weekdays.#{day}")
|
%option{ :value => index, :selected => @product.cron_tab_weekdays.include?(index) }= t("layout.weekdays.#{day}")
|
||||||
|
.both
|
||||||
|
|
||||||
.group
|
.both
|
||||||
= form.label :cron_tab, :class => :label
|
.leftlist= form.label :cron_tab, :class => :label
|
||||||
= form.text_field :cron_tab, :id => "cron", :class => "text_field", :style => "width: 40%", :disabled => !@product.use_cron, :value => @product.cron_tab
|
.rightlist= form.text_field :cron_tab, :id => "cron", :class => "text_field", :style => "width: 40%", :disabled => !@product.use_cron, :value => @product.cron_tab
|
||||||
= @product.cron_command
|
=# @product.cron_command
|
||||||
|
.both
|
||||||
|
|
|
@ -1,44 +1,52 @@
|
||||||
.group
|
.leftlist= f.label :name, t("activerecord.attributes.product.name"), :class => :label
|
||||||
= f.label :name, t("activerecord.attributes.product.name"), :class => :label
|
.rightlist= f.text_field :name, :class => 'text_field'
|
||||||
= f.text_field :name, :class => 'text_field'
|
.both
|
||||||
.group
|
|
||||||
= f.label :build_script, t("activerecord.attributes.product.build_script"), :class => :label
|
.leftlist= f.label :description, t("activerecord.attributes.product.description"), :class => :label
|
||||||
= f.text_area :build_script, :class => 'text_field', :cols => 80
|
.rightlist= f.text_area :description, :class => 'text_field', :cols => 80
|
||||||
.group
|
.both
|
||||||
= f.label :counter, t("activerecord.attributes.product.counter"), :class => :label
|
|
||||||
= f.text_area :counter, :class => 'text_field', :cols => 80
|
.leftlist= f.label :build_script, t("activerecord.attributes.product.build_script"), :class => :label
|
||||||
.group
|
.rightlist= f.text_area :build_script, :class => 'text_field', :cols => 80
|
||||||
= f.label :ks, t("activerecord.attributes.product.ks"), :class => :label
|
.both
|
||||||
= f.text_area :ks, :class => 'text_field', :cols => 80
|
|
||||||
.group
|
.leftlist= f.label :counter, t("activerecord.attributes.product.counter"), :class => :label
|
||||||
= f.label :menu, t("activerecord.attributes.product.menu"), :class => :label
|
.rightlist= f.text_area :counter, :class => 'text_field', :cols => 80
|
||||||
= f.text_area :menu, :class => 'text_field', :cols => 80
|
.both
|
||||||
.group
|
|
||||||
|
.leftlist= f.label :ks, t("activerecord.attributes.product.ks"), :class => :label
|
||||||
|
.rightlist= f.text_area :ks, :class => 'text_field', :cols => 80
|
||||||
|
.both
|
||||||
|
|
||||||
|
.leftlist= f.label :menu, t("activerecord.attributes.product.menu"), :class => :label
|
||||||
|
.rightlist= f.text_area :menu, :class => 'text_field', :cols => 80
|
||||||
|
.both
|
||||||
|
|
||||||
%p
|
%p
|
||||||
= f.label :tar, t("activerecord.attributes.product.tar"), :class => :label
|
.leftlist= f.label :tar, t("activerecord.attributes.product.tar"), :class => :label
|
||||||
= f.file_field :tar, :class => 'file_field'
|
.rightlist= f.file_field :tar, :class => 'file_field'
|
||||||
|
.both
|
||||||
%p
|
%p
|
||||||
- if @product.tar?
|
- if @product.tar?
|
||||||
= link_to @product.tar_file_name, @product.tar.url
|
.leftlist= link_to @product.tar_file_name, @product.tar.url
|
||||||
= f.check_box :delete_tar
|
.both
|
||||||
= f.label :delete_tar, t('layout.delete')
|
%br
|
||||||
|
.leftlist= f.label :delete_tar, t('layout.delete')
|
||||||
|
.rightlist= f.check_box :delete_tar
|
||||||
|
.both
|
||||||
|
|
||||||
.group
|
|
||||||
= render :partial => "products/crontab", :locals => { :form => f }
|
= render :partial => "products/crontab", :locals => { :form => f }
|
||||||
|
|
||||||
.group
|
|
||||||
= f.label :is_template, :class => :label
|
|
||||||
= f.check_box :is_template, :class => 'check_box'
|
|
||||||
|
|
||||||
- content_for :commented do
|
- content_for :commented do
|
||||||
.group
|
.leftlist= f.label :system_wide, :class => :label
|
||||||
= f.label :system_wide, :class => :label
|
.rightlist= f.check_box :system_wide, :class => 'check_box'
|
||||||
= f.check_box :system_wide, :class => 'check_box'
|
|
||||||
|
|
||||||
.group.navform.wat-cf
|
.both
|
||||||
%button.button{:type => "submit"}
|
.button_block
|
||||||
= image_tag("choose.png", :alt => t("layout.save"))
|
= submit_tag t("layout.save")
|
||||||
= t("layout.save")
|
-#%input.button{:type => "submit", :class => "button"}
|
||||||
|
-#= image_tag("choose.png", :alt => t("layout.save"))
|
||||||
|
-#= t("layout.clone")
|
||||||
%span.text_button_padding= t("layout.or")
|
%span.text_button_padding= t("layout.or")
|
||||||
= link_to t("layout.cancel"), platform_path(@platform), :class => "text_button_padding link_button"
|
= link_to t("layout.cancel"), @product.new_record? ? platform_path(@platform) : platform_product_path(@platform, @product), :class => "button"
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
%table#myTable.tablesorter.platform-products{:cellspacing => "0", :cellpadding => "0"}
|
||||||
|
%thead
|
||||||
|
%tr
|
||||||
|
%th.th1= t("activerecord.attributes.product.name")
|
||||||
|
%th= t("layout.delete")
|
||||||
|
%tbody
|
||||||
|
- @products.each do |product|
|
||||||
|
%tr{:class => cycle("odd", "even")}
|
||||||
|
%td
|
||||||
|
= link_to product.name, platform_product_path(@platform, product)
|
||||||
|
%td.buttons
|
||||||
|
- if can? :destroy, product
|
||||||
|
= link_to platform_product_path(@platform, product), :method => :delete, :confirm => t("layout.products.confirm_delete") do
|
||||||
|
%span.delete
|
|
@ -1,4 +1,15 @@
|
||||||
.block
|
= render :partial => 'platforms/submenu'
|
||||||
|
= render :partial => 'platforms/sidebar'
|
||||||
|
|
||||||
|
%h3
|
||||||
|
= t("layout.products.edit_header")
|
||||||
|
= link_to @product.name, platform_product_path(@platform, @product)
|
||||||
|
%br
|
||||||
|
|
||||||
|
= form_for [@platform, @product], :html => { :class => :form, :multipart => true } do |f|
|
||||||
|
= render :partial => "form", :locals => {:f => f}
|
||||||
|
|
||||||
|
-#.block
|
||||||
.secondary-navigation
|
.secondary-navigation
|
||||||
%ul.wat-cf
|
%ul.wat-cf
|
||||||
%li.first= link_to @platform.name, platform_path(@platform) + "#products"
|
%li.first= link_to @platform.name, platform_path(@platform) + "#products"
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
= render :partial => 'platforms/submenu' if params[:platform_id]
|
||||||
|
= render :partial => 'platforms/sidebar' if params[:platform_id]
|
||||||
|
= link_to t("layout.products.new"), new_platform_product_path(@platform), :class => 'button' if can? :create, @platform.products.build
|
||||||
|
= render :partial => 'list', :object => @products
|
||||||
|
= will_paginate @products
|
||||||
|
|
|
@ -1,4 +1,10 @@
|
||||||
.block
|
= render :partial => 'platforms/submenu'
|
||||||
|
= render :partial => 'platforms/sidebar'
|
||||||
|
|
||||||
|
= form_for [@platform, @product], :html => { :class => :form, :multipart => true } do |f|
|
||||||
|
= render :partial => "form", :locals => {:f => f}
|
||||||
|
|
||||||
|
-#.block
|
||||||
.secondary-navigation
|
.secondary-navigation
|
||||||
%ul.wat-cf
|
%ul.wat-cf
|
||||||
%li.first= link_to @platform.name, platform_path(@platform) + "#products"
|
%li.first= link_to @platform.name, platform_path(@platform) + "#products"
|
||||||
|
|
|
@ -1,4 +1,32 @@
|
||||||
.block
|
= render :partial => 'platforms/submenu'
|
||||||
|
= render :partial => 'platforms/sidebar'
|
||||||
|
|
||||||
|
%h3= "#{t("layout.products.about")} #{@product.name}"
|
||||||
|
|
||||||
|
%p= @product.description
|
||||||
|
|
||||||
|
.buttons_block
|
||||||
|
- if can? :update, @product
|
||||||
|
= link_to image_tag("code.png", :alt => t("layout.edit")) + " " + t("layout.edit"), edit_platform_product_path(@platform, @product), :class => "button"
|
||||||
|
- if can? :destroy, @product
|
||||||
|
= link_to image_tag("x.png", :alt => t("layout.delete")) + " " + t("layout.delete"), platform_product_path(@platform, @product), :method => "delete", :class => "button", :confirm => t("layout.products.confirm_delete")
|
||||||
|
-# if @product.can_clone?
|
||||||
|
=# link_to t("layout.products.clone"), clone_platform_product_path(@platform, @product), :class => "button"
|
||||||
|
- if can?(:create, @product.product_build_lists.build)
|
||||||
|
= link_to t("layout.products.build"), platform_product_product_build_lists_path(@platform, @product), :class => "button", :method => 'post', :confirm => t("layout.confirm")
|
||||||
|
|
||||||
|
%h3= t("layout.products.build_lists_monitoring")
|
||||||
|
|
||||||
|
%table#myTable.tablesorter.platform-product-main{:cellspacing => "0", :cellpadding => "0"}
|
||||||
|
%thead
|
||||||
|
%tr
|
||||||
|
%th.th1= t("activerecord.attributes.product_build_list.id")
|
||||||
|
%th.th2= t("activerecord.attributes.product_build_list.status")
|
||||||
|
%th.th3= t("layout.product_build_lists.action")
|
||||||
|
%th.th4= t("activerecord.attributes.product_build_list.notified_at")
|
||||||
|
%tbody
|
||||||
|
= render @product.product_build_lists.default_order
|
||||||
|
-#.block
|
||||||
.secondary-navigation
|
.secondary-navigation
|
||||||
%ul.wat-cf
|
%ul.wat-cf
|
||||||
%li.first= link_to @platform.name, platform_path(@platform) + "#products"
|
%li.first= link_to @platform.name, platform_path(@platform) + "#products"
|
||||||
|
@ -35,7 +63,7 @@
|
||||||
- if can?(:create, @product => ProductBuildList)
|
- if can?(:create, @product => ProductBuildList)
|
||||||
= link_to t("layout.products.build"), platform_product_product_build_lists_path(@platform, @product), :class => "button", :method => 'post', :confirm => t("layout.confirm")
|
= link_to t("layout.products.build"), platform_product_product_build_lists_path(@platform, @product), :class => "button", :method => 'post', :confirm => t("layout.confirm")
|
||||||
|
|
||||||
.block
|
-#.block
|
||||||
.content
|
.content
|
||||||
.inner
|
.inner
|
||||||
%table.table
|
%table.table
|
||||||
|
|
|
@ -1,14 +1,15 @@
|
||||||
.group
|
.leftlist= f.label :name, t("activerecord.attributes.repository.name"), :class => :label
|
||||||
= f.label :name, t("activerecord.attributes.repository.name"), :class => :label
|
.rightlist= f.text_field :name, :class => 'text_field'
|
||||||
= f.text_field :name, :class => 'text_field'
|
|
||||||
.group
|
|
||||||
= f.label :description, t("activerecord.attributes.repository.description"), :class => :label
|
|
||||||
= f.text_field :description, :class => 'text_field'
|
|
||||||
|
|
||||||
.group.navform.wat-cf
|
.leftlist= f.label :description, t("activerecord.attributes.repository.description"), :class => :label
|
||||||
%button.button{:type => "submit"}
|
.rightlist= f.text_field :description, :class => 'text_field'
|
||||||
= image_tag("choose.png", :alt => t("layout.save"))
|
|
||||||
= t("layout.save")
|
.both
|
||||||
|
|
||||||
|
.button_block
|
||||||
|
= submit_tag t("layout.save")
|
||||||
|
-#%input.button{:type => "submit", :class => "button"}
|
||||||
|
-#= image_tag("choose.png", :alt => t("layout.save"))
|
||||||
|
-#= t("layout.clone")
|
||||||
%span.text_button_padding= t("layout.or")
|
%span.text_button_padding= t("layout.or")
|
||||||
= link_to t("layout.cancel"), @repositories_path + "#repositories", :class => "text_button_padding link_button"
|
= link_to t("layout.cancel"), @repository.new_record? ? platform_repositories_path(@platform) : platform_repository_path(@platform, @repository), :class => "button"
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,21 @@
|
||||||
%table.table
|
%table#myTable.tablesorter.platform-repos{:cellspacing => "0", :cellpadding => "0"}
|
||||||
|
%thead
|
||||||
|
%tr
|
||||||
|
%th.th1= t("activerecord.attributes.repository.name")
|
||||||
|
%th.th2= t("layout.repositories.projects")
|
||||||
|
%th= t("layout.delete")
|
||||||
|
%tbody
|
||||||
|
- @repositories.each do |repository|
|
||||||
|
%tr{:class => cycle("odd", "even")}
|
||||||
|
%td
|
||||||
|
= link_to repository.name, platform_repository_path(@platform, repository)
|
||||||
|
%td
|
||||||
|
= repository.projects.count
|
||||||
|
%td.buttons
|
||||||
|
- if can? :destroy, repository
|
||||||
|
= link_to platform_repository_path(@platform, repository), :method => :delete, :confirm => t("layout.repositories.confirm_delete") do
|
||||||
|
%span.delete
|
||||||
|
-#%table.table
|
||||||
%tr
|
%tr
|
||||||
%th.first= t("activerecord.attributes.repository.name")
|
%th.first= t("activerecord.attributes.repository.name")
|
||||||
%th.last
|
%th.last
|
||||||
|
|
|
@ -5,8 +5,8 @@
|
||||||
"aaData": [
|
"aaData": [
|
||||||
<% @projects.each do |project| %>
|
<% @projects.each do |project| %>
|
||||||
[
|
[
|
||||||
"<%=j link_to project.owner.uname, project.owner %>",
|
"<%=j link_to("#{project.owner.respond_to?(:uname) ? project.owner.uname : project.owner.name} / #{project.name}", project) %>",
|
||||||
"<%=j link_to project.name, project %>",
|
"<%=j project.description %>",
|
||||||
"<%=j link_to t("layout.add"), url_for(:controller => :repositories, :action => :add_project, :project_id => project.id) %>"
|
"<%=j link_to t("layout.add"), url_for(:controller => :repositories, :action => :add_project, :project_id => project.id) %>"
|
||||||
]<%= project == @projects.last ? '' : ',' %>
|
]<%= project == @projects.last ? '' : ',' %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
|
@ -1,18 +1,19 @@
|
||||||
- columns = [{:type => 'html', :searchable => false}, {:type => 'html'}, {:type => nil, :sortable => false, :searchable => false}]
|
- columns = [{:type => 'html'}, {:type => 'html', :sortable => false, :searchable => false}, {:type => nil, :sortable => false, :searchable => false, :class => 'buttons'}]
|
||||||
= raw datatable(columns, {:sort_by => "[1, 'asc']", :search_label => t("layout.search_by_name"), :processing => t("layout.processing"),
|
= raw datatable(columns, {:sort_by => "[0, 'asc']", :search_label => t("layout.search_by_name"), :processing => t("layout.processing"),
|
||||||
:pagination_labels => {:first => t("datatables.first_label"), :previous => t("datatables.previous_label"),
|
:pagination_labels => {:previous => t("datatables.previous_label"), :next => t("datatables.next_label")},
|
||||||
:next => t("datatables.next_label"), :last => t("datatables.last_label")},
|
|
||||||
:empty_label => t("datatables.empty_label"),
|
:empty_label => t("datatables.empty_label"),
|
||||||
:info_label => t("datatables.info_label"),
|
:info_label => t("datatables.info_label"),
|
||||||
:info_empty_label => t("datatables.info_empty_label"),
|
:info_empty_label => t("datatables.info_empty_label"),
|
||||||
:filtered_label => t("datatables.filtered_label"),
|
:filtered_label => t("datatables.filtered_label"),
|
||||||
:ajax_source => "#{url_for :controller => :repositories, :action => :projects_list, :id => @repository.id}" })
|
:table_dom_id => 'datatable',
|
||||||
|
:auto_width => 'false',
|
||||||
|
:ajax_source => "#{url_for :controller => :repositories, :action => :projects_list, :id => @repository.id, :added => "#{controller.action_name.to_sym == :show}"}" })
|
||||||
|
|
||||||
%table.table.datatable
|
%table#datatable.tablesorter.repo-projects{:cellspacing => 0, :cellpadding => 0}
|
||||||
%thead
|
%thead
|
||||||
%tr
|
%tr
|
||||||
%th.first{:style => 'width: 80px'}= t("activerecord.attributes.user.uname")
|
%th.th1= t("activerecord.attributes.project.name")
|
||||||
%th= t("activerecord.attributes.project.name")
|
%th.th2= t("activerecord.attributes.project.description")
|
||||||
%th.last
|
%th.buttons
|
||||||
%tbody
|
%tbody
|
||||||
%br
|
%br
|
||||||
|
|
|
@ -1,6 +1,15 @@
|
||||||
%table.table
|
%table#myTable.tablesorter.repo-projects{:cellpadding => "0", :cellspacing => "0"}
|
||||||
|
%thead
|
||||||
|
%tr
|
||||||
|
%th.th1= t("activerecord.attributes.project.name")
|
||||||
|
%th.th2= t("activerecord.attributes.project.description")
|
||||||
|
%th.th3= t("layout.remove")
|
||||||
|
%tbody= render :partial => 'repositories/project', :collection => @projects
|
||||||
|
|
||||||
|
-#%table.tablesorter
|
||||||
%tr
|
%tr
|
||||||
%th.first= t("activerecord.attributes.project.name")
|
%th.first= t("activerecord.attributes.project.name")
|
||||||
|
%th.
|
||||||
%th.last
|
%th.last
|
||||||
- @projects.each do |project|
|
- @projects.each do |project|
|
||||||
%tr{:class => cycle("odd", "even")}
|
%tr{:class => cycle("odd", "even")}
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
%tr{:id => "Row#{project_counter}", :class => cycle('odd', 'even')}
|
||||||
|
%td
|
||||||
|
= link_to project do
|
||||||
|
.table-sort-left= image_tag visibility_icon(project.visibility)
|
||||||
|
.table-sort-right #{project.owner.uname} / #{project.name}
|
||||||
|
%td.td2
|
||||||
|
%span= project.description
|
||||||
|
%td.buttons
|
||||||
|
= link_to remove_project_repository_path(@repository, :project_id => project.id), :method => :delete, :confirm => t("layout.confirm") do
|
||||||
|
%span.delete
|
|
@ -0,0 +1,31 @@
|
||||||
|
{
|
||||||
|
"sEcho": <%=h params[:sEcho].to_i || -1 %>,
|
||||||
|
"iTotalRecords": <%= @total_projects %>,
|
||||||
|
"iTotalDisplayRecords": <%= @total_project %>,
|
||||||
|
"aaData": [
|
||||||
|
<% @projects.each do |project| %>
|
||||||
|
[
|
||||||
|
"<%=(
|
||||||
|
"<div class='table-sort-left'>" +
|
||||||
|
j(image_tag(visibility_icon(project.visibility))) +
|
||||||
|
"</div>" +
|
||||||
|
"<div class='table-sort-right'>" +
|
||||||
|
j(link_to("#{project.owner.respond_to?(:uname) ? project.owner.uname : project.owner.name} / #{project.name}", project)) +
|
||||||
|
"</div>").html_safe
|
||||||
|
%>",
|
||||||
|
"<%=j project.description %>",
|
||||||
|
"<%=
|
||||||
|
if can? :remove_project, @repository
|
||||||
|
j(link_to('<span class="delete"> </span>'.html_safe,
|
||||||
|
remove_project_repository_path(@repository, :project_id => project.id),
|
||||||
|
:method => :delete, :confirm => t("layout.confirm")
|
||||||
|
)
|
||||||
|
)
|
||||||
|
else
|
||||||
|
''
|
||||||
|
end
|
||||||
|
%>"
|
||||||
|
]<%= project == @projects.last ? '' : ',' %>
|
||||||
|
<% end %>
|
||||||
|
]
|
||||||
|
}
|
|
@ -1,4 +1,9 @@
|
||||||
.block
|
= render :partial => 'platforms/submenu' if params[:platform_id]
|
||||||
|
= render :partial => 'platforms/sidebar' if params[:platform_id]
|
||||||
|
= link_to t("layout.repositories.new"), new_platform_repository_path(@platform), :class => 'button' if can? :create, @platform.repositories.build
|
||||||
|
= render :partial => 'list', :object => @repositories
|
||||||
|
= will_paginate @repositories
|
||||||
|
-#.block
|
||||||
.secondary-navigation
|
.secondary-navigation
|
||||||
%ul.wat-cf
|
%ul.wat-cf
|
||||||
%li.first.active= link_to t("layout.repositories.list"), repositories_path
|
%li.first.active= link_to t("layout.repositories.list"), repositories_path
|
||||||
|
|
|
@ -1,4 +1,12 @@
|
||||||
.block
|
= render :partial => 'platforms/submenu'
|
||||||
|
= render :partial => 'platforms/sidebar'
|
||||||
|
|
||||||
|
%h3= t("layout.repositories.new_header")
|
||||||
|
|
||||||
|
= form_for :repository, :url => @repositories_path, :html => { :class => :form } do |f|
|
||||||
|
= render :partial => "form", :locals => {:f => f}
|
||||||
|
|
||||||
|
-#.block
|
||||||
.secondary-navigation
|
.secondary-navigation
|
||||||
%ul.wat-cf
|
%ul.wat-cf
|
||||||
%li.first= link_to t("layout.repositories.list"), @repositories_path + "#platforms"
|
%li.first= link_to t("layout.repositories.list"), @repositories_path + "#platforms"
|
||||||
|
|
|
@ -1,45 +1,6 @@
|
||||||
.block
|
= render :partial => 'platforms/submenu'
|
||||||
.secondary-navigation
|
= render :partial => 'platforms/sidebar'
|
||||||
%ul.wat-cf
|
|
||||||
%li.first= link_to t("layout.repositories.list"), @repositories_path + "#repositories"
|
%h3= raw "#{t("layout.repositories.add_project_to")}: #{link_to @repository.name, platform_repository_path(@platform, @repository)}"
|
||||||
%li= link_to t("layout.repositories.new"), @new_repository_path
|
|
||||||
%li.active= link_to t("layout.repositories.show"), repository_path(@repository)
|
|
||||||
.content
|
|
||||||
.inner
|
|
||||||
%p
|
|
||||||
%b
|
|
||||||
= t("activerecord.attributes.repository.name")
|
|
||||||
\:
|
|
||||||
= @repository.name
|
|
||||||
%p
|
|
||||||
%b
|
|
||||||
= t("activerecord.attributes.repository.description")
|
|
||||||
\:
|
|
||||||
= @repository.description
|
|
||||||
%p
|
|
||||||
%b
|
|
||||||
= t("activerecord.attributes.repository.platform")
|
|
||||||
\:
|
|
||||||
= link_to @repository.platform.description, url_for(@repository.platform)
|
|
||||||
.wat-cf
|
|
||||||
= link_to image_tag("x.png", :alt => t("layout.delete")) + " " + t("layout.delete"), @repository_path, :method => "delete", :class => "button", :confirm => t("layout.repositories.confirm_delete")
|
|
||||||
|
|
||||||
%a{ :name => "projects" }
|
|
||||||
.block
|
|
||||||
.secondary-navigation
|
|
||||||
%ul.wat-cf
|
|
||||||
%li.first= link_to t("layout.projects.list"), repository_path(@repository) + "#projects"
|
|
||||||
%li.active= link_to t("layout.projects.add"), url_for(:controller => :repositories, :action => :add_project)
|
|
||||||
.content
|
|
||||||
%h2.title
|
|
||||||
= t("layout.projects.list_header")
|
|
||||||
.inner
|
|
||||||
-#= render :partial => 'shared/search_form'
|
|
||||||
= render :partial => 'proj_list', :object => @projects
|
= render :partial => 'proj_list', :object => @projects
|
||||||
-#.actions-bar.wat-cf
|
|
||||||
.actions
|
|
||||||
= will_paginate @projects, :param_name => :project_page
|
|
||||||
|
|
||||||
|
|
||||||
-# content_for :sidebar, render(:partial => 'sidebar')
|
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,19 @@
|
||||||
.block
|
= render :partial => 'platforms/submenu'
|
||||||
|
= render :partial => 'platforms/sidebar'
|
||||||
|
|
||||||
|
%h3.fix= "#{t("layout.repositories.about")}: #{@repository.name}"
|
||||||
|
|
||||||
|
%p= @platform.description
|
||||||
|
|
||||||
|
%br
|
||||||
|
%br
|
||||||
|
%h3.fix= t("layout.projects.list_header")
|
||||||
|
- if can? :add_project, @repository
|
||||||
|
= link_to t("layout.projects.add"), add_project_repository_path(@repository), :class => 'button'
|
||||||
|
|
||||||
|
= render :partial => 'proj_list'#, :object => @projects
|
||||||
|
=# will_paginate @projects
|
||||||
|
-#.block
|
||||||
.secondary-navigation
|
.secondary-navigation
|
||||||
%ul.wat-cf
|
%ul.wat-cf
|
||||||
%li.first= link_to t("layout.repositories.list"), @repositories_path + "#repositories"
|
%li.first= link_to t("layout.repositories.list"), @repositories_path + "#repositories"
|
||||||
|
@ -24,8 +39,8 @@
|
||||||
.wat-cf
|
.wat-cf
|
||||||
= link_to image_tag("x.png", :alt => t("layout.delete")) + " " + t("layout.delete"), @repository_path, :method => "delete", :class => "button", :confirm => t("layout.repositories.confirm_delete") if can? :destroy, @repository
|
= link_to image_tag("x.png", :alt => t("layout.delete")) + " " + t("layout.delete"), @repository_path, :method => "delete", :class => "button", :confirm => t("layout.repositories.confirm_delete") if can? :destroy, @repository
|
||||||
|
|
||||||
%a{ :name => "projects" }
|
-#%a{ :name => "projects" }
|
||||||
.block
|
-#.block
|
||||||
.secondary-navigation
|
.secondary-navigation
|
||||||
%ul.wat-cf
|
%ul.wat-cf
|
||||||
%li.first.active= link_to t("layout.projects.list"), repository_path(@repository) + "#projects"
|
%li.first.active= link_to t("layout.projects.list"), repository_path(@repository) + "#projects"
|
||||||
|
|
|
@ -24,3 +24,6 @@ types = [
|
||||||
types.each do |type|
|
types.each do |type|
|
||||||
MIME::Types.add MIME::Type.from_array(type)
|
MIME::Types.add MIME::Type.from_array(type)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# load datatables plugin
|
||||||
|
require Rails.root.join("lib/rails_datatables")
|
||||||
|
|
|
@ -11,3 +11,7 @@ en:
|
||||||
read_write_access: read & write
|
read_write_access: read & write
|
||||||
|
|
||||||
by: by
|
by: by
|
||||||
|
|
||||||
|
visibilities:
|
||||||
|
open: open
|
||||||
|
hidden: hidden
|
||||||
|
|
|
@ -11,3 +11,7 @@ ru:
|
||||||
read_write_access: чтение и запись
|
read_write_access: чтение и запись
|
||||||
|
|
||||||
by: ''
|
by: ''
|
||||||
|
|
||||||
|
visibilities:
|
||||||
|
open: открытая
|
||||||
|
hidden: скрытая
|
||||||
|
|
|
@ -33,3 +33,5 @@ en:
|
||||||
tracker: Tracker
|
tracker: Tracker
|
||||||
build: Build
|
build: Build
|
||||||
wiki: Wiki
|
wiki: Wiki
|
||||||
|
platform_menu:
|
||||||
|
settings: Settings
|
||||||
|
|
|
@ -33,3 +33,5 @@ ru:
|
||||||
tracker: Трекер
|
tracker: Трекер
|
||||||
build: Сборка
|
build: Сборка
|
||||||
wiki: Вики
|
wiki: Вики
|
||||||
|
platform_menu:
|
||||||
|
settings: Настройки
|
||||||
|
|
|
@ -6,6 +6,7 @@ en:
|
||||||
list: List
|
list: List
|
||||||
new: Create
|
new: Create
|
||||||
edit: Edit
|
edit: Edit
|
||||||
|
about: About platform
|
||||||
new_header: New platform
|
new_header: New platform
|
||||||
edit_header: Edit
|
edit_header: Edit
|
||||||
list_header: Platforms
|
list_header: Platforms
|
||||||
|
@ -22,7 +23,7 @@ en:
|
||||||
freeze: Freeze
|
freeze: Freeze
|
||||||
unfreeze: Unfeeze
|
unfreeze: Unfeeze
|
||||||
confirm_freeze: Are you sure to freeze this platform?
|
confirm_freeze: Are you sure to freeze this platform?
|
||||||
confirm_freeze: Are you sure to clone this platform?
|
confirm_clone: Are you sure to clone this platform?
|
||||||
confirm_unfreeze: Are you sure to defrost this platform?
|
confirm_unfreeze: Are you sure to defrost this platform?
|
||||||
released_suffix: (released)
|
released_suffix: (released)
|
||||||
confirm_delete: Are you sure to delete this platform?
|
confirm_delete: Are you sure to delete this platform?
|
||||||
|
@ -38,7 +39,9 @@ en:
|
||||||
flash:
|
flash:
|
||||||
platform:
|
platform:
|
||||||
saved: Platform saved
|
saved: Platform saved
|
||||||
|
created: Platform created
|
||||||
save_error: Platform saves error
|
save_error: Platform saves error
|
||||||
|
create_error: Platform create error
|
||||||
freezed: Platform freezed
|
freezed: Platform freezed
|
||||||
freeze_error: Platform freezing error, try again
|
freeze_error: Platform freezing error, try again
|
||||||
unfreezed: Platform unfreezed
|
unfreezed: Platform unfreezed
|
||||||
|
|
|
@ -6,6 +6,7 @@ ru:
|
||||||
list: Список
|
list: Список
|
||||||
new: Создать
|
new: Создать
|
||||||
edit: Редактировать
|
edit: Редактировать
|
||||||
|
about: О платформе
|
||||||
new_header: Новая платформа
|
new_header: Новая платформа
|
||||||
edit_header: Редактировать
|
edit_header: Редактировать
|
||||||
list_header: Платформы
|
list_header: Платформы
|
||||||
|
@ -22,7 +23,7 @@ ru:
|
||||||
freeze: Заморозить
|
freeze: Заморозить
|
||||||
unfreeze: Разморозить
|
unfreeze: Разморозить
|
||||||
confirm_freeze: Вы уверены, что хотите заморозить эту платформу?
|
confirm_freeze: Вы уверены, что хотите заморозить эту платформу?
|
||||||
confirm_freeze: Вы уверены, что хотите клонировать эту платформу?
|
confirm_clone: Вы уверены, что хотите клонировать эту платформу?
|
||||||
confirm_unfreeze: Вы уверены, что хотите разморозить эту платформу?
|
confirm_unfreeze: Вы уверены, что хотите разморозить эту платформу?
|
||||||
released_suffix: (выпущена)
|
released_suffix: (выпущена)
|
||||||
confirm_delete: Вы уверены, что хотите удалить эту платформу?
|
confirm_delete: Вы уверены, что хотите удалить эту платформу?
|
||||||
|
@ -37,8 +38,10 @@ ru:
|
||||||
|
|
||||||
flash:
|
flash:
|
||||||
platform:
|
platform:
|
||||||
saved: Платформа успешно добавлена
|
saved: Платформа успешно сохранена
|
||||||
save_error: Не удалось создать платформу
|
created: Платформа успешно добавлена
|
||||||
|
save_error: Не удалось сохранить платформу
|
||||||
|
create_error: Не удалось создать платформу
|
||||||
freezed: Платформа успешно заморожена
|
freezed: Платформа успешно заморожена
|
||||||
freeze_error: Не удалось заморозить платформу, попробуйте еще раз
|
freeze_error: Не удалось заморозить платформу, попробуйте еще раз
|
||||||
unfreezed: Платформа успешно разморожена
|
unfreezed: Платформа успешно разморожена
|
||||||
|
|
|
@ -2,6 +2,8 @@ en:
|
||||||
layout:
|
layout:
|
||||||
products:
|
products:
|
||||||
list: List
|
list: List
|
||||||
|
about: About product
|
||||||
|
build_lists_monitoring: Build lists monitoring
|
||||||
new: New product
|
new: New product
|
||||||
list_header: Products
|
list_header: Products
|
||||||
clone: Clone
|
clone: Clone
|
||||||
|
@ -39,6 +41,7 @@ en:
|
||||||
attributes:
|
attributes:
|
||||||
product:
|
product:
|
||||||
name: Name
|
name: Name
|
||||||
|
description: Description
|
||||||
platform_id: Platform
|
platform_id: Platform
|
||||||
build_status: Build status
|
build_status: Build status
|
||||||
build_path: ISO path
|
build_path: ISO path
|
||||||
|
|
|
@ -2,6 +2,8 @@ ru:
|
||||||
layout:
|
layout:
|
||||||
products:
|
products:
|
||||||
list: Список
|
list: Список
|
||||||
|
about: О продукте
|
||||||
|
build_lists_monitoring: Мониторинг сборочных заданий
|
||||||
new: Новый продукт
|
new: Новый продукт
|
||||||
list_header: Продукты
|
list_header: Продукты
|
||||||
clone: Клонировать
|
clone: Клонировать
|
||||||
|
@ -39,6 +41,7 @@ ru:
|
||||||
attributes:
|
attributes:
|
||||||
product:
|
product:
|
||||||
name: Название
|
name: Название
|
||||||
|
description: Описание
|
||||||
platform_id: Платформа
|
platform_id: Платформа
|
||||||
build_status: Статус последней сборки
|
build_status: Статус последней сборки
|
||||||
build_path: Путь к iso
|
build_path: Путь к iso
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
en:
|
en:
|
||||||
layout:
|
layout:
|
||||||
repositories:
|
repositories:
|
||||||
|
add_project_to: Add project to repository
|
||||||
list: List
|
list: List
|
||||||
|
about: About repository
|
||||||
list_header: Repositories
|
list_header: Repositories
|
||||||
new: New repository
|
new: New repository
|
||||||
new_header: New repository
|
new_header: New repository
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
ru:
|
ru:
|
||||||
layout:
|
layout:
|
||||||
repositories:
|
repositories:
|
||||||
|
add_project_to: Добавить проект к репозиторию
|
||||||
list: Список
|
list: Список
|
||||||
|
about: О репозитории
|
||||||
list_header: Репозитории
|
list_header: Репозитории
|
||||||
new: Новый репозиторий
|
new: Новый репозиторий
|
||||||
new_header: Новый репозиторий
|
new_header: Новый репозиторий
|
||||||
|
|
|
@ -5,8 +5,8 @@ ru:
|
||||||
page_gap: ...
|
page_gap: ...
|
||||||
|
|
||||||
datatables:
|
datatables:
|
||||||
previous_label: ‹ Пред.
|
previous_label: ‹ Предыдущая
|
||||||
next_label: След. ›
|
next_label: Следующая ›
|
||||||
first_label: « Первая
|
first_label: « Первая
|
||||||
last_label: Последняя »
|
last_label: Последняя »
|
||||||
empty_label: Нет доступных данных
|
empty_label: Нет доступных данных
|
||||||
|
|
|
@ -164,7 +164,7 @@ Rosa::Application.routes.draw do
|
||||||
resources :repositories do
|
resources :repositories do
|
||||||
member do
|
member do
|
||||||
get :add_project
|
get :add_project
|
||||||
get :remove_project
|
delete :remove_project
|
||||||
get :projects_list
|
get :projects_list
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
class DeleteDublicateSubscribes < ActiveRecord::Migration
|
||||||
|
def up
|
||||||
|
execute <<-SQL
|
||||||
|
DELETE FROM subscribes s
|
||||||
|
WHERE s.id NOT IN (SELECT MIN(s1.id) FROM SUBSCRIBES s1
|
||||||
|
GROUP BY s1.subscribeable_type, s1.user_id, s1.status, s1.subscribeable_id)
|
||||||
|
SQL
|
||||||
|
end
|
||||||
|
|
||||||
|
def down
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,10 @@
|
||||||
|
class AddDescriptionToProducts < ActiveRecord::Migration
|
||||||
|
def self.up
|
||||||
|
add_column :products, :description, :text
|
||||||
|
execute "UPDATE products SET description = name"
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.down
|
||||||
|
remove_column :products, :description
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,9 @@
|
||||||
|
class RemoveIsTemplateFromProducts < ActiveRecord::Migration
|
||||||
|
def up
|
||||||
|
remove_column :products, :is_template
|
||||||
|
end
|
||||||
|
|
||||||
|
def down
|
||||||
|
add_column :products, "is_template", :boolean, :default => false
|
||||||
|
end
|
||||||
|
end
|
115
db/schema.rb
115
db/schema.rb
|
@ -11,7 +11,7 @@
|
||||||
#
|
#
|
||||||
# It's strongly recommended to check this file into your version control system.
|
# It's strongly recommended to check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema.define(:version => 20120306212914) do
|
ActiveRecord::Schema.define(:version => 20120314223151) do
|
||||||
|
|
||||||
create_table "activity_feeds", :force => true do |t|
|
create_table "activity_feeds", :force => true do |t|
|
||||||
t.integer "user_id", :null => false
|
t.integer "user_id", :null => false
|
||||||
|
@ -23,8 +23,8 @@ ActiveRecord::Schema.define(:version => 20120306212914) do
|
||||||
|
|
||||||
create_table "arches", :force => true do |t|
|
create_table "arches", :force => true do |t|
|
||||||
t.string "name", :null => false
|
t.string "name", :null => false
|
||||||
t.datetime "created_at", :null => false
|
t.datetime "created_at"
|
||||||
t.datetime "updated_at", :null => false
|
t.datetime "updated_at"
|
||||||
end
|
end
|
||||||
|
|
||||||
add_index "arches", ["name"], :name => "index_arches_on_name", :unique => true
|
add_index "arches", ["name"], :name => "index_arches_on_name", :unique => true
|
||||||
|
@ -33,8 +33,8 @@ ActiveRecord::Schema.define(:version => 20120306212914) do
|
||||||
t.integer "user_id"
|
t.integer "user_id"
|
||||||
t.string "provider"
|
t.string "provider"
|
||||||
t.string "uid"
|
t.string "uid"
|
||||||
t.datetime "created_at", :null => false
|
t.datetime "created_at"
|
||||||
t.datetime "updated_at", :null => false
|
t.datetime "updated_at"
|
||||||
end
|
end
|
||||||
|
|
||||||
add_index "authentications", ["provider", "uid"], :name => "index_authentications_on_provider_and_uid", :unique => true
|
add_index "authentications", ["provider", "uid"], :name => "index_authentications_on_provider_and_uid", :unique => true
|
||||||
|
@ -45,8 +45,8 @@ ActiveRecord::Schema.define(:version => 20120306212914) do
|
||||||
t.integer "arch_id"
|
t.integer "arch_id"
|
||||||
t.integer "pl_id"
|
t.integer "pl_id"
|
||||||
t.integer "bpl_id"
|
t.integer "bpl_id"
|
||||||
t.datetime "created_at", :null => false
|
t.datetime "created_at"
|
||||||
t.datetime "updated_at", :null => false
|
t.datetime "updated_at"
|
||||||
end
|
end
|
||||||
|
|
||||||
create_table "build_list_items", :force => true do |t|
|
create_table "build_list_items", :force => true do |t|
|
||||||
|
@ -54,8 +54,8 @@ ActiveRecord::Schema.define(:version => 20120306212914) do
|
||||||
t.integer "level"
|
t.integer "level"
|
||||||
t.integer "status"
|
t.integer "status"
|
||||||
t.integer "build_list_id"
|
t.integer "build_list_id"
|
||||||
t.datetime "created_at", :null => false
|
t.datetime "created_at"
|
||||||
t.datetime "updated_at", :null => false
|
t.datetime "updated_at"
|
||||||
t.string "version"
|
t.string "version"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -69,8 +69,8 @@ ActiveRecord::Schema.define(:version => 20120306212914) do
|
||||||
t.integer "project_id"
|
t.integer "project_id"
|
||||||
t.integer "arch_id"
|
t.integer "arch_id"
|
||||||
t.datetime "notified_at"
|
t.datetime "notified_at"
|
||||||
t.datetime "created_at", :null => false
|
t.datetime "created_at"
|
||||||
t.datetime "updated_at", :null => false
|
t.datetime "updated_at"
|
||||||
t.boolean "is_circle", :default => false
|
t.boolean "is_circle", :default => false
|
||||||
t.text "additional_repos"
|
t.text "additional_repos"
|
||||||
t.string "name"
|
t.string "name"
|
||||||
|
@ -93,16 +93,16 @@ ActiveRecord::Schema.define(:version => 20120306212914) do
|
||||||
t.string "name"
|
t.string "name"
|
||||||
t.string "ancestry"
|
t.string "ancestry"
|
||||||
t.integer "projects_count", :default => 0, :null => false
|
t.integer "projects_count", :default => 0, :null => false
|
||||||
t.datetime "created_at", :null => false
|
t.datetime "created_at"
|
||||||
t.datetime "updated_at", :null => false
|
t.datetime "updated_at"
|
||||||
end
|
end
|
||||||
|
|
||||||
create_table "comments", :force => true do |t|
|
create_table "comments", :force => true do |t|
|
||||||
t.string "commentable_type"
|
t.string "commentable_type"
|
||||||
t.integer "user_id"
|
t.integer "user_id"
|
||||||
t.text "body"
|
t.text "body"
|
||||||
t.datetime "created_at", :null => false
|
t.datetime "created_at"
|
||||||
t.datetime "updated_at", :null => false
|
t.datetime "updated_at"
|
||||||
t.decimal "commentable_id", :precision => 50, :scale => 0
|
t.decimal "commentable_id", :precision => 50, :scale => 0
|
||||||
t.integer "project_id"
|
t.integer "project_id"
|
||||||
end
|
end
|
||||||
|
@ -111,8 +111,8 @@ ActiveRecord::Schema.define(:version => 20120306212914) do
|
||||||
t.string "name", :null => false
|
t.string "name", :null => false
|
||||||
t.integer "project_id", :null => false
|
t.integer "project_id", :null => false
|
||||||
t.integer "owner_id", :null => false
|
t.integer "owner_id", :null => false
|
||||||
t.datetime "created_at", :null => false
|
t.datetime "created_at"
|
||||||
t.datetime "updated_at", :null => false
|
t.datetime "updated_at"
|
||||||
end
|
end
|
||||||
|
|
||||||
create_table "delayed_jobs", :force => true do |t|
|
create_table "delayed_jobs", :force => true do |t|
|
||||||
|
@ -124,8 +124,8 @@ ActiveRecord::Schema.define(:version => 20120306212914) do
|
||||||
t.datetime "locked_at"
|
t.datetime "locked_at"
|
||||||
t.datetime "failed_at"
|
t.datetime "failed_at"
|
||||||
t.string "locked_by"
|
t.string "locked_by"
|
||||||
t.datetime "created_at", :null => false
|
t.datetime "created_at"
|
||||||
t.datetime "updated_at", :null => false
|
t.datetime "updated_at"
|
||||||
t.string "queue"
|
t.string "queue"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -137,8 +137,8 @@ ActiveRecord::Schema.define(:version => 20120306212914) do
|
||||||
t.string "distro"
|
t.string "distro"
|
||||||
t.string "platform"
|
t.string "platform"
|
||||||
t.integer "counter", :default => 0
|
t.integer "counter", :default => 0
|
||||||
t.datetime "created_at", :null => false
|
t.datetime "created_at"
|
||||||
t.datetime "updated_at", :null => false
|
t.datetime "updated_at"
|
||||||
end
|
end
|
||||||
|
|
||||||
create_table "event_logs", :force => true do |t|
|
create_table "event_logs", :force => true do |t|
|
||||||
|
@ -153,14 +153,14 @@ ActiveRecord::Schema.define(:version => 20120306212914) do
|
||||||
t.string "controller"
|
t.string "controller"
|
||||||
t.string "action"
|
t.string "action"
|
||||||
t.text "message"
|
t.text "message"
|
||||||
t.datetime "created_at", :null => false
|
t.datetime "created_at"
|
||||||
t.datetime "updated_at", :null => false
|
t.datetime "updated_at"
|
||||||
end
|
end
|
||||||
|
|
||||||
create_table "groups", :force => true do |t|
|
create_table "groups", :force => true do |t|
|
||||||
t.integer "owner_id"
|
t.integer "owner_id"
|
||||||
t.datetime "created_at", :null => false
|
t.datetime "created_at"
|
||||||
t.datetime "updated_at", :null => false
|
t.datetime "updated_at"
|
||||||
t.string "uname"
|
t.string "uname"
|
||||||
t.integer "own_projects_count", :default => 0, :null => false
|
t.integer "own_projects_count", :default => 0, :null => false
|
||||||
t.text "description"
|
t.text "description"
|
||||||
|
@ -173,8 +173,8 @@ ActiveRecord::Schema.define(:version => 20120306212914) do
|
||||||
t.string "title"
|
t.string "title"
|
||||||
t.text "body"
|
t.text "body"
|
||||||
t.string "status", :default => "open"
|
t.string "status", :default => "open"
|
||||||
t.datetime "created_at", :null => false
|
t.datetime "created_at"
|
||||||
t.datetime "updated_at", :null => false
|
t.datetime "updated_at"
|
||||||
t.integer "creator_id"
|
t.integer "creator_id"
|
||||||
t.datetime "closed_at"
|
t.datetime "closed_at"
|
||||||
t.integer "closed_by"
|
t.integer "closed_by"
|
||||||
|
@ -205,8 +205,8 @@ ActiveRecord::Schema.define(:version => 20120306212914) do
|
||||||
t.string "description"
|
t.string "description"
|
||||||
t.string "name"
|
t.string "name"
|
||||||
t.integer "parent_platform_id"
|
t.integer "parent_platform_id"
|
||||||
t.datetime "created_at", :null => false
|
t.datetime "created_at"
|
||||||
t.datetime "updated_at", :null => false
|
t.datetime "updated_at"
|
||||||
t.boolean "released", :default => false
|
t.boolean "released", :default => false
|
||||||
t.integer "owner_id"
|
t.integer "owner_id"
|
||||||
t.string "owner_type"
|
t.string "owner_type"
|
||||||
|
@ -219,8 +219,8 @@ ActiveRecord::Schema.define(:version => 20120306212914) do
|
||||||
t.integer "platform_id"
|
t.integer "platform_id"
|
||||||
t.string "login"
|
t.string "login"
|
||||||
t.string "password"
|
t.string "password"
|
||||||
t.datetime "created_at", :null => false
|
t.datetime "created_at"
|
||||||
t.datetime "updated_at", :null => false
|
t.datetime "updated_at"
|
||||||
t.integer "user_id"
|
t.integer "user_id"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -228,8 +228,8 @@ ActiveRecord::Schema.define(:version => 20120306212914) do
|
||||||
t.integer "product_id"
|
t.integer "product_id"
|
||||||
t.integer "status", :default => 2, :null => false
|
t.integer "status", :default => 2, :null => false
|
||||||
t.datetime "notified_at"
|
t.datetime "notified_at"
|
||||||
t.datetime "created_at", :null => false
|
t.datetime "created_at"
|
||||||
t.datetime "updated_at", :null => false
|
t.datetime "updated_at"
|
||||||
end
|
end
|
||||||
|
|
||||||
add_index "product_build_lists", ["product_id"], :name => "index_product_build_lists_on_product_id"
|
add_index "product_build_lists", ["product_id"], :name => "index_product_build_lists_on_product_id"
|
||||||
|
@ -239,8 +239,8 @@ ActiveRecord::Schema.define(:version => 20120306212914) do
|
||||||
t.integer "platform_id", :null => false
|
t.integer "platform_id", :null => false
|
||||||
t.integer "build_status", :default => 2, :null => false
|
t.integer "build_status", :default => 2, :null => false
|
||||||
t.string "build_path"
|
t.string "build_path"
|
||||||
t.datetime "created_at", :null => false
|
t.datetime "created_at"
|
||||||
t.datetime "updated_at", :null => false
|
t.datetime "updated_at"
|
||||||
t.text "build_script"
|
t.text "build_script"
|
||||||
t.text "counter"
|
t.text "counter"
|
||||||
t.text "ks"
|
t.text "ks"
|
||||||
|
@ -249,10 +249,10 @@ ActiveRecord::Schema.define(:version => 20120306212914) do
|
||||||
t.string "tar_content_type"
|
t.string "tar_content_type"
|
||||||
t.integer "tar_file_size"
|
t.integer "tar_file_size"
|
||||||
t.datetime "tar_updated_at"
|
t.datetime "tar_updated_at"
|
||||||
t.boolean "is_template", :default => false
|
|
||||||
t.boolean "system_wide", :default => false
|
t.boolean "system_wide", :default => false
|
||||||
t.text "cron_tab"
|
t.text "cron_tab"
|
||||||
t.boolean "use_cron", :default => false
|
t.boolean "use_cron", :default => false
|
||||||
|
t.text "description"
|
||||||
end
|
end
|
||||||
|
|
||||||
create_table "project_imports", :force => true do |t|
|
create_table "project_imports", :force => true do |t|
|
||||||
|
@ -260,8 +260,8 @@ ActiveRecord::Schema.define(:version => 20120306212914) do
|
||||||
t.string "name"
|
t.string "name"
|
||||||
t.string "version"
|
t.string "version"
|
||||||
t.datetime "file_mtime"
|
t.datetime "file_mtime"
|
||||||
t.datetime "created_at", :null => false
|
t.datetime "created_at"
|
||||||
t.datetime "updated_at", :null => false
|
t.datetime "updated_at"
|
||||||
t.integer "platform_id"
|
t.integer "platform_id"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -270,14 +270,14 @@ ActiveRecord::Schema.define(:version => 20120306212914) do
|
||||||
create_table "project_to_repositories", :force => true do |t|
|
create_table "project_to_repositories", :force => true do |t|
|
||||||
t.integer "project_id"
|
t.integer "project_id"
|
||||||
t.integer "repository_id"
|
t.integer "repository_id"
|
||||||
t.datetime "created_at", :null => false
|
t.datetime "created_at"
|
||||||
t.datetime "updated_at", :null => false
|
t.datetime "updated_at"
|
||||||
end
|
end
|
||||||
|
|
||||||
create_table "projects", :force => true do |t|
|
create_table "projects", :force => true do |t|
|
||||||
t.string "name"
|
t.string "name"
|
||||||
t.datetime "created_at", :null => false
|
t.datetime "created_at"
|
||||||
t.datetime "updated_at", :null => false
|
t.datetime "updated_at"
|
||||||
t.integer "owner_id"
|
t.integer "owner_id"
|
||||||
t.string "owner_type"
|
t.string "owner_type"
|
||||||
t.string "visibility", :default => "open"
|
t.string "visibility", :default => "open"
|
||||||
|
@ -303,30 +303,29 @@ ActiveRecord::Schema.define(:version => 20120306212914) do
|
||||||
t.string "token"
|
t.string "token"
|
||||||
t.boolean "approved", :default => false
|
t.boolean "approved", :default => false
|
||||||
t.boolean "rejected", :default => false
|
t.boolean "rejected", :default => false
|
||||||
t.datetime "created_at", :null => false
|
t.datetime "created_at"
|
||||||
t.datetime "updated_at", :null => false
|
t.datetime "updated_at"
|
||||||
t.string "interest"
|
t.string "interest"
|
||||||
t.text "more"
|
t.text "more"
|
||||||
end
|
end
|
||||||
|
|
||||||
add_index "register_requests", ["email"], :name => "index_register_requests_on_email", :unique => true, :case_sensitive => false
|
add_index "register_requests", ["email"], :name => "index_register_requests_on_email", :unique => true, :case_sensitive => false
|
||||||
add_index "register_requests", ["token"], :name => "index_register_requests_on_token", :unique => true, :case_sensitive => false
|
|
||||||
|
|
||||||
create_table "relations", :force => true do |t|
|
create_table "relations", :force => true do |t|
|
||||||
t.integer "object_id"
|
t.integer "object_id"
|
||||||
t.string "object_type"
|
t.string "object_type"
|
||||||
t.integer "target_id"
|
t.integer "target_id"
|
||||||
t.string "target_type"
|
t.string "target_type"
|
||||||
t.datetime "created_at", :null => false
|
t.datetime "created_at"
|
||||||
t.datetime "updated_at", :null => false
|
t.datetime "updated_at"
|
||||||
t.string "role"
|
t.string "role"
|
||||||
end
|
end
|
||||||
|
|
||||||
create_table "repositories", :force => true do |t|
|
create_table "repositories", :force => true do |t|
|
||||||
t.string "description", :null => false
|
t.string "description", :null => false
|
||||||
t.integer "platform_id", :null => false
|
t.integer "platform_id", :null => false
|
||||||
t.datetime "created_at", :null => false
|
t.datetime "created_at"
|
||||||
t.datetime "updated_at", :null => false
|
t.datetime "updated_at"
|
||||||
t.string "name", :null => false
|
t.string "name", :null => false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -334,8 +333,8 @@ ActiveRecord::Schema.define(:version => 20120306212914) do
|
||||||
t.string "name", :null => false
|
t.string "name", :null => false
|
||||||
t.integer "arch_id", :null => false
|
t.integer "arch_id", :null => false
|
||||||
t.integer "project_id", :null => false
|
t.integer "project_id", :null => false
|
||||||
t.datetime "created_at", :null => false
|
t.datetime "created_at"
|
||||||
t.datetime "updated_at", :null => false
|
t.datetime "updated_at"
|
||||||
end
|
end
|
||||||
|
|
||||||
add_index "rpms", ["project_id", "arch_id"], :name => "index_rpms_on_project_id_and_arch_id"
|
add_index "rpms", ["project_id", "arch_id"], :name => "index_rpms_on_project_id_and_arch_id"
|
||||||
|
@ -348,8 +347,8 @@ ActiveRecord::Schema.define(:version => 20120306212914) do
|
||||||
t.boolean "new_comment_reply", :default => true
|
t.boolean "new_comment_reply", :default => true
|
||||||
t.boolean "new_issue", :default => true
|
t.boolean "new_issue", :default => true
|
||||||
t.boolean "issue_assign", :default => true
|
t.boolean "issue_assign", :default => true
|
||||||
t.datetime "created_at", :null => false
|
t.datetime "created_at"
|
||||||
t.datetime "updated_at", :null => false
|
t.datetime "updated_at"
|
||||||
t.boolean "new_comment_commit_owner", :default => true
|
t.boolean "new_comment_commit_owner", :default => true
|
||||||
t.boolean "new_comment_commit_repo_owner", :default => true
|
t.boolean "new_comment_commit_repo_owner", :default => true
|
||||||
t.boolean "new_comment_commit_commentor", :default => true
|
t.boolean "new_comment_commit_commentor", :default => true
|
||||||
|
@ -358,8 +357,8 @@ ActiveRecord::Schema.define(:version => 20120306212914) do
|
||||||
create_table "subscribes", :force => true do |t|
|
create_table "subscribes", :force => true do |t|
|
||||||
t.string "subscribeable_type"
|
t.string "subscribeable_type"
|
||||||
t.integer "user_id"
|
t.integer "user_id"
|
||||||
t.datetime "created_at", :null => false
|
t.datetime "created_at"
|
||||||
t.datetime "updated_at", :null => false
|
t.datetime "updated_at"
|
||||||
t.boolean "status", :default => true
|
t.boolean "status", :default => true
|
||||||
t.integer "project_id"
|
t.integer "project_id"
|
||||||
t.decimal "subscribeable_id", :precision => 50, :scale => 0
|
t.decimal "subscribeable_id", :precision => 50, :scale => 0
|
||||||
|
@ -368,12 +367,12 @@ ActiveRecord::Schema.define(:version => 20120306212914) do
|
||||||
create_table "users", :force => true do |t|
|
create_table "users", :force => true do |t|
|
||||||
t.string "name"
|
t.string "name"
|
||||||
t.string "email", :default => "", :null => false
|
t.string "email", :default => "", :null => false
|
||||||
t.string "encrypted_password", :default => "", :null => false
|
t.string "encrypted_password", :limit => 128, :default => "", :null => false
|
||||||
t.string "reset_password_token"
|
t.string "reset_password_token"
|
||||||
t.datetime "reset_password_sent_at"
|
t.datetime "reset_password_sent_at"
|
||||||
t.datetime "remember_created_at"
|
t.datetime "remember_created_at"
|
||||||
t.datetime "created_at", :null => false
|
t.datetime "created_at"
|
||||||
t.datetime "updated_at", :null => false
|
t.datetime "updated_at"
|
||||||
t.text "ssh_key"
|
t.text "ssh_key"
|
||||||
t.string "uname"
|
t.string "uname"
|
||||||
t.string "role"
|
t.string "role"
|
||||||
|
|
|
@ -444,7 +444,7 @@ article a.button {
|
||||||
background-image: linear-gradient(top, #68a3d8, #125687);
|
background-image: linear-gradient(top, #68a3d8, #125687);
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#68a3d8', EndColorStr='#125687');
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#68a3d8', EndColorStr='#125687');
|
||||||
border: 1px solid #5084b4;
|
border: 1px solid #5084b4;
|
||||||
padding: 4px 20px;
|
padding: 4px 20px 6px;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
|
@ -513,7 +513,7 @@ article input[type="submit"] {
|
||||||
background-image: linear-gradient(top, #68a3d8, #125687);
|
background-image: linear-gradient(top, #68a3d8, #125687);
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#68a3d8', EndColorStr='#125687');
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#68a3d8', EndColorStr='#125687');
|
||||||
border: 1px solid #5084b4;
|
border: 1px solid #5084b4;
|
||||||
padding: 0px 20px 0px;
|
padding: 3px 20px 5px;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
|
@ -523,7 +523,6 @@ article input[type="submit"] {
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
height: auto;
|
height: auto;
|
||||||
height: 28px;
|
|
||||||
width: auto;
|
width: auto;
|
||||||
font-family: Tahoma;
|
font-family: Tahoma;
|
||||||
}
|
}
|
||||||
|
@ -2364,3 +2363,7 @@ table.tablesorter tr.search td input[type="text"] {
|
||||||
table.tablesorter.width565 {
|
table.tablesorter.width565 {
|
||||||
width: 565px;
|
width: 565px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
article h3 a {
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
|
@ -1,2 +1,3 @@
|
||||||
# -*- encoding : utf-8 -*-
|
# -*- encoding : utf-8 -*-
|
||||||
|
require Rails.root.join('lib/rails_datatables/rails_datatables')
|
||||||
ActionView::Base.send :include, RailsDatatables
|
ActionView::Base.send :include, RailsDatatables
|
|
@ -60,7 +60,7 @@ module RailsDatatables
|
||||||
|
|
||||||
"sProcessing": '#{processing}'
|
"sProcessing": '#{processing}'
|
||||||
},
|
},
|
||||||
"sPaginationType": "full_numbers",
|
"sPaginationType": "will_paginate_like",
|
||||||
"iDisplayLength": #{per_page},
|
"iDisplayLength": #{per_page},
|
||||||
"bProcessing": true,
|
"bProcessing": true,
|
||||||
"bServerSide": #{server_side},
|
"bServerSide": #{server_side},
|
||||||
|
@ -81,6 +81,8 @@ module RailsDatatables
|
||||||
} );
|
} );
|
||||||
}
|
}
|
||||||
})#{append};
|
})#{append};
|
||||||
|
|
||||||
|
$('#datatable_wrapper').append("<div class='both'></div>");
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
}
|
}
|
|
@ -2,6 +2,7 @@
|
||||||
//= require gollum/gollum.dialog
|
//= require gollum/gollum.dialog
|
||||||
//= require gollum/gollum.placeholder
|
//= require gollum/gollum.placeholder
|
||||||
//= require gollum/editor/gollum.editor
|
//= require gollum/editor/gollum.editor
|
||||||
|
//= require jquery.dataTables
|
||||||
//= require codemirror
|
//= require codemirror
|
||||||
//= require codemirror/runmode
|
//= require codemirror/runmode
|
||||||
//= require_tree ./codemirror/modes
|
//= require_tree ./codemirror/modes
|
||||||
|
|
|
@ -1,23 +0,0 @@
|
||||||
require 'rake'
|
|
||||||
require 'rake/testtask'
|
|
||||||
require 'rake/rdoctask'
|
|
||||||
|
|
||||||
desc 'Default: run unit tests.'
|
|
||||||
task :default => :test
|
|
||||||
|
|
||||||
desc 'Test the rails_datatables plugin.'
|
|
||||||
Rake::TestTask.new(:test) do |t|
|
|
||||||
t.libs << 'lib'
|
|
||||||
t.libs << 'test'
|
|
||||||
t.pattern = 'test/**/*_test.rb'
|
|
||||||
t.verbose = true
|
|
||||||
end
|
|
||||||
|
|
||||||
desc 'Generate documentation for the rails_datatables plugin.'
|
|
||||||
Rake::RDocTask.new(:rdoc) do |rdoc|
|
|
||||||
rdoc.rdoc_dir = 'rdoc'
|
|
||||||
rdoc.title = 'RailsDatatables'
|
|
||||||
rdoc.options << '--line-numbers' << '--inline-source'
|
|
||||||
rdoc.rdoc_files.include('README')
|
|
||||||
rdoc.rdoc_files.include('lib/**/*.rb')
|
|
||||||
end
|
|
|
@ -1,2 +0,0 @@
|
||||||
# -*- encoding : utf-8 -*-
|
|
||||||
# Install hook code here
|
|
|
@ -1,2 +0,0 @@
|
||||||
# -*- encoding : utf-8 -*-
|
|
||||||
# Uninstall hook code here
|
|
Loading…
Reference in New Issue