Commit | Line | Data |
---|---|---|
6a488035 TO |
1 | {* |
2 | +--------------------------------------------------------------------+ | |
819d0d41 | 3 | | CiviCRM version 4.5 | |
6a488035 | 4 | +--------------------------------------------------------------------+ |
819d0d41 | 5 | | Copyright CiviCRM LLC (c) 2004-2014 | |
6a488035 TO |
6 | +--------------------------------------------------------------------+ |
7 | | This file is a part of CiviCRM. | | |
8 | | | | |
9 | | CiviCRM is free software; you can copy, modify, and distribute it | | |
10 | | under the terms of the GNU Affero General Public License | | |
11 | | Version 3, 19 November 2007 and the CiviCRM Licensing Exception. | | |
12 | | | | |
13 | | CiviCRM is distributed in the hope that it will be useful, but | | |
14 | | WITHOUT ANY WARRANTY; without even the implied warranty of | | |
15 | | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | | |
16 | | See the GNU Affero General Public License for more details. | | |
17 | | | | |
18 | | You should have received a copy of the GNU Affero General Public | | |
19 | | License and the CiviCRM Licensing Exception along | | |
20 | | with this program; if not, contact CiviCRM LLC | | |
21 | | at info[AT]civicrm[DOT]org. If you have questions about the | | |
22 | | GNU Affero General Public License or the licensing of CiviCRM, | | |
23 | | see the CiviCRM license FAQ at http://civicrm.org/licensing | | |
24 | +--------------------------------------------------------------------+ | |
25 | *} | |
26 | ||
27 | {capture assign=docLink}{docURL page="user/organising-your-data/groups-and-tags"}{/capture} | |
28 | ||
29 | {if $action eq 1 or $action eq 2 or $action eq 8} | |
30 | {include file="CRM/Admin/Form/Tag.tpl"} | |
31 | {else} | |
32 | <div class="crm-content-block"> | |
33 | <div id="help"> | |
34 | {ts 1=$docLink}Tags can be assigned to any contact record, and are a convenient way to find contacts. You can create as many tags as needed to organize and segment your records.{/ts} {$docLink} | |
35 | </div> | |
36 | ||
37 | {if $rows} | |
38 | {if !($action eq 1 and $action eq 2)} | |
39 | <div class="crm-submit-buttons"> | |
40 | <div class="action-link"> | |
41 | <a href="{crmURL q="action=add&reset=1"}" id="newTag" class="button"><span><div class="icon add-icon"></div>{ts}Add Tag{/ts}</span></a> | |
42 | {if $adminTagSet} | |
43 | <a href="{crmURL q="action=add&reset=1&tagset=1"}" id="newTagSet" class="button"><span><div class="icon add-icon"></div>{ts}Add Tag Set{/ts}</span></a> | |
44 | {/if} | |
45 | </div> | |
46 | </div> | |
47 | {/if} | |
48 | ||
49 | {include file="CRM/common/jsortable.tpl"} | |
50 | <div id="merge_tag_status"></div> | |
51 | <div id="cat"> | |
52 | {strip} | |
53 | <table id="options" class="display"> | |
54 | <thead> | |
55 | <tr> | |
56 | <th>{ts}Tag{/ts}</th> | |
57 | <th>{ts}ID{/ts}</th> | |
58 | <th id="nosort">{ts}Description{/ts}</th> | |
59 | <th>{ts}Parent (ID){/ts}</th> | |
60 | <th>{ts}Used For{/ts}</th> | |
61 | <th>{ts}Tag set?{/ts}</th> | |
62 | <th>{ts}Reserved?{/ts}</th> | |
63 | <th></th> | |
64 | </tr> | |
65 | </thead> | |
66 | {foreach from=$rows item=row key=id } | |
67 | <tr class="{cycle values="odd-row,even-row"} {$row.class} crm-tag crm-entity" id="tag-{$row.id}"> | |
68 | <td class="crm-tag-name crm-editable crmf-name">{$row.name}</td> | |
69 | <td class="crm-tag-id">{$row.id}</td> | |
70 | <td class="crm-tag-description crm-editable crmf-description">{$row.description} </td> | |
71 | <td class="crm-tag-parent">{$row.parent}{if $row.parent_id} ({$row.parent_id}){/if}</td> | |
72 | <td class="crm-tag-used_for">{$row.used_for}</td> | |
73 | <td class="crm-tag-is_tagset">{if $row.is_tagset}<img src="{$config->resourceBase}i/check.gif" alt="{ts}Tag Set{/ts}" />{/if}</td> | |
74 | <td class="crm-tag-is_reserved">{if $row.is_reserved}<img src="{$config->resourceBase}i/check.gif" alt="{ts}Reserved{/ts}" />{/if}</td> | |
75 | <td>{$row.action|replace:'xx':$row.id}</td> | |
76 | </tr> | |
77 | {/foreach} | |
78 | </table> | |
79 | {/strip} | |
80 | </div> | |
81 | {if !($action eq 1 and $action eq 2)} | |
82 | <div class="crm-submit-buttons"> | |
83 | <div class="action-link"> | |
84 | <a href="{crmURL q="action=add&reset=1"}" id="newTag" class="button"><span><div class="icon add-icon"></div>{ts}Add Tag{/ts}</span></a> | |
85 | {if $adminTagSet} | |
86 | <a href="{crmURL q="action=add&reset=1&tagset=1"}" id="newTagSet" class="button"><span><div class="icon add-icon"></div>{ts}Add Tag Set{/ts}</span></a> | |
87 | {/if} | |
88 | </div> | |
89 | </div> | |
90 | {/if} | |
91 | {else} | |
92 | <div class="messages status no-popup"> | |
93 | <div class="icon inform-icon"></div> | |
94 | {capture assign=crmURL}{crmURL p='civicrm/admin/tag' q="action=add&reset=1"}{/capture} | |
95 | {ts 1=$crmURL}There are no Tags present. You can <a href='%1'>add one</a>.{/ts} | |
96 | </div> | |
97 | {/if} | |
98 | ||
6a488035 TO |
99 | </div> |
100 | ||
101 | {literal} | |
102 | <script type="text/javascript"> | |
3cc60a06 | 103 | CRM.$(function($) { |
ebb5fc58 | 104 | var tag; |
5fb83680 | 105 | $('.merge_tag').click(function(e) { |
ebb5fc58 CW |
106 | tag = $(this).crmEditableEntity(); |
107 | mergeTagDialog(); | |
5fb83680 | 108 | e.preventDefault(); |
ebb5fc58 | 109 | }); |
6a488035 | 110 | |
ebb5fc58 CW |
111 | function mergeTagDialog() { |
112 | var tagUrl = {/literal}"{crmURL p='civicrm/ajax/mergeTagList' h=0}"{literal}; | |
113 | var title = {/literal}'{ts escape="js" 1="%1"}Merge tag %1 into:{/ts}'{literal}; | |
5fb83680 | 114 | CRM.confirm({ |
ebb5fc58 CW |
115 | title: ts(title, {1: tag.name}), |
116 | message: '<input name="select_merge_tag" class="big" />', | |
117 | open: function() { | |
118 | var dialog = this; | |
119 | $('input[name=select_merge_tag]', dialog) | |
a243158e | 120 | .crmSelect2({ |
ebb5fc58 CW |
121 | placeholder: {/literal}'{ts escape="js"}- select tag -{/ts}'{literal}, |
122 | minimumInputLength: 1, | |
123 | ajax: { | |
124 | url: tagUrl, | |
125 | data: function(term) { | |
2e02f487 | 126 | return {term: term, fromId: tag.id}; |
ebb5fc58 CW |
127 | }, |
128 | results: function(response) { | |
129 | return {results: response}; | |
130 | } | |
131 | } | |
132 | }) | |
133 | .change(function() { | |
134 | $('.messages', dialog).remove(); | |
135 | if ($(this).val() && $(this).select2('data').warning) { | |
136 | $(dialog).append('<div class="messages status">{/literal}{ts escape='js'}Note: the selected tag is used by additional entities.{/ts}{literal}</div>'); | |
137 | } | |
138 | }); | |
ebb5fc58 | 139 | } |
5fb83680 CW |
140 | }) |
141 | .on('dialogclose', function() { | |
142 | $('input[name=select_merge_tag]', this).select2('destroy'); | |
143 | }) | |
144 | .on('crmConfirm:yes', function() { | |
145 | var toId = $("input[name=select_merge_tag]", this).val(); | |
146 | if (!toId) { | |
147 | $("input[name=select_merge_tag]", this).crmError(ts('Select a tag')); | |
148 | return false; | |
6a488035 | 149 | } |
5fb83680 CW |
150 | var postUrl = {/literal}"{crmURL p='civicrm/ajax/mergeTags' h=0 }"{literal}; |
151 | var data = {fromId: tag.id, toId: toId, key:{/literal}"{crmKey name='civicrm/ajax/mergeTags'}"{literal}}; | |
ae8f569f | 152 | $.ajax({ |
5fb83680 CW |
153 | type: "POST", |
154 | url: postUrl, | |
155 | data: data, | |
156 | dataType: "json", | |
157 | success: function(values) { | |
158 | if ( values.status == true ) { | |
159 | $('#tag-' + toId).children('td.crm-tag-used_for').text(values.tagB_used_for); | |
160 | $('#tag-' + tag.id).html('<td colspan="8"><div class="status message"><div class="icon inform-icon"></div>' + values.message + '</div></td>'); | |
161 | } | |
162 | } | |
163 | }); | |
164 | }); | |
ebb5fc58 CW |
165 | } |
166 | }); | |
6a488035 TO |
167 | </script> |
168 | {/literal} | |
169 | ||
170 | {/if} | |
171 | {include file="CRM/common/crmeditable.tpl"} |