Import archive redmine_agile-1_6_10-pro

This commit is contained in:
Alexandr Antonov
2025-03-12 11:57:20 +03:00
parent df5b5b0ddd
commit 98fefb5323
128 changed files with 318 additions and 252 deletions

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -3,7 +3,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -3,7 +3,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -3,7 +3,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify
@ -33,12 +33,13 @@ module AgileSprintsHelper
future_sprints = sprints.open.where('start_date >= ? ', Date.today)
active_sprints = sprints.active
old_sprints = sprints.open.where('start_date <= ? ', Date.today).to_a
old_sprints << @issue.agile_sprint if @issue && @issue.agile_sprint
assigned_sprint = @issue.agile_sprint if @issue && @issue.agile_sprint
grouped_sprints = []
grouped_sprints << [l('label_agile_sprint_list_future'), future_sprints.map { |s| [s.to_s, s.id.to_s] }] if future_sprints.any?
grouped_sprints << [l('label_agile_sprint_list_active'), active_sprints.map { |s| [s.to_s, s.id.to_s] }] if active_sprints.any?
grouped_sprints << [l('label_agile_sprint_list_old'), old_sprints.map { |s| [s.to_s, s.id.to_s] }] if old_sprints.any?
grouped_sprints << [l('label_agile_sprint_assigned_sprint'), [[assigned_sprint.to_s, assigned_sprint.id.to_s, selected: :selected]]] if assigned_sprint
grouped_sprints
end

View File

@ -3,7 +3,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -3,7 +3,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -19,8 +19,8 @@
<% @swimlanes.each do |swimlane| %>
<tr class="group <%= 'open' if @closed_swimline_ids.exclude?(swimlane.try(:id).to_s) %> swimlane" data-id="<%= swimlane && swimlane.id || swimlane %>">
<td colspan="<%= @board_columns.size %>">
<span class="expander icon icon-expended icon-expanded" onclick="toggleRowGroup(this);">&nbsp;</span>
<%= swimlane.blank? ? l(:label_none) : format_swimlane_object(swimlane) %>
<span class="expander icon icon-expended icon-expanded" onclick="toggleRowGroup(this);"><%= sprite_icon("angle-down") %></span>
<span class="name"><%= swimlane.blank? ? l(:label_none) : format_swimlane_object(swimlane) %></span>
<span class="badge badge-count count"><%= @query.issue_count_by_swimlane[swimlane && swimlane.id || swimlane] %></span>
<span class="totals"><%= agile_group_totals(@query, swimlane) %></span>
<%= link_to_function("#{l(:button_collapse_all)}/#{l(:button_expand_all)}",

View File

@ -1,7 +1,7 @@
<div class="contextual">
<%= link_to l(:label_agile_charts), @project ? project_agile_charts_path(project_id: @project) : agile_charts_path, class: 'icon icon-stats agile_charts_link', onclick: 'chartLinkGenerator();' %>
<%= link_to sprite_icon('stats', l(:label_agile_charts)), @project ? project_agile_charts_path(project_id: @project) : agile_charts_path, class: 'icon icon-stats agile_charts_link', onclick: 'chartLinkGenerator();' %>
<% if !@query.new_record? && @query.editable_by?(User.current) %>
<%= link_to l(:button_edit), edit_agile_query_path(@query), class: 'icon icon-edit' %>
<%= link_to sprite_icon('edit', l(:button_edit)), edit_agile_query_path(@query), class: 'icon icon-edit' %>
<%= delete_link agile_query_path(@query) %>
<% end %>
</div>
@ -15,7 +15,7 @@
<%= select_tag('sprint_id', grouped_options_for_select(@sprint_values_for_select, @query.sprint_id), onchange: "$(this).closest('form').submit()") %>
</span>
<span>
<%= link_to('', new_project_agile_sprint_path(project_id: @project.identifier), class: 'icon icon-add') if @project %>
<%= link_to(sprite_icon('add'), new_project_agile_sprint_path(project_id: @project.identifier), class: 'icon icon-add') if @project %>
</span>
<% else %>
<span class="live_search">
@ -28,13 +28,19 @@
<%= hidden_field_tag 'set_filter', '1' %>
<div id="query_form_content">
<fieldset id="filters" class="collapsible <%= @query.new_record? ? "" : "collapsed" %>">
<legend onclick="toggleFieldset(this);" class="icon icon-<%= @query.new_record? ? "expanded" : "collapsed" %>"><%= l(:label_filter_plural) %></legend>
<legend onclick="toggleFieldset(this);" class="icon icon-<%= @query.new_record? ? "expanded" : "collapsed" %>">
<%= sprite_icon(@query.new_record? ? "angle-down" : "angle-right") %>
<%= l(:label_filter_plural) %>
</legend>
<div style="<%= @query.new_record? ? "" : "display: none;" %>">
<%= render :partial => 'queries/filters', :locals => {:query => @query} %>
</div>
</fieldset>
<fieldset id="options" class="collapsible collapsed">
<legend onclick="toggleFieldset(this);" class="icon icon-collapsed"><%= l(:label_options) %></legend>
<legend onclick="toggleFieldset(this);" class="icon icon-collapsed">
<%= sprite_icon("angle-right") %>
<%= l(:label_options) %>
</legend>
<div style="display: none;">
<table class="options agile_options">
<tr>
@ -124,14 +130,14 @@
</fieldset>
</div>
<p class="buttons">
<%= link_to_function l(:button_apply), '$("#query_form").submit()', :class => 'icon icon-checked' %>
<%= link_to l(:button_clear), { :set_filter => 1, :project_id => @project }, :class => 'icon icon-reload' %>
<%= link_to_function sprite_icon('checked', l(:button_apply)), '$("#query_form").submit()', :class => 'icon icon-checked' %>
<%= link_to sprite_icon('reload', l(:button_clear)), { :set_filter => 1, :project_id => @project }, :class => 'icon icon-reload' %>
<% if @query.new_record? && User.current.allowed_to?(:add_agile_queries, @project, :global => true) %>
<%= link_to_function l(:button_save),
<%= link_to_function sprite_icon('save', l(:button_save)),
"$('#query_form').attr('action', '#{ @project ? new_project_agile_query_path(@project) : new_agile_query_path }').submit()",
:class => 'icon icon-save' %>
<% end %>
<%= link_to_function l(:label_agile_fullscreen), '$("html").toggleClass("agile-board-fullscreen"); saveFullScreenState()', :class => 'icon icon-fullscreen' %>
<%= link_to_function sprite_icon('agile-fullscreen', l(:label_agile_fullscreen), plugin: :redmine_agile), '$("html").toggleClass("agile-board-fullscreen"); saveFullScreenState()', :class => 'icon icon-fullscreen' %>
</p>
</div>

View File

@ -18,8 +18,8 @@
<span class="fields">
<% if User.current.allowed_to?(:edit_issues, @project, :global => true) && !@version_board %>
<div class="quick-edit-card">
<%= link_to image_tag("/images/edit.png", alt: 'Edit' ), agile_edit_issue_path(id: issue.id), remote: true, class: 'quick-edit', title: l(:button_edit) if issue.editable? %>
<%= link_to image_tag("/images/comment.png", alt: 'Comment'), '#', onclick: "showInlineComment(this, '#{j(agile_inline_comment_path(:id => issue))}'); return false;", title: l(:label_comment_add), class: 'add-comment' if RedmineAgile.allow_inline_comments? %>
<%= link_to content_tag("span", sprite_icon("edit"), class: "icon icon-edit", alt: 'Edit'), agile_edit_issue_path(id: issue.id), remote: true, class: 'quick-edit', title: l(:button_edit) if issue.editable? %>
<%= link_to content_tag("span", sprite_icon("comment"), class: "icon icon-comment", alt: 'Comment'), '#', onclick: "showInlineComment(this, '#{j(agile_inline_comment_path(:id => issue))}'); return false;", title: l(:label_comment_add), class: 'add-comment' if RedmineAgile.allow_inline_comments? %>
</div>
<% end %>
<% if @query.has_column_name?(:project) %>
@ -104,6 +104,7 @@
<% if (last_comment = @query.issue_last_comment(issue, :inline_adding => @inline_adding)) %>
<em class="info description last_comment" title='<%= last_comment.user.to_s + " " + format_date(last_comment.created_on) %>'>
<span class="icon icon-comment last-comment">
<%= sprite_icon("comment") %>
<%= last_comment.notes.truncate(100) %>
</span>
</em>

View File

@ -1,8 +1,6 @@
<div class="project-members">
<h3><%=l(:label_member_plural)%></h3>
<% @project.assignable_users.each do |user| %>
<span class="assignable-user" data-id="<%= user.id %>"><%= avatar(user.is_a?(User) ? user : '<gravatar>', :size => "14", :style => agile_user_color(user, :color_base => @query.respond_to?(:color_base) && @query.color_base) ).to_s.html_safe + " " + link_to_user(user) %>
<br>
</span>
<% end %>
</div>
<h3><%=l(:label_member_plural)%></h3>
<% @project.assignable_users.each do |user| %>
<span class="assignable-user" data-id="<%= user.id %>"><%= avatar(user.is_a?(User) ? user : '<gravatar>', :size => "14", :style => agile_user_color(user, :color_base => @query.respond_to?(:color_base) && @query.color_base) ).to_s.html_safe + " " + link_to_user(user) %>
<br>
</span>
<% end %>

View File

@ -9,13 +9,19 @@
<%= hidden_field_tag 'set_filter', '1' %>
<div id="query_form_content">
<fieldset id="filters" class="collapsible">
<legend onclick="toggleFieldset(this);" class="icon icon-<%= @query.new_record? ? "expanded" : "collapsed" %>"><%= l(:label_filter_plural) %></legend>
<legend onclick="toggleFieldset(this);" class="icon icon-<%= @query.new_record? ? "expanded" : "collapsed" %>">
<%= sprite_icon(@query.new_record? ? 'angle-down' : 'angle-right') %>
<%= l(:label_filter_plural) %>
</legend>
<div>
<%= render :partial => 'queries/filters', :locals => {:query => @query} %>
</div>
</fieldset>
<fieldset class="collapsible">
<legend onclick="toggleFieldset(this);" class="icon icon-collapsed"><%= l(:label_options) %></legend>
<legend onclick="toggleFieldset(this);" class="icon icon-collapsed">
<%= sprite_icon('angle-right') %>
<%= l(:label_options) %>
</legend>
<div>
<table>
<tr>
@ -37,16 +43,16 @@
</fieldset>
</div>
<p class="buttons">
<%= link_to_function l(:button_apply), '$("#query_form").submit()', :class => 'icon icon-checked' %>
<%= link_to l(:button_clear), { :set_filter => 1, :project_id => @project }, :class => 'icon icon-reload' %>
<%= link_to_function sprite_icon('checked', l(:button_apply)), '$("#query_form").submit()', :class => 'icon icon-checked' %>
<%= link_to sprite_icon('reload', l(:button_clear)), { :set_filter => 1, :project_id => @project }, :class => 'icon icon-reload' %>
<% if @query.new_record? %>
<% if User.current.allowed_to?(:add_agile_queries, @project, global: true) %>
<%= link_to_function l(:button_save),
<%= link_to_function sprite_icon('save', l(:button_save)),
"$('#query_form').attr('action', '#{ @project ? new_project_agile_charts_query_path(@project) : new_agile_charts_query_path }').submit()",
class: 'icon icon-save' %>
<% end %>
<% elsif @query.editable_by?(User.current) %>
<%= link_to l(:button_edit), edit_agile_charts_query_path(@query), class: 'icon icon-edit' %>
<%= link_to sprite_icon('edit', l(:button_edit)), edit_agile_charts_query_path(@query), class: 'icon icon-edit' %>
<%= delete_link agile_charts_query_path(@query) %>
<% end %>
</p>

View File

@ -6,7 +6,10 @@
<div id="query_form_with_buttons" class="hide-when-print">
<div id="query_form_content">
<fieldset id="options" class="collapsible collapsed">
<legend onclick="toggleFieldset(this);" class="icon icon-expended icon-expanded"><%= l(:label_options) %></legend>
<legend onclick="toggleFieldset(this);" class="icon icon-expended icon-expanded">
<%= sprite_icon('angle-right') %>
<%= l(:label_options) %>
</legend>
<div style="display: none;">
<table>
<tr>
@ -20,8 +23,8 @@
</div>
<p class="buttons hide-when-print">
<%= link_to_function l(:button_apply), 'submit_query_form("query_form")', :class => 'icon icon-checked' %>
<%= link_to l(:button_clear), { }, :class => 'icon icon-reload' %>
<%= link_to_function sprite_icon('checked', l(:button_apply)), 'submit_query_form("query_form")', :class => 'icon icon-checked' %>
<%= link_to sprite_icon('reload', l(:button_clear)), { }, :class => 'icon icon-reload' %>
</p>
<% end %>
@ -40,7 +43,7 @@
<% group_object = @statuses_collector.object_for(@group).where(:id => group_id).first %>
<tr class="group open">
<td colspan="6">
<span class="expander icon icon-expended icon-expanded" onclick="toggleRowGroup(this);">&nbsp;</span>
<span class="expander icon icon-expended icon-expanded" onclick="toggleRowGroup(this);"><%= sprite_icon('angle-down') %></span>
<span class="name"><%= group_object.name %></span>
<span class="badge badge-count count"><%= group_data.count %></span>
<span class="totals">

View File

@ -1,5 +1,5 @@
<div class="contextual">
<%= link_to l(:label_query_new), new_agile_query_path(:project_id => @project), :class => 'icon icon-add' if User.current.allowed_to?(:add_agile_queries, nil, :global => true)%>
<%= link_to sprite_icon('add', l(:label_query_new)), new_agile_query_path(:project_id => @project), :class => 'icon icon-add' if User.current.allowed_to?(:add_agile_queries, nil, :global => true)%>
</div>
<h2><%= l(:label_agile_board_plural) %></h2>
@ -15,7 +15,7 @@
</td>
<td class="buttons">
<% if query.editable_by?(User.current) %>
<%= link_to l(:button_edit), edit_agile_query_path(query), :class => 'icon icon-edit' %>
<%= link_to sprite_icon('edit', l(:button_edit)), edit_agile_query_path(query), :class => 'icon icon-edit' %>
<%= delete_link agile_query_path(query) %>
<% end %>
</td>

View File

@ -3,13 +3,19 @@
<%= hidden_field_tag 'set_filter', '1' %>
<div id="query_form_content">
<fieldset id="filters" class="collapsible <%= query.new_record? ? "" : "collapsed" %>">
<legend onclick="toggleFieldset(this);" class="icon icon-<%= @query.new_record? ? "expanded" : "collapsed" %>"><%= l(:label_filter_plural) %></legend>
<legend onclick="toggleFieldset(this);" class="icon icon-<%= @query.new_record? ? "expanded" : "collapsed" %>">
<%= sprite_icon(@query.new_record? ? "angle-down" : "angle-right") %>
<%= l(:label_filter_plural) %>
</legend>
<div style="<%= query.new_record? ? "" : "display: none;" %>">
<%= render partial: 'queries/filters', locals: {query: query} %>
</div>
</fieldset>
<fieldset id="options" class="collapsible collapsed">
<legend onclick="toggleFieldset(this);" class="icon icon-collapsed"><%= l(:label_options) %></legend>
<legend onclick="toggleFieldset(this);" class="icon icon-collapsed">
<%= sprite_icon("angle-right") %>
<%= l(:label_options) %>
</legend>
<div style="display: none;">
<table class="options">
<tr>
@ -23,10 +29,10 @@
</fieldset>
</div>
<p class="buttons">
<%= link_to_function l(:button_apply), '$("#query_form").submit()', class: 'icon icon-checked' %>
<%= link_to l(:button_clear), { set_filter: 1, sort: '', project_id: query.project }, class: 'icon icon-reload' %>
<%= link_to_function sprite_icon('checked', l(:button_apply)), '$("#query_form").submit()', class: 'icon icon-checked' %>
<%= link_to sprite_icon('reload', l(:button_clear)), { set_filter: 1, sort: '', project_id: query.project }, class: 'icon icon-reload' %>
<% if query.new_record? && User.current.allowed_to?(:manage_backlog, query.project) %>
<%= link_to_function l(:button_save),
<%= link_to_function sprite_icon('save', l(:button_save)),
"$('#query_form').attr('action', '#{save_url}').submit()",
:class => 'icon icon-save' %>
<% end %>

View File

@ -1,10 +1,10 @@
<div class="contextual">
<% if !@query.new_record? && @query.editable_by?(User.current) %>
<%= link_to l(:button_edit), edit_project_agile_version_query_path(@project, @query), class: 'icon icon-edit' %>
<%= link_to sprite_icon('edit', l(:button_edit)), edit_project_agile_version_query_path(@project, @query), class: 'icon icon-edit' %>
<%= delete_link project_agile_version_query_path(@project, @query) %>
<% end %>
<% if User.current.allowed_to?(:manage_versions, @project) %>
<%= link_to(l(:label_agile_version_add), new_project_version_path(@project), class: 'icon icon-add') %>
<%= link_to(sprite_icon('add', l(:label_agile_version_add)), new_project_version_path(@project), class: 'icon icon-add') %>
<% end %>
</div>

View File

@ -1,10 +1,10 @@
<div class="contextual">
<% if !@query.new_record? && @query.editable_by?(User.current) %>
<%= link_to l(:button_edit), edit_project_agile_sprint_query_path(@project, @query), class: 'icon icon-edit' %>
<%= link_to sprite_icon('edit', l(:button_edit)), edit_project_agile_sprint_query_path(@project, @query), class: 'icon icon-edit' %>
<%= delete_link project_agile_sprint_query_path(@project, @query) %>
<% end %>
<% if @tab_sprints && User.current.allowed_to?(:manage_sprints, @project) %>
<%= link_to(l(:label_agile_sprint_add), new_project_agile_sprint_path(@project), class: 'icon icon-add') %>
<%= link_to( sprite_icon('add', l(:label_agile_sprint_add)), new_project_agile_sprint_path(@project), class: 'icon icon-add') %>
<% end %>
</div>

View File

@ -14,7 +14,7 @@
selected: (@issue && @issue.agile_sprint == agile_sprint) %></li>
<% end -%>
<li><%= context_menu_link l(:label_none), bulk_update_issues_path(ids: @issue_ids,
issue: { agile_data_attributes: { id: @issue.try(:agile_data).try(:id), agile_sprint_id: nil } },
issue: { agile_data_attributes: { id: @issue.try(:agile_data).try(:id), agile_sprint_id: 'none' } },
back_url: @back),
method: :post,
selected: (@issue && @issue.agile_sprint.nil?) %></li>

View File

@ -4,7 +4,9 @@
<%= form.fields_for :agile_data do |f| %>
<% if @issue.project.agile_sprints_any? %>
<p>
<%= f.select :agile_sprint_id, sprint_values_for_select_for(@issue.project), include_blank: true %>
<%= f.select :agile_sprint_id,
content_tag('option', l(:label_none), :value => 'none') +
grouped_options_for_select(sprint_values_for_select_for(@issue.project)) %>
</p>
<% else %>
<%= f.hidden_field :agile_sprint_id, value: 0 %>

View File

@ -1,6 +1,6 @@
<h3><%= l(:label_agile_sprint_plural) %></h3>
<p><%= link_to_if_authorized l(:label_agile_sprint_new), { controller: 'agile_sprints', action: 'new', project_id: @project }, class: 'icon icon-add' %></p>
<p><%= link_to_if_authorized sprite_icon('add', l(:label_agile_sprint_new)), { controller: 'agile_sprints', action: 'new', project_id: @project }, class: 'icon icon-add' %></p>
<%= form_tag(settings_project_path(@project, tab: 'agile_sprints'), method: :get) do %>
<fieldset><legend><%= l(:label_filter_plural) %></legend>
@ -32,7 +32,7 @@
<td><%= agile_sprint.end_date %></td>
<td><%= agile_sprint.description %></td>
<td class="buttons">
<%= link_to l(:button_edit), edit_project_agile_sprint_path(@project, agile_sprint), class: 'icon icon-edit' %>
<%= link_to sprite_icon('edit', l(:button_edit)), edit_project_agile_sprint_path(@project, agile_sprint), class: 'icon icon-edit' %>
<%= delete_link project_agile_sprint_path(@project, agile_sprint) %>
</td>
</tr>

21
assets/images/icons.svg Normal file
View File

@ -0,0 +1,21 @@
<?xml version="1.0"?>
<svg xmlns="http://www.w3.org/2000/svg" class="icon--sprite">
<defs>
<symbol viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" id="icon--agile">
<path d="M4 4l6 0"/>
<path d="M14 4l6 0"/>
<path d="M4 8m0 2a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-2a2 2 0 0 1 -2 -2z"/>
<path d="M14 8m0 2a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v2a2 2 0 0 1 -2 2h-2a2 2 0 0 1 -2 -2z"/>
</symbol>
<symbol viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" id="icon--agile-fullscreen">
<path d="M16 4l4 0l0 4"/>
<path d="M14 10l6 -6"/>
<path d="M8 20l-4 0l0 -4"/>
<path d="M4 20l6 -6"/>
<path d="M16 20l4 0l0 -4"/>
<path d="M14 14l6 6"/>
<path d="M8 4l-4 0l0 4"/>
<path d="M4 4l6 6"/>
</symbol>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 836 B

View File

@ -1,8 +1,8 @@
/**********************************************************************/
/* ICONS
/**********************************************************************/
#admin-menu a.agile { background-image: url(../images/agile.png);}
.icon-fullscreen { background-image: url(../images/fullscreen.png); }
#admin-menu a.agile:not(:has(svg)) { background-image: url(../images/agile.png);}
.icon-fullscreen:not(:has(svg)) { background-image: url(../images/fullscreen.png); }
/**********************************************************************/
/* FULLSCREEN
@ -397,6 +397,7 @@ table.list.issues tr.issue:not(.context-menu-selection).bk-gray td.id a {backgro
.issue-card .last-comment{
font-style: italic;
display: inline;
}
.issues-board .add-issue{
@ -425,7 +426,9 @@ table.list.issues tr.issue:not(.context-menu-selection).bk-gray td.id a {backgro
}
table.list thead tr th span.hours {color: #888; float: right; font-size: 90%; font-weight: normal;}
table.issues-board {border: 1px solid #d0d7de;}
table.issues-board thead th {white-space: normal;}
table.issues-board tr span.expander:not(:has(svg)) {padding-left: 16px;}
/*
tr.issue.br-red td.id::before,
tr.issue.br-green td.id::before,

4
config/icon_source.yml Normal file
View File

@ -0,0 +1,4 @@
- name: agile-fullscreen
svg: arrows-maximize
- name: agile
svg: layout-kanban

View File

@ -5,7 +5,7 @@ cs:
label_agile_board_plural: Agile panely
label_agile_board_thumbnails: Miniatury
label_agile_board_more_issues: Více úkolů
error_agile_status_transition: Nalze změnit status úkolu
error_agile_status_transition: Nelze změnit status úkolu
label_agile_board_new: Nový agile panel
label_agile_board_edit: Editace agile panelu
label_agile_my_boards: Moje agile panely
@ -13,7 +13,7 @@ cs:
permission_manage_public_agile_queries: Spravovat veřejné agile panely
permission_add_agile_queries: Přidat agile panel
permission_view_agile_queries: Zobraz agile panely
permission_view_agile_queries: Zobrazit agile panely
#1.1.0
label_agile_board_default_fields: Výchozí pole karty
@ -22,20 +22,20 @@ cs:
label_agile_charts_work_burndown_sp: Řešení bodů skončilo
label_agile_charts_number_of_hours: Počet hodin
label_agile_charts_number_of_issues: Počet úkolů
label_agile_charts_cumulative_flow: Cumulative flow
label_agile_charts_cumulative_flow: Kumulativní pohyb
label_agile_charts_trackers_cumulative_flow: Kumulativní pohyb trackerů
label_agile_charts_issues_velocity: Rychlost řešení úkolů
label_agile_charts_cycle_time: Cyklus řešení úkolu
label_agile_charts_lead_time: Cyklus řešení úkolu
label_agile_charts_average_lead_time: Průměrný čas řešení úkolu
label_agile_charts_lead_time: Doba realizace
label_agile_charts_average_lead_time: Průměrná doba realizace
label_agile_chart_plural: Grafy
label_agile_chart_new: Nový graf
label_agile_chart_edit: Oprava grafu
permission_view_agile_charts: Zobrazení grafu
label_agile_ideal_work_remaining: Ideální
label_agile_actual_work_remaining: Aktuální
permission_view_agile_charts: Zobrazení grafů
label_agile_ideal_work_remaining: Ideální zbývající práce
label_agile_actual_work_remaining: Aktuální zbývající práce
label_agile_chart: Graf
label_agile_date_from: Z
label_agile_date_from: Od
label_agile_date_to: Do
label_agile_chart_dates: Interval grafu
label_agile_weighed_ideal_work_remaining: Ideální vážená hodnota
@ -43,8 +43,8 @@ cs:
label_agile_charts_burnup: Splnění úkolu
label_agile_charts_number_of_days: Počet dní
label_agile_too_many_items: "Graf nelze vytvořit, protože překračuje maximální počet položek, které lze zobrazit (%{max})"
label_agile_time_reports_items_limit: Problém s grafy založených na časových hodnotách
label_agile_total_work_remaining: Celkem
label_agile_time_reports_items_limit: Limit položek v časových reportech Agile
label_agile_total_work_remaining: Celkem zbývající práce
label_agile_default_chart: Výchozí graf
#1.1.1
@ -59,7 +59,7 @@ cs:
error_agile_version_transition: Nelze změnit verzi úkolu
label_agile_tracker_colors: Barva trackeru
label_agile_issue_priority_colors: Barva prioritního úkolu
label_agile_color_based_on: Zbarveno na
label_agile_color_based_on: Zbarvit dle
label_agile_color_no_colors: Bezbarvý
label_agile_manage_colors: Správa barev
label_agile_fullscreen: Celá obrazovka
@ -67,9 +67,9 @@ cs:
label_agile_charts_work_burnup_hours: Splnění úkolu v hodinách
label_agile_charts_work_burnup_sp: Splnění úkolu
label_agile_completed: Kompletní
label_agile_exclude_weekends: Kromě víkendů
label_agile_board_truncated: "Panel byl zkrácena, protože překračuje maximální počet položek, které lze zobrazit (%{max})"
label_agile_board_items_limit: Limit položek panelu
label_agile_exclude_weekends: Vynechat víkendy
label_agile_board_truncated: "Panel byl zkrácen, protože překračuje maximální počet položek, které lze zobrazit (%{max})" # Opraveno "Board" na "Panel"
label_agile_board_items_limit: Limit položek boardu
label_agile_swimlanes: Grupovat po
label_agile_minimize_closed: Minimalizovat uzavřené úkoly
label_agile_fields: Pole karty
@ -79,31 +79,31 @@ cs:
text_agile_move_not_possible: Tento přesun není možný
#1.3.8
label_agile_parent_issue_tracker_id: Rodičovská tracker
label_agile_sub_issues: Podúkol
label_agile_color_green: Zelený
label_agile_color_blue: Modrý
label_agile_color_turquoise: Tyrkysový
label_agile_color_lightgreen: Světle zelený
label_agile_color_yellow: Žlutý
label_agile_color_orange: Oranžový
label_agile_color_red: Červený
label_agile_color_purple: Purpurový
label_agile_color_gray: Šedý
label_agile_parent_issue_tracker_id: Rodičovský typ úkolu
label_agile_sub_issues: Podúkoly
label_agile_color_green: Zelená
label_agile_color_blue: Modrá
label_agile_color_turquoise: Tyrkysová
label_agile_color_lightgreen: Světle zelená
label_agile_color_yellow: Žlutá
label_agile_color_orange: Oranžová
label_agile_color_red: Červená
label_agile_color_purple: Purpurová
label_agile_color_gray: Šedá
label_agile_has_sub_issues: Má podúkoly
label_agile_light_free_version: Agile odlehčená volná verze
label_agile_link_to_pro: Upgrade do PRO
label_agile_light_free_version: Agile LIGHT verze
label_agile_link_to_pro: Upgrade na PRO
label_agile_link_to_pro_demo: PRO verze živé demo
label_agile_link_to_more_plugins: Najdi více RedmineUP doplňků
label_agile_button_agree: Souhls
label_agile_button_agree: Souhlas
label_agile_license: RedmineUP Licence
label_agile_saving_boards: Ukládání panelu
label_agile_horizontal_swim_lines: Horizontalní linky
label_agile_horizontal_swim_lines: Horizontální linky
label_agile_board_sub_columns: Další sloupce panelu
label_agile_additional_agile_charts: Doplňkové agile grafy
label_agile_coloured_issue_cards: Zbervené karty úkolů
label_agile_coloured_issue_cards: Baqrvy kartet úkolů
label_agile_4_more_features: Více než 4 zlepšení...
label_agile_upgrade_to_pro: Upgradem do PRO verze využijete toto vylepšení
label_agile_upgrade_to_pro: Upgradem na PRO verzi využijete toto vylepšení
label_agile_day_in_state: Ve stavu
@ -116,9 +116,9 @@ cs:
#1.4.0
label_agile_esitmate_units: Odhad jednotek
label_agile_trackers_for_sp: Trackeři pro story points
label_agile_story_points: Story points
field_story_points: Story pointa
label_agile_trackers_for_sp: Typy úkolů pro story pointy
label_agile_story_points: Story pointy
field_story_points: Story pointy
label_agile_charts_number_of_story_points: Počet story pointů
label_agile_board_columns: Sloupce panelu
lable_agile_wip_limit_exceeded: Překročen limit práce
@ -127,7 +127,7 @@ cs:
label_agile_allow_create_cards: Vytvoření karty
label_agile_auto_assign_on_move: Automatické přiřazení při přesunu
text_agile_create_issue_error: Neznámá chyba při vytváření úkolu
label_agile_inline_comment: Komentář
label_agile_inline_comment: Inline komentář
label_agile_hours: Hodiny
field_color: Barvy
@ -144,20 +144,20 @@ cs:
label_agile_month: Měsíc
label_agile_quarter: Čtvrtletí
label_agile_year: Rok
label_cards_search: Vyhledání předmětem
label_cards_search: Vyhledání předmětem
field_agile_sprint: Práce
field_agile_sprint: Sprint
field_end_date: Konečné datum
label_agile_sprints_on: Aktivace výchozí práce
label_agile_sprint: Práce
label_agile_sprint_plural: Práce
label_agile_sprints_on: Aktivace výchozího sprintu
label_agile_sprint: Sprint
label_agile_sprint_plural: Sprinty
label_agile_sprint_name: Název
label_agile_sprint_description: Popis
label_agile_sprint_status: Status
label_agile_sprint_sharing: Sdílení
label_agile_sprint_start_date: Datum zahájení
label_agile_sprint_end_date: Datum ukončení
label_agile_sprint_new: Nová práce
label_agile_sprint_new: Nová sprint
label_agile_sprint_status_open: Otevřený
label_agile_sprint_status_active: Aktivní
label_agile_sprint_status_closed: Uzavřený
@ -167,9 +167,9 @@ cs:
label_agile_sprint_duration_week_2: 2 týdny
label_agile_sprint_duration_week_3: 3 týdny
label_agile_sprint_duration_week_4: 4 týdny
label_agile_sprint_errors_crossed: Data práce se kříží s jinou prací
label_agile_sprint_errors_crossed: Data sprint se kříží s jinou sprint
label_agile_sprint_errors_end_more_start: Datum ukončení by mělo být delší než datum zahájení
label_agile_sprint_errors_open_issues: Práce s otevřenými úkoly nemůže bát uzavřena
label_agile_sprint_errors_open_issues: Sprint s otevřenými úkoly nemůže bát uzavřena
label_agile_sprint_default_chart: Graf
label_agile_sprint_chart_units: Odhad
label_agile_chart_for_sprint: "Pro práci: %{sprint}"
@ -181,9 +181,9 @@ cs:
label_agile_planning_board_more: Nahraj více...
label_agile_version_query_new: Dotaz na novou Agile verzi
label_agile_version_my_boards: Moje verze agil
label_agile_version_my_boards: Moje verze agile
label_agile_version_board_plural: Verze agile
label_agile_version_board_edit: Oprave agile verze
label_agile_version_board_edit: Oprava agile verze
label_agile_edit_issue: Oprava úkolu
@ -191,7 +191,7 @@ cs:
label_agile_board_type_kanban: Kanban panel
label_agile_board_type_scrum: Scrum panel
label_agile_board_totals: Celkem
label_agile_board_totals_story_points: Průběh - Story points
label_agile_board_totals_story_points: Průběh - story points
label_agile_board_totals_hours: Hodiny
label_agile_board_totals_spent_time: Strávený čas
label_agile_board_totals_percent_done: Splněno v procentech
@ -200,39 +200,38 @@ cs:
label_agile_board_totals_remaining: Zbývá
label_agile_board_totals_description: Celkový popis
label_agile_sprint_list_active: Aktivní práce
label_agile_sprint_list_future: Budoucí práce
label_agile_sprint_list_old: Bývalé práce
label_agile_sprint_list_active: Aktivní sprinty
label_agile_sprint_list_future: Budoucí sprinty
label_agile_sprint_list_old: Bývalé sprinty
label_agile_mixed_trackers: Promíchané trackery
label_agile_moving_average: Průměr přesunutí
label_agile_board_backlog: Backlog
label_agile_board_backlog_column: Backlog sloupce
label_agile_board_search_backlog_issues: Vyhledání backlog úkolů
label_agile_board_backlog_column: Backlog sloupec
label_agile_board_search_backlog_issues: Vyhledání backlog úkolů
label_agile_version_plural: Verze
label_agile_sprint_add: Přidej práci
label_agile_version_add: Přidej verzi
label_agile_sprint_add: Přidat práci
label_agile_version_add: Přidat verzi
label_agile_sprint_query_new: Nový dotaz na práci
label_agile_sprint_my_boards: Můje panely práce
label_agile_sprint_board_plural: Panely práce
label_agile_sprint_board_edit: Oprava panelu práce
field_sprint: Práce
label_agile_no_sprint_issues: Úkoly bez práce
field_closed_sprints: Uzavřené práce
label_agile_sprint_query_new: Nový dotaz na sprinty
label_agile_sprint_my_boards: Můje panely sprint
label_agile_sprint_board_plural: Panely sprint
label_agile_sprint_board_edit: Oprava panelu sprint
field_sprint: Sprint
label_agile_no_sprint_issues: Úkoly bez sprint
field_closed_sprints: Uzavřené sprinty
field_closed_versions: Uzavřené verze
label_allow_ovelapping_sprints: APovolit překrývající se práce
label_allow_ovelapping_sprints: APovolit překrývající se sprinty
label_agile_sprint_sharing_none: Nesdílený
label_agile_sprint_sharing_descendants: S podřízenými projekty
label_agile_sprint_sharing_none: Nesdílený
label_agile_sprint_sharing_descendants: S podprojekty
label_agile_sprint_sharing_hierarchy: S hierarchickými projekty
label_agile_sprint_sharing_tree: Se stromem projektu
label_agile_sprint_sharing_tree: Se stromem projektů
label_agile_sprint_sharing_system: Se všemi projekty
label_agile_action_not_available: Akce není dostupná
label_agile_general: Všeobecně
label_agile_general: Všeobecné
label_agile_hidden: Skrytý
label_chart_future_data: Zobrazit budoucí data v grafech

View File

@ -203,6 +203,7 @@ en:
label_agile_sprint_list_active: Active sprints
label_agile_sprint_list_future: Future sprints
label_agile_sprint_list_old: Old sprints
label_agile_sprint_assigned_sprint: Assigned sprint
label_agile_mixed_trackers: Mixed trackers
label_agile_moving_average: Moving average

View File

@ -194,6 +194,7 @@ ru:
label_agile_sprint_list_active: Активные спринты
label_agile_sprint_list_future: Следующие спринты
label_agile_sprint_list_old: Прошлые спринты
label_agile_sprint_assigned_sprint: Назначенный спринт
label_agile_moving_average: Скользящая средняя

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,9 +1,18 @@
== Redmine Agile plugin changelog
Redmine Agile plugin - Agile board plugin for redmine
Copyright (C) 2011-2024 Kirill Bezrukov (RedmineUP)
Copyright (C) 2011-2025 Kirill Bezrukov (RedmineUP)
http://www.redmineup.com/
== 2025-03-03 v1.6.10
* Redmine 6.0 compatibility
* Added SVG icons for compatibility with Redmine 6
* Updated WebSocket connection
* Updated Czech locale (Michael Stanek)
* Fixed agile_color requests handling
* Fixed issue with removing a sprint (Change sprint to None)
== 2024-05-07 v1.6.9
* Updated charts.js lib

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify
@ -17,11 +17,11 @@
# You should have received a copy of the GNU General Public License
# along with redmine_agile. If not, see <http://www.gnu.org/licenses/>.
requires_redmineup version_or_higher: '1.0.6' rescue raise "\n\033[31mRedmine requires newer redmineup gem version.\nPlease update with 'bundle update redmineup'.\033[0m"
requires_redmineup version_or_higher: '1.0.10' rescue raise "\n\033[31mRedmine requires newer redmineup gem version.\nPlease update with 'bundle update redmineup'.\033[0m"
require 'redmine'
AGILE_VERSION_NUMBER = '1.6.9'
AGILE_VERSION_NUMBER = '1.6.10'
AGILE_VERSION_TYPE = 'PRO version'
Redmine::Plugin.register :redmine_agile do
@ -49,7 +49,7 @@ Redmine::Plugin.register :redmine_agile do
after: :gantt,
param: :project_id
menu :admin_menu, :agile, { controller: 'settings', action: 'plugin', id: 'redmine_agile' }, caption: :label_agile, html: { class: 'icon' }
menu :admin_menu, :agile, { controller: 'settings', action: 'plugin', id: 'redmine_agile' }, caption: :label_agile, html: { class: 'icon' }, icon: 'agile', plugin: 'redmine_agile'
project_module :agile do
permission :manage_public_agile_queries, { agile_queries: [:new, :create, :edit, :update, :destroy] }, require: :member
@ -79,3 +79,4 @@ if (Rails.configuration.respond_to?(:autoloader) && Rails.configuration.autoload
Rails.autoloaders.each { |loader| loader.ignore(File.dirname(__FILE__) + '/lib') }
end
require File.dirname(__FILE__) + '/lib/redmine_agile'
require 'redmineup/patches/compatibility_patch'

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify
@ -27,6 +27,7 @@ module ActionCable
@connection_class = -> { connection_klass.constantize }
@logger ||= ::Rails.logger
@disable_request_forgery_protection = true
end
def cable

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -3,7 +3,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify
@ -24,8 +24,8 @@ module RedmineAgile
def helper_issues_show_detail_after_setting(context={})
if context[:detail].prop_key == 'color'
detail = context[:detail]
context[:detail].value = detail.value.blank? ? nil : l(("label_agile_color_" + detail.value.to_s).to_sym)
context[:detail].old_value = detail.old_value.blank? ? nil : l(("label_agile_color_" + detail.old_value.to_s).to_sym)
context[:detail].value = detail.value.blank? ? nil : l(("label_agile_color_" + detail.value.to_s.downcase).to_sym)
context[:detail].old_value = detail.old_value.blank? ? nil : l(("label_agile_color_" + detail.old_value.to_s.downcase).to_sym)
end
end

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify
@ -45,7 +45,7 @@ module RedmineAgile
module InstanceMethods
def issues_with_agile(options = {})
options[:include] = (options[:include] || []) | [:agile_data]
options[:include] = (options[:include] || []) | [:agile_data, :agile_color]
issues = issues_without_agile(options)
if RedmineAgile.color_base == AgileColor::COLOR_GROUPS[:issue]
agile_colors = AgileColor.where(container_id: issues, container_type: 'Issue').group_by { |ac| ac[:container_id] }

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

View File

@ -1,7 +1,7 @@
# This file is a part of Redmin Agile (redmine_agile) plugin,
# Agile board plugin for redmine
#
# Copyright (C) 2011-2024 RedmineUP
# Copyright (C) 2011-2025 RedmineUP
# http://www.redmineup.com/
#
# redmine_agile is free software: you can redistribute it and/or modify

Some files were not shown because too many files have changed in this diff Show More