Initial Redmine tooling and local plugin forks

This commit is contained in:
Jason Thistlethwaite
2026-04-24 22:01:18 +00:00
commit 9f682af0eb
683 changed files with 56878 additions and 0 deletions
@@ -0,0 +1,28 @@
<h3><%= l(:label_crm_my_contact_plural) %></h3>
<% contacts = Contact.visible.where(:assigned_to_id => User.current.id).limit(20) %>
<div class="box" id="duplicates">
<ul>
<% contacts.each do |contact| %>
<li>
<%= contact_tag(contact) %>
<%= "(#{contact.job_title}) " unless contact.job_title.blank? %>
</li>
<% end %>
</ul>
</div>
<% if contacts.length > 0 %>
<p class="small"><%= link_to l(:label_crm_contact_view_all),
:controller => 'contacts',
:action => 'index',
:set_filter => 1,
:fields => ["assigned_to_id", ""],
:operators => {"assigned_to_id"=>"="},
:values => {"assigned_to_id" => ["me"]} %></p>
<% end %>
<% content_for(:header_tags) do %>
<%= javascript_include_tag :contacts, :plugin => 'redmine_contacts' %>
<%= stylesheet_link_tag :contacts, :plugin => 'redmine_contacts' %>
<% end %>
@@ -0,0 +1,42 @@
<h3><%= l(:label_crm_my_contact_plural) %></h3>
<% contacts = Contact.visible.where(:assigned_to_id => User.current.id).limit(10) %>
<% if contacts.length > 0 %>
<% if contacts.select{|c| !c.is_company}.any? %>
<div class="box" id="duplicates">
<% contacts.select{|c| !c.is_company}.each do |contact| %>
<div class="avatar tooltip" style="display: inline;">
<%= link_to avatar_to(contact, :size => "64"), contact_path(contact), :id => "avatar" %>
<span class="tip contact"><%= render_contact_tooltip(contact, :icon => true) %></span>
</div>
<% end %>
</div>
<% end %>
<% if contacts.select{|c| c.is_company}.any? %>
<div class="box" id="duplicates">
<% contacts.select{|c| c.is_company}.each do |contact| %>
<div class="avatar tooltip" style="display: inline;">
<%= link_to avatar_to(contact, :size => "64"), contact_path(contact), :id => "avatar" %>
<span class="tip contact"><%= render_contact_tooltip(contact, :icon => true) %></span>
</div>
<% end %>
</div>
<% end %>
<p class="small"><%= link_to l(:label_crm_contact_view_all),
:controller => 'contacts',
:action => 'index',
:set_filter => 1,
:fields => ["assigned_to_id", ""],
:operators => {"assigned_to_id"=>"="},
:values => {"assigned_to_id" => ["me"]} %></p>
<% end %>
<% content_for(:header_tags) do %>
<%= javascript_include_tag :contacts, :plugin => 'redmine_contacts' %>
<%= stylesheet_link_tag :contacts, :plugin => 'redmine_contacts' %>
<% end %>
@@ -0,0 +1,36 @@
<h3><%= l(:label_crm_my_contacts_stats) %></h3>
<%
from = Date.civil(Date.today.year, Date.today.month, 1)
to = (from >> 1) - 1
%>
<table class="list">
<tbody>
<tr>
<td><%= l(:label_crm_contacts_created) %></td>
<td><%= Contact.where(:author_id => @user.id, :created_on => from..to).count %></td>
</tr>
<tr>
<td><%= l(:label_crm_deals_created) %></td>
<td><%= Deal.where(:author_id => @user.id, :created_on => from..to).count %></td>
</tr>
<% Deal.select("#{DealStatus.table_name}.name, #{Deal.table_name}.status_id, COUNT(DISTINCT #{Deal.table_name}.price) AS count, SUM(DISTINCT #{Deal.table_name}.price) AS total_sum").
joins("JOIN #{DealStatus.table_name} ON #{Deal.table_name}.status_id = #{DealStatus.table_name}.id").
where({:author_id => @user.id, :created_on => from..to}).
group("#{DealStatus.table_name}.name, #{DealStatus.table_name}.color, #{Deal.table_name}.status_id").each do |status| %>
<tr>
<td >
<%= deal_status_tag(status.status) %>
</td>
<td><%= status.count %></td>
</tr>
<% end %>
</tbody>
</table>
<% content_for(:header_tags) do %>
<%= javascript_include_tag :contacts, :plugin => 'redmine_contacts' %>
<%= stylesheet_link_tag :contacts, :plugin => 'redmine_contacts' %>
<% end %>
@@ -0,0 +1,27 @@
<h3><%= l(:label_crm_my_deal_plural) %></h3>
<% deals = Deal.visible.open.where(:assigned_to_id => User.current.id).limit(20) %>
<div class="box" id="duplicates">
<ul>
<% deals.each do |deal| %>
<li>
<%= deal_tag(deal) %>
</li>
<% end %>
</ul>
</div>
<% if deals.length > 0 %>
<p class="small"><%= link_to l(:label_crm_deal_view_all),
:controller => 'deals',
:action => 'index',
:set_filter => 1,
:fields => ["assigned_to_id", "status_id"],
:operators => {"assigned_to_id"=>"=", "status_id" => "o"},
:values => {"assigned_to_id" => ["me"]} %></p>
<% end %>
<% content_for(:header_tags) do %>
<%= javascript_include_tag :contacts, :plugin => 'redmine_contacts' %>
<%= stylesheet_link_tag :contacts, :plugin => 'redmine_contacts' %>
<% end %>