{*
+--------------------------------------------------------------------+
- | CiviCRM version 4.4 |
+ | CiviCRM version 4.5 |
+--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2013 |
+ | Copyright CiviCRM LLC (c) 2004-2014 |
+--------------------------------------------------------------------+
| This file is a part of CiviCRM. |
| |
{foreach from=$caseRoles.client item=client name=clients}
<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}, {/if}
{/foreach}
- <a href="#" class="crm-hover-button" title="{ts}add new client to the case{/ts}" onclick="addClient( );return false;">
- <span class="icon edit-icon"></span>
+ <a href="#addClientDialog" class="crm-hover-button case-miniform" title="{ts}Add Client{/ts}" data-key="{crmKey name='civicrm/case/ajax/addclient'}">
+ <span class="icon add-icon"></span>
</a>
+ <div id="addClientDialog" class="hiddenElement">
+ <input name="add_client_id" placeholder="{ts}- select contact -{/ts}" class="huge" />
+ </div>
{if $hasRelatedCases}
<div class="crm-block relatedCases-link"><a class="crm-hover-button crm-popup medium-popup" href="{$relatedCaseUrl}">{$relatedCaseLabel}</a></div>
{/if}
{/if}
{if $mergeCases}
- <a href="#merge_cases" class="action-item no-popup crm-hover-button case-miniform"><span class="icon ui-icon-copy"></span>{ts}Merge Case{/ts}</a>
+ <a href="#mergeCasesDialog" class="action-item no-popup crm-hover-button case-miniform"><span class="icon ui-icon-copy"></span>{ts}Merge Case{/ts}</a>
{$form._qf_CaseView_next_merge_case.html}
- <span id='merge_cases' class="hiddenElement">
+ <span id="mergeCasesDialog" class="hiddenElement">
{$form.merge_case_id.html}
</span>
{/if}
{if $hasAccessToAllCases}
<div class="crm-submit-buttons">
- <a class="button" href="#" onclick="addRole();return false;"><span><div class="icon add-icon"></div>{ts}Add new role{/ts}</span></a>
+ <a class="button case-miniform" href="#addCaseRoleDialog" data-key="{crmKey name='civicrm/ajax/relation'}" rel="#caseRoles-selector-{$caseID}"><div class="icon add-icon"></div>{ts}Add new role{/ts}</a>
+ </div>
+ <div id="addCaseRoleDialog" class="hiddenElement">
+ <div>{$form.role_type.label}</div>
+ <div>{$form.role_type.html}</div><br />
+ <div><label for="add_role_contact_id">{ts}Assign To{/ts}:</label></div>
+ <div><input name="add_role_contact_id" placeholder="{ts}- select contact -{/ts}" class="huge" /></div>
</div>
{/if}
- <table id="caseRoles-selector" class="report-layout">
+ <div id="editCaseRoleDialog" class="hiddenElement">
+ <div><label for="edit_role_contact_id">{ts}Change To{/ts}:</label></div>
+ <div><input name="edit_role_contact_id" placeholder="{ts}- select contact -{/ts}" class="huge" /></div>
+ </div>
+
+ <table id="caseRoles-selector-{$caseID}" class="report-layout">
<thead><tr>
<th>{ts}Case Role{/ts}</th>
<th>{ts}Name{/ts}</th>
</tr></thead>
</table>
- <div id="deleteCaseRole" class="case-miniform hiddenElement">
+ <div id="deleteCaseRoleDialog" class="hiddenElement">
{ts}Are you sure you want to delete this case role?{/ts}
</div>
<script type="text/javascript">
var oTable;
- cj(function() {
+ CRM.$(function($) {
buildCaseRoles(false);
- });
-
- function buildCaseRoles(filterSearch) {
- if(filterSearch) {
- oTable.fnDestroy();
- }
- var count = 0;
- var columns = '';
- var sourceUrl = {/literal}"{crmURL p='civicrm/ajax/caseroles' h=0 q='snippet=4&caseID='}{$caseID}"{literal};
- sourceUrl = sourceUrl + '&cid={/literal}{$contactID}{literal}';
- sourceUrl = sourceUrl + '&userID={/literal}{$userID}{literal}';
-
- cj('#caseRoles-selector th').each( function( ) {
- if ( cj(this).attr('id') != 'nosort' ) {
- columns += '{"sClass": "' + cj(this).attr('class') +'"},';
- }
- else {
- columns += '{ "bSortable": false },';
- }
- count++;
- });
-
- columns = columns.substring(0, columns.length - 1 );
- eval('columns =[' + columns + ']');
-
- oTable = cj('#caseRoles-selector').dataTable({
- "bFilter" : false,
- "bAutoWidth" : false,
- "aaSorting" : [],
- "aoColumns" : columns,
- "bProcessing": true,
- "bJQueryUI": true,
- "asStripClasses" : [ "odd-row", "even-row" ],
- "sPaginationType": "full_numbers",
- "sDom" : '<"crm-datatable-pager-top"lfp>rt<"crm-datatable-pager-bottom"ip>',
- "bServerSide": true,
- "sAjaxSource": sourceUrl,
- "iDisplayLength": 10,
- "fnDrawCallback": function() { setCaseRolesSelectorClass(); },
- "fnServerData": function ( sSource, aoData, fnCallback ) {
- cj.ajax({
- "dataType": 'json',
- "type": "POST",
- "url": sSource,
- "data": aoData,
- "success": fnCallback
- });
+ function buildCaseRoles(filterSearch) {
+ if(filterSearch) {
+ oTable.fnDestroy();
}
- });
- }
-
- function setCaseRolesSelectorClass( ) {
- cj("#caseRoles-selector td:last-child").each( function( ) {
- cj(this).parent().addClass(cj(this).text() );
- });
- }
-
-</script>
-{/literal}
- </div><!-- /.crm-accordion-body -->
-</div><!-- /.crm-accordion-wrapper -->
-<div id="dialog">
- {ts}Begin typing last name of contact.{/ts}<br/>
- <input type="text" id="rel_contact"/>
- <input type="hidden" id="rel_contact_id" value="">
-</div>
-
-{literal}
-<script type="text/javascript">
-
- cj("#dialog").hide( );
-
- function addClient( ) {
- cj("#dialog").show( );
-
- cj("#dialog").dialog({
- title: "{/literal}{ts escape="js"}Add Client to the Case{/ts}{literal}",
- modal: true,
- close : function(event, ui) {
- cj("#rel_contact").unautocomplete( );
- cj("#dialog").hide( );
- },
- overlay: { opacity: 0.5, background: "black" },
-
- open:function() {
- var contactUrl = {/literal}"{crmURL p='civicrm/ajax/rest' q='className=CRM_Contact_Page_AJAX&fnName=getContactList&json=1&context=caseview' h=0 }"{literal};
- cj("#rel_contact").autocomplete( contactUrl, {
- width: 260,
- selectFirst: false,
- matchContains: true
- });
-
- cj("#rel_contact").focus();
- cj("#rel_contact").result(function(event, data, formatted) {
- cj("input[id=rel_contact_id]").val(data[1]);
- });
- },
-
- buttons: {
- "{/literal}{ts escape='js'}Done{/ts}{literal}": function() {
- var postUrl = {/literal}"{crmURL p='civicrm/case/ajax/addclient' h=0 }"{literal};
- var caseID = {/literal}"{$caseID}"{literal};
- var contactID = cj("#rel_contact_id").val( );
-
- if ( !cj("#rel_contact").val( ) || !contactID ) {
- cj("#rel_contact").crmError('{/literal}{ts escape="js"}Select valid contact from the list.{/ts}{literal}');
- return false;
+ var count = 0;
+ var columns = '';
+ var sourceUrl = {/literal}"{crmURL p='civicrm/ajax/caseroles' h=0 q='snippet=4&caseID='}{$caseID}"{literal};
+ sourceUrl = sourceUrl + '&cid={/literal}{$contactID}{literal}';
+ sourceUrl = sourceUrl + '&userID={/literal}{$userID}{literal}';
+
+ $('#caseRoles-selector-{/literal}{$caseID}{literal} th').each( function( ) {
+ if ( $(this).attr('id') != 'nosort' ) {
+ columns += '{"sClass": "' + $(this).attr('class') +'"},';
}
- cj.post( postUrl, {contactID: contactID,caseID: caseID,
- key: {/literal}"{crmKey name='civicrm/case/ajax/addclient'}"{literal} },
- function( data ) {
- //due to caching issues we use redirection rather than reload
- document.location = {/literal}'{crmURL q="action=view&reset=1&id=$caseID&cid=$contactID&context=$context" h=0 }'{literal};
- },
- 'json'
- );
- },
-
- "{/literal}{ts escape='js'}Cancel{/ts}{literal}": function() {
- cj(this).dialog("close");
- cj(this).dialog("destroy");
- }
- }
- });
- }
-
- function createRelationship( relType, contactID, relID, rowNumber, relTypeName ) {
- cj("#dialog").show( );
-
- cj("#dialog").dialog({
- title: "Assign Case Role",
- modal: true,
- close: function(event, ui) { cj("#rel_contact").unautocomplete( ); },
- open:function() {
- /* set defaults if editing */
- cj("#rel_contact").val("");
- cj("#rel_contact_id").val(null);
- if (contactID) {
- cj("#rel_contact_id").val(contactID);
- var contactName = cj('#caseRoles-selector').find('tr :eq('+ rowNumber +')').children(':eq(1)').text();
- cj("#rel_contact").val(contactName);
+ else {
+ columns += '{ "bSortable": false },';
}
+ count++;
+ });
- var contactUrl = {/literal}"{crmURL p='civicrm/ajax/rest' q='className=CRM_Contact_Page_AJAX&fnName=getContactList&json=1&context=caseview' h=0 }"{literal};
-
- cj("#rel_contact").autocomplete( contactUrl, {
- width: 260,
- selectFirst: false,
- matchContains: true
- });
-
- cj("#rel_contact").focus();
- cj("#rel_contact").result(function(event, data, formatted) {
- cj("input[id=rel_contact_id]").val(data[1]);
- });
- },
-
- buttons: {
- "{/literal}{ts escape='js'}Ok{/ts}{literal}": function() {
-
- var sourceContact = {/literal}"{$contactID}"{literal};
- var caseID = {/literal}"{$caseID}"{literal};
-
- var v1 = cj("#rel_contact_id").val( );
-
- if ( !cj("#rel_contact").val( ) || !v1 ) {
- cj("#rel_contact").crmError('{/literal}{ts escape="js"}Select valid contact from the list{/ts}{literal}.');
- return false;
- }
-
- var postUrl = {/literal}"{crmURL p='civicrm/ajax/relation' h=0 }"{literal};
- cj.post( postUrl, { rel_contact: v1, rel_type: relType, contact_id: sourceContact,
- rel_id: relID, case_id: caseID, key: {/literal}"{crmKey name='civicrm/ajax/relation'}"{literal} },
- function( data ) {
- if ( data.status == 'process-relationship-success' ) {
- // reloading datatable
- var oTable = cj('#caseRoles-selector').dataTable();
- oTable.fnDraw();
- }
- else {
- // This is an awkward mix of smarty and javascript: the relTypeName variable is
- // not available in smarty, could not find an i18n-correct way of doing this.
- {/literal}
- {capture assign=relTypeAdminLink}{crmURL p='civicrm/admin/reltype' q='reset=1' h=0 }{/capture}
- {literal}
- var errorMsg = relTypeName + ': ' + '{/literal}{ts escape="js" 1="$relTypeAdminLink"}The relationship type definition for the case role is not valid for the client and / or staff contact types. You can review and edit relationship types at <a href="%1">Administer >> Option Lists >> Relationship Types</a>.{/ts}{literal}';
-
- //display error message.
- cj().crmError(errorMsg);
- }
- }, 'json'
- );
-
- cj(this).dialog("close");
- cj(this).dialog("destroy");
- },
-
- "{/literal}{ts escape='js'}Cancel{/ts}{literal}": function() {
- cj(this).dialog("close");
- cj(this).dialog("destroy");
+ columns = columns.substring(0, columns.length - 1 );
+ eval('columns =[' + columns + ']');
+
+ oTable = $('#caseRoles-selector-{/literal}{$caseID}{literal}').dataTable({
+ "bFilter" : false,
+ "bAutoWidth" : false,
+ "aaSorting" : [],
+ "aoColumns" : columns,
+ "bProcessing": true,
+ "bJQueryUI": true,
+ "asStripClasses" : [ "odd-row", "even-row" ],
+ "sPaginationType": "full_numbers",
+ "sDom" : '<"crm-datatable-pager-top"lfp>rt<"crm-datatable-pager-bottom"ip>',
+ "bServerSide": true,
+ "sAjaxSource": sourceUrl,
+ "iDisplayLength": 10,
+ "fnDrawCallback": function() { setCaseRolesSelectorClass(); },
+ "fnServerData": function ( sSource, aoData, fnCallback ) {
+ $.ajax({
+ "dataType": 'json',
+ "type": "POST",
+ "url": sSource,
+ "data": aoData,
+ "success": fnCallback
+ });
}
- }
- });
- }
+ });
+ }
+ function setCaseRolesSelectorClass( ) {
+ $("#caseRoles-selector-{/literal}{$caseID}{literal} td:last-child").each( function( ) {
+ $(this).parent().addClass($(this).text() );
+ });
+ }
+ });
</script>
{/literal}
+ </div><!-- /.crm-accordion-body -->
+</div><!-- /.crm-accordion-wrapper -->
{if $hasAccessToAllCases}
<div class="crm-accordion-wrapper collapsed crm-case-other-relationships-block">
<a class="button" href="{$relUrl}">
<div class="icon add-icon"></div>{ts}Add client relationship{/ts}</a>
</div>
- <table id="clientRelationships-selector" class="report-layout">
+ <table id="clientRelationships-selector-{$caseID}" class="report-layout">
<thead><tr>
<th>{ts}Client Relationship{/ts}</th>
<th>{ts}Name{/ts}</th>
{/if}
{literal}
<script type="text/javascript">
- cj(function( ) {
- buildCaseClientRelationships(false);
- });
-
- function buildCaseClientRelationships(filterSearch) {
- if (filterSearch) {
- oTable.fnDestroy();
+ CRM.$(function($) {
+ buildCaseClientRelationships(false);
+ function buildCaseClientRelationships(filterSearch) {
+ if (filterSearch) {
+ oTable.fnDestroy();
+ }
+ var count = 0;
+ var columns = '';
+ var sourceUrl = {/literal}"{crmURL p='civicrm/ajax/clientrelationships' h=0 q='snippet=4&caseID='}{$caseID}"{literal};
+ sourceUrl = sourceUrl + '&cid={/literal}{$contactID}{literal}';
+ sourceUrl = sourceUrl + '&userID={/literal}{$userID}{literal}';
+
+ $('#clientRelationships-selector-{/literal}{$caseID}{literal} th').each( function( ) {
+ if ( $(this).attr('id') != 'nosort' ) {
+ columns += '{"sClass": "' + $(this).attr('class') +'"},';
+ }
+ else {
+ columns += '{ "bSortable": false },';
+ }
+ count++;
+ });
+
+ columns = columns.substring(0, columns.length - 1 );
+ eval('columns =[' + columns + ']');
+
+ oTable = $('#clientRelationships-selector-{/literal}{$caseID}{literal}').dataTable({
+ "bFilter" : false,
+ "bAutoWidth" : false,
+ "aaSorting" : [],
+ "aoColumns" : columns,
+ "bProcessing": true,
+ "bJQueryUI": true,
+ "asStripClasses" : [ "odd-row", "even-row" ],
+ "sPaginationType": "full_numbers",
+ "sDom" : '<"crm-datatable-pager-top"lfp>rt<"crm-datatable-pager-bottom"ip>',
+ "bServerSide": true,
+ "sAjaxSource": sourceUrl,
+ "iDisplayLength": 10,
+ "fnDrawCallback": function() { setClientRelationshipsSelectorClass(); },
+ "fnServerData": function (sSource, aoData, fnCallback) {
+ $.ajax( {
+ "dataType": 'json',
+ "type": "POST",
+ "url": sSource,
+ "data": aoData,
+ "success": fnCallback
+ });
+ }
+ });
}
- var count = 0;
- var columns = '';
- var sourceUrl = {/literal}"{crmURL p='civicrm/ajax/clientrelationships' h=0 q='snippet=4&caseID='}{$caseID}"{literal};
- sourceUrl = sourceUrl + '&cid={/literal}{$contactID}{literal}';
- sourceUrl = sourceUrl + '&userID={/literal}{$userID}{literal}';
-
- cj('#clientRelationships-selector th').each( function( ) {
- if ( cj(this).attr('id') != 'nosort' ) {
- columns += '{"sClass": "' + cj(this).attr('class') +'"},';
- }
- else {
- columns += '{ "bSortable": false },';
- }
- count++;
- });
-
- columns = columns.substring(0, columns.length - 1 );
- eval('columns =[' + columns + ']');
-
- oTable = cj('#clientRelationships-selector').dataTable({
- "bFilter" : false,
- "bAutoWidth" : false,
- "aaSorting" : [],
- "aoColumns" : columns,
- "bProcessing": true,
- "bJQueryUI": true,
- "asStripClasses" : [ "odd-row", "even-row" ],
- "sPaginationType": "full_numbers",
- "sDom" : '<"crm-datatable-pager-top"lfp>rt<"crm-datatable-pager-bottom"ip>',
- "bServerSide": true,
- "sAjaxSource": sourceUrl,
- "iDisplayLength": 10,
- "fnDrawCallback": function() { setClientRelationshipsSelectorClass(); },
- "fnServerData": function (sSource, aoData, fnCallback) {
- cj.ajax( {
- "dataType": 'json',
- "type": "POST",
- "url": sSource,
- "data": aoData,
- "success": fnCallback
- } );
- }
- });
- }
-
- function setClientRelationshipsSelectorClass( ) {
- cj("#clientRelationships-selector td:last-child").each(function() {
- cj(this).parent().addClass(cj(this).text());
- });
- }
+
+ function setClientRelationshipsSelectorClass( ) {
+ $("#clientRelationships-selector-{/literal}{$caseID}{literal} td:last-child").each(function() {
+ $(this).parent().addClass($(this).text());
+ });
+ }
+ });
</script>
{/literal}
<br />
-
- {if $globalRelationships}
+ {if !empty($globalGroupInfo.id)}
<div class="crm-submit-buttons">
- <a class="button" href="#" onClick="window.location='{crmURL p='civicrm/group/search' q="reset=1&context=amtg&amtgID=`$globalGroupInfo.id`"}'; return false;">
- <span><div class="icon add-icon"></div>{ts 1=$globalGroupInfo.title}Add members to %1{/ts}</a></span>
+ <a class="button case-miniform" href="#addMembersToGroupDialog" rel="#globalRelationships-selector-{$caseId}" data-group_id="{$globalGroupInfo.id}">
+ <div class="icon add-icon"></div>{ts 1=$globalGroupInfo.title}Add members to %1{/ts}
+ </a>
</div>
- <table id="globalRelationships-selector" class="report-layout">
+ <div id="addMembersToGroupDialog" class="hiddenElement">
+ <input name="add_member_to_group_contact_id" placeholder="{ts}- select contacts -{/ts}" class="huge" />
+ </div>
+ <table id="globalRelationships-selector-{$caseId}" class="report-layout">
<thead><tr>
<th>{$globalGroupInfo.title}</th>
<th>{ts}Phone{/ts}</th>
<th>{ts}Email{/ts}</th>
</tr></thead>
</table>
- {elseif $globalGroupInfo.id}
- <div class="messages status no-popup">
- <div class="icon inform-icon"></div>
- {capture assign=crmURL}{crmURL p='civicrm/group/search' q="reset=1&context=amtg&amtgID=`$globalGroupInfo.id`"}{/capture}
- {ts 1=$crmURL 2=$globalGroupInfo.title}The group %2 has no members. You can <a href='%1'>add one</a>.{/ts}
- </div>
{/if}
{literal}
<script type="text/javascript">
-
- cj(function() {
- buildCaseGlobalRelationships(false);
- });
-
- function buildCaseGlobalRelationships(filterSearch) {
- if (filterSearch) {
- oTable.fnDestroy();
- }
- var count = 0;
- var columns = '';
- var sourceUrl = {/literal}"{crmURL p='civicrm/ajax/globalrelationships' h=0 q='snippet=4&caseID='}{$caseID}"{literal};
- sourceUrl = sourceUrl + '&cid={/literal}{$contactID}{literal}';
- sourceUrl = sourceUrl + '&userID={/literal}{$userID}{literal}';
-
- cj('#globalRelationships-selector th').each( function( ) {
- if (cj(this).attr('id') != 'nosort') {
- columns += '{"sClass": "' + cj(this).attr('class') +'"},';
- }
- else {
- columns += '{ "bSortable": false },';
- }
- count++;
- });
-
- columns = columns.substring(0, columns.length - 1 );
- eval('columns =[' + columns + ']');
-
- oTable = cj('#globalRelationships-selector').dataTable({
- "bFilter" : false,
- "bAutoWidth" : false,
- "aaSorting" : [],
- "aoColumns" : columns,
- "bProcessing": true,
- "bJQueryUI": true,
- "asStripClasses" : [ "odd-row", "even-row" ],
- "sPaginationType": "full_numbers",
- "sDom" : '<"crm-datatable-pager-top"lfp>rt<"crm-datatable-pager-bottom"ip>',
- "bServerSide": true,
- "sAjaxSource": sourceUrl,
- "iDisplayLength": 10,
- "fnDrawCallback": function() { setGlobalRelationshipsSelectorClass(); },
- "fnServerData": function ( sSource, aoData, fnCallback ) {
- cj.ajax( {
- "dataType": 'json',
- "type": "POST",
- "url": sSource,
- "data": aoData,
- "success": fnCallback
- } );
- }
- });
- }
-
- function setGlobalRelationshipsSelectorClass( ) {
- cj("#globalRelationships-selector td:last-child").each( function( ) {
- cj(this).parent().addClass(cj(this).text() );
- });
- }
+ CRM.$(function($) {
+ buildCaseGlobalRelationships(false);
+ function buildCaseGlobalRelationships(filterSearch) {
+ if (filterSearch) {
+ oTable.fnDestroy();
+ }
+ var count = 0;
+ var columns = '';
+ var sourceUrl = {/literal}"{crmURL p='civicrm/ajax/globalrelationships' h=0 q='snippet=4&caseID='}{$caseID}"{literal};
+ sourceUrl = sourceUrl + '&cid={/literal}{$contactID}{literal}';
+ sourceUrl = sourceUrl + '&userID={/literal}{$userID}{literal}';
+
+ $('#globalRelationships-selector-{/literal}{$caseID}{literal} th').each( function( ) {
+ if ($(this).attr('id') != 'nosort') {
+ columns += '{"sClass": "' + $(this).attr('class') +'"},';
+ }
+ else {
+ columns += '{ "bSortable": false },';
+ }
+ count++;
+ });
+
+ columns = columns.substring(0, columns.length - 1 );
+ eval('columns =[' + columns + ']');
+
+ oTable = $('#globalRelationships-selector-{/literal}{$caseID}{literal}').dataTable({
+ "bFilter" : false,
+ "bAutoWidth" : false,
+ "aaSorting" : [],
+ "aoColumns" : columns,
+ "bProcessing": true,
+ "bJQueryUI": true,
+ "asStripClasses" : [ "odd-row", "even-row" ],
+ "sPaginationType": "full_numbers",
+ "sDom" : '<"crm-datatable-pager-top"lfp>rt<"crm-datatable-pager-bottom"ip>',
+ "bServerSide": true,
+ "sAjaxSource": sourceUrl,
+ "iDisplayLength": 10,
+ "fnDrawCallback": function() { setGlobalRelationshipsSelectorClass(); },
+ "oLanguage": {
+ "sEmptyTable": {/literal}'{ts escape='js' 1=$globalGroupInfo.title}The group %1 has no members.{/ts}'{literal}
+ },
+ "fnServerData": function ( sSource, aoData, fnCallback ) {
+ $.ajax( {
+ "dataType": 'json',
+ "type": "POST",
+ "url": sSource,
+ "data": aoData,
+ "success": fnCallback
+ });
+ }
+ });
+ }
+
+ function setGlobalRelationshipsSelectorClass( ) {
+ $("#globalRelationships-selector-{/literal}{$caseID}{literal} td:last-child").each( function( ) {
+ $(this).parent().addClass($(this).text() );
+ });
+ }
+ });
</script>
{/literal}
</div><!-- /.crm-accordion-body -->
</div><!-- /.crm-accordion-wrapper -->
{/if} {* other relationship section ends *}
-
-<div id="addRoleDialog">
-{$form.role_type.label}<br />
-{$form.role_type.html}
-<br /><br />
- {ts}Begin typing last name of contact.{/ts}<br/>
- <input type="text" id="role_contact"/>
- <input type="hidden" id="role_contact_id" value="">
-</div>
-
-{literal}
-<script type="text/javascript">
-
-cj("#addRoleDialog").hide( );
-function addRole() {
- cj("#addRoleDialog").show( );
-
- cj("#addRoleDialog").dialog({
- title: "Add Role",
- modal: true,
- close: function(event, ui) { cj("#role_contact").unautocomplete( ); },
- open:function() {
- /* set defaults if editing */
- cj("#role_contact").val( "" );
- cj("#role_contact_id").val( null );
-
- var contactUrl = {/literal}"{crmURL p='civicrm/ajax/rest' q='className=CRM_Contact_Page_AJAX&fnName=getContactList&json=1&context=caseview' h=0 }"{literal};
-
- cj("#role_contact").autocomplete( contactUrl, {
- width: 260,
- selectFirst: false,
- matchContains: true
- });
-
- cj("#role_contact").focus();
- cj("#role_contact").result(function(event, data, formatted) {
- cj("input[id=role_contact_id]").val(data[1]);
- });
- },
-
- buttons: {
- "{/literal}{ts escape='js'}Ok{/ts}{literal}": function() {
- var sourceContact = {/literal}"{$contactID}"{literal};
- var caseID = {/literal}"{$caseID}"{literal};
- var relID = null;
-
- var v2 = cj("#role_type").val();
- if (!v2) {
- cj("#role_type").crmError('{/literal}{ts escape="js"}Select valid type from the list{/ts}{literal}.');
- return false;
- }
-
- var v1 = cj("#role_contact_id").val( );
- if (!cj("#role_contact").val( ) || !v1) {
- cj("#role_contact").crmError('{/literal}{ts escape="js"}Select valid contact from the list{/ts}{literal}.');
- return false;
- }
-
- /* send synchronous request so that disabling any actions for slow servers*/
- var postUrl = {/literal}"{crmURL p='civicrm/ajax/relation' h=0 }"{literal};
- var data = 'rel_contact='+ v1 + '&rel_type='+ v2 + '&contact_id='+sourceContact + '&rel_id='+ relID
- + '&case_id=' + caseID + "&key={/literal}{crmKey name='civicrm/ajax/relation'}{literal}";
- cj.ajax({
- type : "POST",
- url : postUrl,
- data : data,
- async : false,
- dataType : "json",
- success : function(values) {
- if (values.status == 'process-relationship-success') {
- // reloading datatable
- var oTable = cj('#caseRoles-selector').dataTable();
- oTable.fnDraw();
- }
- else {
- var relTypeName = cj("#role_type :selected").text();
- var relTypeAdminLink = {/literal}"{crmURL p='civicrm/admin/reltype' q='reset=1' h=0 }"{literal};
- var errorMsg = '{/literal}{ts escape="js" 1="' + relTypeName + '" 2="' + relTypeAdminLink + '"}The relationship type definition for the %1 case role is not valid for the client and / or staff contact types. You can review and edit relationship types at <a href="%2">Administer >> Option Lists >> Relationship Types</a>{/ts}{literal}.';
-
- //display error message.
- cj().crmError(errorMsg);
- }
- }
- });
-
- cj(this).dialog("close");
- cj(this).dialog("destroy");
- },
-
- "{/literal}{ts escape='js'}Cancel{/ts}{literal}": function() {
- cj(this).dialog("close");
- cj(this).dialog("destroy");
- }
- }
- });
-}
-
-</script>
-{/literal}
{include file="CRM/Case/Form/ActivityToCase.tpl"}
{* pane to display / edit regular tags or tagsets for cases *}
{assign var="tagExits" value=1}
{/if}
- {foreach from=$tagsetInfo_case item=displayTagset}
+ {foreach from=$tagsetInfo.case item=displayTagset}
{if $displayTagset.entityTagsArray}
<div class="crm-block crm-content-block crm-case-caseview-display-tagset">
{$displayTagset.parentName}:
{/if}
<div class="crm-submit-buttons">
- <a class="button case-miniform" href="#manageTags" data-key="{crmKey name='civicrm/case/ajax/processtags'}">{if $tagExits}{ts}Edit Tags{/ts}{else}{ts}Add Tags{/ts}{/if}</a>
+ <a class="button case-miniform" href="#manageTagsDialog" data-key="{crmKey name='civicrm/case/ajax/processtags'}">{if $tagExits}{ts}Edit Tags{/ts}{else}{ts}Add Tags{/ts}{/if}</a>
</div>
</div><!-- /.crm-accordion-body -->
</div><!-- /.crm-accordion-wrapper -->
-<div id="manageTags" class="hiddenElement">
+<div id="manageTagsDialog" class="hiddenElement">
<div class="label">{$form.case_tag.label}</div>
<div class="view-value"><div class="crm-select-container">{$form.case_tag.html}</div>
<br/>
- <div style="text-align:left;">{include file="CRM/common/Tag.tpl" tagsetType='case'}</div>
+ <div style="text-align:left;">{include file="CRM/common/Tagset.tpl" tagsetType='case'}</div>
<br/>
<div class="clear"></div>
</div>
{/if} {* end of tag block*}
-<div class="crm-accordion-wrapper crm-case_activities-accordion crm-case-activities-block">
- <div class="crm-accordion-header">
- {ts}Activities{/ts}
- </div>
- <div id="activities" class="crm-accordion-body">
- <div class="crm-accordion-wrapper crm-accordion-inner crm-search_filters-accordion collapsed">
- <div class="crm-accordion-header">
- {ts}Search Filters{/ts}</a>
- </div><!-- /.crm-accordion-header -->
- <div class="crm-accordion-body">
- <table class="no-border form-layout-compressed" id="searchOptions">
- <tr>
- <td class="crm-case-caseview-form-block-repoter_id"colspan="2"><label for="reporter_id">{ts}Reporter/Role{/ts}</label><br />
- {$form.reporter_id.html|crmAddClass:twenty}
- </td>
- <td class="crm-case-caseview-form-block-status_id"><label for="status_id">{$form.status_id.label}</label><br />
- {$form.status_id.html}
- </td>
- <td style="vertical-align: bottom;">
- <span class="crm-button"><input class="form-submit default" name="_qf_Basic_refresh" value="Search" type="button" onclick="buildCaseActivities( true )"; /></span>
- </td>
- </tr>
- <tr>
- <td class="crm-case-caseview-form-block-activity_date_low">
- {$form.activity_date_low.label}<br />
- {include file="CRM/common/jcalendar.tpl" elementName=activity_date_low}
- </td>
- <td class="crm-case-caseview-form-block-activity_date_high">
- {$form.activity_date_high.label}<br />
- {include file="CRM/common/jcalendar.tpl" elementName=activity_date_high}
- </td>
- <td class="crm-case-caseview-form-block-activity_type_filter_id">
- {$form.activity_type_filter_id.label}<br />
- {$form.activity_type_filter_id.html}
- </td>
- </tr>
- {if $form.activity_deleted}
- <tr class="crm-case-caseview-form-block-activity_deleted">
- <td>
- {$form.activity_deleted.html}{$form.activity_deleted.label}
- </td>
- </tr>
- {/if}
- </table>
- </div><!-- /.crm-accordion-body -->
- </div><!-- /.crm-accordion-wrapper -->
-
- <table id="activities-selector" class="nestedActivitySelector">
- <thead><tr>
- <th class='crm-case-activities-date'>{ts}Date{/ts}</th>
- <th class='crm-case-activities-subject'>{ts}Subject{/ts}</th>
- <th class='crm-case-activities-type'>{ts}Type{/ts}</th>
- <th class='crm-case-activities-with'>{ts}With{/ts}</th>
- <th class='crm-case-activities-assignee'>{ts}Reporter / Assignee{/ts}</th>
- <th class='crm-case-activities-status'>{ts}Status{/ts}</th>
- <th class='crm-case-activities-status' id="nosort"> </th>
- <th class='hiddenElement'> </th>
- </tr></thead>
- </table>
-
- </div><!-- /.crm-accordion-body -->
-</div><!-- /.crm-accordion-wrapper -->
-
-{literal}
-<script type="text/javascript">
-var oTable;
-
-cj(function( ) {
- buildCaseActivities(false);
-});
-
-function buildCaseActivities(filterSearch) {
- if (filterSearch) {
- oTable.fnDestroy();
- }
- var count = 0;
- var columns = '';
- var sourceUrl = {/literal}"{crmURL p='civicrm/ajax/activity' h=0 q='snippet=4&caseID='}{$caseID}"{literal};
- sourceUrl = sourceUrl + '&cid={/literal}{$contactID}{literal}';
- sourceUrl = sourceUrl + '&userID={/literal}{$userID}{literal}';
-
- cj('#activities-selector th').each(function( ) {
- if (cj(this).attr('id') != 'nosort') {
- columns += '{"sClass": "' + cj(this).attr('class') +'"},';
- }
- else {
- columns += '{ "bSortable": false },';
- }
- count++;
- });
-
- columns = columns.substring(0, columns.length - 1 );
- eval('columns =[' + columns + ']');
-
- oTable = cj('#activities-selector').dataTable({
- "bFilter" : false,
- "bAutoWidth" : false,
- "aaSorting" : [],
- "aoColumns" : columns,
- "bProcessing": true,
- "bJQueryUI": true,
- "asStripClasses" : [ "odd-row", "even-row" ],
- "sPaginationType": "full_numbers",
- "sDom" : '<"crm-datatable-pager-top"lfp>rt<"crm-datatable-pager-bottom"ip>',
- "bServerSide": true,
- "sAjaxSource": sourceUrl,
- "iDisplayLength": 10,
- "fnDrawCallback": function() { setSelectorClass(); },
- "fnServerData": function ( sSource, aoData, fnCallback ) {
-
- if ( filterSearch ) {
- var activity_deleted = 0;
- if ( cj("#activity_deleted:checked").val() == 1 ) {
- activity_deleted = 1;
- }
- aoData.push(
- {name:'status_id', value: cj("select#status_id").val()},
- {name:'activity_type_id', value: cj("select#activity_type_filter_id").val()},
- {name:'activity_date_low', value: cj("#activity_date_low").val()},
- {name:'activity_date_high', value: cj("#activity_date_high").val() },
- {name:'activity_deleted', value: activity_deleted }
- );
- }
- cj.ajax( {
- "dataType": 'json',
- "type": "POST",
- "url": sSource,
- "data": aoData,
- "success": fnCallback
- } );
- }
- });
-}
-
-function setSelectorClass( ) {
- cj("#activities-selector td:last-child").each( function( ) {
- cj(this).parent().addClass(cj(this).text() );
- });
-}
-
-</script>
-{/literal}
+{include file="CRM/Case/Form/ActivityTab.tpl"}
<div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="bottom"}</div>