Merge branch '3.2-master' into 194-tracker
Conflicts: app/assets/stylesheets/application.scss app/views/issues/_form.html.haml app/views/platforms/show.html.haml
This commit is contained in:
commit
bc4a157703
|
@ -1,4 +1,4 @@
|
||||||
//@import "vendor";
|
@import "vendor";
|
||||||
@import "main";
|
@import "main";
|
||||||
@import "custom";
|
@import "custom";
|
||||||
@import "blue/style";
|
@import "blue/style";
|
||||||
|
@ -6,4 +6,3 @@
|
||||||
//= require main
|
//= require main
|
||||||
//= require vendor
|
//= require vendor
|
||||||
//= require custom
|
//= require custom
|
||||||
|
|
||||||
|
|
|
@ -29,8 +29,8 @@ class Git::BlobsController < Git::BaseController
|
||||||
# @git_repository.after_update_file do |repo, sha|
|
# @git_repository.after_update_file do |repo, sha|
|
||||||
# end
|
# end
|
||||||
|
|
||||||
res = @git_repository.update_file(params[:path], params[:content],
|
res = @git_repository.update_file(params[:path], params[:content].gsub("\r", ''),
|
||||||
:message => params[:message], :actor => current_user, :head => @treeish)
|
:message => params[:message].gsub("\r", ''), :actor => current_user, :head => @treeish)
|
||||||
if res
|
if res
|
||||||
flash[:notice] = t("flash.blob.successfully_updated", :name => params[:path].encode_to_default)
|
flash[:notice] = t("flash.blob.successfully_updated", :name => params[:path].encode_to_default)
|
||||||
else
|
else
|
||||||
|
|
|
@ -12,7 +12,7 @@ class PersonalRepositoriesController < ApplicationController
|
||||||
else
|
else
|
||||||
@projects = @repository.projects.recent.paginate :page => params[:project_page], :per_page => 30
|
@projects = @repository.projects.recent.paginate :page => params[:project_page], :per_page => 30
|
||||||
end
|
end
|
||||||
@user = @repository.owner
|
@user = @repository.platform.owner
|
||||||
@urpmi_commands = @repository.platform.urpmi_list(request.host)
|
@urpmi_commands = @repository.platform.urpmi_list(request.host)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -8,11 +8,7 @@ class PlatformsController < ApplicationController
|
||||||
autocomplete :user, :uname
|
autocomplete :user, :uname
|
||||||
|
|
||||||
def build_all
|
def build_all
|
||||||
@platform.repositories.each do |repository|
|
@platform.delay.build_all(current_user)
|
||||||
repository.projects.each do |project|
|
|
||||||
project.delay.build_for(@platform, current_user)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
redirect_to(platform_path(@platform), :notice => t("flash.platform.build_all_success"))
|
redirect_to(platform_path(@platform), :notice => t("flash.platform.build_all_success"))
|
||||||
end
|
end
|
||||||
|
@ -109,24 +105,24 @@ class PlatformsController < ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def clone
|
def clone
|
||||||
if request.post?
|
@cloned = Platform.new
|
||||||
@cloned = @platform.make_clone(:name => params[:platform]['name'], :description => params[:platform]['description'],
|
@cloned.name = @platform.name + "_clone"
|
||||||
:owner_id => current_user.id, :owner_type => current_user.class.to_s)
|
@cloned.description = @platform.description + "_clone"
|
||||||
if @cloned.persisted?
|
end
|
||||||
flash[:notice] = I18n.t("flash.platform.clone_success")
|
|
||||||
redirect_to @cloned
|
def make_clone
|
||||||
else
|
@cloned = @platform.full_clone params[:platform].merge(:owner => current_user)
|
||||||
flash[:error] = @cloned.errors.full_messages.join('. ')
|
if @cloned.persisted?
|
||||||
end
|
flash[:notice] = I18n.t("flash.platform.clone_success")
|
||||||
|
redirect_to @cloned
|
||||||
else
|
else
|
||||||
@cloned = Platform.new
|
flash[:error] = @cloned.errors.full_messages.join('. ')
|
||||||
@cloned.name = @platform.name + "_clone"
|
render 'clone'
|
||||||
@cloned.description = @platform.description + "_clone"
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def destroy
|
def destroy
|
||||||
@platform.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 root_path
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
# -*- encoding : utf-8 -*-
|
# -*- encoding : utf-8 -*-
|
||||||
class ProductBuildListsController < ApplicationController
|
class ProductBuildListsController < ApplicationController
|
||||||
before_filter :authenticate_user!, :except => [:status_build]
|
before_filter :authenticate_user!, :except => [:status_build]
|
||||||
load_and_authorize_resource :platform, :only => [:create]
|
load_and_authorize_resource :platform, :only => [:create, :destroy]
|
||||||
load_and_authorize_resource :product, :through => :platform, :only => [:create]
|
load_and_authorize_resource :product, :through => :platform, :only => [:create, :destroy]
|
||||||
load_and_authorize_resource :product_build_list, :through => :product, :only => [:create]
|
load_and_authorize_resource :product_build_list, :through => :product, :only => [:create, :destroy]
|
||||||
|
|
||||||
before_filter :authenticate_product_builder!, :only => [:status_build]
|
before_filter :authenticate_product_builder!, :only => [:status_build]
|
||||||
before_filter :find_product_build_list, :only => [:status_build]
|
before_filter :find_product_build_list, :only => [:status_build]
|
||||||
|
@ -20,6 +20,12 @@ class ProductBuildListsController < ApplicationController
|
||||||
@product_build_list.save!
|
@product_build_list.save!
|
||||||
render :nothing => true
|
render :nothing => true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def destroy
|
||||||
|
@product_build_list.destroy
|
||||||
|
flash[:notice] = t('flash.product.build_list_delete')
|
||||||
|
redirect_to [@platform, @product]
|
||||||
|
end
|
||||||
|
|
||||||
protected
|
protected
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ class RegisterRequestsController < ApplicationController
|
||||||
before_filter :find_register_request, :only => [:approve, :reject]
|
before_filter :find_register_request, :only => [:approve, :reject]
|
||||||
|
|
||||||
def index
|
def index
|
||||||
@register_requests = @register_requests.unprocessed.paginate(:page => params[:page])
|
@register_requests = @register_requests.send((params[:scope] || 'unprocessed').to_sym).paginate(:page => params[:page])
|
||||||
end
|
end
|
||||||
|
|
||||||
def new
|
def new
|
||||||
|
|
|
@ -42,7 +42,6 @@ class RepositoriesController < ApplicationController
|
||||||
def create
|
def create
|
||||||
@repository = Repository.new(params[:repository])
|
@repository = Repository.new(params[:repository])
|
||||||
@repository.platform_id = params[:platform_id]
|
@repository.platform_id = params[:platform_id]
|
||||||
@repository.owner = get_owner
|
|
||||||
if @repository.save
|
if @repository.save
|
||||||
flash[:notice] = t('flash.repository.saved')
|
flash[:notice] = t('flash.repository.saved')
|
||||||
redirect_to @repositories_path
|
redirect_to @repositories_path
|
||||||
|
|
|
@ -117,19 +117,25 @@ class WikiController < ApplicationController
|
||||||
def compare_wiki
|
def compare_wiki
|
||||||
if request.post?
|
if request.post?
|
||||||
@versions = params[:versions] || []
|
@versions = params[:versions] || []
|
||||||
if @versions.size < 2
|
versions_string = case @versions.size
|
||||||
redirect_to history_project_wiki_index_path(@project)
|
when 1 then @versions.first
|
||||||
else
|
when 2 then sprintf('%s...%s', @versions.last, @versions.first)
|
||||||
redirect_to compare_versions_project_wiki_index_path(@project,
|
else begin
|
||||||
sprintf('%s...%s', @versions.last, @versions.first))
|
redirect_to history_project_wiki_index_path(@project)
|
||||||
|
return
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
redirect_to compare_versions_project_wiki_index_path(@project, versions_string)
|
||||||
elsif request.get?
|
elsif request.get?
|
||||||
@versions = params[:versions].split(/\.{2,3}/)
|
@versions = params[:versions].split(/\.{2,3}/) || []
|
||||||
if @versions.size < 2
|
@diffs = case @versions.size
|
||||||
redirect_to history_project_wiki_index_path(@project)
|
when 1 then @wiki.repo.commit_diff(@versions.first)
|
||||||
return
|
when 2 then @wiki.repo.diff(@versions.first, @versions.last)
|
||||||
|
else begin
|
||||||
|
redirect_to history_project_wiki_index_path(@project)
|
||||||
|
return
|
||||||
|
end
|
||||||
end
|
end
|
||||||
@diffs = @wiki.repo.diff(@versions.first, @versions.last)
|
|
||||||
render :compare
|
render :compare
|
||||||
else
|
else
|
||||||
redirect_to project_wiki_path(@project, CGI.escape(@name))
|
redirect_to project_wiki_path(@project, CGI.escape(@name))
|
||||||
|
@ -141,8 +147,9 @@ class WikiController < ApplicationController
|
||||||
@page = @wiki.page(@name)
|
@page = @wiki.page(@name)
|
||||||
sha1 = params[:sha1]
|
sha1 = params[:sha1]
|
||||||
sha2 = params[:sha2]
|
sha2 = params[:sha2]
|
||||||
|
sha2 = nil if params[:sha2] == 'prev'
|
||||||
|
|
||||||
if @wiki.revert_page(@page, sha1, sha2, {:committer => committer}).commit
|
if c = @wiki.revert_page(@page, sha1, sha2, {:committer => committer}) and c.commit
|
||||||
flash[:notice] = t("flash.wiki.revert_success")
|
flash[:notice] = t("flash.wiki.revert_success")
|
||||||
redirect_to project_wiki_path(@project, CGI.escape(@name))
|
redirect_to project_wiki_path(@project, CGI.escape(@name))
|
||||||
else
|
else
|
||||||
|
@ -162,14 +169,14 @@ class WikiController < ApplicationController
|
||||||
def revert_wiki
|
def revert_wiki
|
||||||
sha1 = params[:sha1]
|
sha1 = params[:sha1]
|
||||||
sha2 = params[:sha2]
|
sha2 = params[:sha2]
|
||||||
if @wiki.revert_commit(sha1, sha2, {:committer => committer}).commit
|
sha2 = nil if sha2 == 'prev'
|
||||||
|
if c = @wiki.revert_commit(sha1, sha2, {:committer => committer}) and c.commit
|
||||||
flash[:notice] = t("flash.wiki.revert_success")
|
flash[:notice] = t("flash.wiki.revert_success")
|
||||||
redirect_to project_wiki_index_path(@project)
|
redirect_to project_wiki_index_path(@project)
|
||||||
else
|
else
|
||||||
sha2, sha1 = sha1, "#{sha1}^" if !sha2
|
sha2, sha1 = sha1, "#{sha1}^" if !sha2
|
||||||
@versions = [sha1, sha2]
|
@versions = [sha1, sha2]
|
||||||
diffs = @wiki.repo.diff(@versions.first, @versions.last)
|
@diffs = @wiki.repo.diff(@versions.first, @versions.last)
|
||||||
@diffs = [diffs.first]
|
|
||||||
flash[:error] = t("flash.wiki.patch_does_not_apply")
|
flash[:error] = t("flash.wiki.patch_does_not_apply")
|
||||||
render :compare
|
render :compare
|
||||||
end
|
end
|
||||||
|
|
|
@ -8,7 +8,7 @@ module DiffHelper
|
||||||
|
|
||||||
res += "<table class='diff inline' cellspacing='0' cellpadding='0'>"
|
res += "<table class='diff inline' cellspacing='0' cellpadding='0'>"
|
||||||
res += "<tbody>"
|
res += "<tbody>"
|
||||||
res += diff_display.render(Git::Diff::InlineCallback.new)
|
res += diff_display.render(Git::Diff::InlineCallback.new).encode_to_default
|
||||||
res += "</tbody>"
|
res += "</tbody>"
|
||||||
res += "</table>"
|
res += "</table>"
|
||||||
|
|
||||||
|
|
|
@ -2,9 +2,9 @@
|
||||||
module ProjectsHelper
|
module ProjectsHelper
|
||||||
def git_repo_url(name)
|
def git_repo_url(name)
|
||||||
if current_user
|
if current_user
|
||||||
"http://#{current_user.uname}@#{request.host_with_port}/#{name}.git"
|
"https://#{current_user.uname}@#{request.host_with_port}/#{name}.git"
|
||||||
else
|
else
|
||||||
"http://#{request.host_with_port}/#{name}.git"
|
"https://#{request.host_with_port}/#{name}.git"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -17,6 +17,8 @@ class Ability
|
||||||
cannot :destroy, Subscribe
|
cannot :destroy, Subscribe
|
||||||
cannot :create, Subscribe
|
cannot :create, Subscribe
|
||||||
cannot :create, RegisterRequest
|
cannot :create, RegisterRequest
|
||||||
|
cannot :approve, RegisterRequest, :approved => true
|
||||||
|
cannot :reject, RegisterRequest, :rejected => true
|
||||||
else
|
else
|
||||||
# Shared rights between guests and registered users
|
# Shared rights between guests and registered users
|
||||||
can :forbidden, Platform
|
can :forbidden, Platform
|
||||||
|
@ -64,23 +66,23 @@ 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, 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, :destroy], Platform) {|platform| owner? platform}
|
||||||
can :autocomplete_user_uname, Platform
|
can :autocomplete_user_uname, Platform
|
||||||
|
|
||||||
# TODO delegate to platform?
|
|
||||||
can :read, Repository, :platform => {:visibility => 'open'}
|
can :read, Repository, :platform => {:visibility => 'open'}
|
||||||
can :read, Repository, :owner_type => 'User', :owner_id => user.id
|
can :read, Repository, :platform => {:owner_type => 'User', :owner_id => user.id}
|
||||||
can :read, Repository, :owner_type => 'Group', :owner_id => user.group_ids
|
can :read, Repository, :platform => {:owner_type => 'Group', :owner_id => user.group_ids}
|
||||||
can(:read, Repository, read_relations_for('repositories')) {|repository| local_reader? repository}
|
can(:read, Repository, read_relations_for('repositories', 'platforms')) {|repository| local_reader? repository.platform}
|
||||||
can(:create, Repository) {|repository| local_admin? repository.platform}
|
can([:create, :update, :projects_list, :add_project, :remove_project], Repository) {|repository| local_admin? repository.platform}
|
||||||
can([:update, :add_project, :remove_project], Repository) {|repository| local_admin? repository}
|
can([:change_visibility, :settings, :destroy], Repository) {|repository| owner? repository.platform}
|
||||||
can([:change_visibility, :settings, :destroy], Repository) {|repository| owner? repository}
|
|
||||||
|
|
||||||
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(:manage, Product, read_relations_for('products', 'platforms')) {|product| local_admin? product.platform}
|
||||||
|
can(:create, ProductBuildList) {|pbl| pbl.product.can_build? and can?(:update, pbl.product)}
|
||||||
|
can(:destroy, ProductBuildList) {|pbl| can?(:destroy, pbl.product)}
|
||||||
|
|
||||||
can [:read, :platforms], Category
|
can [:read, :platforms], Category
|
||||||
|
|
||||||
can [:read, :create], PrivateUser, :platform => {:owner_type => 'User', :owner_id => user.id}
|
can [:read, :create], PrivateUser, :platform => {:owner_type => 'User', :owner_id => user.id}
|
||||||
|
|
|
@ -2,16 +2,16 @@
|
||||||
class Group < ActiveRecord::Base
|
class Group < ActiveRecord::Base
|
||||||
belongs_to :owner, :class_name => 'User'
|
belongs_to :owner, :class_name => 'User'
|
||||||
|
|
||||||
has_many :own_projects, :as => :owner, :class_name => 'Project'
|
has_many :relations, :as => :object, :dependent => :destroy
|
||||||
|
|
||||||
has_many :objects, :as => :target, :class_name => 'Relation'
|
has_many :objects, :as => :target, :class_name => 'Relation'
|
||||||
has_many :targets, :as => :object, :class_name => 'Relation'
|
has_many :targets, :as => :object, :class_name => 'Relation'
|
||||||
|
|
||||||
has_many :members, :through => :objects, :source => :object, :source_type => 'User', :autosave => true
|
has_many :members, :through => :objects, :source => :object, :source_type => 'User', :autosave => true
|
||||||
has_many :projects, :through => :targets, :source => :target, :source_type => 'Project', :autosave => true
|
has_many :projects, :through => :targets, :source => :target, :source_type => 'Project', :autosave => true
|
||||||
has_many :platforms, :through => :targets, :source => :target, :source_type => 'Platform', :autosave => true, :dependent => :destroy
|
has_many :platforms, :through => :targets, :source => :target, :source_type => 'Platform', :autosave => true
|
||||||
has_many :repositories, :through => :targets, :source => :target, :source_type => 'Repository', :autosave => true
|
|
||||||
has_many :relations, :as => :object, :dependent => :destroy
|
has_many :own_projects, :as => :owner, :class_name => 'Project', :dependent => :destroy
|
||||||
|
has_many :own_platforms, :as => :owner, :class_name => 'Platform', :dependent => :destroy
|
||||||
|
|
||||||
validates :name, :owner, :presence => true
|
validates :name, :owner, :presence => true
|
||||||
validates :uname, :presence => true, :uniqueness => {:case_sensitive => false}, :format => { :with => /^[a-z0-9_]+$/ }
|
validates :uname, :presence => true, :uniqueness => {:case_sensitive => false}, :format => { :with => /^[a-z0-9_]+$/ }
|
||||||
|
@ -24,11 +24,12 @@ class Group < ActiveRecord::Base
|
||||||
after_create :add_owner_to_members
|
after_create :add_owner_to_members
|
||||||
|
|
||||||
include Modules::Models::PersonalRepository
|
include Modules::Models::PersonalRepository
|
||||||
# include Modules::Models::Owner
|
# include Modules::Models::Owner
|
||||||
|
|
||||||
protected
|
protected
|
||||||
def add_owner_to_members
|
|
||||||
Relation.create_with_role(self.owner, self, 'admin')
|
def add_owner_to_members
|
||||||
# members << self.owner if !members.exists?(:id => self.owner.id)
|
Relation.create_with_role(self.owner, self, 'admin')
|
||||||
end
|
# members << self.owner if !members.exists?(:id => self.owner.id)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -14,10 +14,11 @@ class Platform < ActiveRecord::Base
|
||||||
has_many :members, :through => :objects, :source => :object, :source_type => 'User'
|
has_many :members, :through => :objects, :source => :object, :source_type => 'User'
|
||||||
has_many :groups, :through => :objects, :source => :object, :source_type => 'Group'
|
has_many :groups, :through => :objects, :source => :object, :source_type => 'Group'
|
||||||
|
|
||||||
validates :description, :presence => true, :uniqueness => true
|
validates :description, :presence => true
|
||||||
validates :name, :uniqueness => {:case_sensitive => false}, :presence => true, :format => { :with => /^[a-zA-Z0-9_\-]+$/ }
|
validates :name, :uniqueness => {:case_sensitive => false}, :presence => true, :format => { :with => /^[a-zA-Z0-9_\-]+$/ }
|
||||||
validates :distrib_type, :presence => true, :inclusion => {:in => APP_CONFIG['distr_types']}
|
validates :distrib_type, :presence => true, :inclusion => {:in => APP_CONFIG['distr_types']}
|
||||||
|
|
||||||
|
before_create :create_directory, :if => lambda {Thread.current[:skip]} # TODO remove this when core will be ready
|
||||||
before_create :xml_rpc_create, :unless => lambda {Thread.current[:skip]}
|
before_create :xml_rpc_create, :unless => lambda {Thread.current[:skip]}
|
||||||
before_destroy :xml_rpc_destroy
|
before_destroy :xml_rpc_destroy
|
||||||
# before_update :check_freezing
|
# before_update :check_freezing
|
||||||
|
@ -98,27 +99,23 @@ class Platform < ActiveRecord::Base
|
||||||
platform_type == 'personal'
|
platform_type == 'personal'
|
||||||
end
|
end
|
||||||
|
|
||||||
def full_clone(attrs) # :description, :name, :owner
|
def base_clone(attrs = {}) # :description, :name, :owner
|
||||||
clone.tap do |c|
|
clone.tap do |c|
|
||||||
c.attributes = attrs
|
c.attributes = attrs # attrs.each {|k,v| c.send("#{k}=", v)}
|
||||||
c.updated_at = nil; c.created_at = nil # :id = nil
|
c.updated_at = nil; c.created_at = nil # :id = nil
|
||||||
c.parent = self
|
c.parent = self
|
||||||
new_attrs = {:platform_id => nil}
|
|
||||||
c.repositories = repositories.map{|r| r.full_clone(new_attrs.merge(:owner_id => attrs[:owner_id], :owner_type => attrs[:owner_type]))}
|
|
||||||
c.products = products.map{|p| p.full_clone(new_attrs)}
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# TODO * make it Delayed Job *
|
def clone_relations(from = parent)
|
||||||
def make_clone(attrs)
|
self.repositories = from.repositories.map{|r| r.full_clone(:platform_id => id)}
|
||||||
p = full_clone(attrs)
|
self.products = from.products.map(&:full_clone)
|
||||||
begin
|
end
|
||||||
Thread.current[:skip] = true
|
|
||||||
p.save and xml_rpc_clone(attrs[:name])
|
def full_clone(attrs = {})
|
||||||
ensure
|
base_clone(attrs).tap do |c|
|
||||||
Thread.current[:skip] = false
|
with_skip {c.save} and c.clone_relations(self) and c.delay.xml_rpc_clone
|
||||||
end
|
end
|
||||||
p
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def name
|
def name
|
||||||
|
@ -135,9 +132,13 @@ class Platform < ActiveRecord::Base
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def create_directory
|
||||||
|
system("sudo mkdir -p -m 0777 #{path}")
|
||||||
|
end
|
||||||
|
|
||||||
def mount_directory_for_rsync
|
def mount_directory_for_rsync
|
||||||
# umount_directory_for_rsync # TODO ignore errors
|
# umount_directory_for_rsync # TODO ignore errors
|
||||||
system("sudo mkdir -p #{mount_path}")
|
system("sudo mkdir -p -m 0777 #{mount_path}")
|
||||||
system("sudo mount --bind #{path} #{mount_path}")
|
system("sudo mount --bind #{path} #{mount_path}")
|
||||||
Arch.all.each do |arch|
|
Arch.all.each do |arch|
|
||||||
str = "country=Russian Federation,city=Moscow,latitude=52.18,longitude=48.88,bw=1GB,version=2011,arch=#{arch.name},type=distrib,url=#{public_downloads_url}\n"
|
str = "country=Russian Federation,city=Moscow,latitude=52.18,longitude=48.88,bw=1GB,version=2011,arch=#{arch.name},type=distrib,url=#{public_downloads_url}\n"
|
||||||
|
@ -157,6 +158,23 @@ class Platform < ActiveRecord::Base
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def build_all(user)
|
||||||
|
repositories.find_by_name('main').projects.find_in_batches(:batch_size => 5) do |group|
|
||||||
|
sleep 1
|
||||||
|
group.each do |p|
|
||||||
|
begin
|
||||||
|
p.build_for(self, user)
|
||||||
|
rescue RuntimeError, Exception
|
||||||
|
p.delay.build_for(self, user)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def destroy
|
||||||
|
with_skip {super} # avoid cascade XML RPC requests
|
||||||
|
end
|
||||||
|
|
||||||
protected
|
protected
|
||||||
|
|
||||||
def build_path(dir)
|
def build_path(dir)
|
||||||
|
@ -181,12 +199,12 @@ class Platform < ActiveRecord::Base
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def xml_rpc_clone(new_name)
|
def xml_rpc_clone(old_name = parent.name, new_name = name)
|
||||||
result = BuildServer.clone_platform new_name, self.name, APP_CONFIG['root_path'] + '/platforms'
|
result = BuildServer.clone_platform new_name, old_name, APP_CONFIG['root_path'] + '/platforms'
|
||||||
if result == BuildServer::SUCCESS
|
if result == BuildServer::SUCCESS
|
||||||
return true
|
return true
|
||||||
else
|
else
|
||||||
raise "Failed to clone platform #{name} with code #{result}. Path: #{build_path(name)} to platform #{new_name}"
|
raise "Failed to clone platform #{old_name} with code #{result}. Path: #{build_path(old_name)} to platform #{new_name}"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -59,9 +59,10 @@ class Product < ActiveRecord::Base
|
||||||
EOF
|
EOF
|
||||||
end
|
end
|
||||||
|
|
||||||
def full_clone(attrs) # owner
|
def full_clone(attrs = {})
|
||||||
clone.tap do |c| # dup
|
clone.tap do |c| # dup
|
||||||
c.attributes = attrs
|
c.platform_id = nil
|
||||||
|
attrs.each {|k,v| c.send("#{k}=", v)}
|
||||||
c.updated_at = nil; c.created_at = nil # :id = nil
|
c.updated_at = nil; c.created_at = nil # :id = nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -15,6 +15,10 @@ class ProductBuildList < ActiveRecord::Base
|
||||||
|
|
||||||
after_create :xml_rpc_create
|
after_create :xml_rpc_create
|
||||||
|
|
||||||
|
def container_path
|
||||||
|
"/downloads/#{product.platform.name}/product/#{id}/"
|
||||||
|
end
|
||||||
|
|
||||||
def human_status
|
def human_status
|
||||||
I18n.t("layout.product_build_lists.statuses.#{status}")
|
I18n.t("layout.product_build_lists.statuses.#{status}")
|
||||||
end
|
end
|
||||||
|
|
|
@ -19,7 +19,7 @@ class Project < ActiveRecord::Base
|
||||||
has_many :groups, :through => :relations, :source => :object, :source_type => 'Group'
|
has_many :groups, :through => :relations, :source => :object, :source_type => 'Group'
|
||||||
has_many :labels
|
has_many :labels
|
||||||
|
|
||||||
validates :name, :uniqueness => {:scope => [:owner_id, :owner_type], :case_sensitive => false}, :presence => true, :format => { :with => /^[a-zA-Z0-9_\-\+\.]+$/ }
|
validates :name, :uniqueness => {:scope => [:owner_id, :owner_type], :case_sensitive => false}, :presence => true, :format => {:with => /^[a-zA-Z0-9_\-\+\.]+$/}
|
||||||
validates :owner, :presence => true
|
validates :owner, :presence => true
|
||||||
validate { errors.add(:base, :can_have_less_or_equal, :count => MAX_OWN_PROJECTS) if owner.projects.size >= MAX_OWN_PROJECTS }
|
validate { errors.add(:base, :can_have_less_or_equal, :count => MAX_OWN_PROJECTS) if owner.projects.size >= MAX_OWN_PROJECTS }
|
||||||
# validate {errors.add(:base, I18n.t('flash.project.save_warning_ssh_key')) if owner.ssh_key.blank?}
|
# validate {errors.add(:base, I18n.t('flash.project.save_warning_ssh_key')) if owner.ssh_key.blank?}
|
||||||
|
@ -66,10 +66,9 @@ class Project < ActiveRecord::Base
|
||||||
build_lists.create do |bl|
|
build_lists.create do |bl|
|
||||||
bl.pl = platform
|
bl.pl = platform
|
||||||
bl.bpl = platform
|
bl.bpl = platform
|
||||||
bl.update_type = 'recommended'
|
bl.update_type = 'newpackage'
|
||||||
bl.arch = Arch.find_by_name('x86_64') # Return i586 after mass rebuild
|
bl.arch = Arch.find_by_name('x86_64') # Return i586 after mass rebuild
|
||||||
# FIXME: Need to set "latest_#{platform.name}"
|
bl.project_version = "latest_#{platform.name}" # "latest_import_mandriva2011"
|
||||||
bl.project_version = "latest_import_mandriva2011"
|
|
||||||
bl.build_requires = false # already set as db default
|
bl.build_requires = false # already set as db default
|
||||||
bl.user = user
|
bl.user = user
|
||||||
bl.auto_publish = true # already set as db default
|
bl.auto_publish = true # already set as db default
|
||||||
|
@ -213,9 +212,20 @@ class Project < ActiveRecord::Base
|
||||||
end
|
end
|
||||||
|
|
||||||
def write_hook
|
def write_hook
|
||||||
|
is_production = ENV['RAILS_ENV'] == 'production'
|
||||||
|
hook = File.join(::Rails.root.to_s, 'tmp', "post-receive-hook")
|
||||||
|
FileUtils.cp(File.join(::Rails.root.to_s, 'bin', "post-receive-hook.partial"), hook)
|
||||||
|
File.open(hook, 'a') do |f|
|
||||||
|
s = "\n /bin/bash -l -c \"cd #{is_production ? '/srv/rosa_build/current' : Rails.root.to_s} && #{is_production ? 'RAILS_ENV=production' : ''} bundle exec rails runner 'Project.delay.process_hook(\"$owner\", \"$reponame\", \"$newrev\", \"$oldrev\", \"$ref\", \"$newrev_type\", \"$oldrev_type\")'\""
|
||||||
|
s << " > /dev/null 2>&1" if is_production
|
||||||
|
s << "\ndone\n"
|
||||||
|
f.write(s)
|
||||||
|
end
|
||||||
|
|
||||||
hook_file = File.join(path, 'hooks', 'post-receive')
|
hook_file = File.join(path, 'hooks', 'post-receive')
|
||||||
FileUtils.cp(File.join(::Rails.root.to_s, 'lib', 'post-receive-hook'), hook_file)
|
FileUtils.cp(hook, hook_file)
|
||||||
#File.chmod(0775, hook_file) # need?
|
FileUtils.rm_rf(hook)
|
||||||
|
|
||||||
rescue Exception # FIXME
|
rescue Exception # FIXME
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -6,7 +6,7 @@ class ProjectToRepository < ActiveRecord::Base
|
||||||
delegate :path, :to => :project
|
delegate :path, :to => :project
|
||||||
|
|
||||||
after_create lambda { project.xml_rpc_create(repository) }, :unless => lambda {Thread.current[:skip]}
|
after_create lambda { project.xml_rpc_create(repository) }, :unless => lambda {Thread.current[:skip]}
|
||||||
after_destroy lambda { project.xml_rpc_destroy(repository) }
|
after_destroy lambda { project.xml_rpc_destroy(repository) }, :unless => lambda {Thread.current[:skip]}
|
||||||
# after_rollback lambda { project.xml_rpc_destroy(repository) rescue true if new_record? }
|
# after_rollback lambda { project.xml_rpc_destroy(repository) rescue true if new_record? }
|
||||||
|
|
||||||
validate :one_project_in_platform_repositories
|
validate :one_project_in_platform_repositories
|
||||||
|
|
|
@ -22,7 +22,8 @@ class Relation < ActiveRecord::Base
|
||||||
end
|
end
|
||||||
|
|
||||||
protected
|
protected
|
||||||
def add_default_role
|
|
||||||
self.role = ROLES.first if role.nil? || role.empty?
|
def add_default_role
|
||||||
end
|
self.role = ROLES.first if role.nil? || role.empty?
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,37 +1,39 @@
|
||||||
# -*- encoding : utf-8 -*-
|
# -*- encoding : utf-8 -*-
|
||||||
class Repository < ActiveRecord::Base
|
class Repository < ActiveRecord::Base
|
||||||
belongs_to :platform
|
belongs_to :platform
|
||||||
belongs_to :owner, :polymorphic => true
|
|
||||||
|
|
||||||
has_many :projects, :through => :project_to_repositories #, :dependent => :destroy
|
has_many :project_to_repositories, :dependent => :destroy, :validate => true
|
||||||
has_many :project_to_repositories, :validate => true, :dependent => :destroy
|
has_many :projects, :through => :project_to_repositories
|
||||||
|
|
||||||
has_many :relations, :as => :target, :dependent => :destroy
|
validates :description, :presence => true
|
||||||
has_many :objects, :as => :target, :class_name => 'Relation', :dependent => :destroy
|
validates :name, :uniqueness => {:scope => :platform_id, :case_sensitive => false}, :presence => true, :format => {:with => /^[a-z0-9_\-]+$/}
|
||||||
has_many :members, :through => :objects, :source => :object, :source_type => 'User'
|
|
||||||
has_many :groups, :through => :objects, :source => :object, :source_type => 'Group'
|
|
||||||
|
|
||||||
validates :description, :uniqueness => {:scope => :platform_id}, :presence => true
|
|
||||||
validates :name, :uniqueness => {:scope => :platform_id, :case_sensitive => false}, :presence => true, :format => { :with => /^[a-z0-9_\-]+$/ }
|
|
||||||
# validates :platform_id, :presence => true # if you uncomment this platform clone will not work
|
|
||||||
|
|
||||||
scope :recent, order("name ASC")
|
scope :recent, order("name ASC")
|
||||||
|
|
||||||
before_create :xml_rpc_create, :unless => lambda {Thread.current[:skip]}
|
before_create :xml_rpc_create, :unless => lambda {Thread.current[:skip]}
|
||||||
before_destroy :xml_rpc_destroy
|
before_destroy :xml_rpc_destroy, :unless => lambda {Thread.current[:skip]}
|
||||||
after_create :add_admin_relations
|
|
||||||
|
|
||||||
attr_accessible :description, :name #, :platform_id
|
attr_accessible :description, :name
|
||||||
|
|
||||||
def full_clone(attrs) # owner
|
def base_clone(attrs = {})
|
||||||
clone.tap do |c| # dup
|
clone.tap do |c| # dup
|
||||||
c.attributes = attrs
|
c.platform_id = nil
|
||||||
|
attrs.each {|k,v| c.send("#{k}=", v)}
|
||||||
c.updated_at = nil; c.created_at = nil # :id = nil
|
c.updated_at = nil; c.created_at = nil # :id = nil
|
||||||
c.projects = projects
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
include Modules::Models::Owner
|
def clone_relations(from)
|
||||||
|
with_skip do
|
||||||
|
from.projects.find_each {|p| self.projects << p}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def full_clone(attrs = {})
|
||||||
|
base_clone(attrs).tap do |c|
|
||||||
|
with_skip {c.save} and c.delay.clone_relations(self)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
class << self
|
class << self
|
||||||
def build_stub(platform)
|
def build_stub(platform)
|
||||||
|
@ -43,31 +45,21 @@ class Repository < ActiveRecord::Base
|
||||||
|
|
||||||
protected
|
protected
|
||||||
|
|
||||||
def xml_rpc_create
|
def xml_rpc_create
|
||||||
result = BuildServer.create_repo name, platform.name
|
result = BuildServer.create_repo name, platform.name
|
||||||
if result == BuildServer::SUCCESS
|
if result == BuildServer::SUCCESS
|
||||||
return true
|
return true
|
||||||
else
|
else
|
||||||
raise "Failed to create repository #{name} inside platform #{platform.name} with code #{result}."
|
raise "Failed to create repository #{name} inside platform #{platform.name} with code #{result}."
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def xml_rpc_destroy
|
def xml_rpc_destroy
|
||||||
result = BuildServer.delete_repo name, platform.name
|
result = BuildServer.delete_repo name, platform.name
|
||||||
if result == BuildServer::SUCCESS
|
if result == BuildServer::SUCCESS
|
||||||
return true
|
return true
|
||||||
else
|
else
|
||||||
raise "Failed to delete repository #{name} inside platform #{platform.name} with code #{result}."
|
raise "Failed to delete repository #{name} inside platform #{platform.name} with code #{result}."
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def add_admin_relations
|
|
||||||
platform.relations.where(:role => 'admin').each do |rel|
|
|
||||||
if !relations.exists?(:role => 'admin', :object_type => rel.object_type, :object_id => rel.object_id) && rel.object != owner
|
|
||||||
r = relations.build(:role => 'admin', :object_type => rel.object_type)
|
|
||||||
r.object_id = rel.object_id
|
|
||||||
r.save
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -11,22 +11,19 @@ class User < ActiveRecord::Base
|
||||||
|
|
||||||
has_many :authentications, :dependent => :destroy
|
has_many :authentications, :dependent => :destroy
|
||||||
has_many :build_lists, :dependent => :destroy
|
has_many :build_lists, :dependent => :destroy
|
||||||
|
has_many :subscribes, :foreign_key => :user_id, :dependent => :destroy
|
||||||
|
has_many :comments, :dependent => :destroy
|
||||||
|
|
||||||
has_many :relations, :as => :object, :dependent => :destroy
|
has_many :relations, :as => :object, :dependent => :destroy
|
||||||
has_many :targets, :as => :object, :class_name => 'Relation'
|
has_many :targets, :as => :object, :class_name => 'Relation'
|
||||||
|
|
||||||
has_many :own_projects, :as => :owner, :class_name => 'Project', :dependent => :destroy
|
|
||||||
has_many :own_groups, :foreign_key => :owner_id, :class_name => 'Group'
|
|
||||||
has_many :own_platforms, :as => :owner, :class_name => 'Platform', :dependent => :destroy
|
|
||||||
has_many :own_repositories, :as => :owner, :class_name => 'Repository', :dependent => :destroy
|
|
||||||
|
|
||||||
has_many :groups, :through => :targets, :source => :target, :source_type => 'Group', :autosave => true
|
|
||||||
has_many :projects, :through => :targets, :source => :target, :source_type => 'Project', :autosave => true
|
has_many :projects, :through => :targets, :source => :target, :source_type => 'Project', :autosave => true
|
||||||
|
has_many :groups, :through => :targets, :source => :target, :source_type => 'Group', :autosave => true
|
||||||
has_many :platforms, :through => :targets, :source => :target, :source_type => 'Platform', :autosave => true
|
has_many :platforms, :through => :targets, :source => :target, :source_type => 'Platform', :autosave => true
|
||||||
has_many :repositories, :through => :targets, :source => :target, :source_type => 'Repository', :autosave => true
|
|
||||||
has_many :subscribes, :foreign_key => :user_id, :dependent => :destroy
|
|
||||||
|
|
||||||
has_many :comments, :dependent => :destroy
|
has_many :own_projects, :as => :owner, :class_name => 'Project', :dependent => :destroy
|
||||||
|
has_many :own_groups, :foreign_key => :owner_id, :class_name => 'Group', :dependent => :destroy
|
||||||
|
has_many :own_platforms, :as => :owner, :class_name => 'Platform', :dependent => :destroy
|
||||||
|
|
||||||
include Modules::Models::PersonalRepository
|
include Modules::Models::PersonalRepository
|
||||||
|
|
||||||
|
|
|
@ -46,5 +46,5 @@
|
||||||
|
|
||||||
.group.navform.wat-cf
|
.group.navform.wat-cf
|
||||||
%button.button{ :type => "submit" }
|
%button.button{ :type => "submit" }
|
||||||
= image_tag("web-app-theme/icons/tick.png", :alt => "Save")
|
= image_tag("choose.png", :alt => "Save")
|
||||||
= t("layout.search")
|
= t("layout.search")
|
||||||
|
|
|
@ -56,7 +56,7 @@
|
||||||
|
|
||||||
.group.navform.wat-cf
|
.group.navform.wat-cf
|
||||||
%button.button{:type => "submit"}
|
%button.button{:type => "submit"}
|
||||||
= image_tag("web-app-theme/icons/tick.png", :alt => t("layout.projects.build_button"))
|
= image_tag("choose.png", :alt => t("layout.projects.build_button"))
|
||||||
= t("layout.projects.build_button")
|
= t("layout.projects.build_button")
|
||||||
%span.text_button_padding= t("layout.or")
|
%span.text_button_padding= t("layout.or")
|
||||||
= link_to t("layout.cancel"), root_path, :class => "text_button_padding link_button"
|
= link_to t("layout.cancel"), root_path, :class => "text_button_padding link_button"
|
||||||
|
|
|
@ -94,7 +94,7 @@
|
||||||
|
|
||||||
- if @build_list.can_publish?
|
- if @build_list.can_publish?
|
||||||
.wat-cf
|
.wat-cf
|
||||||
= link_to image_tag("web-app-theme/icons/tick.png", :alt => t("layout.publish")) + " " + t("layout.publish"), publish_build_list_path(@build_list), :method => "put", :class => "button", :confirm => t("layout.confirm")
|
= link_to image_tag("choose.png", :alt => t("layout.publish")) + " " + t("layout.publish"), publish_build_list_path(@build_list), :method => "put", :class => "button", :confirm => t("layout.confirm")
|
||||||
|
|
||||||
.block
|
.block
|
||||||
.content
|
.content
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
|
|
||||||
.group.navform.wat-cf
|
.group.navform.wat-cf
|
||||||
%button.button{:type => "submit"}
|
%button.button{:type => "submit"}
|
||||||
= image_tag("web-app-theme/icons/tick.png", :alt => t("layout.save"))
|
= image_tag("choose.png", :alt => t("layout.save"))
|
||||||
= t("layout.save")
|
= t("layout.save")
|
||||||
%span.text_button_padding= t("layout.or")
|
%span.text_button_padding= t("layout.or")
|
||||||
= link_to t("layout.cancel"), categories_path, :class => "text_button_padding link_button"
|
= link_to t("layout.cancel"), categories_path, :class => "text_button_padding link_button"
|
||||||
|
|
|
@ -47,7 +47,7 @@
|
||||||
= label_tag "group[#{group.id}]", t("layout.collaborators.add")
|
= label_tag "group[#{group.id}]", t("layout.collaborators.add")
|
||||||
.group.navform.wat-cf
|
.group.navform.wat-cf
|
||||||
%button.button{:type => "submit"}
|
%button.button{:type => "submit"}
|
||||||
= image_tag("web-app-theme/icons/tick.png", :alt => t("layout.save"))
|
= image_tag("choose.png", :alt => t("layout.save"))
|
||||||
= t("layout.save")
|
= t("layout.save")
|
||||||
%span.text_button_padding= t("layout.or")
|
%span.text_button_padding= t("layout.or")
|
||||||
= link_to t("layout.cancel"), project_collaborators_path(@project), :class => "text_button_padding link_button"
|
= link_to t("layout.cancel"), project_collaborators_path(@project), :class => "text_button_padding link_button"
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
.content
|
.content
|
||||||
.inner
|
.inner
|
||||||
= form_tag add_project_collaborators_path(@project) do
|
= form_tag add_project_collaborators_path(@project) do
|
||||||
= javascript_include_tag 'autocomplete-rails.js'
|
|
||||||
.group
|
.group
|
||||||
%h2.title= t("layout.collaborators.add")
|
%h2.title= t("layout.collaborators.add")
|
||||||
= label_tag "member_uname", t("layout.collaborators.input_username")
|
= label_tag "member_uname", t("layout.collaborators.input_username")
|
||||||
|
@ -22,7 +21,7 @@
|
||||||
%br
|
%br
|
||||||
.group.navform.wat-cf
|
.group.navform.wat-cf
|
||||||
%button.button{:type => "submit"}
|
%button.button{:type => "submit"}
|
||||||
= image_tag("web-app-theme/icons/tick.png", :alt => t("layout.add"))
|
= image_tag("choose.png", :alt => t("layout.add"))
|
||||||
= t("layout.add")
|
= t("layout.add")
|
||||||
|
|
||||||
= form_tag project_collaborators_path(@project) do
|
= form_tag project_collaborators_path(@project) do
|
||||||
|
@ -67,7 +66,7 @@
|
||||||
= group.uname
|
= group.uname
|
||||||
.group.navform.wat-cf
|
.group.navform.wat-cf
|
||||||
%button.button{:type => "submit"}
|
%button.button{:type => "submit"}
|
||||||
= image_tag("web-app-theme/icons/tick.png", :alt => t("layout.save"))
|
= image_tag("choose.png", :alt => t("layout.save"))
|
||||||
= t("layout.save")
|
= t("layout.save")
|
||||||
%span.text_button_padding= t("layout.or")
|
%span.text_button_padding= t("layout.or")
|
||||||
= link_to t("layout.cancel"), project_path(@project), :class => "text_button_padding link_button"
|
= link_to t("layout.cancel"), project_path(@project), :class => "text_button_padding link_button"
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
.group.navform.wat-cf
|
.group.navform.wat-cf
|
||||||
%button.button{:type => "submit"}
|
%button.button{:type => "submit"}
|
||||||
= image_tag("web-app-theme/icons/tick.png", :alt => t("layout.save"))
|
= image_tag("choose.png", :alt => t("layout.save"))
|
||||||
= t("layout.save")
|
= t("layout.save")
|
||||||
%span.text_button_padding= t("layout.or")
|
%span.text_button_padding= t("layout.or")
|
||||||
= link_to t("layout.cancel"), @commentable_path , :class => "text_button_padding link_button"
|
= link_to t("layout.cancel"), @commentable_path , :class => "text_button_padding link_button"
|
||||||
|
|
|
@ -20,7 +20,8 @@
|
||||||
- edit_path = edit_project_commit_comment_path(project, commentable, comment)
|
- edit_path = edit_project_commit_comment_path(project, commentable, comment)
|
||||||
- delete_path = project_commit_comment_path(project, commentable, comment)
|
- delete_path = project_commit_comment_path(project, commentable, comment)
|
||||||
= link_to t("layout.edit"), edit_path if can? :update, comment
|
= link_to t("layout.edit"), edit_path if can? :update, comment
|
||||||
= link_to image_tag("web-app-theme/icons/cross.png", :alt => t("layout.delete")) + " " + t("layout.delete"), delete_path, :method => "delete", :class => "button", :confirm => t("layout.comments.confirm_delete") if can? :delete, comment
|
=# link_to image_tag("x.png", :alt => t("layout.delete")) + " " + t("layout.delete"), delete_path, :method => "delete", :class => "button", :confirm => t("layout.comments.confirm_delete") if can? :delete, comment
|
||||||
|
= link_to t("layout.delete"), delete_path, :method => "delete", :confirm => t("layout.comments.confirm_delete") if can? :delete, comment
|
||||||
|
|
||||||
.block
|
.block
|
||||||
.content
|
.content
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
.group.navform.wat-cf
|
.group.navform.wat-cf
|
||||||
%button.button{:tyle => "submit"}
|
%button.button{:tyle => "submit"}
|
||||||
= image_tag("web-app-theme/icons/tick.png", :alt => t("devise.confirmations.send"))
|
= image_tag("choose.png", :alt => t("devise.confirmations.send"))
|
||||||
= t("devise.confirmations.send")
|
= t("devise.confirmations.send")
|
||||||
%span.text_button_padding
|
%span.text_button_padding
|
||||||
= render :partial => "devise/shared/links"
|
= render :partial => "devise/shared/links"
|
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
.group.navform.wat-cf
|
.group.navform.wat-cf
|
||||||
%button.button{:tyle => "submit"}
|
%button.button{:tyle => "submit"}
|
||||||
= image_tag("web-app-theme/icons/application_edit.png", :alt => t("devise.passwords.edit_button"))
|
= image_tag("code.png", :alt => t("devise.passwords.edit_button"))
|
||||||
= t("devise.passwords.edit_button")
|
= t("devise.passwords.edit_button")
|
||||||
%span.text_button_padding
|
%span.text_button_padding
|
||||||
= render :partial => "devise/shared/links"
|
= render :partial => "devise/shared/links"
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
.group.navform.wat-cf
|
.group.navform.wat-cf
|
||||||
%button.button{:tyle => "submit"}
|
%button.button{:tyle => "submit"}
|
||||||
= image_tag "web-app-theme/icons/tick.png", :alt => t("devise.passwords.button")
|
= image_tag "choose.png", :alt => t("devise.passwords.button")
|
||||||
= t("devise.passwords.button")
|
= t("devise.passwords.button")
|
||||||
%span.text_button_padding
|
%span.text_button_padding
|
||||||
= render :partial => "devise/shared/links"
|
= render :partial => "devise/shared/links"
|
|
@ -67,10 +67,10 @@
|
||||||
|
|
||||||
.group.navform.wat-cf
|
.group.navform.wat-cf
|
||||||
%button.button{:type => "submit"}
|
%button.button{:type => "submit"}
|
||||||
= image_tag("web-app-theme/icons/tick.png", :alt => t("devise.registrations.signed_up"))
|
= image_tag("choose.png", :alt => t("devise.registrations.signed_up"))
|
||||||
= t("layout.save")
|
= t("layout.save")
|
||||||
|
|
||||||
= link_to image_tag("web-app-theme/icons/cross.png", :alt => t("devise.registrations.cancel")) + " " + t("devise.registrations.cancel"), registration_path(resource_name), :method => :delete, :class => "button", :confirm => t("devise.registrations.cancel_confirmation")
|
= link_to image_tag("x.png", :alt => t("devise.registrations.cancel")) + " " + t("devise.registrations.cancel"), registration_path(resource_name), :method => :delete, :class => "button", :confirm => t("devise.registrations.cancel_confirmation")
|
||||||
|
|
||||||
%span.text_button_padding
|
%span.text_button_padding
|
||||||
= link_to t('layout.back'), :back, :class => "text_button_padding link_button"
|
= link_to t('layout.back'), :back, :class => "text_button_padding link_button"
|
||||||
|
|
|
@ -46,7 +46,7 @@
|
||||||
|
|
||||||
.group.navform.wat-cf
|
.group.navform.wat-cf
|
||||||
%button.button{:type => "submit"}
|
%button.button{:type => "submit"}
|
||||||
= image_tag("web-app-theme/icons/tick.png", :alt => t("devise.registrations.sign_up_header"))
|
= image_tag("choose.png", :alt => t("devise.registrations.sign_up_header"))
|
||||||
= t("devise.registrations.sign_up_header")
|
= t("devise.registrations.sign_up_header")
|
||||||
%span.text_button_padding
|
%span.text_button_padding
|
||||||
= render :partial => "devise/shared/links"
|
= render :partial => "devise/shared/links"
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
.group.navform.wat-cf
|
.group.navform.wat-cf
|
||||||
.right
|
.right
|
||||||
%button.button{:type => "submit"}
|
%button.button{:type => "submit"}
|
||||||
= image_tag 'web-app-theme/icons/key.png', :alt => "Save"
|
= image_tag 'code.png', :alt => "Save"
|
||||||
= t("layout.login")
|
= t("layout.login")
|
||||||
%span.text_button_padding
|
%span.text_button_padding
|
||||||
= render :partial => "devise/shared/links"
|
= render :partial => "devise/shared/links"
|
||||||
|
|
|
@ -5,13 +5,13 @@
|
||||||
= text_area_tag :content, @blob.data.encode_to_default, :id => "gollum-editor-body"
|
= text_area_tag :content, @blob.data.encode_to_default, :id => "gollum-editor-body"
|
||||||
|
|
||||||
#gollum-editor-edit-summary.singleline
|
#gollum-editor-edit-summary.singleline
|
||||||
= label_tag :message, t("layout.wiki.edit_commit_message"), :class => "jaws"
|
= label_tag :message, t("wiki.edit_commit_message"), :class => "jaws"
|
||||||
= text_field_tag :message, t("layout.wiki.commit_message_placeholder"), :id => "editor-commit-message-field"
|
= text_field_tag :message, t("wiki.commit_message_placeholder"), :id => "editor-commit-message-field"
|
||||||
|
|
||||||
%span.jaws
|
%span.jaws
|
||||||
%br
|
%br
|
||||||
|
|
||||||
= submit_tag t("layout.wiki.save_button"), :id => "gollum-editor-submit", :title => t("layout.wiki.save_changes")
|
= submit_tag t("wiki.save_button"), :id => "gollum-editor-submit", :title => t("wiki.save_changes")
|
||||||
= link_to t("layout.cancel"), blob_file_path, :class => 'minibutton', :id => 'gollum-editor-preview'
|
= link_to t("layout.cancel"), blob_file_path, :class => 'minibutton', :id => 'gollum-editor-preview'
|
||||||
|
|
||||||
:javascript
|
:javascript
|
||||||
|
@ -19,8 +19,8 @@
|
||||||
$.BlobEditor();
|
$.BlobEditor();
|
||||||
});
|
});
|
||||||
|
|
||||||
- content_for :javascripts do
|
/ - content_for :javascripts do
|
||||||
= javascript_include_tag 'gollum/gollum.placeholder.js', 'blob.editor.js'
|
/ = javascript_include_tag 'gollum/gollum.placeholder.js', 'blob.editor.js'
|
||||||
|
/
|
||||||
- content_for :stylesheets do
|
/ - content_for :stylesheets do
|
||||||
= stylesheet_link_tag 'gollum/editor.css'
|
/ = stylesheet_link_tag 'gollum/editor.css'
|
||||||
|
|
|
@ -32,9 +32,9 @@
|
||||||
%tr{ :class => cycle("even", "odd")}
|
%tr{ :class => cycle("even", "odd")}
|
||||||
%td.icon
|
%td.icon
|
||||||
- if entry.is_a?(Grit::Blob)
|
- if entry.is_a?(Grit::Blob)
|
||||||
= image_tag("git/icons/text_document_16.png")
|
= image_tag("code.png")
|
||||||
- else
|
- else
|
||||||
= image_tag("git/icons/folder_16.png")
|
= image_tag("folder.png")
|
||||||
%td.tree_element
|
%td.tree_element
|
||||||
- entry_path = File.join([@path.present? ? @path.encode_to_default : nil, entry.name.encode_to_default].compact)
|
- entry_path = File.join([@path.present? ? @path.encode_to_default : nil, entry.name.encode_to_default].compact)
|
||||||
- if entry.is_a?(Grit::Blob)
|
- if entry.is_a?(Grit::Blob)
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
|
|
||||||
.group.navform.wat-cf
|
.group.navform.wat-cf
|
||||||
%button.button{:type => "submit"}
|
%button.button{:type => "submit"}
|
||||||
= image_tag("web-app-theme/icons/tick.png", :alt => t("layout.save"))
|
= image_tag("choose.png", :alt => t("layout.save"))
|
||||||
= t("layout.save")
|
= t("layout.save")
|
||||||
%span.text_button_padding= t("layout.or")
|
%span.text_button_padding= t("layout.or")
|
||||||
= link_to t("layout.cancel"), users_path, :class => "text_button_padding link_button"
|
= link_to t("layout.cancel"), users_path, :class => "text_button_padding link_button"
|
||||||
|
|
|
@ -27,8 +27,8 @@
|
||||||
\:
|
\:
|
||||||
= @group.created_at
|
= @group.created_at
|
||||||
.wat-cf
|
.wat-cf
|
||||||
= link_to image_tag("web-app-theme/icons/application_edit.png", :alt => t("layout.edit")) + " " + t("layout.edit"), edit_group_path(@group), :class => "button"
|
= link_to image_tag("code.png", :alt => t("layout.edit")) + " " + t("layout.edit"), edit_group_path(@group), :class => "button"
|
||||||
= link_to image_tag("web-app-theme/icons/cross.png", :alt => t("layout.delete")) + " " + t("layout.delete"), group_path(@group), :method => "delete", :class => "button", :confirm => t("layout.groups.confirm_delete")
|
= link_to image_tag("x.png", :alt => t("layout.delete")) + " " + t("layout.delete"), group_path(@group), :method => "delete", :class => "button", :confirm => t("layout.groups.confirm_delete")
|
||||||
|
|
||||||
.block
|
.block
|
||||||
.secondary-navigation
|
.secondary-navigation
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
= csrf_meta_tag
|
= csrf_meta_tag
|
||||||
|
|
||||||
%body
|
%body
|
||||||
.wrap.columns
|
.wrap{:class => content_for?(:sidebar) ? 'columns' : ''}
|
||||||
%header
|
%header
|
||||||
.left
|
.left
|
||||||
.middle
|
.middle
|
||||||
|
@ -20,9 +20,7 @@
|
||||||
.search
|
.search
|
||||||
.pic
|
.pic
|
||||||
.field
|
.field
|
||||||
%input.gray{:onclick => "if(this.value=='#{t "layout.search"}'){this.value='';this.className='black';}",
|
%input.gray{:onclick => "if(this.value=='#{t "layout.search"}'){this.value='';this.className='black';}", :onblur => "if(this.value==''){this.value='#{t "layout.search"}';this.className='gray';}", :type => "text", :value => "#{t "layout.search"}"}
|
||||||
:onblur => "if(this.value==''){this.value='#{t "layout.search"}';this.className='gray';}",
|
|
||||||
:type => "text", :value => "#{t "layout.search"}"}
|
|
||||||
.user
|
.user
|
||||||
.avatar= image_tag 'ava.png', :alt => 'avatar', :height => "30"
|
.avatar= image_tag 'ava.png', :alt => 'avatar', :height => "30"
|
||||||
.profile
|
.profile
|
||||||
|
|
|
@ -28,13 +28,12 @@
|
||||||
= user.uname
|
= user.uname
|
||||||
.group.navform.wat-cf
|
.group.navform.wat-cf
|
||||||
%button.button{:type => "submit"}
|
%button.button{:type => "submit"}
|
||||||
= image_tag("web-app-theme/icons/tick.png", :alt => t("layout.save"))
|
= image_tag("choose.png", :alt => t("layout.save"))
|
||||||
= t("layout.save")
|
= t("layout.save")
|
||||||
%span.text_button_padding= t("layout.or")
|
%span.text_button_padding= t("layout.or")
|
||||||
= link_to t("layout.cancel"), group_path(parent), :class => "text_button_padding link_button"
|
= link_to t("layout.cancel"), group_path(parent), :class => "text_button_padding link_button"
|
||||||
|
|
||||||
= form_tag add_group_members_path(parent) do
|
= form_tag add_group_members_path(parent) do
|
||||||
= javascript_include_tag 'autocomplete-rails.js'
|
|
||||||
.group
|
.group
|
||||||
%h2.title= t("layout.members.add_member")
|
%h2.title= t("layout.members.add_member")
|
||||||
= label_tag "", t("layout.members.input_username")
|
= label_tag "", t("layout.members.input_username")
|
||||||
|
@ -42,6 +41,6 @@
|
||||||
%br
|
%br
|
||||||
.group.navform.wat-cf
|
.group.navform.wat-cf
|
||||||
%button.button{:type => "submit"}
|
%button.button{:type => "submit"}
|
||||||
= image_tag("web-app-theme/icons/tick.png", :alt => t("layout.add"))
|
= image_tag("choose.png", :alt => t("layout.add"))
|
||||||
= t("layout.add")
|
= t("layout.add")
|
||||||
|
|
||||||
|
|
|
@ -20,23 +20,13 @@
|
||||||
= t("activerecord.attributes.repository.platform")
|
= t("activerecord.attributes.repository.platform")
|
||||||
\:
|
\:
|
||||||
= link_to @repository.platform.name, url_for(@repository.platform)
|
= link_to @repository.platform.name, url_for(@repository.platform)
|
||||||
%p
|
|
||||||
%b
|
|
||||||
= t("activerecord.attributes.repository.owner")
|
|
||||||
\:
|
|
||||||
= link_to @repository.owner.name, url_for(@repository.owner)
|
|
||||||
%p
|
%p
|
||||||
%b
|
%b
|
||||||
= t("activerecord.attributes.platform.visibility")
|
= t("activerecord.attributes.platform.visibility")
|
||||||
\:
|
\:
|
||||||
= @repository.platform.visibility
|
= @repository.platform.visibility
|
||||||
%p
|
|
||||||
%b
|
|
||||||
= t("activerecord.attributes.repository.platform")
|
|
||||||
\:
|
|
||||||
= link_to @repository.platform.name, platform_path(@platform)
|
|
||||||
.wat-cf
|
.wat-cf
|
||||||
= link_to image_tag("web-app-theme/icons/cross.png", :alt => t("layout.delete")) + " " + t("layout.delete"), @repository_path, :method => "delete", :class => "button", :confirm => t("layout.repositories.confirm_delete")
|
= 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" }
|
%a{ :name => "projects" }
|
||||||
.block
|
.block
|
||||||
|
|
|
@ -6,15 +6,9 @@
|
||||||
%li= link_to t("layout.personal_repositories.private_users"), platform_private_users_path(@repository.platform) if @repository.platform.hidden?
|
%li= link_to t("layout.personal_repositories.private_users"), platform_private_users_path(@repository.platform) if @repository.platform.hidden?
|
||||||
.content
|
.content
|
||||||
.inner
|
.inner
|
||||||
%p
|
|
||||||
%b
|
|
||||||
= t("activerecord.attributes.repository.owner")
|
|
||||||
\:
|
|
||||||
= link_to @repository.owner.name, url_for(@repository.owner)
|
|
||||||
|
|
||||||
= render 'shared/urpmi_list', :urpmi_commands => @urpmi_commands
|
= render 'shared/urpmi_list', :urpmi_commands => @urpmi_commands
|
||||||
.wat-cf
|
.wat-cf
|
||||||
=# link_to image_tag("web-app-theme/icons/cross.png", :alt => t("layout.delete")) + " " + t("layout.delete"), @repository_path, :method => "delete", :class => "button", :confirm => t("layout.repositories.confirm_delete")
|
=# 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" }
|
%a{ :name => "projects" }
|
||||||
.block
|
.block
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
= javascript_include_tag "autocomplete-rails.js"
|
|
||||||
|
|
||||||
- unless ['edit', 'update'].include? controller.action_name
|
- unless ['edit', 'update'].include? controller.action_name
|
||||||
.group
|
.group
|
||||||
= f.label :name, :class => :label
|
= f.label :name, :class => :label
|
||||||
|
@ -29,7 +27,7 @@
|
||||||
|
|
||||||
.group.navform.wat-cf
|
.group.navform.wat-cf
|
||||||
%button.button{:type => "submit"}
|
%button.button{:type => "submit"}
|
||||||
= image_tag("web-app-theme/icons/tick.png", :alt => t("layout.save"))
|
= image_tag("choose.png", :alt => t("layout.save"))
|
||||||
= t("layout.save")
|
= t("layout.save")
|
||||||
%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"), @platforms_path, :class => "text_button_padding link_button"
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
%h2.title
|
%h2.title
|
||||||
= t("layout.platforms.clone_header")
|
= t("layout.platforms.clone_header")
|
||||||
.inner
|
.inner
|
||||||
= form_for @cloned, :url => clone_platform_path(@platform), :html => { :class => :form } do |f|
|
= form_for @cloned, :url => make_clone_platform_path(@platform), :html => { :class => :form } do |f|
|
||||||
.group
|
.group
|
||||||
= f.label :name, :class => :label
|
= f.label :name, :class => :label
|
||||||
= f.text_field :name, :class => 'text_field'
|
= f.text_field :name, :class => 'text_field'
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
|
|
||||||
.group.navform.wat-cf
|
.group.navform.wat-cf
|
||||||
%button.button{:type => "submit"}
|
%button.button{:type => "submit"}
|
||||||
= image_tag("web-app-theme/icons/tick.png", :alt => t("layout.save"))
|
= image_tag("choose.png", :alt => t("layout.save"))
|
||||||
= t("layout.clone")
|
= 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"), @platforms_path, :class => "text_button_padding link_button"
|
||||||
|
|
|
@ -1,49 +1,119 @@
|
||||||
.block
|
.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.platforms.list"), platforms_path
|
||||||
%li= link_to t("layout.repositories.new"), @new_repository_path
|
%li= link_to t("layout.platforms.new"), new_platform_path if can? :create, Platform
|
||||||
%li.active= link_to t("layout.repositories.show"), repository_path(@repository)
|
%li.active= link_to t("layout.platforms.show"), platform_path
|
||||||
|
%li= link_to t("layout.platforms.private_users"), platform_private_users_path(@platform)
|
||||||
.content
|
.content
|
||||||
.inner
|
.inner
|
||||||
%p
|
%p
|
||||||
%b
|
%b
|
||||||
= t("activerecord.attributes.repository.name")
|
= t("activerecord.attributes.platform.name")
|
||||||
\:
|
\:
|
||||||
= @repository.name
|
= @platform.name
|
||||||
%p
|
%p
|
||||||
%b
|
%b
|
||||||
= t("activerecord.attributes.repository.description")
|
= t("activerecord.attributes.platform.description")
|
||||||
\:
|
\:
|
||||||
= @repository.description
|
= @platform.description
|
||||||
|
- if @platform.parent
|
||||||
|
%p
|
||||||
|
%b
|
||||||
|
= t("activerecord.attributes.platform.parent")
|
||||||
|
\:
|
||||||
|
- if @platform.parent
|
||||||
|
= link_to @platform.parent.description, platform_path(@platform.parent)
|
||||||
%p
|
%p
|
||||||
%b
|
%b
|
||||||
= t("activerecord.attributes.repository.platform")
|
= t('layout.platforms.location')
|
||||||
\:
|
\:
|
||||||
= link_to @repository.platform.description, url_for(@repository.platform)
|
= @platform.path
|
||||||
%p
|
|
||||||
%b
|
|
||||||
= t("activerecord.attributes.repository.owner")
|
|
||||||
\:
|
|
||||||
= link_to @repository.owner.try(:name), url_for(@repository.owner)
|
|
||||||
.wat-cf
|
|
||||||
= link_to image_tag("web-app-theme/icons/cross.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" }
|
%p
|
||||||
|
%b
|
||||||
|
= t('layout.platforms.owner')
|
||||||
|
\:
|
||||||
|
= link_to @platform.owner.try(:name), url_for(@platform.owner)
|
||||||
|
|
||||||
|
%p
|
||||||
|
%b
|
||||||
|
= t('layout.platforms.visibility')
|
||||||
|
\:
|
||||||
|
= @platform.visibility
|
||||||
|
|
||||||
|
%p
|
||||||
|
%b
|
||||||
|
= t('layout.platforms.platform_type')
|
||||||
|
\:
|
||||||
|
= @platform.platform_type
|
||||||
|
|
||||||
|
%p
|
||||||
|
%b
|
||||||
|
= t('layout.platforms.distrib_type')
|
||||||
|
\:
|
||||||
|
= @platform.distrib_type
|
||||||
|
|
||||||
|
|
||||||
|
.wat-cf
|
||||||
|
-#= link_to image_tag("code.png", :alt => t("layout.edit")) + " " + t("layout.edit"), edit_platform_path(@platform), :class => "button"
|
||||||
|
= link_to image_tag("x.png", :alt => t("layout.delete")) + " " + t("layout.delete"), platform_path(@platform), :method => "delete", :class => "button", :confirm => t("layout.platforms.confirm_delete") if can? :delete, @platform
|
||||||
|
- if @platform.released?
|
||||||
|
= link_to t("layout.platforms.unfreeze"), unfreeze_platform_path(@platform), :confirm => I18n.t("layout.platforms.confirm_unfreeze"), :method => :post, :class => "button" if can? :unfreeze, @platform
|
||||||
|
- else
|
||||||
|
= link_to t("layout.platforms.freeze"), freeze_platform_path(@platform), :confirm => I18n.t("layout.platforms.confirm_freeze"), :method => :post, :class => "button" if can? :freeze, @platform
|
||||||
|
= link_to "Клонировать", clone_platform_path(@platform), :class => "button" if can? :clone, @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
|
||||||
|
|
||||||
|
%a{ :name => "repositories" }
|
||||||
.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.repositories.list"), platform_path(@platform) + "#repositories"
|
||||||
%li= link_to t("layout.projects.add"), url_for(:controller => :repositories, :action => :add_project)
|
%li= link_to t("layout.repositories.new"), new_platform_repository_path(@platform) if can? :create, Repository.build_stub(@platform)
|
||||||
.content
|
.content
|
||||||
%h2.title
|
%h2.title
|
||||||
= t("layout.projects.list_header")
|
= t("layout.repositories.list_header")
|
||||||
.inner
|
.inner
|
||||||
= render :partial => 'shared/search_form'
|
%table.table
|
||||||
= render :partial => 'proj_list1', :object => @projects
|
%tr
|
||||||
|
%th.first= t("activerecord.attributes.repository.description")
|
||||||
|
%th.last
|
||||||
|
- @platform.repositories.recent.each do |repository|
|
||||||
|
%tr{:class => cycle("odd", "even")}
|
||||||
|
%td
|
||||||
|
= link_to repository.description, platform_repository_path(@platform, repository)
|
||||||
|
%td.last
|
||||||
|
= link_to t("layout.show"), platform_repository_path(@platform, repository)
|
||||||
|
|
|
||||||
|
= link_to t("layout.delete"), platform_repository_path(@platform, repository), :method => :delete, :confirm => t("layout.repositories.confirm_delete") if can? :destroy, @platform
|
||||||
.actions-bar.wat-cf
|
.actions-bar.wat-cf
|
||||||
.actions
|
.actions
|
||||||
= will_paginate @projects, :param_name => :project_page
|
|
||||||
|
|
||||||
|
%a{ :name => "producs" }
|
||||||
-# content_for :sidebar, render(:partial => 'sidebar')
|
.block
|
||||||
|
.secondary-navigation
|
||||||
|
%ul.wat-cf
|
||||||
|
%li.first.active= link_to t("layout.products.list"), platform_path(@platform) + "#products"
|
||||||
|
%li= link_to t("layout.products.new"), new_platform_product_path(@platform) if can? :create, Product.new(:platform_id => @platform.id)
|
||||||
|
.content
|
||||||
|
%h2.title
|
||||||
|
= t("layout.products.list_header")
|
||||||
|
.inner
|
||||||
|
%table.table
|
||||||
|
%tr
|
||||||
|
%th.first= t("activerecord.attributes.product.name")
|
||||||
|
%th.last
|
||||||
|
- @platform.products.recent.each do |product|
|
||||||
|
%tr{:class => cycle("odd", "even")}
|
||||||
|
%td
|
||||||
|
= link_to product.name, [@platform, product]
|
||||||
|
%td.last
|
||||||
|
= link_to t("layout.edit"), edit_platform_product_path(@platform, product) if can? :update, product
|
||||||
|
|
|
||||||
|
= link_to t("layout.delete"), platform_product_path(@platform, product), :method => :delete, :confirm => t("layout.products.confirm_delete") if can? :destroy, product
|
||||||
|
= (product.can_clone? ? "| #{link_to t("layout.products.clone"), clone_platform_product_path(@platform, product)}" : "").html_safe
|
||||||
|
.actions-bar.wat-cf
|
||||||
|
.actions
|
||||||
|
- content_for :sidebar, render(:partial => 'sidebar')
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
- if @urpmi_list
|
- if @urpmi_list
|
||||||
= render 'shared/urpmi_list', :urpmi_commands => @urpmi_list
|
= render 'shared/urpmi_list', :urpmi_commands => @urpmi_list
|
||||||
.wat-cf
|
.wat-cf
|
||||||
=# link_to image_tag("web-app-theme/icons/cross.png", :alt => t("layout.delete")) + " " + t("layout.delete"), platform_repository_path(@platform, @repository), :method => "delete", :class => "button", :confirm => t("layout.repositories.confirm_delete")
|
=# link_to image_tag("x.png", :alt => t("layout.delete")) + " " + t("layout.delete"), platform_repository_path(@platform, @repository), :method => "delete", :class => "button", :confirm => t("layout.repositories.confirm_delete")
|
||||||
%br
|
%br
|
||||||
.inner
|
.inner
|
||||||
=t('layout.private_users.warning_message')
|
=t('layout.private_users.warning_message')
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
%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 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? :delete, product_build_list
|
||||||
%td= product_build_list.notified_at
|
%td= product_build_list.notified_at
|
|
@ -37,7 +37,7 @@
|
||||||
|
|
||||||
.group.navform.wat-cf
|
.group.navform.wat-cf
|
||||||
%button.button{:type => "submit"}
|
%button.button{:type => "submit"}
|
||||||
= image_tag("web-app-theme/icons/tick.png", :alt => t("layout.save"))
|
= image_tag("choose.png", :alt => t("layout.save"))
|
||||||
= t("layout.save")
|
= t("layout.save")
|
||||||
%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"), platform_path(@platform), :class => "text_button_padding link_button"
|
||||||
|
|
|
@ -26,11 +26,13 @@
|
||||||
= t("layout.#{@product.system_wide?}_")
|
= t("layout.#{@product.system_wide?}_")
|
||||||
|
|
||||||
.wat-cf
|
.wat-cf
|
||||||
= link_to image_tag("web-app-theme/icons/application_edit.png", :alt => t("layout.edit")) + " " + t("layout.edit"), edit_platform_product_path(@platform, @product), :class => "button"
|
- if can? :update, @product
|
||||||
= link_to image_tag("web-app-theme/icons/cross.png", :alt => t("layout.delete")) + " " + t("layout.delete"), platform_product_path(@platform, @product), :method => "delete", :class => "button", :confirm => t("layout.products.confirm_delete")
|
= 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?
|
- if @product.can_clone?
|
||||||
= link_to t("layout.products.clone"), clone_platform_product_path(@platform, @product), :class => "button"
|
= link_to t("layout.products.clone"), clone_platform_product_path(@platform, @product), :class => "button"
|
||||||
- if @product.can_build?
|
- 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
|
||||||
|
@ -40,7 +42,9 @@
|
||||||
%tr
|
%tr
|
||||||
%th.first= t("activerecord.attributes.product_build_list.id")
|
%th.first= t("activerecord.attributes.product_build_list.id")
|
||||||
%th= t("activerecord.attributes.product_build_list.product")
|
%th= t("activerecord.attributes.product_build_list.product")
|
||||||
%th= t("activerecord.attributes.product_build_list.status")
|
%th= t("activerecord.attributes.product_build_list.container_path")
|
||||||
|
%th= t("activerecord.attributes.product_build_list.status")
|
||||||
|
%th= t("layout.product_build_lists.action")
|
||||||
%th.last= t("activerecord.attributes.product_build_list.notified_at")
|
%th.last= t("activerecord.attributes.product_build_list.notified_at")
|
||||||
= render @product.product_build_lists.default_order
|
= render @product.product_build_lists.default_order
|
||||||
/ = will_paginate build_lists
|
/ = will_paginate build_lists
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
.group.navform.wat-cf
|
.group.navform.wat-cf
|
||||||
%button.button{:type => "submit"}
|
%button.button{:type => "submit"}
|
||||||
= image_tag("web-app-theme/icons/tick.png", :alt => t("layout.save"))
|
= image_tag("choose.png", :alt => t("layout.save"))
|
||||||
= t("layout.save")
|
= t("layout.save")
|
||||||
%span.text_button_padding= t("layout.or")
|
%span.text_button_padding= t("layout.or")
|
||||||
= link_to t("layout.cancel"), @projects_path, :class => "text_button_padding link_button"
|
= link_to t("layout.cancel"), @projects_path, :class => "text_button_padding link_button"
|
||||||
|
|
|
@ -9,6 +9,6 @@
|
||||||
%li= link_to t("project_menu.commits"), commits_path(@project), {:class => (act == :index && contr == :commits) ? 'active' : ''}
|
%li= link_to t("project_menu.commits"), commits_path(@project), {:class => (act == :index && contr == :commits) ? 'active' : ''}
|
||||||
%li= link_to t("project_menu.builds"), project_build_lists_path(@project), {:class => (act == :index && contr == :builds) ? 'active' : ''}
|
%li= link_to t("project_menu.builds"), project_build_lists_path(@project), {:class => (act == :index && contr == :builds) ? 'active' : ''}
|
||||||
%li= link_to t("project_menu.tracker"), project_issues_path(@project), {:class => (act == :index && contr == :issues) ? 'active' : ''}
|
%li= link_to t("project_menu.tracker"), project_issues_path(@project), {:class => (act == :index && contr == :issues) ? 'active' : ''}
|
||||||
%li= link_to t("project_menu.wiki"), project_wiki_index_path(@project), {:class => (act == :index && contr == :wiki) ? 'active' : ''}
|
%li= link_to t("project_menu.wiki"), project_wiki_index_path(@project), {:class => contr == :wiki ? 'active' : ''}
|
||||||
%li= link_to t("project_menu.readme"), "#" #pending
|
%li= link_to t("project_menu.readme"), "#" #pending
|
||||||
%li= link_to t("project_menu.settings"), edit_project_path(@project), {:class => (act == :edit && contr == :projects) ? 'active' : ''}
|
%li= link_to t("project_menu.settings"), edit_project_path(@project), {:class => (act == :edit && contr == :projects) ? 'active' : ''}
|
||||||
|
|
|
@ -34,8 +34,8 @@
|
||||||
\:
|
\:
|
||||||
= git_repo_url @project.git_repo_name
|
= git_repo_url @project.git_repo_name
|
||||||
.wat-cf
|
.wat-cf
|
||||||
= link_to image_tag("web-app-theme/icons/application_edit.png", :alt => t("layout.edit")) + " " + t("layout.edit"), edit_project_path(@project), :class => "button" if can? :update, @project
|
= link_to image_tag("code.png", :alt => t("layout.edit")) + " " + t("layout.edit"), edit_project_path(@project), :class => "button" if can? :update, @project
|
||||||
= link_to image_tag("web-app-theme/icons/cross.png", :alt => t("layout.delete")) + " " + t("layout.delete"), project_path(@project), :method => "delete", :class => "button", :confirm => t("layout.projects.confirm_delete") if can? :destroy, @project
|
= link_to image_tag("x.png", :alt => t("layout.delete")) + " " + t("layout.delete"), project_path(@project), :method => "delete", :class => "button", :confirm => t("layout.projects.confirm_delete") if can? :destroy, @project
|
||||||
= link_to "Fork", fork_project_path(@project), :class => "button", :method => "post", :confirm => t("layout.confirm") if can? :fork, @project
|
= link_to "Fork", fork_project_path(@project), :class => "button", :method => "post", :confirm => t("layout.confirm") if can? :fork, @project
|
||||||
|
|
||||||
%a{ :name => "build_lists"}
|
%a{ :name => "build_lists"}
|
||||||
|
|
|
@ -5,6 +5,10 @@
|
||||||
%li= link_to t("layout.users.new"), new_user_path
|
%li= link_to t("layout.users.new"), new_user_path
|
||||||
%li.active= link_to t("layout.users.register_requests"), register_requests_path
|
%li.active= link_to t("layout.users.register_requests"), register_requests_path
|
||||||
.content
|
.content
|
||||||
|
%div{:style => 'float: right; margin: 20px'}
|
||||||
|
= link_to t("layout.register_request.approved"), register_requests_path(:scope => :approved)
|
||||||
|
\|
|
||||||
|
= link_to t("layout.register_request.rejected"), register_requests_path(:scope => :rejected)
|
||||||
%h2.title
|
%h2.title
|
||||||
= t("layout.register_request.list_header")
|
= t("layout.register_request.list_header")
|
||||||
.inner
|
.inner
|
||||||
|
@ -23,7 +27,8 @@
|
||||||
%tr{:class => cycle("odd", "even")}
|
%tr{:class => cycle("odd", "even")}
|
||||||
%td= check_box_tag 'request_ids[]', request.id
|
%td= check_box_tag 'request_ids[]', request.id
|
||||||
%td= request.name
|
%td= request.name
|
||||||
%td= request.email
|
- @user = User.find_by_email(request.email) if request.approved
|
||||||
|
%td= link_to_if @user, request.email, @user
|
||||||
%td= request.interest
|
%td= request.interest
|
||||||
%td= request.more
|
%td= request.more
|
||||||
%td= request.created_at
|
%td= request.created_at
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
|
|
||||||
.group.navform.wat-cf
|
.group.navform.wat-cf
|
||||||
%button.button{:type => "submit"}
|
%button.button{:type => "submit"}
|
||||||
= image_tag("web-app-theme/icons/tick.png", :alt => t("layout.save"))
|
= image_tag("choose.png", :alt => t("layout.save"))
|
||||||
= t("layout.save")
|
= t("layout.save")
|
||||||
%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"), @repositories_path + "#repositories", :class => "text_button_padding link_button"
|
||||||
|
|
|
@ -21,13 +21,8 @@
|
||||||
= t("activerecord.attributes.repository.platform")
|
= t("activerecord.attributes.repository.platform")
|
||||||
\:
|
\:
|
||||||
= link_to @repository.platform.description, url_for(@repository.platform)
|
= link_to @repository.platform.description, url_for(@repository.platform)
|
||||||
%p
|
|
||||||
%b
|
|
||||||
= t("activerecord.attributes.repository.owner")
|
|
||||||
\:
|
|
||||||
= link_to @repository.owner.uname, url_for(@repository.owner)
|
|
||||||
.wat-cf
|
.wat-cf
|
||||||
= link_to image_tag("web-app-theme/icons/cross.png", :alt => t("layout.delete")) + " " + t("layout.delete"), @repository_path, :method => "delete", :class => "button", :confirm => t("layout.repositories.confirm_delete")
|
= 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" }
|
%a{ :name => "projects" }
|
||||||
.block
|
.block
|
||||||
|
|
|
@ -21,13 +21,8 @@
|
||||||
= t("activerecord.attributes.repository.platform")
|
= t("activerecord.attributes.repository.platform")
|
||||||
\:
|
\:
|
||||||
= link_to @repository.platform.description, url_for(@repository.platform)
|
= link_to @repository.platform.description, url_for(@repository.platform)
|
||||||
%p
|
|
||||||
%b
|
|
||||||
= t("activerecord.attributes.repository.owner")
|
|
||||||
\:
|
|
||||||
= link_to @repository.owner.try(:name), url_for(@repository.owner)
|
|
||||||
.wat-cf
|
.wat-cf
|
||||||
= link_to image_tag("web-app-theme/icons/cross.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
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
|
|
||||||
.group.navform.wat-cf
|
.group.navform.wat-cf
|
||||||
%button.button{:type => "submit"}
|
%button.button{:type => "submit"}
|
||||||
= image_tag("web-app-theme/icons/tick.png", :alt => t("layout.save"))
|
= image_tag("choose.png", :alt => t("layout.save"))
|
||||||
= t("layout.save")
|
= t("layout.save")
|
||||||
%span.text_button_padding= t("layout.or")
|
%span.text_button_padding= t("layout.or")
|
||||||
= link_to t("layout.cancel"), user_settings_notifier_path(@user), :class => "text_button_padding link_button"
|
= link_to t("layout.cancel"), user_settings_notifier_path(@user), :class => "text_button_padding link_button"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
%p== Hello, #{@user.name}.
|
%p== Hello, #{@user.name}.
|
||||||
|
|
||||||
|
|
||||||
%p You have been assigned to issue #{ link_to @issue.title, [@issue.project, @issue] }
|
%p You have been assigned to issue #{ link_to @issue.title, project_issue_url(@issue.project, @issue) }
|
||||||
|
|
||||||
|
|
||||||
%p== Support team «ROSA Build System»
|
%p== Support team «ROSA Build System»
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
%p== Здравствуйте, #{@user.name}.
|
%p== Здравствуйте, #{@user.name}.
|
||||||
|
|
||||||
|
|
||||||
%p Вам была назначена задача #{ link_to @issue.title, [@issue.project, @issue] }
|
%p Вам была назначена задача #{ link_to @issue.title, project_issue_url(@issue.project, @issue) }
|
||||||
|
|
||||||
|
|
||||||
%p== Команда поддержки «ROSA Build System»
|
%p== Команда поддержки «ROSA Build System»
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
%p== Hello, #{@user.name}.
|
%p== Hello, #{@user.name}.
|
||||||
|
|
||||||
- if @comment.commentable.class == Issue
|
- if @comment.commentable.class == Issue
|
||||||
- link = link_to @comment.commentable.title, [@comment.commentable.project, @comment.commentable]
|
- link = link_to @comment.commentable.title, project_issue_url(@comment.commentable.project, @comment.commentable)
|
||||||
- object = 'issue'
|
- object = 'issue'
|
||||||
- elsif @comment.commentable.class == Grit::Commit
|
- elsif @comment.commentable.class == Grit::Commit
|
||||||
- link = link_to @comment.commentable.message, commit_path(@comment.project, @comment.commentable_id)
|
- link = link_to @comment.commentable.message, commit_url(@comment.project, @comment.commentable_id)
|
||||||
- object = 'commit'
|
- object = 'commit'
|
||||||
%p #{ link_to @comment.user.uname, user_path(@comment.user)} added new comment to #{object} #{link}.
|
%p #{ link_to @comment.user.uname, user_url(@comment.user)} added new comment to #{object} #{link}.
|
||||||
|
|
||||||
%p "#{ @comment.body }"
|
%p "#{ @comment.body }"
|
||||||
|
|
||||||
|
|
||||||
%p== Support team «ROSA Build System»
|
%p== Support team «ROSA Build System»
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
%p== Здравствуйте, #{@user.name}.
|
%p== Здравствуйте, #{@user.name}.
|
||||||
|
|
||||||
- if @comment.commentable.class == Issue
|
- if @comment.commentable.class == Issue
|
||||||
- link = link_to @comment.commentable.title, [@comment.commentable.project, @comment.commentable]
|
- link = link_to @comment.commentable.title, project_issue_url(@comment.commentable.project, @comment.commentable)
|
||||||
- object = 'задаче'
|
- object = 'задаче'
|
||||||
- elsif @comment.commentable.class == Grit::Commit
|
- elsif @comment.commentable.class == Grit::Commit
|
||||||
- link = link_to @comment.commentable.message, commit_path(@comment.project, @comment.commentable_id)
|
- link = link_to @comment.commentable.message, commit_url(@comment.project, @comment.commentable_id)
|
||||||
- object = 'коммиту'
|
- object = 'коммиту'
|
||||||
%p #{ link_to @comment.user.uname, user_path(@comment.user)} добавил комментарий к #{object} #{link}.
|
%p #{ link_to @comment.user.uname, user_url(@comment.user)} добавил комментарий к #{object} #{link}.
|
||||||
|
|
||||||
%p "#{ @comment.body }"
|
%p "#{ @comment.body }"
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
%p== Hello, #{@user.name}.
|
%p== Hello, #{@user.name}.
|
||||||
|
|
||||||
|
- #TODO hmm... this need to be refactored.
|
||||||
%p Your comment into issue #{ link_to @comment.commentable.title, [@comment.commentable.project, @comment.commentable] } has been answered.
|
%p Your comment into issue #{ link_to @comment.commentable.title, project_issue_url(@comment.commentable.project, @comment.commentable) } has been answered.
|
||||||
|
|
||||||
%p "#{ @comment.body }"
|
%p "#{ @comment.body }"
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
%p== Hello, #{@user.name}.
|
%p== Hello, #{@user.name}.
|
||||||
|
|
||||||
|
|
||||||
%p To project #{ link_to @issue.project.name, project_path(@issue.project) } has been added an issue #{ link_to @issue.title, [@issue.project, @issue] }
|
%p To project #{ link_to @issue.project.name, project_url(@issue.project) } has been added an issue #{ link_to @issue.title, project_issue_url(@issue.project, @issue) }
|
||||||
|
|
||||||
|
|
||||||
%p== Support team «ROSA Build System»
|
%p== Support team «ROSA Build System»
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
%p== Здравствуйте, #{@user.name}.
|
%p== Здравствуйте, #{@user.name}.
|
||||||
|
|
||||||
|
|
||||||
%p К проекту #{ link_to @issue.project.name, project_path(@issue.project) } была добавлена задача #{ link_to @issue.title, [@issue.project, @issue] }
|
%p К проекту #{ link_to @issue.project.name, project_url(@issue.project) } была добавлена задача #{ link_to @issue.title, project_issue_url(@issue.project, @issue) }
|
||||||
|
|
||||||
|
|
||||||
%p== Команда поддержки «ROSA Build System»
|
%p== Команда поддержки «ROSA Build System»
|
||||||
|
|
|
@ -9,6 +9,6 @@
|
||||||
|
|
||||||
.group.navform.wat-cf
|
.group.navform.wat-cf
|
||||||
%button.button{ :type => "submit" }
|
%button.button{ :type => "submit" }
|
||||||
= image_tag("web-app-theme/icons/tick.png", :alt => "Save")
|
= image_tag("choose.png", :alt => "Save")
|
||||||
= t("layout.search")
|
= t("layout.search")
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
.group.navform.wat-cf
|
.group.navform.wat-cf
|
||||||
%button.button{:type => "submit"}
|
%button.button{:type => "submit"}
|
||||||
= image_tag("web-app-theme/icons/tick.png", :alt => t("layout.save"))
|
= image_tag("choose.png", :alt => t("layout.save"))
|
||||||
= t("layout.save")
|
= t("layout.save")
|
||||||
%span.text_button_padding= t("layout.or")
|
%span.text_button_padding= t("layout.or")
|
||||||
= link_to t("layout.cancel"), users_path, :class => "text_button_padding link_button"
|
= link_to t("layout.cancel"), users_path, :class => "text_button_padding link_button"
|
||||||
|
|
|
@ -33,9 +33,9 @@
|
||||||
= @user.created_at
|
= @user.created_at
|
||||||
.wat-cf
|
.wat-cf
|
||||||
- if can? :edit, @user
|
- if can? :edit, @user
|
||||||
= link_to image_tag("web-app-theme/icons/application_edit.png", :alt => t("layout.edit")) + " " + t("layout.edit"), edit_user_path(@user), :class => "button"
|
= link_to image_tag("code.png", :alt => t("layout.edit")) + " " + t("layout.edit"), edit_user_path(@user), :class => "button"
|
||||||
- if can? :destroy, @user
|
- if can? :destroy, @user
|
||||||
= link_to image_tag("web-app-theme/icons/cross.png", :alt => t("layout.delete")) + " " + t("layout.delete"), user_path(@user), :method => "delete", :class => "button", :confirm => t("layout.users.confirm_delete")
|
= link_to image_tag("x.png", :alt => t("layout.delete")) + " " + t("layout.delete"), user_path(@user), :method => "delete", :class => "button", :confirm => t("layout.users.confirm_delete")
|
||||||
|
|
||||||
.block
|
.block
|
||||||
.secondary-navigation
|
.secondary-navigation
|
||||||
|
|
|
@ -1,20 +1,23 @@
|
||||||
- revert_button = capture do
|
- revert_button = capture do
|
||||||
= link_to t("layout.wiki.revert_page#{action_name == 'revert' ? '' : 's'}"), '#', :class => "gollum-revert-button"
|
= link_to t("wiki.revert_page#{action_name == 'revert' ? '' : 's'}"), '#', :class => "gollum-revert-button button width100"
|
||||||
|
|
||||||
#compare-content
|
- if action_name != 'revert'
|
||||||
- if action_name != 'revert'
|
= form_tag revert_path(@project, @versions.first[0..6], (@versions.size == 1) ? 'prev' : @versions.last[0..6], @name), :name => "gollum-revert", :id => "gollum-revert-form" do
|
||||||
%ul.actions
|
= revert_button if can? :write, @project
|
||||||
%li.minibutton
|
|
||||||
= form_tag revert_path(@project, @versions[0][0..6], @versions[1][0..6], @name),
|
%br
|
||||||
:name => "gollum-revert", :id => "gollum-revert-form" do
|
%br
|
||||||
= revert_button if can? :write, @project
|
|
||||||
|
|
||||||
= render :partial => 'diff_data', :collection => @diffs, :as => :diff
|
= render :partial => 'diff_data', :collection => @diffs, :as => :diff
|
||||||
.spacer
|
.spacer
|
||||||
|
|
||||||
#gollum-footer
|
%br
|
||||||
%ul.actions
|
%br
|
||||||
- if action_name != 'revert'
|
|
||||||
%li.minibutton
|
- if action_name != 'revert'
|
||||||
= revert_button if can? :write, @project
|
= revert_button if can? :write, @project
|
||||||
%li.minibutton= link_to t("layout.wiki.back_to_top"), '#wiki'
|
|
||||||
|
%br
|
||||||
|
%br
|
||||||
|
|
||||||
|
= link_to t("wiki.back_to_top"), '#wiki'
|
||||||
|
|
|
@ -1,9 +1,4 @@
|
||||||
.blob_header
|
.blob_header
|
||||||
.size= h(diff.deleted_file ? diff.a_path : diff.b_path)
|
.size= h(diff.deleted_file ? diff.a_path : diff.b_path).encode_to_default
|
||||||
- puts 'in view'
|
|
||||||
- puts diff.a_path
|
|
||||||
- puts diff.b_path
|
|
||||||
.clear
|
.clear
|
||||||
|
.diff_data.highlight= render_diff(diff)
|
||||||
.diff_data.highlight
|
|
||||||
= render_diff(diff)
|
|
|
@ -3,41 +3,38 @@
|
||||||
%fieldset#gollum-editor-fields
|
%fieldset#gollum-editor-fields
|
||||||
- if @new
|
- if @new
|
||||||
#gollum-editor-title-field.singleline
|
#gollum-editor-title-field.singleline
|
||||||
= label_tag :page, t("layout.wiki.page_title"), :class => 'jaws'
|
= label_tag :page, t("wiki.page_title"), :class => 'jaws'
|
||||||
= text_field_tag :page, @name, :id => "gollum-editor-page-title"
|
= text_field_tag :page, @name, :id => "gollum-editor-page-title"
|
||||||
- else
|
- else
|
||||||
= hidden_field_tag :page, @name, :id => "gollum-editor-page-title"
|
= hidden_field_tag :page, @name, :id => "gollum-editor-page-title"
|
||||||
|
|
||||||
= render :partial => 'editor_toolbar'
|
= render 'editor_toolbar'
|
||||||
|
|
||||||
= text_area_tag :content, @content, :id => "gollum-editor-body", :'data-markup-lang' => format
|
= text_area_tag :content, @content, :id => "gollum-editor-body", :'data-markup-lang' => format
|
||||||
|
|
||||||
- if has_footer?
|
- if has_footer?
|
||||||
#gollum-editor-edit-footer.collapsed
|
#gollum-editor-edit-footer.collapsed
|
||||||
= link_to "#", :class => "button" do
|
= link_to "#", :class => "button" do
|
||||||
%span= t("layout.wiki.expand_collapse")
|
%span= t("wiki.expand_collapse")
|
||||||
%h4
|
%h4= t("wiki.footer")
|
||||||
Footer
|
|
||||||
= text_area_tag :footer, footer.text_data
|
= text_area_tag :footer, footer.text_data
|
||||||
|
|
||||||
- if has_sidebar?
|
- if has_sidebar?
|
||||||
#gollum-editor-edit-sidebar.collapsed
|
#gollum-editor-edit-sidebar.collapsed
|
||||||
= link_to "#", :class => "button" do
|
= link_to "#", :class => "button" do
|
||||||
%span= t("layout.wiki.expand_collapse")
|
%span= t("wiki.expand_collapse")
|
||||||
%h4
|
%h4= t("wiki.sidebar")
|
||||||
Sidebar
|
|
||||||
= text_area_tag :sidebar, sidebar.text_data
|
= text_area_tag :sidebar, sidebar.text_data
|
||||||
|
|
||||||
#gollum-editor-edit-summary.singleline
|
#gollum-editor-edit-summary.singleline
|
||||||
= label_tag :message, t("layout.wiki.edit_commit_message"), :class => "jaws"
|
= label_tag :message, t("wiki.edit_commit_message"), :class => "jaws"
|
||||||
= text_field_tag :message, t("layout.wiki.commit_message_placeholder"), :id => "gollum-editor-message-field"
|
= text_field_tag :message, t("wiki.commit_message_placeholder"), :id => "gollum-editor-message-field"
|
||||||
|
|
||||||
%span.jaws
|
%span.jaws
|
||||||
%br
|
%br
|
||||||
|
|
||||||
= submit_tag t("layout.wiki.save_button"), :id => "gollum-editor-submit", :title => t("layout.wiki.save_changes")
|
= submit_tag t("wiki.save_button"), :id => "gollum-editor-submit", :title => t("wiki.save_changes")
|
||||||
= link_to t("layout.wiki.preview"), "javascript:void(0)", :id => "gollum-editor-preview",
|
= link_to t("wiki.preview"), "javascript:void(0)", :id => "gollum-editor-preview", :class => "minibutton", :title => t("wiki.preview_title"), :'data-url' => preview_project_wiki_index_path(@project)
|
||||||
:class => "minibutton", :title => t("layout.wiki.preview_title"), :'data-url' => preview_project_wiki_index_path(@project)
|
|
||||||
|
|
||||||
/ - content_for :javascripts do
|
/ - content_for :javascripts do
|
||||||
/ = javascript_include_tag 'gollum/editor/gollum.editor.js'
|
/ = javascript_include_tag 'gollum/editor/gollum.editor.js'
|
||||||
|
|
|
@ -1,51 +1,48 @@
|
||||||
#gollum-editor-function-bar
|
#gollum-editor-function-bar
|
||||||
#gollum-editor-function-buttons
|
#gollum-editor-function-buttons
|
||||||
= link_to "#", :id => "function-bold", :class => "function-button", :title => t("layout.wiki.editor.bold") do
|
= link_to "#", :id => "function-bold", :class => "function-button", :title => t("wiki.editor.bold") do
|
||||||
%span= t("layout.wiki.editor.bold")
|
%span= t("wiki.editor.bold")
|
||||||
= link_to "#", :id => "function-italic", :class => "function-button", :title => t("layout.wiki.editor.italic") do
|
= link_to "#", :id => "function-italic", :class => "function-button", :title => t("wiki.editor.italic") do
|
||||||
%span= t("layout.wiki.editor.italic")
|
%span= t("wiki.editor.italic")
|
||||||
= link_to "#", :id => "function-code", :class => "function-button", :title => t("layout.wiki.editor.code") do
|
= link_to "#", :id => "function-code", :class => "function-button", :title => t("wiki.editor.code") do
|
||||||
%span= t("layout.wiki.editor.code")
|
%span= t("wiki.editor.code")
|
||||||
|
|
||||||
%span.function-divider
|
%span.function-divider
|
||||||
|
|
||||||
|
|
||||||
= link_to "#", :id => "function-ul", :class => "function-button", :title => t("layout.wiki.editor.unordered_list") do
|
= link_to "#", :id => "function-ul", :class => "function-button", :title => t("wiki.editor.unordered_list") do
|
||||||
%span= t("layout.wiki.editor.unordered_list")
|
%span= t("wiki.editor.unordered_list")
|
||||||
= link_to "#", :id => "function-ol", :class => "function-button", :title => t("layout.wiki.editor.ordered_list") do
|
= link_to "#", :id => "function-ol", :class => "function-button", :title => t("wiki.editor.ordered_list") do
|
||||||
%span= t("layout.wiki.editor.ordered_list")
|
%span= t("wiki.editor.ordered_list")
|
||||||
= link_to "#", :id => "function-blockquote", :class => "function-button", :title => t("layout.wiki.editor.blockquote") do
|
= link_to "#", :id => "function-blockquote", :class => "function-button", :title => t("wiki.editor.blockquote") do
|
||||||
%span= t("layout.wiki.editor.blockquote")
|
%span= t("wiki.editor.blockquote")
|
||||||
= link_to "#", :id => "function-hr", :class => "function-button", :title => t("layout.wiki.editor.horizontal_rule") do
|
= link_to "#", :id => "function-hr", :class => "function-button", :title => t("wiki.editor.horizontal_rule") do
|
||||||
%span= t("layout.wiki.editor.horizontal_rule")
|
%span= t("wiki.editor.horizontal_rule")
|
||||||
|
|
||||||
%span.function-divider
|
%span.function-divider
|
||||||
|
|
||||||
|
|
||||||
= link_to "#", :id => "function-h1", :class => "function-button", :title => t("layout.wiki.editor.h1") do
|
= link_to "#", :id => "function-h1", :class => "function-button", :title => t("wiki.editor.h1") do
|
||||||
%span= t("layout.wiki.editor.h1")
|
%span= t("wiki.editor.h1")
|
||||||
= link_to "#", :id => "function-h2", :class => "function-button", :title => t("layout.wiki.editor.h2") do
|
= link_to "#", :id => "function-h2", :class => "function-button", :title => t("wiki.editor.h2") do
|
||||||
%span= t("layout.wiki.editor.h2")
|
%span= t("wiki.editor.h2")
|
||||||
= link_to "#", :id => "function-h3", :class => "function-button", :title => t("layout.wiki.editor.h3") do
|
= link_to "#", :id => "function-h3", :class => "function-button", :title => t("wiki.editor.h3") do
|
||||||
%span= t("layout.wiki.editor.h3")
|
%span= t("wiki.editor.h3")
|
||||||
|
|
||||||
%span.function-divider
|
%span.function-divider
|
||||||
|
|
||||||
|
|
||||||
= link_to "#", :id => "function-link", :class => "function-button", :title => t("layout.wiki.editor.link") do
|
= link_to "#", :id => "function-link", :class => "function-button", :title => t("wiki.editor.link") do
|
||||||
%span= t("layout.wiki.editor.link")
|
%span= t("wiki.editor.link")
|
||||||
= link_to "#", :id => "function-image", :class => "function-button", :title => t("layout.wiki.editor.image") do
|
= link_to "#", :id => "function-image", :class => "function-button", :title => t("wiki.editor.image") do
|
||||||
%span= t("layout.wiki.editor.image")
|
%span= t("wiki.editor.image")
|
||||||
|
|
||||||
%span.function-divider
|
%span.function-divider
|
||||||
|
|
||||||
|
|
||||||
= link_to "#", :id => "function-help", :class => "function-button", :title => t("layout.wiki.editor.help") do
|
= link_to "#", :id => "function-help", :class => "function-button", :title => t("wiki.editor.help") do
|
||||||
%span= t("layout.wiki.editor.help")
|
%span= t("wiki.editor.help")
|
||||||
|
|
||||||
#gollum-editor-format-selector
|
#gollum-editor-format-selector
|
||||||
= select_tag :format, options_for_select(wiki_formats, format), :id => "wiki_format"
|
= select_tag :format, options_for_select(wiki_formats, format), :id => "wiki_format"
|
||||||
= label_tag :format, t("layout.wiki.editor.format")
|
= label_tag :format, t("wiki.editor.format")
|
||||||
|
|
||||||
#gollum-editor-help.jaws
|
#gollum-editor-help.jaws
|
||||||
%ul#gollum-editor-help-parent
|
%ul#gollum-editor-help-parent
|
||||||
%li= link_to "help_1", "javascript:void(0);", :class => "selected"
|
%li= link_to "help_1", "javascript:void(0);", :class => "selected"
|
||||||
|
@ -61,5 +58,4 @@
|
||||||
%li= link_to "help_8", "javascript:void(0);"
|
%li= link_to "help_8", "javascript:void(0);"
|
||||||
#gollum-editor-help-wrapper
|
#gollum-editor-help-wrapper
|
||||||
#gollum-editor-help-content
|
#gollum-editor-help-content
|
||||||
%p
|
%p
|
||||||
|
|
|
@ -1,23 +1,18 @@
|
||||||
.url-box
|
.name
|
||||||
%ul.clone-urls
|
= link_to t("wiki.clones.http"), git_repo_url(@project.wiki_repo_name), :'data-permissions' => (can? :write, @project) ? 'Read+Write' : 'Read'
|
||||||
%li.http-clone-url.selected
|
#url-field{:style => 'display: inline'}
|
||||||
= link_to t("layout.wiki.clones.http"), git_repo_url(@project.wiki_repo_name),
|
.role
|
||||||
:'data-permissions' => (can? :write, @project) ? 'Read+Write' : 'Read'
|
|
||||||
%input.url-field{:type => 'text', :spellcheck => 'false'}
|
|
||||||
%p.url-description
|
|
||||||
%strong
|
|
||||||
access
|
|
||||||
|
|
||||||
:javascript
|
:javascript
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
var link = $('li.http-clone-url a').first();
|
var link = $('.name a').first();
|
||||||
|
|
||||||
$('.url-box input.url-field').attr('value', link.attr('href'));
|
$('.name #url-field').text(link.attr('href'));
|
||||||
$('.url-box p.url-description strong').text(link.attr('data-permissions'));
|
$('.role').text(link.attr('data-permissions'));
|
||||||
|
|
||||||
$('li.http-clone-url a').live('click', function(e) {
|
$('.name a').live('click', function(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
$('.url-box input.url-field').attr('value', $(this).attr('href'));
|
$('.name #url-field').text($(this).attr('href'));
|
||||||
$('.url-box p.url-description strong').text($(this).attr('data-permissions'));
|
$('.role').text($(this).attr('data-permissions'));
|
||||||
});
|
});
|
||||||
});
|
});
|
|
@ -1,17 +1,11 @@
|
||||||
#template
|
%p
|
||||||
%p
|
Your wiki data can be cloned from a git repository for offline access. You have several options for editing it at this point:
|
||||||
Your wiki data can be cloned from a git repository for offline access.
|
%br
|
||||||
You have several options for editing it at this point:
|
|
||||||
%ol
|
%ol
|
||||||
%li
|
%li With your favorite text editor or IDE.
|
||||||
With your favorite text editor or IDE.
|
|
||||||
%li
|
%li
|
||||||
With the built-in web interface, included with the
|
With the built-in web interface, included with the
|
||||||
= link_to 'Gollum', "https://github.com/github/gollum"
|
= link_to 'Gollum', "https://github.com/github/gollum"
|
||||||
Ruby API.
|
Ruby API.
|
||||||
%li
|
%li With the Gollum Ruby API.
|
||||||
With the Gollum Ruby API.
|
When you're done, you can simply push your changes back to our system to see them reflected on the site. The wiki repositories obey the same access rules as the source repository that they belong to.
|
||||||
%p
|
|
||||||
When you're done, you can simply push your changes back to our system to
|
|
||||||
see them reflected on the site. The wiki repositories obey the same
|
|
||||||
access rules as the source repository that they belong to.
|
|
|
@ -1,18 +1,11 @@
|
||||||
#template
|
%p
|
||||||
%p
|
Все данные вашей Wiki могут быть клонированы из Git-репозитория для доступа без интернета. В этом случае вы можете редактировать страницы следующими способами:
|
||||||
Все данные вашей Wiki могут быть клонированы из Git-репозитория для
|
%br
|
||||||
доступа без интернета. В этом случае вы можете редактировать страницы
|
|
||||||
следующими способами:
|
|
||||||
%ol
|
%ol
|
||||||
%li
|
%li Вашим любимым текстовым редактором или IDE.
|
||||||
Вашим любимым текстовым редактором или IDE.
|
|
||||||
%li
|
%li
|
||||||
С помощью встроенного Web-интерфейса, включенного в
|
С помощью встроенного Web-интерфейса, включенного в
|
||||||
= link_to 'Gollum', "https://github.com/github/gollum"
|
= link_to 'Gollum', "https://github.com/github/gollum"
|
||||||
Ruby API.
|
Ruby API.
|
||||||
%li
|
%li С помощью Gollum Ruby API.
|
||||||
С помощью Gollum Ruby API.
|
Когда изменения будут завершены, просто запуште их обратно в нашу систему чтобы увидеть их на сайте. Доступ к репозиторию Wiki осуществляется с теми же правами, что и к проекту, с которым она связана.
|
||||||
%p
|
|
||||||
Когда изменения будут завершены, просто запуште их обратно в нашу систему
|
|
||||||
чтобы увидеть их на сайте. Доступ к репозиторию Wiki осуществляется с теми
|
|
||||||
же правами, что и к проекту, с которым она связана.
|
|
|
@ -1,36 +1,41 @@
|
||||||
#wiki-history
|
= form_tag compare_path(@project, @name), :name => "compare-versions", :id => "version-form" do
|
||||||
%ul.actions
|
%table.wiki{:cellpadding => "0", :cellspacing => "0"}
|
||||||
%li.minibutton
|
- @versions.each do |v|
|
||||||
= link_to t("layout.wiki.compare_revisions"), "javascript:void(0);",
|
%tr.history
|
||||||
:class => "action-compare-revision"
|
%td.td1
|
||||||
|
%span#niceCheckbox1.niceCheck-main{:onclick => "changeCheck(this)"}
|
||||||
|
/ = check_box_tag "versions[]", v.id, :html => {:class => 'history_cbx'}
|
||||||
|
%input{:type => 'checkbox', :id => 'versions_', :name => 'versions[]', :value => v.id, :class => 'history_cbx'}
|
||||||
|
%td.td2
|
||||||
|
- user = User.where(:email => v.author.email).first
|
||||||
|
.avatar
|
||||||
|
%a{:href => "#"}
|
||||||
|
= link_to user_path_by_user(user) do
|
||||||
|
%img.mini-gravatar{:src => gravatar_url(v.author.email), :alt => "avatar: #{v.author.name.encode_to_default}"}
|
||||||
|
%span.username= user.present? ? user.uname : v.author.name.encode_to_default
|
||||||
|
.name
|
||||||
|
.both
|
||||||
|
%td.td3
|
||||||
|
%span.wiki-gray= "#{l v.committed_date.to_date, :format => :long}:"
|
||||||
|
= v.message.encode_to_default
|
||||||
|
- if @name
|
||||||
|
= raw "[#{link_to v.id[0..6], versioned_project_wiki_path(@project, escaped_name, v.id), :title => t("wiki.view_commit")}]"
|
||||||
|
- else
|
||||||
|
= "[#{v.id[0..6]}]"
|
||||||
|
|
||||||
= form_tag compare_path(@project, @name), :name => "compare-versions", :id => "version-form" do
|
:javascript
|
||||||
%fieldset
|
$('.niceCheck-main').click(function() {
|
||||||
%table
|
var count = 0;
|
||||||
%tbody
|
$('input.history_cbx').each(function(i,el) {
|
||||||
- @versions.each do |v|
|
if ($(el).attr('checked')) {
|
||||||
%tr{:class => cycle("odd", "even")}
|
count = count + 1;
|
||||||
%td.checkbox
|
}
|
||||||
= check_box_tag "versions[]", v.id
|
});
|
||||||
%td.author
|
if (count > 2) {
|
||||||
- user = User.where(:email => v.author.email).first
|
var cbx = $( $(this).find('input.history_cbx')[0] );
|
||||||
= link_to user_path_by_user(user) do
|
if ( cbx.attr('checked') ) {
|
||||||
%img{:src => gravatar_url(v.author.email),
|
$(this).css('background-position', '0pt 0px');
|
||||||
:alt => "avatar: #{v.author.name.encode_to_default}",
|
cbx.removeAttr('checked');
|
||||||
:class => "mini-gravatar"}
|
}
|
||||||
%span.username= user.present? ? user.uname : v.author.name.encode_to_default
|
}
|
||||||
%td.commit-name
|
});
|
||||||
%span.time-elapsed= "#{l v.committed_date.to_date, :format => :long}:"
|
|
||||||
|
|
||||||
= v.message.encode_to_default
|
|
||||||
- if @name
|
|
||||||
= raw "[#{link_to v.id[0..6], versioned_project_wiki_path(@project, escaped_name, v.id), :title => t("layout.wiki.view_commit")}]"
|
|
||||||
- else
|
|
||||||
= "[#{v.id[0..6]}]"
|
|
||||||
|
|
||||||
#gollum-footer
|
|
||||||
%ul.actions
|
|
||||||
%li.minibutton
|
|
||||||
= link_to t("layout.wiki.compare_revisions"), "javascript:void(0);", :class => "action-compare-revision"
|
|
||||||
%li.minibutton
|
|
||||||
= link_to t("layout.wiki.back_to_top"), "#wiki", :class => "action-back-to-top"
|
|
||||||
|
|
|
@ -1,11 +1,13 @@
|
||||||
- act = action_name.intern
|
- act = action_name.intern
|
||||||
.secondary-navigation
|
.sub-menu
|
||||||
%ul.wat-cf
|
.left= @project.name
|
||||||
%li.first{:class => ((act == :show and @name == 'Home') or act == :index) ? 'active' : ''}
|
%nav
|
||||||
= link_to t("layout.wiki.home"), project_wiki_index_path(@project)
|
%ul
|
||||||
%li{:class => (act == :pages) ? 'active' : ''}
|
%li{:class => ((act == :show and @name == 'Home') or act == :index) ? 'active' : ''}
|
||||||
= link_to t("layout.wiki.pages"), pages_project_wiki_index_path(@project)
|
= link_to t("wiki.home"), project_wiki_index_path(@project)
|
||||||
%li{:class => (act == :wiki_history or act == :compare_wiki) ? 'active' : ''}
|
%li{:class => (act == :pages) ? 'active' : ''}
|
||||||
= link_to t("layout.wiki.wiki_history"), history_project_wiki_index_path(@project)
|
= link_to t("wiki.pages"), pages_project_wiki_index_path(@project)
|
||||||
%li{:class => (act == :git) ? 'active' : ''}
|
%li{:class => (act == :wiki_history or act == :compare_wiki) ? 'active' : ''}
|
||||||
= link_to t("layout.wiki.git_access"), git_project_wiki_index_path(@project)
|
= link_to t("wiki.wiki_history"), history_project_wiki_index_path(@project)
|
||||||
|
%li{:class => (act == :git) ? 'active' : ''}
|
||||||
|
= link_to t("wiki.git_access"), git_project_wiki_index_path(@project)
|
|
@ -1,23 +1,19 @@
|
||||||
#wiki-content
|
#wiki-content
|
||||||
.wrap{:class => "#{has_footer? ? 'has-footer' : ''} #{has_sidebar? ? 'has-rightbar' : ''}"}
|
.wrap{:class => "#{has_footer? ? 'has-footer' : ''} #{has_sidebar? ? 'has-rightbar' : ''}"}
|
||||||
#wiki-body{:class => "gollum-#{format}-content"}
|
#wiki-body{:class => "gollum-#{format}-content"}
|
||||||
#template
|
#template= raw @content
|
||||||
= raw @content
|
|
||||||
- if has_sidebar?
|
- if has_sidebar?
|
||||||
#wiki-rightbar{:class => "gollum-#{sidebar_format}-content"}
|
#wiki-rightbar{:class => "gollum-#{sidebar_format}-content"}= raw sidebar_content
|
||||||
= raw sidebar_content
|
|
||||||
- if has_footer?
|
- if has_footer?
|
||||||
#wiki-footer{:class => "gollum-#{footer_format}-content"}
|
#wiki-footer{:class => "gollum-#{footer_format}-content"}
|
||||||
#footer-content
|
#footer-content= raw footer_content
|
||||||
= raw footer_content
|
|
||||||
#gollum-footer
|
#gollum-footer
|
||||||
%p#last-edit
|
%p#last-edit
|
||||||
= t("layout.wiki.last_edited_by")
|
= t("wiki.last_edited_by")
|
||||||
%b
|
%b= user_link_by_user User.where(:email => author_email).first
|
||||||
= user_link_by_user User.where(:email => author_email).first
|
|
||||||
= time_ago_in_words date.to_time - 4.hours, true
|
= time_ago_in_words date.to_time - 4.hours, true
|
||||||
= t("layout.time.ago")
|
= t("layout.time.ago")
|
||||||
- unless action_name == 'preview' or cannot? :write, @project
|
- unless action_name == 'preview' or cannot? :write, @project
|
||||||
%p#delete-link
|
%p#delete-link
|
||||||
= link_to project_wiki_path(@project, escaped_name), :method => :delete, :confirm => t("layout.confirm") do
|
= link_to project_wiki_path(@project, escaped_name), :method => :delete, :confirm => t("layout.confirm"), :class => 'button width100' do
|
||||||
%span= t("layout.wiki.delete_page")
|
%span= t("wiki.delete_page")
|
|
@ -21,4 +21,4 @@
|
||||||
%b
|
%b
|
||||||
= t("activerecord.attributes.project.owner")
|
= t("activerecord.attributes.project.owner")
|
||||||
\:
|
\:
|
||||||
= link_to @project.owner.try(:name), url_for(@project.owner)
|
= link_to @project.owner.try(:name), url_for(@project.owner)
|
|
@ -1,22 +1,21 @@
|
||||||
#results
|
%p
|
||||||
- if @results and !@results.empty?
|
- if @results.present?
|
||||||
%ul
|
- @results.each do |result|
|
||||||
- @results.each do |result|
|
- if action_name == 'search'
|
||||||
%li
|
= link_to result[:name], project_wiki_path(@project, CGI.escape(result[:name]))
|
||||||
- if action_name == 'search'
|
%span.count= "(#{result.count} #{t("wiki.matches")})"
|
||||||
= link_to result[:name], project_wiki_path(@project, CGI.escape(result[:name]))
|
-else
|
||||||
%span.count= "(#{result.count} #{t("layout.wiki.matches")})"
|
= link_to result.name, project_wiki_path(@project, CGI.escape(result.name))
|
||||||
-else
|
%br
|
||||||
= link_to result.name, project_wiki_path(@project, CGI.escape(result.name))
|
- else
|
||||||
- else
|
%p#no-results
|
||||||
%p#no-results
|
- @st_ref = capture do
|
||||||
- @st_ref = capture do
|
%strong= @ref || @query
|
||||||
%strong= @ref || @query
|
- if action_name == 'search'
|
||||||
- if action_name == 'search'
|
= raw t("wiki.no_results_for_search", :query => @st_ref)
|
||||||
= raw t("layout.wiki.no_results_for_search", :query => @st_ref)
|
- else
|
||||||
- else
|
= raw t("wiki.no_pages_in", :ref => @st_ref)
|
||||||
= raw t("layout.wiki.no_pages_in", :ref => @st_ref)
|
|
||||||
|
|
||||||
#footer
|
/ #footer
|
||||||
%ul.actions
|
/ %ul.actions
|
||||||
%li.minibutton= link_to t("layout.wiki.back_to_top"), '#wiki'
|
/ %li.minibutton= link_to t("wiki.back_to_top"), '#wiki'
|
|
@ -1,6 +1,6 @@
|
||||||
#gollum-searchbar
|
#gollum-searchbar
|
||||||
= form_tag search_project_wiki_index_path(@project), :method => :get, :id => "gollum-search-form" do
|
= form_tag search_project_wiki_index_path(@project), :method => :get, :id => "gollum-search-form" do
|
||||||
#gollum-searchbar-fauxtext
|
#gollum-searchbar-fauxtext
|
||||||
= text_field_tag :q, t("layout.wiki.search_and_hellip"), :id => "search-query", :autocomplete => "on"
|
= text_field_tag :q, t("wiki.search_and_hellip"), :id => "search-query", :autocomplete => "on"
|
||||||
= link_to "#", :id => "search-submit", :title => t("layout.wiki.search_popup") do
|
= link_to "#", :id => "search-submit", :title => t("wiki.search_popup") do
|
||||||
%span= t("layout.wiki.search")
|
%span= t("wiki.search")
|
|
@ -0,0 +1,14 @@
|
||||||
|
- act = action_name.intern
|
||||||
|
%aside
|
||||||
|
.admin-preferences
|
||||||
|
%ul
|
||||||
|
%li{:class => ((act == :show and @name == 'Home') or act == :index) ? 'active' : ''}
|
||||||
|
= link_to t("wiki.home"), project_wiki_index_path(@project)
|
||||||
|
%li{:class => (act == :pages) ? 'active' : ''}
|
||||||
|
= link_to t("wiki.pages"), pages_project_wiki_index_path(@project)
|
||||||
|
%li{:class => (act == :wiki_history or act == :compare_wiki) ? 'active' : ''}
|
||||||
|
= link_to t("wiki.wiki_history"), history_project_wiki_index_path(@project)
|
||||||
|
%li{:class => (act == :git) ? 'active' : ''}
|
||||||
|
= link_to t("wiki.git_access"), git_project_wiki_index_path(@project)
|
||||||
|
%br
|
||||||
|
= render 'searchbar'
|
|
@ -1,29 +1,22 @@
|
||||||
= render :partial => 'gollum_includes'
|
= render 'gollum_includes'
|
||||||
= render :partial => 'project_short'
|
/ = render 'project_short'
|
||||||
|
= render 'projects/submenu'
|
||||||
|
|
||||||
%a{ :name => "wiki"}
|
%h3.wiki
|
||||||
.block
|
- if @name
|
||||||
= render :partial => 'navigation'
|
= t("wiki.history_for")
|
||||||
|
%strong= @page.name
|
||||||
|
- else
|
||||||
|
= t("wiki.wiki_history")
|
||||||
|
|
||||||
.content
|
%br
|
||||||
#wiki-wrapper.inner.compare
|
%br
|
||||||
#head
|
|
||||||
%h1.title
|
|
||||||
- if @name
|
|
||||||
= t("layout.wiki.history_for")
|
|
||||||
%strong= @page.name
|
|
||||||
- else
|
|
||||||
= t("layout.wiki.wiki_history")
|
|
||||||
|
|
||||||
%ul.actions
|
.r
|
||||||
- if can? :read, @project
|
- if can? :read, @project
|
||||||
%li.minibutton= link_to t("layout.wiki.back_to_history"),
|
= link_to t("wiki.back_to_history"), @name ? history_project_wiki_path(@project, escaped_name) : history_project_wiki_index_path(@project), :class => 'button width100'
|
||||||
@name ? history_project_wiki_path(@project, escaped_name) : history_project_wiki_index_path(@project)
|
|
||||||
= render :partial => 'searchbar'
|
|
||||||
|
|
||||||
#wiki-content
|
#wiki-content= render "compare"
|
||||||
= render :partial => "compare"
|
|
||||||
|
|
||||||
- content_for :sidebar do
|
- content_for :sidebar do
|
||||||
- render :partial => 'projects/sidebar'
|
- render 'sidebar'
|
||||||
|
|
||||||
|
|
|
@ -1,33 +1,27 @@
|
||||||
= render :partial => 'gollum_includes'
|
= render 'gollum_includes'
|
||||||
= render :partial => 'project_short'
|
/ = render 'project_short'
|
||||||
|
= render 'projects/submenu'
|
||||||
|
|
||||||
%a{ :name => "wiki"}
|
%h3.wiki
|
||||||
.block
|
= t("wiki.editing_page")
|
||||||
= render :partial => 'navigation'
|
%strong= @page.name
|
||||||
|
- if can? :read, @project
|
||||||
|
.r= link_to t("wiki.view_page"), view_path(@project, escaped_name), :class => 'action-view-page button width100'
|
||||||
|
.r= link_to t("wiki.page_history"), history_project_wiki_path(@project, escaped_name), :class => 'aciton-view-history button width100'
|
||||||
|
|
||||||
.content
|
%br
|
||||||
#wiki-wrapper.inner
|
%br
|
||||||
#head
|
%br
|
||||||
%h1.title
|
|
||||||
= t("layout.wiki.editing_page")
|
|
||||||
%strong= @page.name
|
|
||||||
|
|
||||||
%ul.actions
|
#wiki-content= render "editor"
|
||||||
- if can? :read, @project
|
|
||||||
%li.minibutton
|
|
||||||
= link_to t("layout.wiki.view_page"), view_path(@project, escaped_name),
|
|
||||||
:class => 'action-view-page'
|
|
||||||
%li.minibutton
|
|
||||||
= link_to t("layout.wiki.page_history"), history_project_wiki_path(@project, escaped_name),
|
|
||||||
:class => 'aciton-view-history'
|
|
||||||
|
|
||||||
#wiki-content
|
|
||||||
= render :partial => "editor"
|
|
||||||
|
|
||||||
:javascript
|
:javascript
|
||||||
jQuery(document).ready(function() {
|
jQuery(document).ready(function() {
|
||||||
$.GollumEditor();
|
$.GollumEditor();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
:css
|
||||||
|
#gollum-editor { width: 100%; }
|
||||||
|
|
||||||
- content_for :sidebar do
|
- content_for :sidebar do
|
||||||
- render :partial => 'projects/sidebar'
|
- render 'sidebar'
|
||||||
|
|
|
@ -1,22 +1,14 @@
|
||||||
= render :partial => 'gollum_includes'
|
/ = render 'gollum_includes'
|
||||||
= render :partial => 'project_short'
|
/ = render 'project_short'
|
||||||
|
= render 'projects/submenu'
|
||||||
|
|
||||||
%a{ :name => "wiki"}
|
.desription-top
|
||||||
.block
|
.img= image_tag("code.png")
|
||||||
= render :partial => 'navigation'
|
= render "git_access"
|
||||||
|
.both
|
||||||
|
= render "git_access_message"
|
||||||
|
|
||||||
.content
|
.both
|
||||||
#wiki-wrapper.inner.compare
|
|
||||||
#head
|
|
||||||
%h1.title
|
|
||||||
= t("layout.wiki.wiki_git_access")
|
|
||||||
|
|
||||||
#wiki-content
|
|
||||||
= render :partial => "git_access"
|
|
||||||
%br
|
|
||||||
= render :partial => "git_access_message"
|
|
||||||
|
|
||||||
- content_for :sidebar do
|
- content_for :sidebar do
|
||||||
- render :partial => 'projects/sidebar'
|
- render 'sidebar'
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,38 +1,11 @@
|
||||||
= render :partial => 'gollum_includes'
|
/ = render 'gollum_includes'
|
||||||
= render :partial => 'project_short'
|
/ = render 'project_short'
|
||||||
|
= render 'projects/submenu'
|
||||||
|
|
||||||
%a{ :name => "wiki"}
|
.r= link_to t("wiki.compare_revisions"), "javascript:void(0);", :class => "action-compare-revision button width100"
|
||||||
.block
|
.both
|
||||||
= render :partial => 'navigation'
|
= render 'history'
|
||||||
|
.both
|
||||||
.content
|
|
||||||
#wiki-wrapper.inner.history
|
|
||||||
#head
|
|
||||||
%h1.title
|
|
||||||
- if @name
|
|
||||||
= t("layout.wiki.history_for")
|
|
||||||
%strong= @page.name
|
|
||||||
- else
|
|
||||||
= t("layout.wiki.wiki_history")
|
|
||||||
|
|
||||||
%ul.actions
|
|
||||||
- if @name
|
|
||||||
- if can? :read, @project
|
|
||||||
%li.minibutton
|
|
||||||
= link_to t("layout.wiki.view_page"), view_path(@project, escaped_name),
|
|
||||||
:class => 'action-view-page'
|
|
||||||
- if can? :write, @project
|
|
||||||
%li.minibutton
|
|
||||||
= link_to t("layout.wiki.edit_page"), edit_project_wiki_path(@project, escaped_name),
|
|
||||||
:class => 'aciton-edit-page'
|
|
||||||
- else
|
|
||||||
- if can? :read, @project
|
|
||||||
%li.minibutton
|
|
||||||
= link_to t("layout.wiki.view_page"), project_wiki_index_path(@project)
|
|
||||||
= render :partial => 'searchbar'
|
|
||||||
|
|
||||||
#wiki-content
|
|
||||||
= render :partial => "history"
|
|
||||||
|
|
||||||
- content_for :sidebar do
|
- content_for :sidebar do
|
||||||
- render :partial => 'projects/sidebar'
|
- render 'sidebar'
|
||||||
|
|
|
@ -1,24 +1,21 @@
|
||||||
= render :partial => 'gollum_includes'
|
= render 'gollum_includes'
|
||||||
= render :partial => 'project_short'
|
/ = render 'project_short'
|
||||||
|
= render 'projects/submenu'
|
||||||
|
|
||||||
%a{ :name => "wiki"}
|
%h3.wiki
|
||||||
.block
|
= t("wiki.create_page")
|
||||||
= render :partial => 'navigation'
|
%strong= @name
|
||||||
|
%br
|
||||||
|
|
||||||
.content
|
#wiki-content= render "editor"
|
||||||
#wiki-wrapper.inner
|
|
||||||
#head
|
|
||||||
%h1.title
|
|
||||||
= t("layout.wiki.create_page")
|
|
||||||
%strong= @name
|
|
||||||
|
|
||||||
#wiki-content
|
|
||||||
= render :partial => "editor"
|
|
||||||
|
|
||||||
:javascript
|
:javascript
|
||||||
jQuery(document).ready(function() {
|
jQuery(document).ready(function() {
|
||||||
$.GollumEditor({ NewFile: true });
|
$.GollumEditor({ NewFile: true });
|
||||||
});
|
});
|
||||||
|
|
||||||
|
:css
|
||||||
|
#gollum-editor { width: 100%; }
|
||||||
|
|
||||||
- content_for :sidebar do
|
- content_for :sidebar do
|
||||||
- render :partial => 'projects/sidebar'
|
- render 'sidebar'
|
||||||
|
|
|
@ -1,25 +1,11 @@
|
||||||
= render :partial => 'gollum_includes'
|
/ = render 'gollum_includes'
|
||||||
= render :partial => 'project_short'
|
/ = render 'project_short'
|
||||||
|
= render 'projects/submenu'
|
||||||
|
|
||||||
%a{ :name => "wiki"}
|
- if can? :write, @project
|
||||||
.block
|
.r= link_to t("wiki.new_page"), '#', :'data-url' => project_wiki_index_path(@project), :id => 'minibutton-new-page', :class => 'button width100'
|
||||||
= render :partial => 'navigation'
|
.both
|
||||||
|
= render "results"
|
||||||
.content
|
|
||||||
.inner
|
|
||||||
#wiki-wrapper.results
|
|
||||||
#head
|
|
||||||
- @st_ref = capture do
|
|
||||||
%strong= @ref
|
|
||||||
%h1.title= raw t("layout.wiki.all_pages_in")
|
|
||||||
%ul.actions
|
|
||||||
- if can? :read, @project
|
|
||||||
%li.minibutton
|
|
||||||
= link_to t("layout.wiki.home"), project_wiki_index_path(@project),
|
|
||||||
:class => 'action-edit-page'
|
|
||||||
= render :partial => 'searchbar'
|
|
||||||
|
|
||||||
= render :partial => "results"
|
|
||||||
|
|
||||||
- content_for :sidebar do
|
- content_for :sidebar do
|
||||||
- render :partial => 'projects/sidebar'
|
- render 'sidebar'
|
||||||
|
|
|
@ -1,25 +1,15 @@
|
||||||
= render :partial => 'gollum_includes'
|
/ = render 'gollum_includes'
|
||||||
= render :partial => 'project_short'
|
/ = render 'project_short'
|
||||||
|
= render 'projects/submenu'
|
||||||
|
|
||||||
%a{ :name => "wiki"}
|
- @st_query = capture do
|
||||||
.block
|
%strong= @query
|
||||||
= render :partial => 'navigation'
|
%h1.title= raw t("wiki.search_results_for", :query => @st_query)
|
||||||
|
%ul.actions
|
||||||
|
- if can? :read, @project
|
||||||
|
%li.minibutton= link_to t("wiki.home"), project_wiki_index_path(@project), :class => 'action-edit-page'
|
||||||
|
|
||||||
.content
|
= render "results"
|
||||||
.inner
|
|
||||||
#wiki-wrapper.results
|
|
||||||
#head
|
|
||||||
- @st_query = capture do
|
|
||||||
%strong= @query
|
|
||||||
%h1.title= raw t("layout.wiki.search_results_for", :query => @st_query)
|
|
||||||
%ul.actions
|
|
||||||
- if can? :read, @project
|
|
||||||
%li.minibutton
|
|
||||||
= link_to t("layout.wiki.home"), project_wiki_index_path(@project),
|
|
||||||
:class => 'action-edit-page'
|
|
||||||
= render :partial => 'searchbar'
|
|
||||||
|
|
||||||
= render :partial => "results"
|
|
||||||
|
|
||||||
- content_for :sidebar do
|
- content_for :sidebar do
|
||||||
- render :partial => 'projects/sidebar'
|
- render 'sidebar'
|
||||||
|
|
|
@ -1,30 +1,29 @@
|
||||||
= render :partial => 'gollum_includes'
|
/ = render 'gollum_includes'
|
||||||
= render :partial => 'project_short'
|
/ = render 'project_short'
|
||||||
|
= render 'projects/submenu'
|
||||||
|
|
||||||
%a{ :name => "wiki"}
|
%h3.wiki
|
||||||
.block
|
= @page.name
|
||||||
= render :partial => 'navigation'
|
= "(#{t("wiki.preview")})" if action_name == 'preview'
|
||||||
|
- unless action_name == 'preview'
|
||||||
|
.r
|
||||||
|
= link_to t("wiki.page_history"), history_project_wiki_path(@project, escaped_name), :class => 'button width100'
|
||||||
|
.r
|
||||||
|
- if @editable
|
||||||
|
= link_to t("wiki.edit_page"), edit_project_wiki_path(@project, escaped_name), :class => "button width100"
|
||||||
|
.r
|
||||||
|
- if can? :write, @project
|
||||||
|
= link_to t("wiki.new_page"), '#', :'data-url' => project_wiki_index_path(@project), :id => 'minibutton-new-page', :class => 'button width100'
|
||||||
|
|
||||||
.content
|
%br
|
||||||
.inner
|
%br
|
||||||
#wiki-wrapper.page
|
%br
|
||||||
#head
|
.both
|
||||||
%h1.title
|
/ = render 'searchbar'
|
||||||
= @page.name
|
= render "page"
|
||||||
= "(#{t("layout.wiki.preview")})" if action_name == 'preview'
|
|
||||||
- unless action_name == 'preview'
|
|
||||||
%ul.actions
|
|
||||||
- if can? :write, @project
|
|
||||||
%li.minibutton.jaws
|
|
||||||
= link_to t("layout.wiki.new_page"), '#', :'data-url' => project_wiki_index_path(@project),
|
|
||||||
:id => 'minibutton-new-page'
|
|
||||||
- if @editable
|
|
||||||
%li.minibutton
|
|
||||||
= link_to t("layout.wiki.edit_page"), edit_project_wiki_path(@project, escaped_name), :class => "action-edit-page"
|
|
||||||
%li.minibutton= link_to t("layout.wiki.page_history"), history_project_wiki_path(@project, escaped_name)
|
|
||||||
= render :partial => 'searchbar'
|
|
||||||
|
|
||||||
= render :partial => "page"
|
|
||||||
|
|
||||||
- content_for :sidebar do
|
- content_for :sidebar do
|
||||||
- render :partial => 'projects/sidebar'
|
- render 'sidebar'
|
||||||
|
|
||||||
|
:css
|
||||||
|
#wiki-content .wrap { width: 100% }
|
||||||
|
|
|
@ -9,7 +9,4 @@ owner=`basename \`dirname $pwd\``
|
||||||
while read oldrev newrev ref
|
while read oldrev newrev ref
|
||||||
do
|
do
|
||||||
newrev_type=$(git cat-file -t $newrev 2> /dev/null)
|
newrev_type=$(git cat-file -t $newrev 2> /dev/null)
|
||||||
oldrev_type=$(git cat-file -t "$oldrev" 2> /dev/null)
|
oldrev_type=$(git cat-file -t "$oldrev" 2> /dev/null)
|
||||||
|
|
||||||
/bin/bash -l -c "cd /srv/rosa_build/current && bundle exec rails runner 'Project.delay.process_hook(\"$owner\", \"$reponame\", \"$newrev\", \"$oldrev\", \"$ref\", \"$newrev_type\", \"$oldrev_type\")'"
|
|
||||||
done
|
|
|
@ -62,9 +62,11 @@ namespace :deploy do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
after "deploy:update_code", "deploy:symlink_all", "deploy:migrate"
|
after "deploy:finalize_update", "deploy:symlink_all"
|
||||||
after "deploy:restart","bluepill:stop", "delayed_job:restart", "deploy:cleanup", "bluepill:start"
|
after "deploy:update_code", "deploy:migrate"
|
||||||
after "deploy:setup", "deploy:symlink_pids"
|
after "deploy:setup", "deploy:symlink_pids"
|
||||||
|
after "deploy:restart", "bluepill:start" # "bluepill:processes:restart_dj" # "bluepill:restart"
|
||||||
|
after "deploy:restart", "deploy:cleanup"
|
||||||
|
|
||||||
require 'cape'
|
require 'cape'
|
||||||
namespace :rake_tasks do
|
namespace :rake_tasks do
|
||||||
|
|
|
@ -37,7 +37,7 @@ Rosa::Application.configure do
|
||||||
|
|
||||||
# Disable delivery errors, bad email addresses will be ignored
|
# Disable delivery errors, bad email addresses will be ignored
|
||||||
# config.action_mailer.raise_delivery_errors = false
|
# config.action_mailer.raise_delivery_errors = false
|
||||||
config.action_mailer.default_url_options = { :host => 'rosa-build.rosalab.ru' }
|
config.action_mailer.default_url_options = { :host => 'abf.rosalinux.ru' }
|
||||||
|
|
||||||
# Enable threaded mode
|
# Enable threaded mode
|
||||||
# config.threadsafe!
|
# config.threadsafe!
|
||||||
|
@ -57,6 +57,9 @@ Rosa::Application.configure do
|
||||||
|
|
||||||
# Generate digests for assets URLs
|
# Generate digests for assets URLs
|
||||||
config.assets.digest = true
|
config.assets.digest = true
|
||||||
|
|
||||||
|
# Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added)
|
||||||
|
config.assets.precompile += %w()
|
||||||
end
|
end
|
||||||
|
|
||||||
# require 'stub_xml_rpc'
|
# require 'stub_xml_rpc'
|
||||||
|
|
|
@ -62,7 +62,7 @@ en:
|
||||||
|
|
||||||
downloads:
|
downloads:
|
||||||
title: Downloads statistic
|
title: Downloads statistic
|
||||||
message: Automatically updated every 5 minutes
|
message: Automatically updated every 24 hours
|
||||||
refresh_btn: Refresh
|
refresh_btn: Refresh
|
||||||
|
|
||||||
auto_build_lists:
|
auto_build_lists:
|
||||||
|
@ -149,63 +149,6 @@ en:
|
||||||
confirm_clone: To clone?
|
confirm_clone: To clone?
|
||||||
clone: To clone
|
clone: To clone
|
||||||
|
|
||||||
wiki:
|
|
||||||
new_page: New Page
|
|
||||||
edit_page: Edit Page
|
|
||||||
delete_page: Delete this Page
|
|
||||||
page_history: Page History
|
|
||||||
create_page: Create page
|
|
||||||
wiki_git_access: Git Access
|
|
||||||
page_title: Page header
|
|
||||||
expand_collapse: Expand
|
|
||||||
last_edited_by: Last edited by
|
|
||||||
home: Home
|
|
||||||
pages: Pages
|
|
||||||
wiki_history: Wiki History
|
|
||||||
git_access: Git Access
|
|
||||||
search_and_hellip: Search & Hellip
|
|
||||||
search: Search
|
|
||||||
search_popup: Search this Wiki
|
|
||||||
commit_message_placeholder: Write a small message here explaining this change. (Optional)
|
|
||||||
edit_commit_message: Edit commit message
|
|
||||||
preview_title: Preview Page in new window
|
|
||||||
save_changes: Save current changes
|
|
||||||
save_button: Save Page
|
|
||||||
view_page: View Page
|
|
||||||
view_commit: View version
|
|
||||||
compare_revisions: Compare versions
|
|
||||||
back_to_top: Back to Top
|
|
||||||
no_pages_in: No pages in %{ref}.
|
|
||||||
no_results_for_search: Nothing found for %{query}.
|
|
||||||
matches: matches
|
|
||||||
back_to_history: Back to History
|
|
||||||
history_for: History for
|
|
||||||
editing_page: Editing
|
|
||||||
create_page: Create Page
|
|
||||||
revert_page: Revert Page
|
|
||||||
revert_pages: Revert Pages
|
|
||||||
all_pages_in: "All pages:"
|
|
||||||
search_results_for: "Search results for %{query}:"
|
|
||||||
preview: Preview
|
|
||||||
|
|
||||||
clones:
|
|
||||||
http: HTTP
|
|
||||||
|
|
||||||
editor:
|
|
||||||
bold: Bold
|
|
||||||
italic: Italic
|
|
||||||
code: Code
|
|
||||||
unordered_list: Unordered list
|
|
||||||
ordered_list: Ordered list
|
|
||||||
blockquote: Blockquote
|
|
||||||
horizontal_rule: Horizontal rule
|
|
||||||
h1: First level header
|
|
||||||
h2: Second level header
|
|
||||||
h3: Third level header
|
|
||||||
link: Link
|
|
||||||
image: Image
|
|
||||||
help: Help
|
|
||||||
|
|
||||||
event_logs:
|
event_logs:
|
||||||
list: List
|
list: List
|
||||||
list_header: Event log
|
list_header: Event log
|
||||||
|
@ -446,7 +389,7 @@ en:
|
||||||
list_header: Event log
|
list_header: Event log
|
||||||
|
|
||||||
repositories:
|
repositories:
|
||||||
empty: Empty repository
|
empty: "Repository is empty. You need to wait some time if you have forked project or imported package"
|
||||||
source: Source
|
source: Source
|
||||||
commits: Commits
|
commits: Commits
|
||||||
commit_diff_too_big: Sorry, commit too big!
|
commit_diff_too_big: Sorry, commit too big!
|
||||||
|
@ -455,6 +398,8 @@ en:
|
||||||
project_versions: Versions
|
project_versions: Versions
|
||||||
|
|
||||||
product_build_lists:
|
product_build_lists:
|
||||||
|
delete: Delete
|
||||||
|
action: Action
|
||||||
statuses:
|
statuses:
|
||||||
'0': 'build'
|
'0': 'build'
|
||||||
'1': 'build error'
|
'1': 'build error'
|
||||||
|
@ -593,6 +538,7 @@ en:
|
||||||
save_error: Product saves error
|
save_error: Product saves error
|
||||||
build_started: Product build started
|
build_started: Product build started
|
||||||
destroyed: Product deleted
|
destroyed: Product deleted
|
||||||
|
build_list_delete: Product build list deleted
|
||||||
|
|
||||||
platform:
|
platform:
|
||||||
saved: Platform saved
|
saved: Platform saved
|
||||||
|
@ -824,6 +770,7 @@ en:
|
||||||
product_build_list:
|
product_build_list:
|
||||||
id: Id
|
id: Id
|
||||||
product: Product
|
product: Product
|
||||||
|
container_path: Container
|
||||||
status: Status
|
status: Status
|
||||||
notified_at: Notified at
|
notified_at: Notified at
|
||||||
|
|
||||||
|
|
|
@ -62,7 +62,7 @@ ru:
|
||||||
|
|
||||||
downloads:
|
downloads:
|
||||||
title: Статистика закачек пакетов
|
title: Статистика закачек пакетов
|
||||||
message: Обновляется автоматически каждые 5 минут
|
message: Обновляется автоматически каждые 24 часа
|
||||||
refresh_btn: Обновить
|
refresh_btn: Обновить
|
||||||
|
|
||||||
auto_build_lists:
|
auto_build_lists:
|
||||||
|
@ -149,63 +149,6 @@ ru:
|
||||||
confirm_clone: Клонировать?
|
confirm_clone: Клонировать?
|
||||||
clone: Клонировать
|
clone: Клонировать
|
||||||
|
|
||||||
wiki:
|
|
||||||
new_page: Новая
|
|
||||||
edit_page: Изменить
|
|
||||||
delete_page: Удалить страницу
|
|
||||||
page_history: История
|
|
||||||
create_page: Создать страницу
|
|
||||||
wiki_git_access: Доступ к Wiki через Git
|
|
||||||
page_title: Заголовок страницы
|
|
||||||
expand_collapse: Развернуть
|
|
||||||
last_edited_by: Последним редактировал
|
|
||||||
home: Главная
|
|
||||||
pages: Все страницы
|
|
||||||
wiki_history: История Wiki
|
|
||||||
git_access: Доступ через Git
|
|
||||||
search_and_hellip: Ключевые слова
|
|
||||||
search: Искать
|
|
||||||
search_popup: Искать в этой Wiki
|
|
||||||
commit_message_placeholder: Введите сопровождающее сообщение (опционально)
|
|
||||||
edit_commit_message: Редактировать сопровождающее сообщение
|
|
||||||
preview_title: Посмотреть в новом окне
|
|
||||||
save_changes: Сохранить текущие изменения
|
|
||||||
save_button: Сохранить
|
|
||||||
view_page: Показать
|
|
||||||
view_commit: Показать версию
|
|
||||||
compare_revisions: Сравнить версии
|
|
||||||
back_to_top: Наверх
|
|
||||||
no_pages_in: В %{ref} нет страниц для отображения.
|
|
||||||
no_results_for_search: По запросу %{query} ничего не найдено.
|
|
||||||
matches: Совпадений
|
|
||||||
back_to_history: Назад к истории
|
|
||||||
history_for: История для
|
|
||||||
editing_page: Редактирование страницы
|
|
||||||
create_page: Создать страницу
|
|
||||||
revert_page: Откатить изменения
|
|
||||||
revert_pages: Откатить изменения
|
|
||||||
all_pages_in: "Все страницы:"
|
|
||||||
search_results_for: "Результаты поиска для %{query}:"
|
|
||||||
preview: Предпросмотр
|
|
||||||
|
|
||||||
clones:
|
|
||||||
http: HTTP
|
|
||||||
|
|
||||||
editor:
|
|
||||||
bold: Жирный
|
|
||||||
italic: Курсив
|
|
||||||
code: Исходный код
|
|
||||||
unordered_list: Маркированный список
|
|
||||||
ordered_list: Нумерованный список
|
|
||||||
blockquote: Цитата
|
|
||||||
horizontal_rule: Горизонтальная черта
|
|
||||||
h1: Заголовок первого уровня
|
|
||||||
h2: Заголовок второго уровня
|
|
||||||
h3: Заголовок третьего уровня
|
|
||||||
link: Ссылка
|
|
||||||
image: Изображение
|
|
||||||
help: Помощь
|
|
||||||
|
|
||||||
event_logs:
|
event_logs:
|
||||||
list: Список
|
list: Список
|
||||||
list_header: Лог событий
|
list_header: Лог событий
|
||||||
|
@ -330,7 +273,7 @@ ru:
|
||||||
|
|
||||||
git:
|
git:
|
||||||
repositories:
|
repositories:
|
||||||
empty: Пустой репозиторий
|
empty: "Репозиторий пуст. Если вы клонировали(Fork) проект или импортировали пакет, данные скоро появятся"
|
||||||
source: Source
|
source: Source
|
||||||
commits: Commits
|
commits: Commits
|
||||||
commit_diff_too_big: Извините, коммит слишком большой!
|
commit_diff_too_big: Извините, коммит слишком большой!
|
||||||
|
@ -339,6 +282,8 @@ ru:
|
||||||
project_versions: Версии
|
project_versions: Версии
|
||||||
|
|
||||||
product_build_lists:
|
product_build_lists:
|
||||||
|
delete: Удалить
|
||||||
|
action: Действие
|
||||||
statuses:
|
statuses:
|
||||||
'0': 'собран'
|
'0': 'собран'
|
||||||
'1': 'ошибка сборки'
|
'1': 'ошибка сборки'
|
||||||
|
@ -482,6 +427,7 @@ ru:
|
||||||
save_error: Не удалось сохранить изменения
|
save_error: Не удалось сохранить изменения
|
||||||
build_started: Запущена сборка продукта
|
build_started: Запущена сборка продукта
|
||||||
destroyed: Продукт удален
|
destroyed: Продукт удален
|
||||||
|
build_list_delete: Сборочный лист продукта удален
|
||||||
|
|
||||||
platform:
|
platform:
|
||||||
saved: Платформа успешно добавлена
|
saved: Платформа успешно добавлена
|
||||||
|
@ -703,6 +649,7 @@ ru:
|
||||||
product_build_list:
|
product_build_list:
|
||||||
id: Id
|
id: Id
|
||||||
product: Продукт
|
product: Продукт
|
||||||
|
container_path: Контейнер
|
||||||
status: Статус
|
status: Статус
|
||||||
notified_at: Информация получена
|
notified_at: Информация получена
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,65 @@
|
||||||
|
en:
|
||||||
|
wiki:
|
||||||
|
new_page: New Page
|
||||||
|
edit_page: Edit Page
|
||||||
|
delete_page: Delete this Page
|
||||||
|
page_history: Page History
|
||||||
|
create_page: Create page
|
||||||
|
wiki_git_access: Git Access
|
||||||
|
page_title: Page header
|
||||||
|
expand_collapse: Expand
|
||||||
|
last_edited_by: Last edited by
|
||||||
|
home: Home
|
||||||
|
pages: Pages
|
||||||
|
wiki_history: Wiki History
|
||||||
|
git_access: Git Access
|
||||||
|
search_and_hellip: Search & Hellip
|
||||||
|
search: Search
|
||||||
|
search_popup: Search this Wiki
|
||||||
|
commit_message_placeholder: Write a small message here explaining this change. (Optional)
|
||||||
|
edit_commit_message: Edit commit message
|
||||||
|
preview_title: Preview Page in new window
|
||||||
|
save_changes: Save current changes
|
||||||
|
save_button: Save Page
|
||||||
|
view_page: View Page
|
||||||
|
view_commit: View version
|
||||||
|
compare_revisions: Compare versions
|
||||||
|
back_to_top: Back to Top
|
||||||
|
no_pages_in: No pages in %{ref}.
|
||||||
|
no_results_for_search: Nothing found for %{query}.
|
||||||
|
matches: matches
|
||||||
|
back_to_history: Back to History
|
||||||
|
history_for: History for
|
||||||
|
editing_page: Editing
|
||||||
|
create_page: Create Page
|
||||||
|
revert_page: Revert Page
|
||||||
|
revert_pages: Revert Pages
|
||||||
|
all_pages_in: "All pages:"
|
||||||
|
search_results_for: "Search results for %{query}:"
|
||||||
|
preview: Preview
|
||||||
|
footer: Footer
|
||||||
|
sidebar: Sidebar
|
||||||
|
|
||||||
|
clones:
|
||||||
|
http: HTTP
|
||||||
|
|
||||||
|
editor:
|
||||||
|
bold: Bold
|
||||||
|
italic: Italic
|
||||||
|
code: Code
|
||||||
|
unordered_list: Unordered list
|
||||||
|
ordered_list: Ordered list
|
||||||
|
blockquote: Blockquote
|
||||||
|
horizontal_rule: Horizontal rule
|
||||||
|
h1: First level header
|
||||||
|
h2: Second level header
|
||||||
|
h3: Third level header
|
||||||
|
link: Link
|
||||||
|
image: Image
|
||||||
|
help: Help
|
||||||
|
|
||||||
|
seed:
|
||||||
|
welcome_content: |
|
||||||
|
# Welcome to **Wiki** #
|
||||||
|
|
||||||
|
Edit this page and create new ones.
|
|
@ -0,0 +1,65 @@
|
||||||
|
ru:
|
||||||
|
wiki:
|
||||||
|
new_page: Новая
|
||||||
|
edit_page: Изменить
|
||||||
|
delete_page: Удалить страницу
|
||||||
|
page_history: История
|
||||||
|
create_page: Создать страницу
|
||||||
|
wiki_git_access: Доступ к Wiki через Git
|
||||||
|
page_title: Заголовок страницы
|
||||||
|
expand_collapse: Развернуть
|
||||||
|
last_edited_by: Последним редактировал
|
||||||
|
home: Главная
|
||||||
|
pages: Все страницы
|
||||||
|
wiki_history: История Wiki
|
||||||
|
git_access: Доступ через Git
|
||||||
|
search_and_hellip: Ключевые слова
|
||||||
|
search: Искать
|
||||||
|
search_popup: Искать в этой Wiki
|
||||||
|
commit_message_placeholder: Введите сопровождающее сообщение (опционально)
|
||||||
|
edit_commit_message: Редактировать сопровождающее сообщение
|
||||||
|
preview_title: Посмотреть в новом окне
|
||||||
|
save_changes: Сохранить текущие изменения
|
||||||
|
save_button: Сохранить
|
||||||
|
view_page: Показать
|
||||||
|
view_commit: Показать версию
|
||||||
|
compare_revisions: Сравнить версии
|
||||||
|
back_to_top: Наверх
|
||||||
|
no_pages_in: В %{ref} нет страниц для отображения.
|
||||||
|
no_results_for_search: По запросу %{query} ничего не найдено.
|
||||||
|
matches: Совпадений
|
||||||
|
back_to_history: Назад к истории
|
||||||
|
history_for: История для
|
||||||
|
editing_page: Редактирование страницы
|
||||||
|
create_page: Создать страницу
|
||||||
|
revert_page: Откатить изменения
|
||||||
|
revert_pages: Откатить изменения
|
||||||
|
all_pages_in: "Все страницы:"
|
||||||
|
search_results_for: "Результаты поиска для %{query}:"
|
||||||
|
preview: Предпросмотр
|
||||||
|
footer: Подвал
|
||||||
|
sidebar: Сайдбар
|
||||||
|
|
||||||
|
clones:
|
||||||
|
http: HTTP
|
||||||
|
|
||||||
|
editor:
|
||||||
|
bold: Жирный
|
||||||
|
italic: Курсив
|
||||||
|
code: Исходный код
|
||||||
|
unordered_list: Маркированный список
|
||||||
|
ordered_list: Нумерованный список
|
||||||
|
blockquote: Цитата
|
||||||
|
horizontal_rule: Горизонтальная черта
|
||||||
|
h1: Заголовок первого уровня
|
||||||
|
h2: Заголовок второго уровня
|
||||||
|
h3: Заголовок третьего уровня
|
||||||
|
link: Ссылка
|
||||||
|
image: Изображение
|
||||||
|
help: Помощь
|
||||||
|
|
||||||
|
seed:
|
||||||
|
welcome_content: |
|
||||||
|
# Добро пожаловать в **Wiki** #
|
||||||
|
|
||||||
|
Отредактируйте эту страницу и создайте новые.
|
|
@ -1,7 +0,0 @@
|
||||||
en:
|
|
||||||
wiki:
|
|
||||||
seed:
|
|
||||||
welcome_content: |
|
|
||||||
# Welcome to **Wiki** #
|
|
||||||
|
|
||||||
Edit this page and create new ones.
|
|
|
@ -1,7 +0,0 @@
|
||||||
ru:
|
|
||||||
wiki:
|
|
||||||
seed:
|
|
||||||
welcome_content: |
|
|
||||||
# Добро пожаловать в **Wiki** #
|
|
||||||
|
|
||||||
Отредактируйте эту страницу и создайте новые.
|
|
|
@ -11,6 +11,7 @@ Bluepill.application(app_name) do |app|
|
||||||
|
|
||||||
process.start_command = "/usr/bin/env RAILS_ENV=production script/delayed_job start"
|
process.start_command = "/usr/bin/env RAILS_ENV=production script/delayed_job start"
|
||||||
process.stop_command = "/usr/bin/env RAILS_ENV=production script/delayed_job stop"
|
process.stop_command = "/usr/bin/env RAILS_ENV=production script/delayed_job stop"
|
||||||
|
process.restart_command = "/usr/bin/env RAILS_ENV=production script/delayed_job restart"
|
||||||
process.pid_file = File.join(app.working_dir, 'tmp', 'pids', 'delayed_job.pid')
|
process.pid_file = File.join(app.working_dir, 'tmp', 'pids', 'delayed_job.pid')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -72,7 +72,7 @@ Rosa::Application.routes.draw do
|
||||||
post 'freeze'
|
post 'freeze'
|
||||||
post 'unfreeze'
|
post 'unfreeze'
|
||||||
get 'clone'
|
get 'clone'
|
||||||
post 'clone'
|
post 'make_clone'
|
||||||
post 'build_all'
|
post 'build_all'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -86,7 +86,7 @@ Rosa::Application.routes.draw do
|
||||||
# get :clone
|
# get :clone
|
||||||
# get :build
|
# get :build
|
||||||
# end
|
# end
|
||||||
resources :product_build_lists, :only => [:create]
|
resources :product_build_lists, :only => [:create, :destroy]
|
||||||
end
|
end
|
||||||
|
|
||||||
resources :repositories
|
resources :repositories
|
||||||
|
@ -101,7 +101,8 @@ Rosa::Application.routes.draw do
|
||||||
match '_access' => 'wiki#git', :as => :git, :via => :get
|
match '_access' => 'wiki#git', :as => :git, :via => :get
|
||||||
match '_revert/:sha1/:sha2' => 'wiki#revert_wiki', :as => :revert, :via => [:get, :post]
|
match '_revert/:sha1/:sha2' => 'wiki#revert_wiki', :as => :revert, :via => [:get, :post]
|
||||||
match '_compare' => 'wiki#compare_wiki', :as => :compare, :via => :post
|
match '_compare' => 'wiki#compare_wiki', :as => :compare, :via => :post
|
||||||
match '_compare/*versions' => 'wiki#compare_wiki', :as => :compare_versions, :via => :get
|
#match '_compare/:versions' => 'wiki#compare_wiki', :versions => /.*/, :as => :compare_versions, :via => :get
|
||||||
|
match '_compare/:versions' => 'wiki#compare_wiki', :versions => /([a-f0-9\^]{6,40})(\.\.\.[a-f0-9\^]{6,40})/, :as => :compare_versions, :via => :get
|
||||||
post :preview
|
post :preview
|
||||||
get :search
|
get :search
|
||||||
get :pages
|
get :pages
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue