Feature #26561 » frozen_string_literals.patch
| lib/plugins/acts_as_tree/Rakefile (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
require 'rake' |
| 2 | 3 |
require 'rake/testtask' |
| 3 | 4 |
require 'rake/rdoctask' |
| lib/plugins/gravatar/Rakefile (working copy) | ||
|---|---|---|
| 1 |
require 'spec/rake/spectask' |
|
| 2 |
require 'rake/rdoctask' |
|
| 3 | ||
| 4 |
desc 'Default: run all specs' |
|
| 5 |
task :default => :spec |
|
| 6 | ||
| 7 |
desc 'Run all application-specific specs' |
|
| 8 |
Spec::Rake::SpecTask.new(:spec) do |t| |
|
| 9 |
# t.rcov = true |
|
| 10 |
end |
|
| 11 | ||
| 12 |
desc "Report code statistics (KLOCs, etc) from the application" |
|
| 13 |
task :stats do |
|
| 14 |
RAILS_ROOT = File.dirname(__FILE__) |
|
| 15 |
STATS_DIRECTORIES = [ |
|
| 16 |
%w(Libraries lib/), |
|
| 17 |
%w(Specs spec/), |
|
| 18 |
].collect { |name, dir| [ name, "#{RAILS_ROOT}/#{dir}" ] }.select { |name, dir| File.directory?(dir) }
|
|
| 19 |
require 'code_statistics' |
|
| 20 |
CodeStatistics.new(*STATS_DIRECTORIES).to_s |
|
| 21 |
end |
|
| 22 | ||
| 23 |
namespace :doc do |
|
| 24 |
desc 'Generate documentation for the assert_request plugin.' |
|
| 25 |
Rake::RDocTask.new(:plugin) do |rdoc| |
|
| 26 |
rdoc.rdoc_dir = 'rdoc' |
|
| 27 |
rdoc.title = 'Gravatar Rails Plugin' |
|
| 28 |
rdoc.options << '--line-numbers' << '--inline-source' << '--accessor' << 'cattr_accessor=rw' |
|
| 29 |
rdoc.rdoc_files.include('README')
|
|
| 30 |
rdoc.rdoc_files.include('lib/**/*.rb')
|
|
| 31 |
end |
|
| 32 |
end |
|
| 1 |
# frozen_string_literal: true |
|
| 2 |
require 'spec/rake/spectask' |
|
| 3 |
require 'rake/rdoctask' |
|
| 4 |
|
|
| 5 |
desc 'Default: run all specs' |
|
| 6 |
task :default => :spec |
|
| 7 |
|
|
| 8 |
desc 'Run all application-specific specs' |
|
| 9 |
Spec::Rake::SpecTask.new(:spec) do |t| |
|
| 10 |
# t.rcov = true |
|
| 11 |
end |
|
| 12 |
|
|
| 13 |
desc "Report code statistics (KLOCs, etc) from the application" |
|
| 14 |
task :stats do |
|
| 15 |
RAILS_ROOT = File.dirname(__FILE__) |
|
| 16 |
STATS_DIRECTORIES = [ |
|
| 17 |
%w(Libraries lib/), |
|
| 18 |
%w(Specs spec/), |
|
| 19 |
].collect { |name, dir| [ name, "#{RAILS_ROOT}/#{dir}" ] }.select { |name, dir| File.directory?(dir) }
|
|
| 20 |
require 'code_statistics' |
|
| 21 |
CodeStatistics.new(*STATS_DIRECTORIES).to_s |
|
| 22 |
end |
|
| 23 |
|
|
| 24 |
namespace :doc do |
|
| 25 |
desc 'Generate documentation for the assert_request plugin.' |
|
| 26 |
Rake::RDocTask.new(:plugin) do |rdoc| |
|
| 27 |
rdoc.rdoc_dir = 'rdoc' |
|
| 28 |
rdoc.title = 'Gravatar Rails Plugin' |
|
| 29 |
rdoc.options << '--line-numbers' << '--inline-source' << '--accessor' << 'cattr_accessor=rw' |
|
| 30 |
rdoc.rdoc_files.include('README')
|
|
| 31 |
rdoc.rdoc_files.include('lib/**/*.rb')
|
|
| 32 |
end |
|
| 33 |
end |
|
| lib/plugins/open_id_authentication/Rakefile (working copy) | ||
|---|---|---|
| 1 |
require 'rake' |
|
| 2 |
require 'rake/testtask' |
|
| 3 |
require 'rake/rdoctask' |
|
| 4 | ||
| 5 |
desc 'Default: run unit tests.' |
|
| 6 |
task :default => :test |
|
| 7 | ||
| 8 |
desc 'Test the open_id_authentication plugin.' |
|
| 9 |
Rake::TestTask.new(:test) do |t| |
|
| 10 |
t.libs << 'lib' |
|
| 11 |
t.pattern = 'test/**/*_test.rb' |
|
| 12 |
t.verbose = true |
|
| 13 |
end |
|
| 14 | ||
| 15 |
desc 'Generate documentation for the open_id_authentication plugin.' |
|
| 16 |
Rake::RDocTask.new(:rdoc) do |rdoc| |
|
| 17 |
rdoc.rdoc_dir = 'rdoc' |
|
| 18 |
rdoc.title = 'OpenIdAuthentication' |
|
| 19 |
rdoc.options << '--line-numbers' << '--inline-source' |
|
| 20 |
rdoc.rdoc_files.include('README')
|
|
| 21 |
rdoc.rdoc_files.include('lib/**/*.rb')
|
|
| 22 |
end |
|
| 1 |
# frozen_string_literal: true |
|
| 2 |
require 'rake' |
|
| 3 |
require 'rake/testtask' |
|
| 4 |
require 'rake/rdoctask' |
|
| 5 |
|
|
| 6 |
desc 'Default: run unit tests.' |
|
| 7 |
task :default => :test |
|
| 8 |
|
|
| 9 |
desc 'Test the open_id_authentication plugin.' |
|
| 10 |
Rake::TestTask.new(:test) do |t| |
|
| 11 |
t.libs << 'lib' |
|
| 12 |
t.pattern = 'test/**/*_test.rb' |
|
| 13 |
t.verbose = true |
|
| 14 |
end |
|
| 15 |
|
|
| 16 |
desc 'Generate documentation for the open_id_authentication plugin.' |
|
| 17 |
Rake::RDocTask.new(:rdoc) do |rdoc| |
|
| 18 |
rdoc.rdoc_dir = 'rdoc' |
|
| 19 |
rdoc.title = 'OpenIdAuthentication' |
|
| 20 |
rdoc.options << '--line-numbers' << '--inline-source' |
|
| 21 |
rdoc.rdoc_files.include('README')
|
|
| 22 |
rdoc.rdoc_files.include('lib/**/*.rb')
|
|
| 23 |
end |
|
| Rakefile (working copy) | ||
|---|---|---|
| 1 |
#!/usr/bin/env rake |
|
| 2 |
# Add your own tasks in files placed in lib/tasks ending in .rake, |
|
| 3 |
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. |
|
| 4 | ||
| 5 |
require File.expand_path('../config/application', __FILE__)
|
|
| 6 | ||
| 7 |
RedmineApp::Application.load_tasks |
|
| 1 |
# frozen_string_literal: true |
|
| 2 |
#!/usr/bin/env rake |
|
| 3 |
# Add your own tasks in files placed in lib/tasks ending in .rake, |
|
| 4 |
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. |
|
| 5 |
|
|
| 6 |
require File.expand_path('../config/application', __FILE__)
|
|
| 7 |
|
|
| 8 |
RedmineApp::Application.load_tasks |
|
| lib/plugins/open_id_authentication/lib/tasks/open_id_authentication_tasks.rake (working copy) | ||
|---|---|---|
| 1 |
namespace :open_id_authentication do |
|
| 2 |
namespace :db do |
|
| 3 |
desc "Creates authentication tables for use with OpenIdAuthentication" |
|
| 4 |
task :create => :environment do |
|
| 5 |
generate_migration(["open_id_authentication_tables", "add_open_id_authentication_tables"]) |
|
| 6 |
end |
|
| 7 | ||
| 8 |
desc "Upgrade authentication tables from ruby-openid 1.x.x to 2.x.x" |
|
| 9 |
task :upgrade => :environment do |
|
| 10 |
generate_migration(["upgrade_open_id_authentication_tables", "upgrade_open_id_authentication_tables"]) |
|
| 11 |
end |
|
| 12 | ||
| 13 |
def generate_migration(args) |
|
| 14 |
require 'rails_generator' |
|
| 15 |
require 'rails_generator/scripts/generate' |
|
| 16 | ||
| 17 |
if ActiveRecord::Base.connection.supports_migrations? |
|
| 18 |
Rails::Generator::Scripts::Generate.new.run(args) |
|
| 19 |
else |
|
| 20 |
raise "Task unavailable to this database (no migration support)" |
|
| 21 |
end |
|
| 22 |
end |
|
| 23 | ||
| 24 |
desc "Clear the authentication tables" |
|
| 25 |
task :clear => :environment do |
|
| 26 |
OpenIdAuthentication::DbStore.cleanup_nonces |
|
| 27 |
OpenIdAuthentication::DbStore.cleanup_associations |
|
| 28 |
end |
|
| 29 |
end |
|
| 30 |
end |
|
| 1 |
# frozen_string_literal: true |
|
| 2 |
namespace :open_id_authentication do |
|
| 3 |
namespace :db do |
|
| 4 |
desc "Creates authentication tables for use with OpenIdAuthentication" |
|
| 5 |
task :create => :environment do |
|
| 6 |
generate_migration(["open_id_authentication_tables", "add_open_id_authentication_tables"]) |
|
| 7 |
end |
|
| 8 |
|
|
| 9 |
desc "Upgrade authentication tables from ruby-openid 1.x.x to 2.x.x" |
|
| 10 |
task :upgrade => :environment do |
|
| 11 |
generate_migration(["upgrade_open_id_authentication_tables", "upgrade_open_id_authentication_tables"]) |
|
| 12 |
end |
|
| 13 |
|
|
| 14 |
def generate_migration(args) |
|
| 15 |
require 'rails_generator' |
|
| 16 |
require 'rails_generator/scripts/generate' |
|
| 17 |
|
|
| 18 |
if ActiveRecord::Base.connection.supports_migrations? |
|
| 19 |
Rails::Generator::Scripts::Generate.new.run(args) |
|
| 20 |
else |
|
| 21 |
raise "Task unavailable to this database (no migration support)" |
|
| 22 |
end |
|
| 23 |
end |
|
| 24 |
|
|
| 25 |
desc "Clear the authentication tables" |
|
| 26 |
task :clear => :environment do |
|
| 27 |
OpenIdAuthentication::DbStore.cleanup_nonces |
|
| 28 |
OpenIdAuthentication::DbStore.cleanup_associations |
|
| 29 |
end |
|
| 30 |
end |
|
| 31 |
end |
|
| lib/tasks/ci.rake (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
desc "Run the Continuous Integration tests for Redmine" |
| 2 | 3 |
task :ci do |
| 3 | 4 |
# RAILS_ENV and ENV[] can diverge so force them both to test |
| lib/tasks/ciphering.rake (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| lib/tasks/deprecated.rake (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
def deprecated_task(name, new_name) |
| 2 | 3 |
task name=>new_name do |
| 3 | 4 |
$stderr.puts "\nNote: The rake task #{name} has been deprecated, please use the replacement version #{new_name}"
|
| lib/tasks/email.rake (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| lib/tasks/extract_fixtures.rake (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
desc 'Create YAML test fixtures from data in an existing database. |
| 2 | 3 |
Defaults to development database. Set RAILS_ENV to override.' |
| 3 | 4 | |
| lib/tasks/initializers.rake (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
desc 'Generates a secret token for the application.' |
| 2 | 3 | |
| 3 | 4 |
file 'config/initializers/secret_token.rb' do |
| lib/tasks/load_default_data.rake (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
desc 'Load Redmine default configuration data. Language is chosen interactively or by setting REDMINE_LANG environment variable.' |
| 2 | 3 | |
| 3 | 4 |
namespace :redmine do |
| lib/tasks/locales.rake (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
desc 'Updates and checks locales against en.yml' |
| 2 | 3 |
task :locales do |
| 3 | 4 |
%w(locales:update locales:check_interpolation).collect do |task| |
| lib/tasks/metrics.rake (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
begin |
| 2 | 3 |
require 'metric_fu' |
| 3 | 4 |
rescue LoadError |
| lib/tasks/migrate_from_mantis.rake (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| lib/tasks/migrate_from_trac.rake (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| lib/tasks/permissions.rake (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
namespace :redmine do |
| 2 | 3 |
desc "List all permissions and the actions registered with them" |
| 3 | 4 |
task :permissions => :environment do |
| lib/tasks/redmine.rake (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| lib/tasks/reminder.rake (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| ... | ... | |
| 36 | 37 |
options[:project] = ENV['project'] if ENV['project'] |
| 37 | 38 |
options[:tracker] = ENV['tracker'].to_i if ENV['tracker'] |
| 38 | 39 |
options[:users] = (ENV['users'] || '').split(',').each(&:strip!)
|
| 39 |
options[:version] = ENV['version'] if ENV['version']
|
|
| 40 |
options[:version] = ENV['version'] if ENV['version'] |
|
| 40 | 41 | |
| 41 | 42 |
Mailer.with_synched_deliveries do |
| 42 | 43 |
Mailer.reminders(options) |
| lib/tasks/testing.rake (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
namespace :test do |
| 2 | 3 |
desc 'Measures test coverage' |
| 3 | 4 |
task :coverage do |
| lib/tasks/yardoc.rake (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
begin |
| 2 | 3 |
require 'yard' |
| 3 | 4 | |
| app/controllers/account_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/activities_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/admin_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/application_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/attachments_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/auth_sources_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/auto_completes_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/boards_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/calendars_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/comments_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/context_menus_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/custom_field_enumerations_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/custom_fields_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/documents_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/email_addresses_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/enumerations_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/files_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/gantts_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/groups_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/imports_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/issue_categories_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/issue_relations_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/issue_statuses_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/issues_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/journals_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| ... | ... | |
| 70 | 71 |
end |
| 71 | 72 |
# Replaces pre blocks with [...] |
| 72 | 73 |
text = text.to_s.strip.gsub(%r{<pre>(.*?)</pre>}m, '[...]')
|
| 73 |
@content = "#{ll(Setting.default_language, :text_user_wrote, user)}\n> "
|
|
| 74 |
@content = ''.dup |
|
| 75 |
@content << "#{ll(Setting.default_language, :text_user_wrote, user)}\n> "
|
|
| 74 | 76 |
@content << text.gsub(/(\r?\n|\r\n?)/, "\n> ") + "\n\n" |
| 75 | 77 |
rescue ActiveRecord::RecordNotFound |
| 76 | 78 |
render_404 |
| app/controllers/mail_handler_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/members_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/messages_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| ... | ... | |
| 112 | 113 |
@subject = @message.subject |
| 113 | 114 |
@subject = "RE: #{@subject}" unless @subject.starts_with?('RE:')
|
| 114 | 115 | |
| 115 |
@content = "#{ll(Setting.default_language, :text_user_wrote, @message.author)}\n> "
|
|
| 116 |
@content = ''.dup |
|
| 117 |
@content << "#{ll(Setting.default_language, :text_user_wrote, @message.author)}\n> "
|
|
| 116 | 118 |
@content << @message.content.to_s.strip.gsub(%r{<pre>(.*?)</pre>}m, '[...]').gsub(/(\r?\n|\r\n?)/, "\n> ") + "\n\n"
|
| 117 | 119 |
end |
| 118 | 120 | |
| app/controllers/my_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/news_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/previews_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/principal_memberships_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/project_enumerations_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/projects_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/queries_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/reports_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/repositories_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/roles_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/search_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| ... | ... | |
| 21 | 22 | |
| 22 | 23 |
def index |
| 23 | 24 |
@question = params[:q] || "" |
| 24 |
@question.strip!
|
|
| 25 |
@question = @question.strip
|
|
| 25 | 26 |
@all_words = params[:all_words] ? params[:all_words].present? : true |
| 26 | 27 |
@titles_only = params[:titles_only] ? params[:titles_only].present? : false |
| 27 | 28 |
@search_attachments = params[:attachments].presence || '0' |
| app/controllers/settings_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/sys_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/timelog_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/trackers_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/users_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/versions_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: trues |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/watchers_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/welcome_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/wiki_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/wikis_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/controllers/workflows_controller.rb (working copy) | ||
|---|---|---|
| 1 |
# frozen_string_literal: true |
|
| 1 | 2 |
# Redmine - project management software |
| 2 | 3 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| 3 | 4 |
# |
| app/helpers/account_helper.rb (working copy) | ||
|---|---|---|
| 1 | 1 |
# encoding: utf-8 |
| 2 |
# frozen_string_literal: true |
|
| 2 | 3 |
# |
| 3 | 4 |
# Redmine - project management software |
| 4 | 5 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| app/helpers/activities_helper.rb (working copy) | ||
|---|---|---|
| 1 | 1 |
# encoding: utf-8 |
| 2 |
# frozen_string_literal: true |
|
| 2 | 3 |
# |
| 3 | 4 |
# Redmine - project management software |
| 4 | 5 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| app/helpers/admin_helper.rb (working copy) | ||
|---|---|---|
| 1 | 1 |
# encoding: utf-8 |
| 2 |
# frozen_string_literal: true |
|
| 2 | 3 |
# |
| 3 | 4 |
# Redmine - project management software |
| 4 | 5 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| ... | ... | |
| 17 | 18 |
# along with this program; if not, write to the Free Software |
| 18 | 19 |
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
| 19 | 20 | |
| 21 |
# frozen_string_literal: true |
|
| 22 | ||
| 20 | 23 |
module AdminHelper |
| 21 | 24 |
def project_status_options_for_select(selected) |
| 22 | 25 |
options_for_select([[l(:label_all), ''], |
| app/helpers/application_helper.rb (working copy) | ||
|---|---|---|
| 1 | 1 |
# encoding: utf-8 |
| 2 |
# frozen_string_literal: true |
|
| 2 | 3 |
# |
| 3 | 4 |
# Redmine - project management software |
| 4 | 5 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| ... | ... | |
| 237 | 238 |
end |
| 238 | 239 | |
| 239 | 240 |
def toggle_link(name, id, options={})
|
| 240 |
onclick = "$('##{id}').toggle(); "
|
|
| 241 |
onclick = ''.dup |
|
| 242 |
onclick << "$('##{id}').toggle(); "
|
|
| 241 | 243 |
onclick << (options[:focus] ? "$('##{options[:focus]}').focus(); " : "this.blur(); ")
|
| 242 | 244 |
onclick << "$(window).scrollTop($('##{options[:focus]}').position().top); " if options[:scroll]
|
| 243 | 245 |
onclick << "return false;" |
| ... | ... | |
| 281 | 283 |
# The given collection may be a subset of the whole project tree |
| 282 | 284 |
# (eg. some intermediate nodes are private and can not be seen) |
| 283 | 285 |
def render_project_nested_lists(projects, &block) |
| 284 |
s = '' |
|
| 286 |
s = ''.dup
|
|
| 285 | 287 |
if projects.any? |
| 286 | 288 |
ancestors = [] |
| 287 | 289 |
original_project = @project |
| ... | ... | |
| 311 | 313 |
end |
| 312 | 314 | |
| 313 | 315 |
def render_page_hierarchy(pages, node=nil, options={})
|
| 314 |
content = '' |
|
| 316 |
content = ''.dup
|
|
| 315 | 317 |
if pages[node] |
| 316 | 318 |
content << "<ul class=\"pages-hierarchy\">\n" |
| 317 | 319 |
pages[node].each do |page| |
| ... | ... | |
| 328 | 330 | |
| 329 | 331 |
# Renders flash messages |
| 330 | 332 |
def render_flash_messages |
| 331 |
s = '' |
|
| 333 |
s = ''.dup
|
|
| 332 | 334 |
flash.each do |k,v| |
| 333 | 335 |
s << content_tag('div', v.html_safe, :class => "flash #{k}", :id => "flash_#{k}")
|
| 334 | 336 |
end |
| ... | ... | |
| 367 | 369 | |
| 368 | 370 |
def render_projects_for_jump_box(projects, selected=nil) |
| 369 | 371 |
jump = params[:jump].presence || current_menu_item |
| 370 |
s = ''.html_safe |
|
| 372 |
s = ''.dup.html_safe
|
|
| 371 | 373 |
project_tree(projects) do |project, level| |
| 372 | 374 |
padding = level * 16 |
| 373 | 375 |
text = content_tag('span', project.name, :style => "padding-left:#{padding}px;")
|
| ... | ... | |
| 399 | 401 |
end |
| 400 | 402 | |
| 401 | 403 |
def project_tree_options_for_select(projects, options = {})
|
| 402 |
s = ''.html_safe |
|
| 404 |
s = ''.dup.html_safe
|
|
| 403 | 405 |
if blank_text = options[:include_blank] |
| 404 | 406 |
if blank_text == true |
| 405 | 407 |
blank_text = ' '.html_safe |
| ... | ... | |
| 428 | 430 |
end |
| 429 | 431 | |
| 430 | 432 |
def principals_check_box_tags(name, principals) |
| 431 |
s = '' |
|
| 433 |
s = ''.dup
|
|
| 432 | 434 |
principals.each do |principal| |
| 433 | 435 |
s << "<label>#{ check_box_tag name, principal.id, false, :id => nil } #{h principal}</label>\n"
|
| 434 | 436 |
end |
| ... | ... | |
| 437 | 439 | |
| 438 | 440 |
# Returns a string for users/groups option tags |
| 439 | 441 |
def principals_options_for_select(collection, selected=nil) |
| 440 |
s = '' |
|
| 442 |
s = ''.dup
|
|
| 441 | 443 |
if collection.include?(User.current) |
| 442 | 444 |
s << content_tag('option', "<< #{l(:label_me)} >>", :value => User.current.id)
|
| 443 | 445 |
end |
| 444 |
groups = '' |
|
| 446 |
groups = ''.dup
|
|
| 445 | 447 |
collection.sort.each do |element| |
| 446 | 448 |
selected_attribute = ' selected="selected"' if option_value_selected?(element, selected) || element.id.to_s == selected |
| 447 | 449 |
(element.is_a?(Group) ? groups : s) << %(<option value="#{element.id}"#{selected_attribute}>#{h element.name}</option>)
|
| ... | ... | |
| 624 | 626 |
else |
| 625 | 627 |
raise ArgumentError, 'invalid arguments to textilizable' |
| 626 | 628 |
end |
| 627 |
return '' if text.blank? |
|
| 629 |
return ''.dup if text.blank?
|
|
| 628 | 630 |
project = options[:project] || @project || (obj && obj.respond_to?(:project) ? obj.project : nil) |
| 629 | 631 |
@only_path = only_path = options.delete(:only_path) == false ? false : true |
| 630 | 632 | |
| ... | ... | |
| 660 | 662 |
def parse_non_pre_blocks(text, obj, macros) |
| 661 | 663 |
s = StringScanner.new(text) |
| 662 | 664 |
tags = [] |
| 663 |
parsed = '' |
|
| 665 |
parsed = ''.dup
|
|
| 664 | 666 |
while !s.eos? |
| 665 | 667 |
s.scan(/(.*?)(<(\/)?(pre|code)(.*?)>|\z)/im) |
| 666 | 668 |
text, full_tag, closing, tag = s[1], s[2], s[3], s[4] |
| ... | ... | |
| 1124 | 1126 |
if headings.empty? |
| 1125 | 1127 |
'' |
| 1126 | 1128 |
else |
| 1127 |
div_class = 'toc' |
|
| 1129 |
div_class = 'toc'.dup
|
|
| 1128 | 1130 |
div_class << ' right' if right_align |
| 1129 | 1131 |
div_class << ' left' if left_align |
| 1130 |
out = "<ul class=\"#{div_class}\"><li><strong>#{l :label_table_of_contents}</strong></li><li>"
|
|
| 1132 |
out = ''.dup |
|
| 1133 |
out << "<ul class=\"#{div_class}\"><li><strong>#{l :label_table_of_contents}</strong></li><li>"
|
|
| 1131 | 1134 |
root = headings.map(&:first).min |
| 1132 | 1135 |
current = root |
| 1133 | 1136 |
started = false |
| ... | ... | |
| 1188 | 1191 | |
| 1189 | 1192 |
# Renders a list of error messages |
| 1190 | 1193 |
def render_error_messages(errors) |
| 1191 |
html = "" |
|
| 1194 |
html = "".dup
|
|
| 1192 | 1195 |
if errors.present? |
| 1193 | 1196 |
html << "<div id='errorExplanation'><ul>\n" |
| 1194 | 1197 |
errors.each do |error| |
| ... | ... | |
| 1303 | 1306 | |
| 1304 | 1307 |
def include_calendar_headers_tags |
| 1305 | 1308 |
unless @calendar_headers_tags_included |
| 1306 |
tags = ''.html_safe |
|
| 1309 |
tags = ''.dup.html_safe
|
|
| 1307 | 1310 |
@calendar_headers_tags_included = true |
| 1308 | 1311 |
content_for :header_tags do |
| 1309 | 1312 |
start_of_week = Setting.start_of_week |
| app/helpers/attachments_helper.rb (working copy) | ||
|---|---|---|
| 1 | 1 |
# encoding: utf-8 |
| 2 |
# frozen_string_literal: true |
|
| 2 | 3 |
# |
| 3 | 4 |
# Redmine - project management software |
| 4 | 5 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| app/helpers/auth_sources_helper.rb (working copy) | ||
|---|---|---|
| 1 | 1 |
# encoding: utf-8 |
| 2 |
# frozen_string_literal: true |
|
| 2 | 3 |
# |
| 3 | 4 |
# Redmine - project management software |
| 4 | 5 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| app/helpers/boards_helper.rb (working copy) | ||
|---|---|---|
| 1 | 1 |
# encoding: utf-8 |
| 2 |
# frozen_string_literal: true |
|
| 2 | 3 |
# |
| 3 | 4 |
# Redmine - project management software |
| 4 | 5 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| app/helpers/calendars_helper.rb (working copy) | ||
|---|---|---|
| 1 | 1 |
# encoding: utf-8 |
| 2 |
# frozen_string_literal: true |
|
| 2 | 3 |
# |
| 3 | 4 |
# Redmine - project management software |
| 4 | 5 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| app/helpers/context_menus_helper.rb (working copy) | ||
|---|---|---|
| 1 | 1 |
# encoding: utf-8 |
| 2 |
# frozen_string_literal: true |
|
| 2 | 3 |
# |
| 3 | 4 |
# Redmine - project management software |
| 4 | 5 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| ... | ... | |
| 20 | 21 |
module ContextMenusHelper |
| 21 | 22 |
def context_menu_link(name, url, options={})
|
| 22 | 23 |
options[:class] ||= '' |
| 24 |
options[:class] = options[:class].dup if options[:class].frozen? |
|
| 23 | 25 |
if options.delete(:selected) |
| 24 | 26 |
options[:class] << ' icon-checked disabled' |
| 25 | 27 |
options[:disabled] = true |
| app/helpers/custom_fields_helper.rb (working copy) | ||
|---|---|---|
| 1 | 1 |
# encoding: utf-8 |
| 2 |
# frozen_string_literal: true |
|
| 2 | 3 |
# |
| 3 | 4 |
# Redmine - project management software |
| 4 | 5 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| ... | ... | |
| 55 | 56 |
items = [] |
| 56 | 57 |
items << [l(:label_custom_field_plural), custom_fields_path] |
| 57 | 58 |
items << [l(custom_field.type_name), custom_fields_path(:tab => custom_field.class.name)] if custom_field |
| 58 |
items << (custom_field.nil? || custom_field.new_record? ? l(:label_custom_field_new) : custom_field.name)
|
|
| 59 |
items << (custom_field.nil? || custom_field.new_record? ? l(:label_custom_field_new) : custom_field.name) |
|
| 59 | 60 | |
| 60 | 61 |
title(*items) |
| 61 | 62 |
end |
| ... | ... | |
| 68 | 69 |
end |
| 69 | 70 | |
| 70 | 71 |
def custom_field_tag_name(prefix, custom_field) |
| 71 |
name = "#{prefix}[custom_field_values][#{custom_field.id}]"
|
|
| 72 |
name = ''.dup |
|
| 73 |
name << "#{prefix}[custom_field_values][#{custom_field.id}]"
|
|
| 72 | 74 |
name << "[]" if custom_field.multiple? |
| 73 | 75 |
name |
| 74 | 76 |
end |
| ... | ... | |
| 92 | 94 |
css = title ? "field-description" : nil |
| 93 | 95 |
content_tag 'span', custom_field.name, :title => title, :class => css |
| 94 | 96 |
end |
| 95 |
|
|
| 97 | ||
| 96 | 98 |
# Return custom field label tag |
| 97 | 99 |
def custom_field_label_tag(name, custom_value, options={})
|
| 98 | 100 |
required = options[:required] || custom_value.custom_field.is_required? |
| app/helpers/documents_helper.rb (working copy) | ||
|---|---|---|
| 1 | 1 |
# encoding: utf-8 |
| 2 |
# frozen_string_literal: true |
|
| 2 | 3 |
# |
| 3 | 4 |
# Redmine - project management software |
| 4 | 5 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| app/helpers/email_addresses_helper.rb (working copy) | ||
|---|---|---|
| 1 | 1 |
# encoding: utf-8 |
| 2 |
# frozen_string_literal: true |
|
| 2 | 3 |
# |
| 3 | 4 |
# Redmine - project management software |
| 4 | 5 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| app/helpers/enumerations_helper.rb (working copy) | ||
|---|---|---|
| 1 | 1 |
# encoding: utf-8 |
| 2 |
# frozen_string_literal: true |
|
| 2 | 3 |
# |
| 3 | 4 |
# Redmine - project management software |
| 4 | 5 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| app/helpers/gantt_helper.rb (working copy) | ||
|---|---|---|
| 1 | 1 |
# encoding: utf-8 |
| 2 |
# frozen_string_literal: true |
|
| 2 | 3 |
# |
| 3 | 4 |
# Redmine - project management software |
| 4 | 5 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| app/helpers/groups_helper.rb (working copy) | ||
|---|---|---|
| 1 | 1 |
# encoding: utf-8 |
| 2 |
# frozen_string_literal: true |
|
| 2 | 3 |
# |
| 3 | 4 |
# Redmine - project management software |
| 4 | 5 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| app/helpers/imports_helper.rb (working copy) | ||
|---|---|---|
| 1 | 1 |
# encoding: utf-8 |
| 2 |
# frozen_string_literal: true |
|
| 2 | 3 |
# |
| 3 | 4 |
# Redmine - project management software |
| 4 | 5 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| app/helpers/issue_categories_helper.rb (working copy) | ||
|---|---|---|
| 1 | 1 |
# encoding: utf-8 |
| 2 |
# frozen_string_literal: true |
|
| 2 | 3 |
# |
| 3 | 4 |
# Redmine - project management software |
| 4 | 5 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| app/helpers/issue_relations_helper.rb (working copy) | ||
|---|---|---|
| 1 | 1 |
# encoding: utf-8 |
| 2 |
# frozen_string_literal: true |
|
| 2 | 3 |
# |
| 3 | 4 |
# Redmine - project management software |
| 4 | 5 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| app/helpers/issue_statuses_helper.rb (working copy) | ||
|---|---|---|
| 1 | 1 |
# encoding: utf-8 |
| 2 |
# frozen_string_literal: true |
|
| 2 | 3 |
# |
| 3 | 4 |
# Redmine - project management software |
| 4 | 5 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| app/helpers/issues_helper.rb (working copy) | ||
|---|---|---|
| 1 | 1 |
# encoding: utf-8 |
| 2 |
# frozen_string_literal: true |
|
| 2 | 3 |
# |
| 3 | 4 |
# Redmine - project management software |
| 4 | 5 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| ... | ... | |
| 74 | 75 |
end |
| 75 | 76 | |
| 76 | 77 |
def render_issue_subject_with_tree(issue) |
| 77 |
s = '' |
|
| 78 |
s = ''.dup
|
|
| 78 | 79 |
ancestors = issue.root? ? [] : issue.ancestors.visible.to_a |
| 79 | 80 |
ancestors.each do |ancestor| |
| 80 | 81 |
s << '<div>' + content_tag('p', link_to_issue(ancestor, :project => (issue.project_id != ancestor.project_id)))
|
| ... | ... | |
| 90 | 91 |
end |
| 91 | 92 | |
| 92 | 93 |
def render_descendants_tree(issue) |
| 93 |
s = '<table class="list issues odd-even">' |
|
| 94 |
s = '<table class="list issues odd-even">'.dup
|
|
| 94 | 95 |
issue_list(issue.descendants.visible.preload(:status, :priority, :tracker, :assigned_to).sort_by(&:lft)) do |child, level| |
| 95 |
css = "issue issue-#{child.id} hascontextmenu #{child.css_classes}"
|
|
| 96 |
css = ''.dup |
|
| 97 |
css << "issue issue-#{child.id} hascontextmenu #{child.css_classes}"
|
|
| 96 | 98 |
css << " idnt idnt-#{level}" if level > 0
|
| 97 | 99 |
s << content_tag('tr',
|
| 98 | 100 |
content_tag('td', check_box_tag("ids[]", child.id, false, :id => nil), :class => 'checkbox') +
|
| ... | ... | |
| 110 | 112 |
def render_issue_relations(issue, relations) |
| 111 | 113 |
manage_relations = User.current.allowed_to?(:manage_issue_relations, issue.project) |
| 112 | 114 | |
| 113 |
s = ''.html_safe |
|
| 115 |
s = ''.dup.html_safe
|
|
| 114 | 116 |
relations.each do |relation| |
| 115 | 117 |
other_issue = relation.other_issue(issue) |
| 116 | 118 |
css = "issue hascontextmenu #{other_issue.css_classes}"
|
| ... | ... | |
| 143 | 145 |
if issue.total_estimated_hours == issue.estimated_hours |
| 144 | 146 |
l_hours_short(issue.estimated_hours) |
| 145 | 147 |
else |
| 146 |
s = issue.estimated_hours.present? ? l_hours_short(issue.estimated_hours) : "" |
|
| 148 |
s = ''.dup |
|
| 149 |
s << l_hours_short(issue.estimated_hours) if issue.estimated_hours.present? |
|
| 147 | 150 |
s << " (#{l(:label_total)}: #{l_hours_short(issue.total_estimated_hours)})"
|
| 148 | 151 |
s.html_safe |
| 149 | 152 |
end |
| ... | ... | |
| 256 | 259 |
values = issue.visible_custom_field_values.select {|value| value.custom_field.full_width_layout?}
|
| 257 | 260 |
return if values.empty? |
| 258 | 261 | |
| 259 |
s = ''.html_safe |
|
| 262 |
s = ''.dup.html_safe
|
|
| 260 | 263 |
values.each_with_index do |value, i| |
| 261 | 264 |
attr_value = show_value(value) |
| 262 | 265 |
next if attr_value.blank? |
| app/helpers/journals_helper.rb (working copy) | ||
|---|---|---|
| 1 | 1 |
# encoding: utf-8 |
| 2 |
# frozen_string_literal: true |
|
| 2 | 3 |
# |
| 3 | 4 |
# Redmine - project management software |
| 4 | 5 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| ... | ... | |
| 49 | 50 |
links << link_to(l(:button_delete), |
| 50 | 51 |
journal_path(journal, :journal => {:notes => ""}),
|
| 51 | 52 |
:remote => true, |
| 52 |
:method => 'put', :data => {:confirm => l(:text_are_you_sure)},
|
|
| 53 |
:method => 'put', :data => {:confirm => l(:text_are_you_sure)},
|
|
| 53 | 54 |
:title => l(:button_delete), |
| 54 | 55 |
:class => 'icon-only icon-del' |
| 55 | 56 |
) |
| app/helpers/mail_handler_helper.rb (working copy) | ||
|---|---|---|
| 1 | 1 |
# encoding: utf-8 |
| 2 |
# frozen_string_literal: true |
|
| 2 | 3 |
# |
| 3 | 4 |
# Redmine - project management software |
| 4 | 5 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| app/helpers/members_helper.rb (working copy) | ||
|---|---|---|
| 1 | 1 |
# encoding: utf-8 |
| 2 |
# frozen_string_literal: true |
|
| 2 | 3 |
# |
| 3 | 4 |
# Redmine - project management software |
| 4 | 5 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| app/helpers/messages_helper.rb (working copy) | ||
|---|---|---|
| 1 | 1 |
# encoding: utf-8 |
| 2 |
# frozen_string_literal: true |
|
| 2 | 3 |
# |
| 3 | 4 |
# Redmine - project management software |
| 4 | 5 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| app/helpers/my_helper.rb (working copy) | ||
|---|---|---|
| 1 | 1 |
# encoding: utf-8 |
| 2 |
# frozen_string_literal: true |
|
| 2 | 3 |
# |
| 3 | 4 |
# Redmine - project management software |
| 4 | 5 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| ... | ... | |
| 20 | 21 |
module MyHelper |
| 21 | 22 |
# Renders the blocks |
| 22 | 23 |
def render_blocks(blocks, user, options={})
|
| 23 |
s = ''.html_safe |
|
| 24 |
s = ''.dup.html_safe
|
|
| 24 | 25 | |
| 25 | 26 |
if blocks.present? |
| 26 | 27 |
blocks.each do |block| |
| app/helpers/news_helper.rb (working copy) | ||
|---|---|---|
| 1 | 1 |
# encoding: utf-8 |
| 2 |
# frozen_string_literal: true |
|
| 2 | 3 |
# |
| 3 | 4 |
# Redmine - project management software |
| 4 | 5 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| app/helpers/principal_memberships_helper.rb (working copy) | ||
|---|---|---|
| 1 | 1 |
# encoding: utf-8 |
| 2 |
# frozen_string_literal: true |
|
| 2 | 3 |
# |
| 3 | 4 |
# Redmine - project management software |
| 4 | 5 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| app/helpers/projects_helper.rb (working copy) | ||
|---|---|---|
| 1 | 1 |
# encoding: utf-8 |
| 2 |
# frozen_string_literal: true |
|
| 2 | 3 |
# |
| 3 | 4 |
# Redmine - project management software |
| 4 | 5 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| ... | ... | |
| 43 | 44 |
selected = (parent_id.blank? ? nil : Project.find(parent_id)) |
| 44 | 45 |
end |
| 45 | 46 | |
| 46 |
options = '' |
|
| 47 |
options = ''.dup
|
|
| 47 | 48 |
options << "<option value=''> </option>" if project.allowed_parents.include?(nil) |
| 48 | 49 |
options << project_tree_options_for_select(project.allowed_parents.compact, :selected => selected) |
| 49 | 50 |
content_tag('select', options.html_safe, :name => 'project[parent_id]', :id => 'project_parent_id')
|
| 50 | 51 |
end |
| 51 | 52 | |
| 52 | 53 |
def render_project_action_links |
| 53 |
links = "".html_safe
|
|
| 54 |
links = ''.dup.html_safe
|
|
| 54 | 55 |
if User.current.allowed_to?(:add_project, nil, :global => true) |
| 55 | 56 |
links << link_to(l(:label_project_new), new_project_path, :class => 'icon icon-add') |
| 56 | 57 |
end |
| ... | ... | |
| 105 | 106 |
selection = boards.select {|b| b.parent == parent}
|
| 106 | 107 |
return '' if selection.empty? |
| 107 | 108 | |
| 108 |
s = ''.html_safe |
|
| 109 |
s = ''.dup.html_safe
|
|
| 109 | 110 |
selection.each do |board| |
| 110 | 111 |
node = capture(board, level, &block) |
| 111 | 112 |
node << render_boards_tree(boards, board, level+1, &block) |
| app/helpers/queries_helper.rb (working copy) | ||
|---|---|---|
| 1 | 1 |
# encoding: utf-8 |
| 2 |
# frozen_string_literal: true |
|
| 2 | 3 |
# |
| 3 | 4 |
# Redmine - project management software |
| 4 | 5 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| ... | ... | |
| 59 | 60 |
end |
| 60 | 61 | |
| 61 | 62 |
def query_filters_hidden_tags(query) |
| 62 |
tags = ''.html_safe |
|
| 63 |
tags = ''.dup.html_safe
|
|
| 63 | 64 |
query.filters.each do |field, options| |
| 64 | 65 |
tags << hidden_field_tag("f[]", field, :id => nil)
|
| 65 | 66 |
tags << hidden_field_tag("op[#{field}]", options[:operator], :id => nil)
|
| ... | ... | |
| 71 | 72 |
end |
| 72 | 73 | |
| 73 | 74 |
def query_columns_hidden_tags(query) |
| 74 |
tags = ''.html_safe |
|
| 75 |
tags = ''.dup.html_safe
|
|
| 75 | 76 |
query.columns.each do |column| |
| 76 | 77 |
tags << hidden_field_tag("c[]", column.name, :id => nil)
|
| 77 | 78 |
end |
| ... | ... | |
| 88 | 89 |
end |
| 89 | 90 | |
| 90 | 91 |
def available_block_columns_tags(query) |
| 91 |
tags = ''.html_safe |
|
| 92 |
tags = ''.dup.html_safe
|
|
| 92 | 93 |
query.available_block_columns.each do |column| |
| 93 | 94 |
tags << content_tag('label', check_box_tag('c[]', column.name.to_s, query.has_column?(column), :id => nil) + " #{column.caption}", :class => 'inline')
|
| 94 | 95 |
end |
| ... | ... | |
| 97 | 98 | |
| 98 | 99 |
def available_totalable_columns_tags(query, options={})
|
| 99 | 100 |
tag_name = (options[:name] || 't') + '[]' |
| 100 |
tags = ''.html_safe |
|
| 101 |
tags = ''.dup.html_safe
|
|
| 101 | 102 |
query.available_totalable_columns.each do |column| |
| 102 | 103 |
tags << content_tag('label', check_box_tag(tag_name, column.name.to_s, query.totalable_columns.include?(column), :id => nil) + " #{column.caption}", :class => 'inline')
|
| 103 | 104 |
end |
| ... | ... | |
| 289 | 290 |
session_key = klass.name.underscore.to_sym |
| 290 | 291 | |
| 291 | 292 |
if params[:query_id].present? |
| 292 |
cond = "project_id IS NULL"
|
|
| 293 |
cond = 'project_id IS NULL'.dup
|
|
| 293 | 294 |
cond << " OR project_id = #{@project.id}" if @project
|
| 294 | 295 |
@query = klass.where(cond).find(params[:query_id]) |
| 295 | 296 |
raise ::Unauthorized unless @query.visible? |
| ... | ... | |
| 369 | 370 | |
| 370 | 371 |
tags |
| 371 | 372 |
end |
| 372 |
|
|
| 373 | ||
| 373 | 374 |
def query_hidden_sort_tag(query) |
| 374 | 375 |
hidden_field_tag("sort", query.sort_criteria.to_param, :id => nil)
|
| 375 | 376 |
end |
| ... | ... | |
| 388 | 389 |
content_tag('h3', title) + "\n" +
|
| 389 | 390 |
content_tag('ul',
|
| 390 | 391 |
queries.collect {|query|
|
| 391 |
css = 'query' |
|
| 392 |
css = 'query'.dup
|
|
| 392 | 393 |
css << ' selected' if query == @query |
| 393 | 394 |
content_tag('li', link_to(query.name, url_params.merge(:query_id => query), :class => css))
|
| 394 | 395 |
}.join("\n").html_safe,
|
| ... | ... | |
| 400 | 401 |
def render_sidebar_queries(klass, project) |
| 401 | 402 |
queries = sidebar_queries(klass, project) |
| 402 | 403 | |
| 403 |
out = ''.html_safe |
|
| 404 |
out = ''.dup.html_safe
|
|
| 404 | 405 |
out << query_links(l(:label_my_queries), queries.select(&:is_private?)) |
| 405 | 406 |
out << query_links(l(:label_query_plural), queries.reject(&:is_private?)) |
| 406 | 407 |
out |
| app/helpers/reports_helper.rb (working copy) | ||
|---|---|---|
| 1 | 1 |
# encoding: utf-8 |
| 2 |
# frozen_string_literal: true |
|
| 2 | 3 |
# |
| 3 | 4 |
# Redmine - project management software |
| 4 | 5 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| app/helpers/repositories_helper.rb (working copy) | ||
|---|---|---|
| 1 | 1 |
# encoding: utf-8 |
| 2 |
# frozen_string_literal: true |
|
| 2 | 3 |
# |
| 3 | 4 |
# Redmine - project management software |
| 4 | 5 |
# Copyright (C) 2006-2017 Jean-Philippe Lang |
| ... | ... | |
| 78 | 79 | |
| 79 | 80 |
def render_changes_tree(tree) |
| 80 | 81 |
return '' if tree.nil? |