From ffa7475a102cbe1ad12cb4065fd2237cebfc179f Mon Sep 17 00:00:00 2001 From: satish <satish.dvnk@vtiger.com> Date: Tue, 10 Jan 2017 12:34:43 +0530 Subject: [PATCH] Calendar settings page is not loading in Calendars View --- .../v7/modules/Calendar/CalendarHeader.tpl | 19 +- .../v7/modules/Calendar/CalendarSettings.tpl | 258 +++++++++--------- layouts/v7/modules/Calendar/ModuleHeader.tpl | 141 ++++++++++ .../v7/modules/Calendar/resources/Calendar.js | 4 +- layouts/v7/modules/Vtiger/partials/Topbar.tpl | 2 +- .../modules/Vtiger/resources/AdvanceSearch.js | 1 - .../modules/Vtiger/resources/BasicSearch.js | 49 ++-- layouts/v7/modules/Vtiger/resources/List.js | 2 +- modules/Calendar/models/Module.php | 8 +- modules/Migration/schema/650_to_660.php | 10 +- 10 files changed, 328 insertions(+), 166 deletions(-) create mode 100644 layouts/v7/modules/Calendar/ModuleHeader.tpl diff --git a/layouts/v7/modules/Calendar/CalendarHeader.tpl b/layouts/v7/modules/Calendar/CalendarHeader.tpl index f5e3f08d7..18f944d2a 100644 --- a/layouts/v7/modules/Calendar/CalendarHeader.tpl +++ b/layouts/v7/modules/Calendar/CalendarHeader.tpl @@ -47,13 +47,22 @@ </button> <ul class="detailViewSetting dropdown-menu"> {foreach item=SETTING from=$MODULE_SETTING_ACTIONS} - <li id="{$MODULE_NAME}_lisview_advancedAction_{$SETTING->getLabel()}"><a href={$SETTING->getUrl()}>{vtranslate($SETTING->getLabel(), $MODULE_NAME,$MODULE_NAME)}</a></li> - {/foreach} + {if $SETTING->getLabel() eq 'LBL_EDIT_FIELDS'} + <li id="{$MODULE_NAME}_listview_advancedAction_{$SETTING->getLabel()}_Events"><a href="{$SETTING->getUrl()}&sourceModule=Events">{vtranslate($SETTING->getLabel(), $MODULE_NAME,vtranslate('LBL_EVENTS',$MODULE_NAME))}</a></li> + <li id="{$MODULE_NAME}_listview_advancedAction_{$SETTING->getLabel()}_Calendar"><a href="{$SETTING->getUrl()}&sourceModule=Calendar">{vtranslate($SETTING->getLabel(), $MODULE_NAME,vtranslate('LBL_TASKS','Calendar'))}</a></li> + {else if $SETTING->getLabel() eq 'LBL_EDIT_WORKFLOWS'} + <li id="{$MODULE_NAME}_listview_advancedAction_{$SETTING->getLabel()}_WORKFLOWS"><a href="{$SETTING->getUrl()}&sourceModule=Events">{vtranslate('LBL_EVENTS', $MODULE_NAME)} {vtranslate('LBL_WORKFLOWS',$MODULE_NAME)}</a></li> + <li id="{$MODULE_NAME}_listview_advancedAction_{$SETTING->getLabel()}_WORKFLOWS"><a href="{$SETTING->getUrl()}&sourceModule=Calendar">{vtranslate('LBL_TASKS', 'Calendar')} {vtranslate('LBL_WORKFLOWS',$MODULE_NAME)}</a></li> + {else} + <li id="{$MODULE_NAME}_listview_advancedAction_{$SETTING->getLabel()}"><a href={$SETTING->getUrl()}>{vtranslate($SETTING->getLabel(), $MODULE_NAME, vtranslate($MODULE_NAME))}</a></li> + {/if} + {/foreach} <li> - <a><span id="calendarview_basicaction_calendarsetting" onclick='Calendar_Calendar_Js.showCalendarSettings();' - class="cursorPointer"> + <a> + <span id="calendarview_basicaction_calendarsetting" onclick='Calendar_Calendar_Js.showCalendarSettings();' class="cursorPointer"> {vtranslate('LBL_CALENDAR_SETTINGS', 'Calendar')} - </span></a> + </span> + </a> </li> </ul> </div> diff --git a/layouts/v7/modules/Calendar/CalendarSettings.tpl b/layouts/v7/modules/Calendar/CalendarSettings.tpl index 493929d9c..6d44f39c7 100644 --- a/layouts/v7/modules/Calendar/CalendarSettings.tpl +++ b/layouts/v7/modules/Calendar/CalendarSettings.tpl @@ -8,132 +8,134 @@ ************************************************************************************} {* modules/Calendar/views/Calendar.php *} {strip} -<div class="modal-dialog modal-lg calendarSettingsContainer"> - {assign var=HEADER_TITLE value={vtranslate('LBL_CALENDAR_SETTINGS', $MODULE)}} - {include file="ModalHeader.tpl"|vtemplate_path:$MODULE TITLE=$HEADER_TITLE} - {assign var=TRANSLATION_MODULE value="Users"} - <div class="modal-body"> - <form class="form-horizontal" id="CalendarSettings" name="CalendarSettings" method="post" action="index.php"> - <input type="hidden" name="module" value="Users" /> - <input type="hidden" name="action" value="SaveCalendarSettings" /> - <input type="hidden" name="record" value="{$RECORD}" /> - <input type=hidden name="timeFormatOptions" data-value='{$DAY_STARTS}' /> - <div> - <div> - {foreach item="FIELD_MODEL" from=$RECORD_STRUCTURE['LBL_CALENDAR_SETTINGS']} - {assign var=FIELD_NAME value=$FIELD_MODEL->get('name')} - {assign var=FIELD_VALUE value=$FIELD_MODEL->get('fieldvalue')} - {if $FIELD_NAME eq 'callduration'} - {assign var=CALL_DURATION_MODEL value=$FIELD_MODEL} - {elseif $FIELD_NAME eq 'othereventduration'} - {assign var=EVENT_DURATION_MODEL value=$FIELD_MODEL} - {elseif $FIELD_NAME eq 'hour_format'} - {assign var=HOUR_FORMAT_VALUE value=$FIELD_MODEL->get('fieldvalue')} - {elseif $FIELD_NAME eq 'defaulteventstatus'} - {assign var=DEFAULT_EVENT_STATUS_MODEL value=$FIELD_MODEL} - {elseif $FIELD_NAME eq 'defaultactivitytype'} - {assign var=DEFAULT_ACTIVITY_TYPE_MODEL value=$FIELD_MODEL} - {elseif $FIELD_NAME eq 'hidecompletedevents'} - {assign var=HIDE_COMPLETED_EVENTS_MODEL value=$FIELD_MODEL} - {/if} - {if $FIELD_NAME neq 'callduration' && $FIELD_NAME neq 'othereventduration' && $FIELD_NAME neq 'defaulteventstatus' && $FIELD_NAME neq 'defaultactivitytype' && $FIELD_NAME neq 'hidecompletedevents'} - <div class="form-group"> - <label class="fieldLabel col-lg-4">{vtranslate($FIELD_MODEL->get('label'),$TRANSLATION_MODULE)}</label> - <div class="fieldValue col-lg-8"> - {if $FIELD_NAME == 'hour_format' || $FIELD_NAME == 'activity_view'} - {foreach key=ID item=LABEL from=$FIELD_MODEL->getPicklistValues()} - {if $LABEL neq 'This Year' } - <input type="radio" value="{$ID}" {if $FIELD_VALUE eq $ID}checked=""{/if} name="{$FIELD_NAME}" class="alignTop" /> {vtranslate($LABEL,$MODULE)} {if $FIELD_NAME eq 'hour_format'}{vtranslate('LBL_HOUR',$MODULE)}{/if} - {/if} - {/foreach} - {elseif $FIELD_NAME eq 'start_hour'} - {assign var=DECODED_DAYS_STARTS value=ZEND_JSON::decode($DAY_STARTS)} - {assign var=PICKLIST_VALUES value=$DECODED_DAYS_STARTS['hour_format'][$HOUR_FORMAT_VALUE][$FIELD_NAME]} - <select class="select2" style="min-width: 150px;" name="{$FIELD_NAME}"> - {foreach key=ID item=LABEL from=$PICKLIST_VALUES} - <option value="{$ID}" {if $FIELD_VALUE eq $ID} selected="" {/if}>{vtranslate($LABEL,$MODULE)}</option> - {/foreach} - </select> - {else} - <select class="select2" name="{$FIELD_NAME}" {if $FIELD_NAME eq 'time_zone'} style="min-width: 350px" {else} style="min-width: 150px" {/if}> - {if $FIELD_MODEL->isEmptyPicklistOptionAllowed()}<option value="">{vtranslate('LBL_SELECT_OPTION','Vtiger')}</option>{/if} - {foreach key=ID item=LABEL from=$FIELD_MODEL->getPicklistValues()} - <option value="{$ID}" {if $FIELD_VALUE eq $ID} selected="" {/if}>{vtranslate($LABEL,$MODULE)}</option> - {/foreach} - </select> - {/if} - </div> - </div> - {/if} - {/foreach} - {*For consisitent picklist values betweeen event status field and default event status fields*} - {assign var=EVENTS_MODULE_MODEL value=Vtiger_Module_Model::getInstance('Events')} - {assign var=EVENT_STATUS_MODEL value=$EVENTS_MODULE_MODEL->getField('eventstatus')} - {assign var=ACTIVITY_TYPE_MODEL value=$EVENTS_MODULE_MODEL->getField('activitytype')} - <div class="form-group"> - <label class="fieldLabel col-lg-4">{vtranslate('LBL_DEFAULT_STATUS_TYPE',$MODULE)}</label> - <div class="fieldValue col-lg-8"> - <span class="alignMiddle">{vtranslate('LBL_STATUS',$MODULE)}</span> - <select class="select2" style="min-width: 133px" name="{$DEFAULT_EVENT_STATUS_MODEL->get('name')}"> - <option value="{vtranslate('LBL_SELECT_OPTION',$MODULE)}">{vtranslate('LBL_SELECT_OPTION',$MODULE)}</option> - {foreach key=ID item=LABEL from=$EVENT_STATUS_MODEL->getPicklistValues()} - <option value="{$ID}" {if $DEFAULT_EVENT_STATUS_MODEL->get('fieldvalue') eq $ID} selected="" {/if}>{vtranslate($LABEL,$MODULE)}</option> - {/foreach} - </select> - <span class="alignMiddle">{vtranslate('LBL_TYPE',$MODULE)}</span> - <select class="select2" style="min-width: 133px" name="{$DEFAULT_ACTIVITY_TYPE_MODEL->get('name')}"> - <option value="{vtranslate('LBL_SELECT_OPTION','Vtiger')}">{vtranslate('LBL_SELECT_OPTION','Vtiger')}</option> - {foreach key=ID item=LABEL from=$ACTIVITY_TYPE_MODEL->getPicklistValues()} - <option value="{$ID}" {if $DEFAULT_ACTIVITY_TYPE_MODEL->get('fieldvalue') eq $ID} selected="" {/if}>{vtranslate($LABEL,$MODULE)}</option> - {/foreach} - </select> - </div> - </div> - <div class="form-group"> - <label class="fieldLabel col-lg-4">{vtranslate('LBL_DEFAULT_EVENT_DURATION',$MODULE)}</label> - <div class="fieldValue col-lg-8"> - <span class="alignMiddle">{vtranslate('LBL_CALL',$MODULE)}</span> - <select class="select2" name="{$CALL_DURATION_MODEL->get('name')}"> - {foreach key=ID item=LABEL from=$CALL_DURATION_MODEL->getPicklistValues()} - <option value="{$ID}" {if $CALL_DURATION_MODEL->get('fieldvalue') eq $ID} selected="" {/if}>{vtranslate($LABEL,$MODULE)} {vtranslate('LBL_MINUTES',$MODULE)}</option> - {/foreach} - </select> - <span class="alignMiddle">{vtranslate('LBL_OTHER_EVENTS',$MODULE)}</span> - <select class="select2" name="{$EVENT_DURATION_MODEL->get('name')}"> - {foreach key=ID item=LABEL from=$EVENT_DURATION_MODEL->getPicklistValues()} - <option value="{$ID}" {if $EVENT_DURATION_MODEL->get('fieldvalue') eq $ID} selected="" {/if}>{vtranslate($LABEL,$MODULE)} {vtranslate('LBL_MINUTES',$MODULE)}</option> - {/foreach} - </select> - </div> - </div> - <div class="form-group"> - <label class="fieldLabel col-lg-4">{vtranslate($HIDE_COMPLETED_EVENTS_MODEL->get('label'),$MODULE)}</label> - <div class="fieldValue col-lg-8"> - <br /> - {include file=vtemplate_path($HIDE_COMPLETED_EVENTS_MODEL->getUITypeModel()->getTemplateName(),$MODULE) FIELD_MODEL=$HIDE_COMPLETED_EVENTS_MODEL} - </div> - </div> - {assign var=SHARED_TYPE value=$SHAREDTYPE} - <div class="form-group"> - <label class="fieldLabel col-lg-4">{vtranslate('LBL_CALENDAR_SHARING',$MODULE)}</label> - <div class="fieldValue col-lg-8"> - <label class="radio inline"><input type="radio" value="private"{if $SHARED_TYPE == 'private'} checked="" {/if} name="sharedtype" /> {vtranslate('Private',$MODULE)} </label> - <label class="radio inline"><input type="radio" value="public" {if $SHARED_TYPE == 'public'} checked="" {/if} name="sharedtype" /> {vtranslate('Public',$MODULE)} </label> - <label class="radio inline"><input type="radio" value="selectedusers" {if $SHARED_TYPE == 'selectedusers'} checked="" {/if} data-sharingtype="selectedusers" name="sharedtype" id="selectedUsersSharingType" /> {vtranslate('Selected Users',$MODULE)}</label><br><br> - <select class="select2 row-fluid {if $SHARED_TYPE != 'selectedusers'} hide {/if}" id="selectedUsers" name="sharedIds[]" multiple="" data-placeholder="{vtranslate('LBL_SELECT_USERS',$MODULE)}"> - {foreach key=ID item=USER_MODEL from=$ALL_USERS} - {if $ID neq $CURRENTUSER_MODEL->get('id')} - <option value="{$ID}" {if array_key_exists($ID, $SHAREDUSERS)} selected="" {/if}>{vtranslate($USER_MODEL->getName(),$MODULE)}</option> - {/if} - {/foreach} - </select> - </div> - </div> - <br> - </div> - </div> - </form> - </div> - {include file="ModalFooter.tpl"|vtemplate_path:$MODULE} -</div> + <div class="modal-dialog modal-lg calendarSettingsContainer"> + <div class="modal-content"> + {assign var=HEADER_TITLE value={vtranslate('LBL_CALENDAR_SETTINGS', $MODULE)}} + {include file="ModalHeader.tpl"|vtemplate_path:$MODULE TITLE=$HEADER_TITLE} + {assign var=TRANSLATION_MODULE value="Users"} + <div class="modal-body"> + <form class="form-horizontal" id="CalendarSettings" name="CalendarSettings" method="post" action="index.php"> + <input type="hidden" name="module" value="Users" /> + <input type="hidden" name="action" value="SaveCalendarSettings" /> + <input type="hidden" name="record" value="{$RECORD}" /> + <input type=hidden name="timeFormatOptions" data-value='{$DAY_STARTS}' /> + <input type=hidden name="sourceView" /> + <div> + <div style="margin-left: 20px;"> + {foreach item="FIELD_MODEL" from=$RECORD_STRUCTURE['LBL_CALENDAR_SETTINGS']} + {assign var=FIELD_NAME value=$FIELD_MODEL->get('name')} + {assign var=FIELD_VALUE value=$FIELD_MODEL->get('fieldvalue')} + {if $FIELD_NAME eq 'callduration'} + {assign var=CALL_DURATION_MODEL value=$FIELD_MODEL} + {elseif $FIELD_NAME eq 'othereventduration'} + {assign var=EVENT_DURATION_MODEL value=$FIELD_MODEL} + {elseif $FIELD_NAME eq 'hour_format'} + {assign var=HOUR_FORMAT_VALUE value=$FIELD_MODEL->get('fieldvalue')} + {elseif $FIELD_NAME eq 'defaulteventstatus'} + {assign var=DEFAULT_EVENT_STATUS_MODEL value=$FIELD_MODEL} + {elseif $FIELD_NAME eq 'defaultactivitytype'} + {assign var=DEFAULT_ACTIVITY_TYPE_MODEL value=$FIELD_MODEL} + {elseif $FIELD_NAME eq 'hidecompletedevents'} + {assign var=HIDE_COMPLETED_EVENTS_MODEL value=$FIELD_MODEL} + {/if} + {if $FIELD_NAME neq 'callduration' && $FIELD_NAME neq 'othereventduration' && $FIELD_NAME neq 'defaulteventstatus' && $FIELD_NAME neq 'defaultactivitytype' && $FIELD_NAME neq 'hidecompletedevents'} + <div class="form-group"> + <label class="fieldLabel col-lg-4 col-sm-4 col-xs-4">{vtranslate($FIELD_MODEL->get('label'),$TRANSLATION_MODULE)}</label> + <div class="fieldValue col-lg-8 col-sm-8 col-xs-8"> + {if $FIELD_NAME == 'hour_format' || $FIELD_NAME == 'activity_view'} + {foreach key=ID item=LABEL from=$FIELD_MODEL->getPicklistValues()} + {if $LABEL neq 'This Year' } + <input type="radio" value="{$ID}" {if $FIELD_VALUE eq $ID}checked=""{/if} name="{$FIELD_NAME}" class="alignTop" /> {vtranslate($LABEL,$MODULE)} {if $FIELD_NAME eq 'hour_format'}{vtranslate('LBL_HOUR',$MODULE)}{/if} + {/if} + {/foreach} + {elseif $FIELD_NAME eq 'start_hour'} + {assign var=DECODED_DAYS_STARTS value=ZEND_JSON::decode($DAY_STARTS)} + {assign var=PICKLIST_VALUES value=$DECODED_DAYS_STARTS['hour_format'][$HOUR_FORMAT_VALUE][$FIELD_NAME]} + <select class="select2" style="min-width: 150px;" name="{$FIELD_NAME}"> + {foreach key=ID item=LABEL from=$PICKLIST_VALUES} + <option value="{$ID}" {if $FIELD_VALUE eq $ID} selected="" {/if}>{vtranslate($LABEL,$MODULE)}</option> + {/foreach} + </select> + {else} + <select class="select2" name="{$FIELD_NAME}" {if $FIELD_NAME eq 'time_zone'} style="min-width: 350px" {else} style="min-width: 150px" {/if}> + {if $FIELD_MODEL->isEmptyPicklistOptionAllowed()}<option value="">{vtranslate('LBL_SELECT_OPTION','Vtiger')}</option>{/if} + {foreach key=ID item=LABEL from=$FIELD_MODEL->getPicklistValues()} + <option value="{$ID}" {if $FIELD_VALUE eq $ID} selected="" {/if}>{vtranslate($LABEL,$MODULE)}</option> + {/foreach} + </select> + {/if} + </div> + </div> + {/if} + {/foreach} + {*For consisitent picklist values betweeen event status field and default event status fields*} + {assign var=EVENTS_MODULE_MODEL value=Vtiger_Module_Model::getInstance('Events')} + {assign var=EVENT_STATUS_MODEL value=$EVENTS_MODULE_MODEL->getField('eventstatus')} + {assign var=ACTIVITY_TYPE_MODEL value=$EVENTS_MODULE_MODEL->getField('activitytype')} + <div class="form-group"> + <label class="fieldLabel col-lg-4 col-sm-4 col-xs-4">{vtranslate('LBL_DEFAULT_STATUS_TYPE',$MODULE)}</label> + <div class="fieldValue col-lg-8 col-sm-8 col-xs-8"> + <span class="alignMiddle">{vtranslate('LBL_STATUS',$MODULE)}</span> + <select class="select2" style="min-width: 133px" name="{$DEFAULT_EVENT_STATUS_MODEL->get('name')}"> + <option value="{vtranslate('LBL_SELECT_OPTION',$MODULE)}">{vtranslate('LBL_SELECT_OPTION',$MODULE)}</option> + {foreach key=ID item=LABEL from=$EVENT_STATUS_MODEL->getPicklistValues()} + <option value="{$ID}" {if $DEFAULT_EVENT_STATUS_MODEL->get('fieldvalue') eq $ID} selected="" {/if}>{vtranslate($LABEL,$MODULE)}</option> + {/foreach} + </select> + <span class="alignMiddle">{vtranslate('LBL_TYPE',$MODULE)}</span> + <select class="select2" style="min-width: 133px" name="{$DEFAULT_ACTIVITY_TYPE_MODEL->get('name')}"> + <option value="{vtranslate('LBL_SELECT_OPTION','Vtiger')}">{vtranslate('LBL_SELECT_OPTION','Vtiger')}</option> + {foreach key=ID item=LABEL from=$ACTIVITY_TYPE_MODEL->getPicklistValues()} + <option value="{$ID}" {if $DEFAULT_ACTIVITY_TYPE_MODEL->get('fieldvalue') eq $ID} selected="" {/if}>{vtranslate($LABEL,$MODULE)}</option> + {/foreach} + </select> + </div> + </div> + <div class="form-group"> + <label class="fieldLabel col-lg-4 col-sm-4 col-xs-4">{vtranslate('LBL_DEFAULT_EVENT_DURATION',$MODULE)}</label> + <div class="fieldValue col-lg-8 col-sm-8 col-xs-8"> + <span class="alignMiddle">{vtranslate('LBL_CALL',$MODULE)}</span> + <select class="select2" name="{$CALL_DURATION_MODEL->get('name')}"> + {foreach key=ID item=LABEL from=$CALL_DURATION_MODEL->getPicklistValues()} + <option value="{$ID}" {if $CALL_DURATION_MODEL->get('fieldvalue') eq $ID} selected="" {/if}>{vtranslate($LABEL,$MODULE)} {vtranslate('LBL_MINUTES',$MODULE)}</option> + {/foreach} + </select> + <span class="alignMiddle">{vtranslate('LBL_OTHER_EVENTS',$MODULE)}</span> + <select class="select2" name="{$EVENT_DURATION_MODEL->get('name')}"> + {foreach key=ID item=LABEL from=$EVENT_DURATION_MODEL->getPicklistValues()} + <option value="{$ID}" {if $EVENT_DURATION_MODEL->get('fieldvalue') eq $ID} selected="" {/if}>{vtranslate($LABEL,$MODULE)} {vtranslate('LBL_MINUTES',$MODULE)}</option> + {/foreach} + </select> + </div> + </div> + <div class="form-group"> + <label class="fieldLabel col-lg-4 col-sm-4 col-xs-4">{vtranslate($HIDE_COMPLETED_EVENTS_MODEL->get('label'),$MODULE)}</label> + <div class="fieldValue col-lg-8 col-sm-8 col-xs-8"> + {include file=vtemplate_path($HIDE_COMPLETED_EVENTS_MODEL->getUITypeModel()->getTemplateName(),$MODULE) FIELD_MODEL=$HIDE_COMPLETED_EVENTS_MODEL FIELD_NAME='hidecompletedevents'} + </div> + </div> + {assign var=SHARED_TYPE value=$SHAREDTYPE} + <div class="form-group"> + <label class="fieldLabel col-lg-4">{vtranslate('LBL_CALENDAR_SHARING',$MODULE)}</label> + <div class="fieldValue col-lg-8 col-sm-8 col-xs-8" style="margin-top: -8px; padding-left: 35px;"> + <label class="radio inline"><input type="radio" value="private"{if $SHARED_TYPE == 'private'} checked="" {/if} name="sharedtype" /> {vtranslate('Private',$MODULE)} </label> + <label class="radio inline"><input type="radio" value="public" {if $SHARED_TYPE == 'public'} checked="" {/if} name="sharedtype" /> {vtranslate('Public',$MODULE)} </label> + <label class="radio inline"><input type="radio" value="selectedusers" {if $SHARED_TYPE == 'selectedusers'} checked="" {/if} data-sharingtype="selectedusers" name="sharedtype" id="selectedUsersSharingType" /> {vtranslate('Selected Users',$MODULE)}</label><br><br> + <select class="select2 row {if $SHARED_TYPE != 'selectedusers'} hide {/if}" id="selectedUsers" name="sharedIds[]" multiple="" data-placeholder="{vtranslate('LBL_SELECT_USERS',$MODULE)}"> + {foreach key=ID item=USER_MODEL from=$ALL_USERS} + {if $ID neq $CURRENTUSER_MODEL->get('id')} + <option value="{$ID}" {if array_key_exists($ID, $SHAREDUSERS)} selected="" {/if}>{vtranslate($USER_MODEL->getName(),$MODULE)}</option> + {/if} + {/foreach} + </select> + </div> + </div> + <br> + </div> + </div> + </form> + </div> + {include file="ModalFooter.tpl"|vtemplate_path:$MODULE} + </div> + </div> {/strip} \ No newline at end of file diff --git a/layouts/v7/modules/Calendar/ModuleHeader.tpl b/layouts/v7/modules/Calendar/ModuleHeader.tpl new file mode 100644 index 000000000..82d9bfd4b --- /dev/null +++ b/layouts/v7/modules/Calendar/ModuleHeader.tpl @@ -0,0 +1,141 @@ +{*+********************************************************************************** +* The contents of this file are subject to the vtiger CRM Public License Version 1.1 +* ("License"); You may not use this file except in compliance with the License +* The Original Code is: vtiger CRM Open Source +* The Initial Developer of the Original Code is vtiger. +* Portions created by vtiger are Copyright (C) vtiger. +* All Rights Reserved. +*************************************************************************************} + +{strip} + <div class="col-sm-12 col-xs-12 module-action-bar clearfix coloredBorderTop"> + <div class="module-action-content clearfix {$MODULE}-module-action-content"> + <div class="col-lg-7 col-md-7 module-breadcrumb module-breadcrumb-{$smarty.request.view} transitionsAllHalfSecond"> + {assign var=MODULE_MODEL value=Vtiger_Module_Model::getInstance($MODULE)} + {if $MODULE_MODEL->getDefaultViewName() neq 'List'} + {assign var=DEFAULT_FILTER_URL value=$MODULE_MODEL->getDefaultUrl()} + {else} + {assign var=DEFAULT_FILTER_ID value=$MODULE_MODEL->getDefaultCustomFilter()} + {if $DEFAULT_FILTER_ID} + {assign var=CVURL value="&viewname="|cat:$DEFAULT_FILTER_ID} + {assign var=DEFAULT_FILTER_URL value=$MODULE_MODEL->getListViewUrl()|cat:$CVURL} + {else} + {assign var=DEFAULT_FILTER_URL value=$MODULE_MODEL->getListViewUrlWithAllFilter()} + {/if} + {/if} + <a title="{vtranslate($MODULE, $MODULE)}" href='{$DEFAULT_FILTER_URL}&app={$SELECTED_MENU_CATEGORY}'><h4 class="module-title pull-left text-uppercase"> {vtranslate($MODULE, $MODULE)} </h4> </a> + {if $smarty.session.lvs.$MODULE.viewname} + {assign var=VIEWID value=$smarty.session.lvs.$MODULE.viewname} + {/if} + {if $VIEWID} + {foreach item=FILTER_TYPES from=$CUSTOM_VIEWS} + {foreach item=FILTERS from=$FILTER_TYPES} + {if $FILTERS->get('cvid') eq $VIEWID} + {assign var=CVNAME value=$FILTERS->get('viewname')} + {break} + {/if} + {/foreach} + {/foreach} + <p class="current-filter-name filter-name pull-left cursorPointer" title="{$CVNAME}"><span class="fa fa-angle-right pull-left" aria-hidden="true"></span><a href='{$MODULE_MODEL->getListViewUrl()}&viewname={$VIEWID}&app={$SELECTED_MENU_CATEGORY}'> {$CVNAME} </a> </p> + {/if} + + {assign var=SINGLE_MODULE_NAME value='SINGLE_'|cat:$MODULE} + {if $RECORD and $smarty.request.view eq 'Edit'} + <p class="current-filter-name filter-name pull-left "><span class="fa fa-angle-right pull-left" aria-hidden="true"></span><a title="{$RECORD->get('label')}"> {vtranslate('LBL_EDITING', $MODULE)} : {$RECORD->get('label')} </a></p> + {else if $smarty.request.view eq 'Edit'} + <p class="current-filter-name filter-name pull-left "><span class="fa fa-angle-right pull-left" aria-hidden="true"></span><a> {vtranslate('LBL_ADDING_NEW', $MODULE)} </a></p> + {/if} + + {if $smarty.request.view eq 'Detail'} + <p class="current-filter-name filter-name pull-left"><span class="fa fa-angle-right pull-left" aria-hidden="true"></span><a title="{$RECORD->get('label')}"> {$RECORD->get('label')} </a></p> + {/if} + </div> + <div class="col-lg-5 col-md-5 pull-right"> + <div id="appnav" class="navbar-right"> + <ul class="nav navbar-nav"> + {foreach item=BASIC_ACTION from=$MODULE_BASIC_ACTIONS} + {if $BASIC_ACTION->getLabel() == 'LBL_IMPORT'} + <li> + <button id="{$MODULE}_basicAction_{Vtiger_Util_Helper::replaceSpaceWithUnderScores($BASIC_ACTION->getLabel())}" type="button" class="btn addButton btn-default module-buttons" + {if stripos($BASIC_ACTION->getUrl(), 'javascript:')===0} + onclick='{$BASIC_ACTION->getUrl()|substr:strlen("javascript:")};' + {else} + onclick="Vtiger_Import_Js.triggerImportAction('{$BASIC_ACTION->getUrl()}')" + {/if}> + <div class="fa {$BASIC_ACTION->getIcon()}" aria-hidden="true"></div> + {vtranslate($BASIC_ACTION->getLabel(), $MODULE)} + </button> + </li> + {else} + <li> + <button id="{$MODULE}_listView_basicAction_{Vtiger_Util_Helper::replaceSpaceWithUnderScores($BASIC_ACTION->getLabel())}" type="button" class="btn addButton btn-default module-buttons" + {if stripos($BASIC_ACTION->getUrl(), 'javascript:')===0} + onclick='{$BASIC_ACTION->getUrl()|substr:strlen("javascript:")};' + {else} + onclick='window.location.href="{$BASIC_ACTION->getUrl()}&app={$SELECTED_MENU_CATEGORY}"' + {/if}> + <div class="fa {$BASIC_ACTION->getIcon()}" aria-hidden="true"></div> + {vtranslate($BASIC_ACTION->getLabel(), $MODULE)} + </button> + </li> + {/if} + {/foreach} + {if $MODULE_SETTING_ACTIONS|@count gt 0} + <li> + <div class="settingsIcon"> + <button type="button" class="btn btn-default module-buttons dropdown-toggle" data-toggle="dropdown" aria-expanded="false"> + <span class="fa fa-wrench" aria-hidden="true" title="{vtranslate('LBL_SETTINGS', $MODULE)}"></span> {vtranslate('LBL_CUSTOMIZE', 'Reports')} <span class="caret"></span> + </button> + <ul class="detailViewSetting dropdown-menu"> + {foreach item=SETTING from=$MODULE_SETTING_ACTIONS} + {if $SETTING->getLabel() eq 'LBL_EDIT_FIELDS'} + <li id="{$MODULE_NAME}_listview_advancedAction_{$SETTING->getLabel()}_Events"><a href="{$SETTING->getUrl()}&sourceModule=Events">{vtranslate($SETTING->getLabel(), $MODULE_NAME,vtranslate('LBL_EVENTS',$MODULE_NAME))}</a></li> + <li id="{$MODULE_NAME}_listview_advancedAction_{$SETTING->getLabel()}_Calendar"><a href="{$SETTING->getUrl()}&sourceModule=Calendar">{vtranslate($SETTING->getLabel(), $MODULE_NAME,vtranslate('LBL_TASKS','Calendar'))}</a></li> + {else if $SETTING->getLabel() eq 'LBL_EDIT_WORKFLOWS'} + <li id="{$MODULE_NAME}_listview_advancedAction_{$SETTING->getLabel()}_WORKFLOWS"><a href="{$SETTING->getUrl()}&sourceModule=Events">{vtranslate('LBL_EVENTS', $MODULE_NAME)} {vtranslate('LBL_WORKFLOWS',$MODULE_NAME)}</a></li> + <li id="{$MODULE_NAME}_listview_advancedAction_{$SETTING->getLabel()}_WORKFLOWS"><a href="{$SETTING->getUrl()}&sourceModule=Calendar">{vtranslate('LBL_TASKS', 'Calendar')} {vtranslate('LBL_WORKFLOWS',$MODULE_NAME)}</a></li> + {else} + <li id="{$MODULE_NAME}_listview_advancedAction_{$SETTING->getLabel()}"><a href={$SETTING->getUrl()}>{vtranslate($SETTING->getLabel(), $MODULE_NAME, vtranslate($MODULE_NAME))}</a></li> + {/if} + {/foreach} + </ul> + </div> + </li> + {/if} + </ul> + </div> + </div> + </div> + {if $FIELDS_INFO neq null} + <script type="text/javascript"> + var uimeta = (function () { + var fieldInfo = {$FIELDS_INFO}; + return { + field: { + get: function (name, property) { + if (name && property === undefined) { + return fieldInfo[name]; + } + if (name && property) { + return fieldInfo[name][property] + } + }, + isMandatory: function (name) { + if (fieldInfo[name]) { + return fieldInfo[name].mandatory; + } + return false; + }, + getType: function (name) { + if (fieldInfo[name]) { + return fieldInfo[name].type + } + return false; + } + } + }; + })(); + </script> + {/if} + </div> +{/strip} \ No newline at end of file diff --git a/layouts/v7/modules/Calendar/resources/Calendar.js b/layouts/v7/modules/Calendar/resources/Calendar.js index 7e66fecf0..a17cbcb6e 100644 --- a/layouts/v7/modules/Calendar/resources/Calendar.js +++ b/layouts/v7/modules/Calendar/resources/Calendar.js @@ -195,9 +195,11 @@ Vtiger.Class("Calendar_Calendar_Js", { registerCalendarSettingsShownEvents: function (modalContainer) { this.registerCalendarSharingTypeChangeEvent(modalContainer); this.registerHourFormatChangeEvent(modalContainer); - + app.helper.showVerticalScroll(jQuery('.modal-body'), {setHeight: '400px'}); + vtUtils.enableTooltips(); modalContainer.find('button[name="saveButton"]').on('click', function () { jQuery(this).attr('disabled', 'disabled'); + modalContainer.find('form').find('[name="sourceView"]').val(app.view()); modalContainer.find('form').submit(); }); }, diff --git a/layouts/v7/modules/Vtiger/partials/Topbar.tpl b/layouts/v7/modules/Vtiger/partials/Topbar.tpl index 62c1a8086..edd04254e 100644 --- a/layouts/v7/modules/Vtiger/partials/Topbar.tpl +++ b/layouts/v7/modules/Vtiger/partials/Topbar.tpl @@ -39,7 +39,7 @@ <div class="search-link hidden-xs"> <span class="fa fa-search" aria-hidden="true"></span> <input class="keyword-input" type="text" placeholder="{vtranslate('LBL_TYPE_SEARCH')}" value="{$GLOBAL_SEARCH_VALUE}"> - <span id="adv-search" class="adv-search fa fa-chevron-circle-down pull-right" aria-hidden="true"></span> + <span id="adv-search" class="adv-search fa fa-chevron-circle-down pull-right cursorPointer" aria-hidden="true"></span> </div> </div> <div id="navbar" class="col-sm-6 col-md-3 col-lg-3 collapse navbar-collapse navbar-right global-actions"> diff --git a/layouts/v7/modules/Vtiger/resources/AdvanceSearch.js b/layouts/v7/modules/Vtiger/resources/AdvanceSearch.js index b2e6236b9..3a229ac5b 100644 --- a/layouts/v7/modules/Vtiger/resources/AdvanceSearch.js +++ b/layouts/v7/modules/Vtiger/resources/AdvanceSearch.js @@ -284,7 +284,6 @@ Vtiger_BasicSearch_Js("Vtiger_AdvanceSearch_Js",{ }, initiateListInstance : function(container) { - console.log(container.find('.moduleResults-container').length); var listInstance = new Vtiger_AdvanceSearchList_Js(); listInstance.setListViewContainer(container.find('.moduleResults-container')).setModuleName(this.getSearchModule()); listInstance.registerEvents(); diff --git a/layouts/v7/modules/Vtiger/resources/BasicSearch.js b/layouts/v7/modules/Vtiger/resources/BasicSearch.js index d1d0d20cd..bfbc09bcd 100644 --- a/layouts/v7/modules/Vtiger/resources/BasicSearch.js +++ b/layouts/v7/modules/Vtiger/resources/BasicSearch.js @@ -63,20 +63,20 @@ Vtiger.Class('Vtiger_BasicSearch_Js',{},{ } params.view = 'ListAjax'; - params.mode = 'showSearchResults'; - params.transformedSearchParams = true; + params.mode = 'showSearchResults'; + params.transformedSearchParams = true; if(typeof params.module == 'undefined') { params.module = app.getModuleName(); - //if you are in Settings then module should be Vtiger for normal text search - if(app.getParentModuleName().length > 0) { - params.module = 'Vtiger'; - } + //if you are in Settings then module should be Vtiger for normal text search + if(app.getParentModuleName().length > 0) { + params.module = 'Vtiger'; + } } - app.helper.showProgress(); + app.helper.showProgress(); app.request.post({data:params}).then( function(err, data){ - app.helper.hideProgress(); + app.helper.hideProgress(); aDeferred.resolve(data); }, @@ -126,17 +126,28 @@ Vtiger.Class('Vtiger_BasicSearch_Js',{},{ app.showModalWindow(params); return aDeferred.promise(); }, + - - addSearchListener : function () { - jQuery('.search-link .keyword-input').on('VT_SEARCH_INTIATED',function(e,args){ - console.log(args); - }) - }, - - registerEvents : function () { - this.addSearchListener(); - } - + addSearchListener : function () { + jQuery('.search-link .keyword-input').on('VT_SEARCH_INTIATED',function(e,args){ + var val = args.searchValue; + var url = '?module='+app.getModuleName()+'&view=ListAjax&value='+encodeURIComponent(val)+'&searchModule=All'; + app.helper.showProgress(); + app.request.get({'url': url}).then(function (error, data) { + if (error == null) { + var params = {'ignoreScroll': true}; + app.helper.hideProgress(); + app.helper.loadPageOverlay(data, params).then(function (modal) { + modal.find('.keyword-input').val(jQuery('.keyword-input').val()); + }); + } + }); + }); + }, + + registerEvents : function () { + this.addSearchListener(); + } + }); diff --git a/layouts/v7/modules/Vtiger/resources/List.js b/layouts/v7/modules/Vtiger/resources/List.js index d170c6fc5..d085f522e 100644 --- a/layouts/v7/modules/Vtiger/resources/List.js +++ b/layouts/v7/modules/Vtiger/resources/List.js @@ -1070,8 +1070,8 @@ Vtiger.Class("Vtiger_List_Js", { window.location = href; }, 500)); } + e.preventDefault(); } - e.preventDefault(); e.stopPropagation(); }); diff --git a/modules/Calendar/models/Module.php b/modules/Calendar/models/Module.php index 34bf49f97..301b21cc8 100644 --- a/modules/Calendar/models/Module.php +++ b/modules/Calendar/models/Module.php @@ -919,10 +919,16 @@ class Calendar_Module_Model extends Vtiger_Module_Model { $settingLinks[] = array( 'linktype' => 'LISTVIEWSETTING', 'linklabel' => 'LBL_EDIT_FIELDS', - 'linkurl' => 'index.php?parent=Settings&module=LayoutEditor&sourceModule='.$this->getName(), + 'linkurl' => 'index.php?parent=Settings&module=LayoutEditor', 'linkicon' => Vtiger_Theme::getImagePath('LayoutEditor.gif') ); + $settingLinks[] = array( + 'linktype' => 'LISTVIEWSETTING', + 'linklabel' => 'LBL_EDIT_WORKFLOWS', + 'linkurl' => 'index.php?parent=Settings&module=Workflows&view=List', + 'linkicon' => '' + ); $settingLinks[] = array( 'linktype' => 'LISTVIEWSETTING', 'linklabel' => 'LBL_EDIT_PICKLIST_VALUES', diff --git a/modules/Migration/schema/650_to_660.php b/modules/Migration/schema/650_to_660.php index a6dda141b..580005728 100644 --- a/modules/Migration/schema/650_to_660.php +++ b/modules/Migration/schema/650_to_660.php @@ -58,15 +58,6 @@ if(defined('VTIGER_UPGRADE')) { 'groupjoin' => 'and', 'groupid' => '0' ), - array( - 'fieldname' => 'email', - 'operation' => 'has changed', - 'value' => '', - 'valuetype' => 'rawtext', - 'joincondition' => 'and', - 'groupjoin' => 'and', - 'groupid' => '0', - ), array( 'fieldname' => 'email', 'operation' => 'is not empty', @@ -79,6 +70,7 @@ if(defined('VTIGER_UPGRADE')) { ); $workflowModel->set('conditions', $conditions); $workflowModel->set('filtersavedinnew', 6); + $workflowModel->set('status', 1); $workflowModel->save(); echo '<b>"#261 - vtiger_portalinfo doesnt update contact"</b> fixed'; } -- GitLab