Merge pull request #1555 from donordepot/master
[civicrm-core.git] / templates / CRM / common / Tag.tpl
1 {if !$tagsetType or $tagsetType eq 'contact'}
2 {foreach from=$tagsetInfo_contact item=tagset}
3 <div class="crm-section tag-section contact-tagset-{$tagset.parentID}-section">
4 <label>{$tagset.parentName}</label>
5 <div{if $context EQ "contactTab"} style="margin-top:-15px;"{/if}>
6 {assign var=elemName value = $tagset.tagsetElementName}
7 {assign var=parID value = $tagset.parentID}
8 {assign var=editTagSet value=false}
9 {$form.$elemName.$parID.html}
10 {if $action ne 4 }
11 {assign var=editTagSet value=true}
12 {if $action eq 16 and !($permission eq 'edit') }
13 {assign var=editTagSet value=false}
14 {/if}
15 {/if}
16 {if $editTagSet}
17 <script type="text/javascript">
18 {literal}
19 var tagUrl = {/literal}"{$tagset.tagUrl}&key={crmKey name='civicrm/ajax/taglist'}"{literal};
20 var contactEntityTags = '';
21 {/literal}{if $tagset.entityTags}{literal}
22 eval( 'contactEntityTags = ' + {/literal}'{$tagset.entityTags}'{literal} );
23 {/literal}{/if}{literal}
24 var hintText = "{/literal}{ts escape='js'}Type in a partial or complete name of an existing tag.{/ts}{literal}";
25
26 cj( ".contact-tagset-{/literal}{$tagset.parentID}{literal}-section:not(.crm-processed-input) input")
27 .addClass("contact-taglist_{/literal}{$tagset.parentID}{literal}");
28 cj( ".contact-tagset-{/literal}{$tagset.parentID}{literal}-section:not(.crm-processed-input) .contact-taglist_{/literal}{$tagset.parentID}{literal}" )
29 .tokenInput( tagUrl, {
30 prePopulate: contactEntityTags,
31 theme: 'facebook',
32 hintText: hintText,
33 onAdd: function ( item ) {
34 processContactTags_{/literal}{$tagset.parentID}{literal}( 'select', item.id );
35 },
36 onDelete: function ( item ) {
37 processContactTags_{/literal}{$tagset.parentID}{literal}( 'delete', item.id );
38 }
39 }
40 );
41
42 cj( ".contact-tagset-{/literal}{$tagset.parentID}{literal}-section:not(.crm-processed-input)").addClass("crm-processed-input");
43
44 function processContactTags_{/literal}{$tagset.parentID}{literal}( action, id ) {
45 var postUrl = "{/literal}{crmURL p='civicrm/ajax/processTags' h=0}{literal}";
46 var parentId = "{/literal}{$tagset.parentID}{literal}";
47 var entityId = "{/literal}{$tagset.entityId}{literal}";
48 var entityTable = "{/literal}{$tagset.entityTable}{literal}";
49 var skipTagCreate = "{/literal}{$tagset.skipTagCreate}{literal}";
50 var skipEntityAction = "{/literal}{$tagset.skipEntityAction}{literal}";
51
52 cj.post( postUrl, { action: action, tagID: id, parentId: parentId, entityId: entityId, entityTable: entityTable,
53 skipTagCreate: skipTagCreate, skipEntityAction: skipEntityAction, key: {/literal}"{crmKey name='civicrm/ajax/processTags'}"{literal} },
54 function ( response ) {
55 // update hidden element
56 if ( response.id ) {
57 var curVal = cj( ".contact-taglist_{/literal}{$tagset.parentID}{literal}" ).val( );
58 var valArray = curVal.split(',');
59 var setVal = Array( );
60 if ( response.action == 'delete' ) {
61 for ( x in valArray ) {
62 if ( valArray[x] != response.id ) {
63 setVal[x] = valArray[x];
64 }
65 }
66 CRM.alert('', '{/literal}{ts escape='js'}Removed{/ts}{literal}', 'success');
67 }
68 else {
69 CRM.alert('', '{/literal}{ts escape='js'}Saved{/ts}{literal}', 'success');
70 }
71 if ( response.action == 'select' ) {
72 setVal = valArray;
73 setVal[ setVal.length ] = response.id;
74 }
75
76 var actualValue = setVal.join( ',' );
77 cj( ".contact-taglist_{/literal}{$tagset.parentID}{literal}" ).val( actualValue );
78 }
79 // update contact summary tab
80 if (CRM.updateContactSummaryTags) {
81 CRM.updateContactSummaryTags();
82 }
83 },
84 "json" );
85 }
86 {/literal}
87 </script>
88 {else}
89 {if $tagset.entityTagsArray}
90 {foreach from=$tagset.entityTagsArray item=val name="tagsetList"}
91 &nbsp;{$val.name}{if !$smarty.foreach.tagsetList.last},{/if}
92 {/foreach}
93 {/if}
94 {/if}
95 </div>
96 <div class="clear"></div>
97 </div>
98 {/foreach}
99
100 {elseif $tagsetType eq 'activity'}
101 {foreach from=$tagsetInfo_activity item=tagset}
102 <div class="crm-section tag-section activity-tagset-{$tagset.parentID}-section">
103 <div class="label">
104 <label>{$tagset.parentName}</label>
105 </div>
106 <div class="content">
107 {assign var=elemName value = $tagset.tagsetElementName}
108 {assign var=parID value = $tagset.parentID}
109 {assign var=editTagSet value=false}
110 {$form.$elemName.$parID.html}
111 {if $action ne 4 }
112 {assign var=editTagSet value=true}
113 {if $action eq 16 and !($permission eq 'edit') }
114 {assign var=editTagSet value=false}
115 {/if}
116 {/if}
117 {if $editTagSet}
118 <script type="text/javascript">
119 {literal}
120 var tagUrl = {/literal}"{$tagset.tagUrl}&key={crmKey name='civicrm/ajax/taglist'}"{literal};
121 var activityEntityTags = '';
122 {/literal}{if $tagset.entityTags}{literal}
123 eval( 'activityEntityTags = ' + {/literal}'{$tagset.entityTags}'{literal} );
124 {/literal}{/if}{literal}
125 var hintText = "{/literal}{ts escape='js'}Type in a partial or complete name of an existing tag.{/ts}{literal}";
126
127 cj( ".activity-tagset-{/literal}{$tagset.parentID}{literal}-section:not(.crm-processed-input) input")
128 .addClass("activity-taglist_{/literal}{$tagset.parentID}{literal}");
129
130 cj( ".activity-tagset-{/literal}{$tagset.parentID}{literal}-section:not(.crm-processed-input) .activity-taglist_{/literal}{$tagset.parentID}{literal}" )
131 .tokenInput( tagUrl, {
132 prePopulate: activityEntityTags,
133 theme: 'facebook',
134 hintText: hintText,
135 onAdd: function ( item ) {
136 processActivityTags_{/literal}{$tagset.parentID}{literal}( 'select', item.id );
137 },
138 onDelete: function ( item ) {
139 processActivityTags_{/literal}{$tagset.parentID}{literal}( 'delete', item.id );
140 }
141 }
142 );
143
144 cj( ".activity-tagset-{/literal}{$tagset.parentID}{literal}-section:not(.crm-processed-input)").addClass("crm-processed-input");
145 function processActivityTags_{/literal}{$tagset.parentID}{literal}( action, id ) {
146 var postUrl = "{/literal}{crmURL p='civicrm/ajax/processTags' h=0}{literal}";
147 var parentId = "{/literal}{$tagset.parentID}{literal}";
148 var entityId = "{/literal}{$tagset.entityId}{literal}";
149 var entityTable = "{/literal}{$tagset.entityTable}{literal}";
150 var skipTagCreate = "{/literal}{$tagset.skipTagCreate}{literal}";
151 var skipEntityAction = "{/literal}{$tagset.skipEntityAction}{literal}";
152
153 cj.post( postUrl, { action: action, tagID: id, parentId: parentId, entityId: entityId, entityTable: entityTable,
154 skipTagCreate: skipTagCreate, skipEntityAction: skipEntityAction, key: {/literal}"{crmKey name='civicrm/ajax/processTags'}"{literal} },
155 function ( response ) {
156 // update hidden element
157 if ( response.id ) {
158 var curVal = cj( ".activity-taglist_{/literal}{$tagset.parentID}{literal}" ).val( );
159 var valArray = curVal.split(',');
160 var setVal = Array( );
161 if ( response.action == 'delete' ) {
162 for ( x in valArray ) {
163 if ( valArray[x] != response.id ) {
164 setVal[x] = valArray[x];
165 }
166 }
167 }
168 else if ( response.action == 'select' ) {
169 setVal = valArray;
170 setVal[ setVal.length ] = response.id;
171 }
172
173 var actualValue = setVal.join( ',' );
174 cj( ".activity-taglist_{/literal}{$tagset.parentID}{literal}" ).val( actualValue );
175 }
176 },
177 "json" );
178 }
179 {/literal}
180 </script>
181 {else}
182 {if $tagset.entityTagsArray}
183 {foreach from=$tagset.entityTagsArray item=val name="tagsetList"}
184 &nbsp;{$val.name}{if !$smarty.foreach.tagsetList.last},{/if}
185 {/foreach}
186 {/if}
187 {/if}
188 </div>
189 <div class="clear"></div>
190 </div>
191 {/foreach}
192
193 {elseif $tagsetType eq 'case'}
194 {foreach from=$tagsetInfo_case item=tagset}
195 <div class="crm-section tag-section case-tagset-{$tagset.parentID}-section">
196 <div class="label">
197 <label>{$tagset.parentName}</label>
198 </div>
199 <div class="content">
200 {assign var=elemName value = $tagset.tagsetElementName}
201 {assign var=parID value = $tagset.parentID}
202 {assign var=editTagSet value=false}
203 {$form.$elemName.$parID.html}
204 {if $action ne 4 or $form.formName eq 'CaseView' }
205 {assign var=editTagSet value=true}
206 {if $action eq 16 and !($permission eq 'edit') }
207 {assign var=editTagSet value=false}
208 {/if}
209 {/if}
210 {if $editTagSet}
211 <script type="text/javascript">
212 {literal}
213 var tagUrl = {/literal}"{$tagset.tagUrl}&key={crmKey name='civicrm/ajax/taglist'}"{literal};
214 var caseEntityTags = '';
215 {/literal}{if $tagset.entityTags}{literal}
216 eval( 'caseEntityTags = ' + {/literal}'{$tagset.entityTags}'{literal} );
217 {/literal}{/if}{literal}
218 var hintText = "{/literal}{ts escape='js'}Type in a partial or complete name of an existing tag.{/ts}{literal}";
219
220 cj( ".case-tagset-{/literal}{$tagset.parentID}{literal}-section:not(.crm-processed-input) input")
221 .addClass("case-taglist_{/literal}{$tagset.parentID}{literal}");
222
223 cj( ".case-tagset-{/literal}{$tagset.parentID}{literal}-section:not(.crm-processed-input) .case-taglist_{/literal}{$tagset.parentID}{literal}")
224 .tokenInput( tagUrl, {
225 prePopulate: caseEntityTags,
226 theme: 'facebook',
227 hintText: hintText,
228 onAdd: function ( item ) {
229 processCaseTags_{/literal}{$tagset.parentID}{literal}( 'select', item.id );
230 },
231 onDelete: function ( item ) {
232 processCaseTags_{/literal}{$tagset.parentID}{literal}( 'delete', item.id );
233 }
234 }
235 );
236
237 cj( ".case-tagset-{/literal}{$tagset.parentID}{literal}-section:not(.crm-processed-input)").addClass("crm-processed-input");
238
239 function processCaseTags_{/literal}{$tagset.parentID}{literal}( action, id ) {
240 var postUrl = "{/literal}{crmURL p='civicrm/ajax/processTags' h=0}{literal}";
241 var parentId = "{/literal}{$tagset.parentID}{literal}";
242 var entityId = "{/literal}{$tagset.entityId}{literal}";
243 var entityTable = "{/literal}{$tagset.entityTable}{literal}";
244 var skipTagCreate = "{/literal}{$tagset.skipTagCreate}{literal}";
245 var skipEntityAction = "{/literal}{$tagset.skipEntityAction}{literal}";
246
247 cj.post( postUrl, { action: action, tagID: id, parentId: parentId, entityId: entityId, entityTable: entityTable,
248 skipTagCreate: skipTagCreate, skipEntityAction: skipEntityAction, key: {/literal}"{crmKey name='civicrm/ajax/processTags'}"{literal} },
249 function ( response ) {
250 // update hidden element
251 if ( response.id ) {
252 var curVal = cj( ".case-taglist_{/literal}{$tagset.parentID}{literal}" ).val( );
253 var valArray = curVal.split(',');
254 var setVal = Array( );
255 if ( response.action == 'delete' ) {
256 for ( x in valArray ) {
257 if ( valArray[x] != response.id ) {
258 setVal[x] = valArray[x];
259 }
260 }
261 }
262 else if ( response.action == 'select' ) {
263 setVal = valArray;
264 setVal[ setVal.length ] = response.id;
265 }
266
267 var actualValue = setVal.join( ',' );
268 cj( ".case-taglist_{/literal}{$tagset.parentID}{literal}" ).val( actualValue );
269 }
270 },
271 "json" );
272 }
273 {/literal}
274 </script>
275 {else}
276 {if $tagset.entityTagsArray}
277 {foreach from=$tagset.entityTagsArray item=val name="tagsetList"}
278 &nbsp;{$val.name}{if !$smarty.foreach.tagsetList.last},{/if}
279 {/foreach}
280 {/if}
281 {/if}
282 </div>
283 <div class="clear"></div>
284 </div>
285 {/foreach}
286 {elseif $tagsetType eq 'attachment'}
287 {assign var=tagset value = $tagsetInfo_attachment.$tagsetNumber}
288 <div class="crm-section tag-section attachment-tagset-{$tagset.parentID}-section">
289 <div class="crm-attachment-tagset-label">
290 <label>{$tagset.parentName}</label>
291 </div>
292 <div class="crm-attachment-tagset">
293 {assign var=elemName value = $tagset.tagsetElementName}
294 {assign var=parID value = $tagset.parentID}
295 {assign var=editTagSet value=false}
296 {$form.$elemName.$parID.html}
297 {if $action ne 4 or $form.formName eq 'CaseView' }
298 {assign var=editTagSet value=true}
299 {if $action eq 16 and !($permission eq 'edit') }
300 {assign var=editTagSet value=false}
301 {/if}
302 {/if}
303 {if $editTagSet}
304 <script type="text/javascript">
305 {literal}
306 var tagUrl = {/literal}"{$tagset.tagUrl}&key={crmKey name='civicrm/ajax/taglist'}"{literal};
307 var attachmentEntityTags = '';
308 {/literal}{if $tagset.entityTags}{literal}
309 eval( 'attachmentEntityTags = ' + {/literal}'{$tagset.entityTags}'{literal} );
310 {/literal}{/if}{literal}
311 var hintText = "{/literal}{ts escape='js'}Type in a partial or complete name of an existing tag.{/ts}{literal}";
312
313 cj( ".attachment-tagset-{/literal}{$tagset.parentID}{literal}-section:not(.crm-processed-input) input")
314 .addClass("attachment-taglist_{/literal}{$tagset.parentID}{literal}");
315
316 cj( ".attachment-tagset-{/literal}{$tagset.parentID}{literal}-section:not(.crm-processed-input) .attachment-taglist_{/literal}{$tagset.parentID}{literal}")
317 .tokenInput( tagUrl, {
318 prePopulate: attachmentEntityTags,
319 theme: 'facebook',
320 hintText: hintText,
321 onAdd: function ( item ) {
322 processAttachmentTags_{/literal}{$tagset.parentID}{literal}( 'select', item.id );
323 },
324 onDelete: function ( item ) {
325 processAttachmentTags_{/literal}{$tagset.parentID}{literal}( 'delete', item.id );
326 }
327 }
328 );
329
330 cj( ".attachment-tagset-{/literal}{$tagset.parentID}{literal}-section:not(.crm-processed-input)").addClass("crm-processed-input");
331
332 function processAttachmentTags_{/literal}{$tagset.parentID}{literal}( action, id ) {
333 var postUrl = "{/literal}{crmURL p='civicrm/ajax/processTags' h=0}{literal}";
334 var parentId = "{/literal}{$tagset.parentID}{literal}";
335 var entityId = "{/literal}{$tagset.entityId}{literal}";
336 var entityTable = "{/literal}{$tagset.entityTable}{literal}";
337 var skipTagCreate = "{/literal}{$tagset.skipTagCreate}{literal}";
338 var skipEntityAction = "{/literal}{$tagset.skipEntityAction}{literal}";
339
340 cj.post( postUrl, { action: action, tagID: id, parentId: parentId, entityId: entityId, entityTable: entityTable,
341 skipTagCreate: skipTagCreate, skipEntityAction: skipEntityAction, key: {/literal}"{crmKey name='civicrm/ajax/processTags'}"{literal} },
342 function ( response ) {
343 // update hidden element
344 if ( response.id ) {
345 var curVal = cj( ".attachment-taglist_{/literal}{$tagset.parentID}{literal}" ).val( );
346 var valArray = curVal.split(',');
347 var setVal = Array( );
348 if ( response.action == 'delete' ) {
349 for ( x in valArray ) {
350 if ( valArray[x] != response.id ) {
351 setVal[x] = valArray[x];
352 }
353 }
354 }
355 else if ( response.action == 'select' ) {
356 setVal = valArray;
357 setVal[ setVal.length ] = response.id;
358 }
359
360 var actualValue = setVal.join( ',' );
361 cj( ".attachment-taglist_{/literal}{$tagset.parentID}{literal}" ).val( actualValue );
362 }
363 },
364 "json");
365 }
366 {/literal}
367 </script>
368 {else}
369 {if $tagset.entityTagsArray}
370 {foreach from=$tagset.entityTagsArray item=val name="tagsetList"}
371 &nbsp;{$val.name}{if !$smarty.foreach.tagsetList.last},{/if}
372 {/foreach}
373 {/if}
374 {/if}
375 </div>
376 <div class="clear"></div>
377 </div>
378 {/if}
379