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" />&nbsp;{vtranslate($LABEL,$MODULE)}&nbsp;{if $FIELD_NAME eq 'hour_format'}{vtranslate('LBL_HOUR',$MODULE)}{/if}&nbsp;&nbsp;&nbsp;
-                                            {/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>&nbsp;&nbsp;
-                            <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>&nbsp;&nbsp;&nbsp;
-                            <span class="alignMiddle">{vtranslate('LBL_TYPE',$MODULE)}</span>&nbsp;&nbsp;
-                            <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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-                            <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)}&nbsp;{vtranslate('LBL_MINUTES',$MODULE)}</option>
-                                {/foreach}
-                            </select>&nbsp;&nbsp;&nbsp;
-                            <span class="alignMiddle">{vtranslate('LBL_OTHER_EVENTS',$MODULE)}</span>&nbsp;&nbsp;
-                            <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)}&nbsp;{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" />&nbsp;{vtranslate('Private',$MODULE)}&nbsp;</label>
-                            <label class="radio inline"><input type="radio" value="public" {if $SHARED_TYPE == 'public'} checked="" {/if} name="sharedtype" />&nbsp;{vtranslate('Public',$MODULE)}&nbsp;</label>
-                            <label class="radio inline"><input type="radio" value="selectedusers" {if $SHARED_TYPE == 'selectedusers'} checked="" {/if} data-sharingtype="selectedusers" name="sharedtype" id="selectedUsersSharingType" />&nbsp;{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" />&nbsp;{vtranslate($LABEL,$MODULE)}&nbsp;{if $FIELD_NAME eq 'hour_format'}{vtranslate('LBL_HOUR',$MODULE)}{/if}&nbsp;&nbsp;&nbsp;
+													{/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>&nbsp;&nbsp;
+									<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>&nbsp;&nbsp;&nbsp;
+									<span class="alignMiddle">{vtranslate('LBL_TYPE',$MODULE)}</span>&nbsp;&nbsp;
+									<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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+									<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)}&nbsp;{vtranslate('LBL_MINUTES',$MODULE)}</option>
+										{/foreach}
+									</select>&nbsp;&nbsp;&nbsp;
+									<span class="alignMiddle">{vtranslate('LBL_OTHER_EVENTS',$MODULE)}</span>&nbsp;&nbsp;
+									<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)}&nbsp;{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" />&nbsp;{vtranslate('Private',$MODULE)}&nbsp;</label>
+									<label class="radio inline"><input type="radio" value="public" {if $SHARED_TYPE == 'public'} checked="" {/if} name="sharedtype" />&nbsp;{vtranslate('Public',$MODULE)}&nbsp;</label>
+									<label class="radio inline"><input type="radio" value="selectedusers" {if $SHARED_TYPE == 'selectedusers'} checked="" {/if} data-sharingtype="selectedusers" name="sharedtype" id="selectedUsersSharingType" />&nbsp;{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>&nbsp;&nbsp;</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}'>&nbsp;&nbsp;{$CVNAME}&nbsp;&nbsp;</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')}">&nbsp;&nbsp;{vtranslate('LBL_EDITING', $MODULE)} : {$RECORD->get('label')} &nbsp;&nbsp;</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>&nbsp;&nbsp;{vtranslate('LBL_ADDING_NEW', $MODULE)}&nbsp;&nbsp;</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')}">&nbsp;&nbsp;{$RECORD->get('label')} &nbsp;&nbsp;</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>&nbsp;&nbsp;
+										{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>&nbsp;&nbsp;
+										{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>&nbsp;{vtranslate('LBL_CUSTOMIZE', 'Reports')}&nbsp; <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