Merge pull request #16429 from ixiam/dev/core#1113
[civicrm-core.git] / templates / CRM / Case / Form / CaseView.tpl
1 {*
2 +--------------------------------------------------------------------+
3 | Copyright CiviCRM LLC. All rights reserved. |
4 | |
5 | This work is published under the GNU AGPLv3 license with some |
6 | permitted exceptions and without any warranty. For full license |
7 | and copyright information, see https://civicrm.org/licensing |
8 +--------------------------------------------------------------------+
9 *}
10 {* CiviCase - view case screen*}
11
12 <div class="crm-block crm-form-block crm-case-caseview-form-block">
13
14 {* here we are showing related cases w/ jquery dialog *}
15 {if $showRelatedCases}
16 {include file="CRM/Case/Form/ViewRelatedCases.tpl"}
17 {* Main case view *}
18 {else}
19
20 <h3>{ts}Summary{/ts}</h3>
21 <table class="report crm-entity case-summary" data-entity="case" data-id="{$caseID}" data-cid="{$contactID}">
22 {if $multiClient}
23 <tr class="crm-case-caseview-client">
24 <td colspan="5" class="label">
25 {ts}Clients:{/ts}
26 {foreach from=$caseRoles.client item=client name=clients}
27 <a href="{crmURL p='civicrm/contact/view' q="action=view&reset=1&cid=`$client.contact_id`"}" title="{ts}View contact record{/ts}">{$client.display_name}</a>{if not $smarty.foreach.clients.last}, &nbsp; {/if}
28 {/foreach}
29 <a href="#addClientDialog" class="crm-hover-button case-miniform" title="{ts}Add Client{/ts}" data-key="{crmKey name='civicrm/case/ajax/addclient'}">
30 <i class="crm-i fa-user-plus" aria-hidden="true"></i>
31 </a>
32 <div id="addClientDialog" class="hiddenElement">
33 <input name="add_client_id" placeholder="{ts}- select contact -{/ts}" class="huge" data-api-params='{ldelim}"params": {ldelim}"contact_type": "{$contactType}"{rdelim}{rdelim}' />
34 </div>
35 {if $hasRelatedCases}
36 <div class="crm-block relatedCases-link"><a class="crm-hover-button crm-popup medium-popup" href="{$relatedCaseUrl}">{$relatedCaseLabel}</a></div>
37 {/if}
38 </td>
39 </tr>
40 {/if}
41 <tr>
42 {if not $multiClient}
43 <td>
44 <table class="form-layout-compressed">
45 {foreach from=$caseRoles.client item=client}
46 <tr class="crm-case-caseview-display_name">
47 <td class="label-left bold" style="padding: 0px; border: none;">
48 <a href="{crmURL p='civicrm/contact/view' q="action=view&reset=1&cid=`$client.contact_id`"}" title="{ts}View contact record{/ts}">{$client.display_name}</a>{if $client.email}{crmAPI var='email_type_id' entity='OptionValue' action='getsingle' return="value" name="Email" option_group_id="activity_type"}<span class="crm-case-caseview-email"><a class="crm-hover-button crm-popup" href="{crmURL p='civicrm/activity/email/add' q="reset=1&action=add&atype=`$email_type_id.value`&cid=`$client.contact_id`&caseid=`$caseId`"}" title="{ts 1=$client.email|escape}Email: %1{/ts}"><i class="crm-i fa-envelope" aria-hidden="true"></i></a></span>{/if}
49 </td>
50 </tr>
51 {if $client.phone}
52 <tr class="crm-case-caseview-phone">
53 <td class="label-left description" style="padding: 1px">{$client.phone}</td>
54 </tr>
55 {/if}
56 {if $client.birth_date}
57 <tr class="crm-case-caseview-birth_date">
58 <td class="label-left description" style="padding: 1px">{ts}DOB{/ts}: {$client.birth_date|crmDate}</td>
59 </tr>
60 {/if}
61 {/foreach}
62 </table>
63 {if $hasRelatedCases}
64 <div class="crm-block relatedCases-link"><a class="crm-hover-button crm-popup medium-popup" href="{$relatedCaseUrl}">{$relatedCaseLabel}</a></div>
65 {/if}
66 </td>
67 {/if}
68 <td class="crm-case-caseview-case_subject label">
69 <span class="crm-case-summary-label">{ts}Subject{/ts}:</span>&nbsp;<span class="crm-editable" data-field="subject">{$caseDetails.case_subject}</span>
70 </td>
71 <td class="crm-case-caseview-case_type label">
72 <span class="crm-case-summary-label">{ts}Type{/ts}:</span>&nbsp;{$caseDetails.case_type}&nbsp;<a class="crm-hover-button crm-popup" href="{crmURL p='civicrm/case/activity' q="action=add&reset=1&cid=`$contactId`&caseid=`$caseId`&selectedChild=activity&atype=`$changeCaseTypeId`"}" title="{ts}Change case type (creates activity record){/ts}"><i class="crm-i fa-pencil" aria-hidden="true"></i></a>
73 </td>
74 <td class="crm-case-caseview-case_status label">
75 <span class="crm-case-summary-label">{ts}Status{/ts}:</span>&nbsp;{$caseDetails.case_status}&nbsp;<a class="crm-hover-button crm-popup" href="{crmURL p='civicrm/case/activity' q="action=add&reset=1&cid=`$contactId`&caseid=`$caseId`&selectedChild=activity&atype=`$changeCaseStatusId`"}" title="{ts}Change case status (creates activity record){/ts}"><i class="crm-i fa-pencil" aria-hidden="true"></i></a>
76 </td>
77 <td class="crm-case-caseview-case_start_date label">
78 <span class="crm-case-summary-label">{ts}Open Date{/ts}:</span>&nbsp;{$caseDetails.case_start_date|crmDate}&nbsp;<a class="crm-hover-button crm-popup" href="{crmURL p='civicrm/case/activity' q="action=add&reset=1&cid=`$contactId`&caseid=`$caseId`&selectedChild=activity&atype=`$changeCaseStartDateId`"}" title="{ts}Change case start date (creates activity record){/ts}"><i class="crm-i fa-pencil" aria-hidden="true"></i></a>
79 </td>
80 <td class="crm-case-caseview-{$caseID} label">
81 <span class="crm-case-summary-label">{ts}ID{/ts}:</span>&nbsp;{$caseID}
82 </td>
83 </tr>
84 </table>
85 {if $hookCaseSummary}
86 <div id="caseSummary" class="crm-clearfix">
87 {foreach from=$hookCaseSummary item=val key=div_id}
88 <div id="{$div_id}"><label>{$val.label}</label><div class="value">{$val.value}</div></div>
89 {/foreach}
90 </div>
91 {/if}
92
93 <div class="case-control-panel">
94 <div>
95 <p>
96 {$form.add_activity_type_id.html}
97 {if $hasAccessToAllCases} &nbsp;
98 {$form.timeline_id.html}{$form._qf_CaseView_next.html} &nbsp;
99 {$form.report_id.html}
100 {/if}
101 </p>
102 </div>
103 <div>
104 <p>
105 {if $hasAccessToAllCases}
106 <a class="crm-hover-button action-item no-popup" href="{crmURL p='civicrm/case/report/print' q="all=1&redact=0&cid=$contactID&caseID=$caseId&asn="}"><i class="crm-i fa-print" aria-hidden="true"></i> {ts}Print Report{/ts}</a>
107 {/if}
108
109 {if !empty($exportDoc)}
110 <a class="crm-hover-button action-item" href="{$exportDoc}"><i class="crm-i fa-file-pdf-o" aria-hidden="true"></i> {ts}Export Document{/ts}</a>
111 {/if}
112
113 {if $mergeCases}
114 <a href="#mergeCasesDialog" class="action-item no-popup crm-hover-button case-miniform"><i class="crm-i fa-compress" aria-hidden="true"></i> {ts}Merge Case{/ts}</a>
115 {$form._qf_CaseView_next_merge_case.html}
116 <span id="mergeCasesDialog" class="hiddenElement">
117 {$form.merge_case_id.html}
118 </span>
119 {/if}
120
121 {if call_user_func(array('CRM_Core_Permission','giveMeAllACLs'))}
122 <a class="action-item crm-hover-button medium-popup" href="{crmURL p='civicrm/contact/view/case/editClient' h=1 q="reset=1&action=update&id=$caseID&cid=$contactID"}"><i class="crm-i fa-user" aria-hidden="true"></i> {ts}Assign to Another Client{/ts}</a>
123 {/if}
124 </p>
125 </div>
126 </div>
127
128 <div class="clear"></div>
129 {include file="CRM/Case/Page/CustomDataView.tpl"}
130
131 <div class="crm-accordion-wrapper collapsed crm-case-roles-block">
132 <div class="crm-accordion-header">
133 {ts}Roles{/ts}
134 </div><!-- /.crm-accordion-header -->
135 <div class="crm-accordion-body">
136
137 {if $hasAccessToAllCases}
138 <div class="crm-submit-buttons">
139 <a class="button case-miniform" href="#addCaseRoleDialog" data-key="{crmKey name='civicrm/ajax/relation'}" rel="#caseRoles-selector-{$caseID}"><i class="crm-i fa-plus-circle" aria-hidden="true"></i> {ts}Add new role{/ts}</a>
140 </div>
141 <div id="addCaseRoleDialog" class="hiddenElement">
142 <div>{$form.role_type.label}</div>
143 <div>{$form.role_type.html}</div><br />
144 <div><label for="add_role_contact_id">{ts}Assign To{/ts}:</label></div>
145 <div><input name="add_role_contact_id" placeholder="{ts}- first select relationship type -{/ts}" class="huge" /></div>
146 </div>
147 {/if}
148
149 <div id="editCaseRoleDialog" class="hiddenElement">
150 <div><label for="edit_role_contact_id">{ts}Change To{/ts}:</label></div>
151 <div><input name="edit_role_contact_id" placeholder="{ts}- select contact -{/ts}" class="huge" /></div>
152 </div>
153
154 <table id="caseRoles-selector-{$caseID}" class="report-layout crm-ajax-table" data-page-length="10">
155 <thead>
156 <tr>
157 <th data-data="relation">{ts}Case Role{/ts}</th>
158 <th data-data="name">{ts}Name{/ts}</th>
159 <th data-data="phone">{ts}Phone{/ts}</th>
160 <th data-data="email">{ts}Email{/ts}</th>
161 {if $relId neq 'client' and $hasAccessToAllCases}
162 <th data-data="actions" data-orderable="false">{ts}Actions{/ts}</th>
163 {/if}
164 </tr>
165 </thead>
166 </table>
167 {literal}
168 <script type="text/javascript">
169 (function($) {
170 var caseId = {/literal}{$caseID}{literal};
171 CRM.$('table#caseRoles-selector-' + caseId).data({
172 "ajax": {
173 "url": {/literal}'{crmURL p="civicrm/ajax/caseroles" h=0 q="snippet=4&caseID=$caseId&cid=$contactID&userID=$userID"}'{literal}
174 }
175 });
176 })(CRM.$);
177 </script>
178 {/literal}
179
180 <div id="deleteCaseRoleDialog" class="hiddenElement">
181 {ts}Are you sure you want to end this relationship?{/ts}
182 </div>
183
184 </div><!-- /.crm-accordion-body -->
185 </div><!-- /.crm-accordion-wrapper -->
186
187 {if $hasAccessToAllCases}
188 <div class="crm-accordion-wrapper collapsed crm-case-other-relationships-block">
189 <div class="crm-accordion-header">
190 {ts}Other Relationships{/ts}
191 </div><!-- /.crm-accordion-header -->
192 <div class="crm-accordion-body">
193 <div class="crm-submit-buttons">
194 {crmButton p='civicrm/contact/view/rel' q="action=add&reset=1&cid=`$contactId`&caseID=`$caseID`" icon="plus-circle"}{ts}Add client relationship{/ts}{/crmButton}
195 </div>
196 <table id="clientRelationships-selector-{$caseID}" class="report-layout crm-ajax-table" data-page-length="10">
197 <thead>
198 <tr>
199 <th data-data="relation">{ts}Client Relationship{/ts}</th>
200 <th data-data="name">{ts}Name{/ts}</th>
201 <th data-data="phone">{ts}Phone{/ts}</th>
202 <th data-data="email">{ts}Email{/ts}</th>
203 </tr>
204 </thead>
205 </table>
206 {literal}
207 <script type="text/javascript">
208 (function($) {
209 var caseId = {/literal}{$caseID}{literal};
210 CRM.$('table#clientRelationships-selector-' + caseId).data({
211 "ajax": {
212 "url": {/literal}'{crmURL p="civicrm/ajax/clientrelationships" h=0 q="snippet=4&caseID=$caseId&cid=$contactID&userID=$userID"}'{literal}
213 }
214 });
215 })(CRM.$);
216 </script>
217 {/literal}
218 <br />
219 {if !empty($globalGroupInfo.id)}
220 <div class="crm-submit-buttons">
221 <a class="button case-miniform" href="#addMembersToGroupDialog" rel="#globalRelationships-selector-{$caseId}" data-group_id="{$globalGroupInfo.id}">
222 <i class="crm-i fa-plus-circle" aria-hidden="true"></i> {ts 1=$globalGroupInfo.title}Add members to %1{/ts}
223 </a>
224 </div>
225 <div id="addMembersToGroupDialog" class="hiddenElement">
226 <input name="add_member_to_group_contact_id" placeholder="{ts}- select contacts -{/ts}" class="huge" />
227 </div>
228 <table id="globalRelationships-selector-{$caseId}" class="report-layout crm-ajax-table" data-page-length="10">
229 <thead>
230 <tr>
231 <th data-data="sort_name">{$globalGroupInfo.title}</th>
232 <th data-data="phone">{ts}Phone{/ts}</th>
233 <th data-data="email">{ts}Email{/ts}</th>
234 </tr>
235 </thead>
236 </table>
237 {literal}
238 <script type="text/javascript">
239 (function($) {
240 var caseId = {/literal}{$caseID}{literal};
241 CRM.$('table#globalRelationships-selector-' + caseId).data({
242 "ajax": {
243 "url": {/literal}'{crmURL p="civicrm/ajax/globalrelationships" h=0 q="snippet=4&caseID=$caseId&cid=$contactID&userID=$userID"}'{literal}
244 }
245 });
246 })(CRM.$);
247 </script>
248 {/literal}
249 {/if}
250
251 </div><!-- /.crm-accordion-body -->
252 </div><!-- /.crm-accordion-wrapper -->
253
254 {/if} {* other relationship section ends *}
255 {include file="CRM/Case/Form/ActivityToCase.tpl"}
256
257 {* pane to display / edit regular tags or tagsets for cases *}
258 {if $showTags}
259 <div id="casetags" class="crm-accordion-wrapper crm-case-tags-block">
260 <div class="crm-accordion-header">
261 {ts}Case Tags{/ts}
262 </div><!-- /.crm-accordion-header -->
263 <div class="crm-accordion-body">
264 {if $tags}
265 <p class="crm-block crm-content-block crm-case-caseview-display-tags">
266 &nbsp;&nbsp;
267 {foreach from=$tags item='tag'}
268 <span class="crm-tag-item" {if !empty($tag.color)}style="background-color: {$tag.color}; color: {$tag.color|colorContrast};"{/if}>
269 {$tag.text}
270 </span>
271 {/foreach}
272 </p>
273 {/if}
274
275 {foreach from=$tagSetTags item=displayTagset}
276 <p class="crm-block crm-content-block crm-case-caseview-display-tagset">
277 &nbsp;&nbsp;<strong>{$displayTagset.name}:</strong>
278 {', '|implode:$displayTagset.items}
279 </p>
280 {/foreach}
281
282 {if !$tags && !$tagSetTags }
283 <div class="status">
284 {ts}There are no tags currently assigned to this case.{/ts}
285 </div>
286 {/if}
287
288 <div class="crm-submit-buttons">
289 <a class="button case-miniform" href="#manageTagsDialog" data-key="{crmKey name='civicrm/case/ajax/processtags'}">
290 {if $tags || $tagSetTags}{ts}Edit Tags{/ts}{else}{ts}Add Tags{/ts}{/if}
291 </a>
292 </div>
293
294 </div><!-- /.crm-accordion-body -->
295 </div><!-- /.crm-accordion-wrapper -->
296
297 <div id="manageTagsDialog" class="hiddenElement">
298 <div class="label">{$form.case_tag.label}</div>
299 <div class="view-value"><div class="crm-select-container">{$form.case_tag.html}</div>
300 <br/>
301 <div style="text-align:left;">{include file="CRM/common/Tagset.tpl" tagsetType='case'}</div>
302 <br/>
303 <div class="clear"></div>
304 </div>
305 </div>
306
307 {/if} {* end of tag block*}
308
309 {include file="CRM/Case/Form/ActivityTab.tpl"}
310
311 <div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="bottom"}</div>
312 {/if} {* view related cases if end *}
313 </div>
314 {literal}
315 <style type="text/css">
316 .crm-case-caseview-case_subject span.crm-editable {
317 padding-right: 32px;
318 position: relative;
319 }
320 .crm-case-caseview-case_subject span.crm-editable:before {
321 position: absolute;
322 font-family: 'FontAwesome';
323 top: 0;
324 right: 10px;
325 content: "\f040";
326 opacity: 0.7;
327 color: #000;
328 font-size: .92em;
329 }
330 .crm-case-caseview-case_subject span.crm-editable-editing {
331 padding-right: 0;
332 }
333 .crm-case-caseview-case_subject span.crm-editable-editing form > input {
334 min-width: 20em;
335 padding: 3px;
336 }
337 .crm-case-caseview-case_subject span.crm-editable-editing:before {
338 content: "";
339 }
340 </style>
341 {/literal}