Redmine 4.1.1

This commit is contained in:
Manuel Cillero 2020-11-22 21:20:06 +01:00
parent 33e7b881a5
commit 3d976f1b3b
1593 changed files with 36180 additions and 19489 deletions

View file

@ -1,5 +1,7 @@
# frozen_string_literal: true
# Redmine - project management software
# Copyright (C) 2006-2017 Jean-Philippe Lang
# Copyright (C) 2006-2019 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License

View file

@ -1,5 +1,7 @@
# frozen_string_literal: true
# Redmine - project management software
# Copyright (C) 2006-2017 Jean-Philippe Lang
# Copyright (C) 2006-2019 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@ -21,16 +23,20 @@ require 'redmine/views/builders/xml'
module Redmine
module Views
module Builders
def self.for(format, request, response, &block)
builder = case format
when 'xml', :xml; Builders::Xml.new(request, response)
when 'json', :json; Builders::Json.new(request, response)
else; raise "No builder for format #{format}"
end
if block
block.call(builder)
else
builder
class << self
def for(format, request, response, &block)
builder =
case format
when 'xml', :xml then Builders::Xml.new(request, response)
when 'json', :json then Builders::Json.new(request, response)
else
raise "No builder for format #{format}"
end
if block_given?
yield(builder)
else
builder
end
end
end
end

View file

@ -1,5 +1,7 @@
# frozen_string_literal: true
# Redmine - project management software
# Copyright (C) 2006-2017 Jean-Philippe Lang
# Copyright (C) 2006-2019 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@ -35,7 +37,7 @@ module Redmine
json = @struct.first.to_json
if jsonp.present?
json = "#{jsonp}(#{json})"
response.content_type = 'application/javascript'
@response.content_type = 'application/javascript'
end
json
end

View file

@ -1,5 +1,7 @@
# frozen_string_literal: true
# Redmine - project management software
# Copyright (C) 2006-2017 Jean-Philippe Lang
# Copyright (C) 2006-2019 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@ -21,17 +23,16 @@ module Redmine
module Views
module Builders
class Structure < BlankSlate
attr_accessor :request, :response
def initialize(request, response)
@struct = [{}]
self.request = request
self.response = response
@request = request
@response = response
end
def array(tag, options={}, &block)
@struct << []
block.call(self)
yield(self)
ret = @struct.pop
@struct.last[tag] = ret
@struct.last.merge!(options) if options
@ -68,10 +69,9 @@ module Redmine
end
end
end
if block
if block_given?
@struct << (args.first.is_a?(Hash) ? args.first : {})
block.call(self)
yield(self)
ret = @struct.pop
if @struct.last.is_a?(Array)
@struct.last << ret

View file

@ -1,5 +1,7 @@
# frozen_string_literal: true
# Redmine - project management software
# Copyright (C) 2006-2017 Jean-Philippe Lang
# Copyright (C) 2006-2019 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License

View file

@ -1,5 +1,7 @@
# frozen_string_literal: true
# Redmine - project management software
# Copyright (C) 2006-2017 Jean-Philippe Lang
# Copyright (C) 2006-2019 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@ -55,10 +57,10 @@ class Redmine::Views::LabelledFormBuilder < ActionView::Helpers::FormBuilder
def label_for_field(field, options = {})
return ''.html_safe if options.delete(:no_label)
text = options[:label].is_a?(Symbol) ? l(options[:label]) : options[:label]
text ||= l(("field_" + field.to_s.gsub(/\_id$/, "")).to_sym)
text ||= @object.class.human_attribute_name(field)
text += @template.content_tag("span", " *", :class => "required") if options.delete(:required)
@template.content_tag("label", text.html_safe,
:class => (@object && @object.errors[field].present? ? "error" : nil),
:for => (@object_name.to_s + "_" + field.to_s))
:class => (@object && @object.errors[field].present? ? "error" : nil),
:for => (@object_name.to_s + "_" + field.to_s))
end
end

View file

@ -1,5 +1,7 @@
# frozen_string_literal: true
# Redmine - project management software
# Copyright (C) 2006-2017 Jean-Philippe Lang
# Copyright (C) 2006-2019 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License