From 3067f1a4077278958f588d0d06fe4596f6a60537 Mon Sep 17 00:00:00 2001
From: satish <satish.dvnk@vtiger.com>
Date: Mon, 2 Jan 2017 20:19:51 +0530
Subject: [PATCH] Ported for v7: Separating Create/Edit into 2 separate
 Role/Profile permissions - missed changes Making V7 as extension compatible

---
 .../Calendar/ListViewRecordActions.tpl        |   2 +-
 .../Settings/Profiles/EditViewContents.tpl    |  10 +-
 .../v7/modules/Settings/Roles/EditView.tpl    |   2 +-
 .../modules/Settings/Roles/resources/Roles.js |   4 +-
 .../modules/Settings/Vtiger/ModuleHeader.tpl  | 314 ++++++++++--------
 .../v7/modules/Vtiger/ListViewContents.tpl    |   2 +-
 layouts/v7/skins/contact/style.css            |   1 -
 layouts/v7/skins/inventory/style.css          |   1 -
 layouts/v7/skins/marketing/style.css          |   1 -
 .../v7/skins/marketing_and_sales/style.css    |   1 -
 layouts/v7/skins/project/style.css            |   1 -
 layouts/v7/skins/sales/style.css              |   1 -
 layouts/v7/skins/support/style.css            |   1 -
 layouts/v7/skins/tools/style.css              |   1 -
 modules/Calendar/views/Calendar.php           |   2 +-
 modules/Documents/views/List.php              |   2 +-
 .../Settings/LayoutEditor/actions/Field.php   |  25 +-
 .../Settings/LayoutEditor/models/Module.php   |  12 +
 modules/Users/views/Calendar.php              |   1 +
 modules/Vtiger/views/List.php                 |   2 +-
 packages/vtiger/optional/EmailTemplates.zip   | Bin 73036 -> 73049 bytes
 .../modules/EmailTemplates/views/List.php     |   2 +-
 .../modules/EmailTemplates/views/Popup.php    |   2 +-
 .../modules/ModComments/ListViewContents.tpl  |   2 +-
 24 files changed, 228 insertions(+), 164 deletions(-)

diff --git a/layouts/v7/modules/Calendar/ListViewRecordActions.tpl b/layouts/v7/modules/Calendar/ListViewRecordActions.tpl
index a70c546cd..e98941b30 100644
--- a/layouts/v7/modules/Calendar/ListViewRecordActions.tpl
+++ b/layouts/v7/modules/Calendar/ListViewRecordActions.tpl
@@ -27,7 +27,7 @@
 		{if $IS_MODULE_EDITABLE && $EDIT_VIEW_URL && $LISTVIEW_ENTRY->get('taskstatus') neq vtranslate('Held', $MODULE) && $LISTVIEW_ENTRY->get('taskstatus') neq vtranslate('Completed', $MODULE)}
 			<span class="fa fa-check icon action" title="{vtranslate('LBL_MARK_AS_HELD', $MODULE)}" onclick="Calendar_Calendar_Js.markAsHeld('{$LISTVIEW_ENTRY->getId()}');"></span>
 		{/if}
-		{if $IS_RECORD_CREATABLE && $EDIT_VIEW_URL && $LISTVIEW_ENTRY->get('taskstatus') eq vtranslate('Held', $MODULE)}
+		{if $IS_CREATE_PERMITTED && $EDIT_VIEW_URL && $LISTVIEW_ENTRY->get('taskstatus') eq vtranslate('Held', $MODULE)}
 			<span class="fa fa-flag icon action" title="{vtranslate('LBL_HOLD_FOLLOWUP_ON', "Events")}" onclick="Calendar_Calendar_Js.holdFollowUp('{$LISTVIEW_ENTRY->getId()}');"></span>
 		{/if}
 		<span class="more dropdown action">
diff --git a/layouts/v7/modules/Settings/Profiles/EditViewContents.tpl b/layouts/v7/modules/Settings/Profiles/EditViewContents.tpl
index 7f9eafb61..0ebabbe07 100644
--- a/layouts/v7/modules/Settings/Profiles/EditViewContents.tpl
+++ b/layouts/v7/modules/Settings/Profiles/EditViewContents.tpl
@@ -12,11 +12,9 @@
 	{foreach key=index item=jsModel from=$SCRIPTS}
 		<script type="{$jsModel->getType()}" src="{$jsModel->getSrc()}"></script>
 	{/foreach}
-	<div class="row">
-		<div class="col-lg-3 col-md-3 col-sm-3 control-label ">
-			<label class="fieldLabel">
-				{vtranslate('LBL_COPY_PRIVILEGES_FROM',"Settings:Roles")}
-			</label>
+	<div class="form-group row">
+		<div class="col-lg-3 col-md-3 col-sm-3 control-label fieldLabel">
+			<strong>{vtranslate('LBL_COPY_PRIVILEGES_FROM',"Settings:Roles")}</strong>
 		</div>
 		<div class="col-lg-6 col-md-6 col-sm-6">
 			<select class="select2" id="directProfilePriviligesSelect" placeholder="{vtranslate('LBL_CHOOSE_PROFILES',$QUALIFIED_MODULE)}">
@@ -34,7 +32,7 @@
 <input type="hidden" name="editall" value="0" />
 {if $RECORD_MODEL && $RECORD_MODEL->getId() && empty($IS_DUPLICATE_RECORD)}
 	{if $RECORD_MODEL->hasGlobalReadPermission() || $RECORD_MODEL->hasGlobalWritePermission()}
-		<div class="row">
+		<div class="form-group row">
 			<div class="col-lg-3 col-md-3 col-sm-3 fieldLabel"></div>
 			<div class="col-lg-6 col-md-6 col-sm-6">
 				<label class="control-label">
diff --git a/layouts/v7/modules/Settings/Roles/EditView.tpl b/layouts/v7/modules/Settings/Roles/EditView.tpl
index 875889eae..c9e0becd9 100644
--- a/layouts/v7/modules/Settings/Roles/EditView.tpl
+++ b/layouts/v7/modules/Settings/Roles/EditView.tpl
@@ -96,7 +96,7 @@
                         </div>
                         <br>
                         <div class="form-group " data-content="new" >
-                            <div class="fieldValue col-sm-12">
+                            <div class="profileData col-sm-12">
                             </div>
                         </div>
                         <div class="form-group " data-content="existing">
diff --git a/layouts/v7/modules/Settings/Roles/resources/Roles.js b/layouts/v7/modules/Settings/Roles/resources/Roles.js
index cbb01b89b..fae93e891 100644
--- a/layouts/v7/modules/Settings/Roles/resources/Roles.js
+++ b/layouts/v7/modules/Settings/Roles/resources/Roles.js
@@ -247,7 +247,7 @@ var Settings_Roles_Js = {
 		app.request.post(params).then(function(err, data) {
 			app.helper.hideProgress();
 			if(err === null) {
-				content.find('.fieldValue').html(data);
+				content.find('.profileData').html(data);
 				vtUtils.showSelect2ElementView(jQuery('#directProfilePriviligesSelect'));
 				Settings_Roles_Js.registerExistingProfilesChangeEvent();
 				Settings_Roles_Js.newPriviliges = true;
@@ -276,7 +276,7 @@ var Settings_Roles_Js = {
 			app.request.get({'data' : params}).then(function(err, data) {
 				app.helper.hideProgress();
 				if(err === null) {
-					jQuery('[data-content="new"]').find('.fieldValue').html(data);
+					jQuery('[data-content="new"]').find('.profileData').html(data);
 					vtUtils.showSelect2ElementView(jQuery('#directProfilePriviligesSelect'));
 					Settings_Roles_Js.registerExistingProfilesChangeEvent();
                     Settings_Roles_Js.registerProfileEvents();
diff --git a/layouts/v7/modules/Settings/Vtiger/ModuleHeader.tpl b/layouts/v7/modules/Settings/Vtiger/ModuleHeader.tpl
index bf85165e4..b5f6048ae 100644
--- a/layouts/v7/modules/Settings/Vtiger/ModuleHeader.tpl
+++ b/layouts/v7/modules/Settings/Vtiger/ModuleHeader.tpl
@@ -15,38 +15,83 @@
 			<div class="col-lg-7 col-md-7">
 				{if $USER_MODEL->isAdminUser()}
 					<a title="{vtranslate('Home', $MODULE)}" href='index.php?module=Vtiger&parent=Settings&view=Index'>
-						{if $VIEW eq 'Index' && $MODULE eq 'Vtiger'}
-							<h4 class="module-title pull-left text-uppercase">{vtranslate('LBL_SETTINGS', $MODULE)} </h4>
-						{/if}
+						<h4 class="module-title pull-left text-uppercase">{vtranslate('LBL_HOME', $MODULE)} </h4>
 					</a>
+					&nbsp;<span class="fa fa-angle-right pull-left {if $VIEW eq 'Index' && $MODULE eq 'Vtiger'} hide {/if}" aria-hidden="true" style="padding-top: 12px;padding-left: 5px;"></span>
 				{/if}
-				{if $MODULE eq 'Vtiger' and $smarty.request.view eq 'Index'}
-
-				{else}
-					<h4 title="{vtranslate($ACTIVE_BLOCK['block'], $QUALIFIED_MODULE)}" class="module-title pull-left text-uppercase">{vtranslate($ACTIVE_BLOCK['block'], $QUALIFIED_MODULE)}</h4>
+				{if $MODULE neq 'Vtiger' or $smarty.request.view neq 'Index'}
+					{if $ACTIVE_BLOCK['block']}
+						<span class="current-filter-name filter-name pull-left">
+							{vtranslate($ACTIVE_BLOCK['block'], $QUALIFIED_MODULE)}&nbsp;
+							<span class="fa fa-angle-right" aria-hidden="true"></span>&nbsp;
+						</span>
+					{/if}
 					{if $MODULE neq 'Vtiger'}
-						{if $smarty.request.view eq 'PreferenceDetail' or $smarty.request.view eq 'PreferenceEdit'}
-							{assign var=SELECTED_MODULE value='My Preferences'}
-						{elseif $smarty.request.view eq 'Calendar'}
-							{assign var=SELECTED_MODULE value='Calendar Settings'}
-						{elseif $smarty.request.module eq 'LayoutEditor'}
-							{assign var=SELECTED_MODULE value='LBL_MODULE_CUSTOMIZATION'}
-						{elseif $smarty.request.module eq 'Currency'}
-							{assign var=SELECTED_MODULE value='LBL_CURRENCY_SETTINGS'}
-						{elseif $smarty.request.module eq 'Picklist'}
-							{assign var=SELECTED_MODULE value='LBL_PICKLIST_EDITOR'}
-						{elseif $smarty.request.view eq 'MappingDetail' and $smarty.request.module eq 'Potentials'}
-							{assign var=SELECTED_MODULE value='LBL_OPPORTUNITY_MAPPING'}
-						{elseif $smarty.request.view eq 'MappingDetail' and $smarty.request.module eq 'Leads'}
-							{assign var=SELECTED_MODULE value='LBL_LEAD_MAPPING'}
-						{elseif $smarty.request.module eq 'MenuEditor'}
-							{assign var=SELECTED_MODULE value='LBL_MENU_EDITOR'}
-						{elseif $smarty.request.module eq 'Tags'}
-							{assign var=SELECTED_MODULE value='LBL_MY_TAGS'}
-						{else}
-							{assign var=SELECTED_MODULE value=$smarty.request.module}
+						{assign var=ALLOWED_MODULES value=","|explode:'Users,Profiles,Groups,Roles,Webforms,Workflows'}
+						{if $MODULE_MODEL and $MODULE|in_array:$ALLOWED_MODULES}
+							{if $MODULE eq 'Webforms'}
+								{assign var=URL value=$MODULE_MODEL->getListViewUrl()}
+							{else}
+								{assign var=URL value=$MODULE_MODEL->getDefaultUrl()}
+							{/if}
+							{if $URL|strpos:'parent' eq ''}
+								{assign var=URL value=$URL|cat:'&parent='|cat:$smarty.request.parent}
+							{/if}
 						{/if}
-						<span class="current-filter-name filter-name pull-left" style='width:50%;'>&nbsp;&nbsp;<span class="fa fa-angle-right" aria-hidden="true"></span>&nbsp;{vtranslate($SELECTED_MODULE, $QUALIFIED_MODULE)}</span>
+						<span class="current-filter-name settingModuleName filter-name pull-left">	
+							{if $smarty.request.view eq 'Calendar'}
+								{if $smarty.request.mode eq 'Edit'}
+									<a href="{"index.php?module="|cat:$smarty.request.module|cat:'&parent='|cat:$smarty.request.parent|cat:'&view='|cat:$smarty.request.view}">
+										{vtranslate({$PAGETITLE}, $QUALIFIED_MODULE)}
+									</a>&nbsp;
+									<span class="fa fa-angle-right" aria-hidden="true"></span>&nbsp;
+									{vtranslate('LBL_EDITING', $MODULE)} :&nbsp;{vtranslate({$PAGETITLE}, $QUALIFIED_MODULE)}&nbsp;{vtranslate('LBL_OF',$QUALIFIED_MODULE)}&nbsp;{$USER_MODEL->getName()}
+								{else}
+									{vtranslate({$PAGETITLE}, $QUALIFIED_MODULE)}&nbsp;<span class="fa fa-angle-right" aria-hidden="true"></span>&nbsp;{$USER_MODEL->getName()}
+								{/if}
+							{else if $smarty.request.view neq 'List' and $smarty.request.module eq 'Users'}
+								{if $smarty.request.view eq 'PreferenceEdit'}
+									<a href="{"index.php?module="|cat:$smarty.request.module|cat:'&parent='|cat:$smarty.request.parent|cat:'&view=PreferenceDetail&record='|cat:$smarty.request.record}">
+										{vtranslate($ACTIVE_BLOCK['block'], $QUALIFIED_MODULE)}&nbsp;
+									</a>
+									<span class="fa fa-angle-right" aria-hidden="true"></span>&nbsp;
+									{vtranslate('LBL_EDITING', $MODULE)} :&nbsp;{$USER_MODEL->getName()}
+								{else if $smarty.request.view eq 'Edit' or $smarty.request.view eq 'Detail'}
+									<a href="{$URL}">
+									{if $smarty.request.extensionModule}{$smarty.request.extensionModule}{else}{vtranslate({$PAGETITLE}, $QUALIFIED_MODULE)}{/if}&nbsp;
+									</a>
+									<span class="fa fa-angle-right" aria-hidden="true"></span>&nbsp;
+									{if $smarty.request.view eq 'Edit'}
+										{if $RECORD}
+											{vtranslate('LBL_EDITING', $MODULE)} :&nbsp;{$RECORD->getName()}
+										{else}
+											{vtranslate('LBL_ADDING_NEW', $MODULE)}
+										{/if}
+									{else}
+										{$RECORD->getName()}
+									{/if}
+								{else}
+									{$USER_MODEL->getName()}
+								{/if}
+							{else if $URL and $URL|strpos:$smarty.request.view eq ''}
+								<a href="{$URL}">
+								{if $smarty.request.extensionModule}
+									{$smarty.request.extensionModule}
+								{else}
+									{vtranslate({$PAGETITLE}, $QUALIFIED_MODULE)}
+								{/if}
+								</a>&nbsp;
+								<span class="fa fa-angle-right" aria-hidden="true"></span>&nbsp;
+								{if $RECORD}
+									{if $smarty.request.view eq 'Edit'}
+										{vtranslate('LBL_EDITING', $MODULE)} :&nbsp;
+									{/if}
+									{$RECORD->getName()}
+								{/if}
+							{else}
+								&nbsp;{if $smarty.request.extensionModule}{$smarty.request.extensionModule}{else}{vtranslate({$PAGETITLE}, $QUALIFIED_MODULE)}{/if}
+							{/if}
+						</span>
 					{else}
 						{if $smarty.request.view eq 'TaxIndex'}
 							{assign var=SELECTED_MODULE value='LBL_TAX_MANAGEMENT'}
@@ -55,124 +100,123 @@
 						{else}
 							{assign var=SELECTED_MODULE value=$ACTIVE_BLOCK['menu']}
 						{/if}
-						<span class="current-filter-name filter-name pull-left" style='width:50%;'>&nbsp;&nbsp;<span class="fa fa-angle-right" aria-hidden="true"></span>&nbsp;{vtranslate({$SELECTED_MODULE}, $QUALIFIED_MODULE)}</span>
+						<span class="current-filter-name filter-name pull-left" style='width:50%;'><span class="display-inline-block">{vtranslate({$PAGETITLE}, $QUALIFIED_MODULE)}</span></span>
 					{/if}
 				{/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}
+			</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}
+							<li>
 								{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>
+									<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>
 								{else}
-									<li>
-										<button type="button" class="btn addButton btn-default module-buttons" 
-											id="{$MODULE}_listView_basicAction_{Vtiger_Util_Helper::replaceSpaceWithUnderScores($BASIC_ACTION->getLabel())}"
-											{if stripos($BASIC_ACTION->getUrl(), 'javascript:')===0}
-												onclick='{$BASIC_ACTION->getUrl()|substr:strlen("javascript:")};'
-											{else} 
-												onclick='window.location.href="{$BASIC_ACTION->getUrl()}"'
-											{/if}>
-											<div class="fa {$BASIC_ACTION->getIcon()}" aria-hidden="true"></div>
-											&nbsp;&nbsp;{vtranslate($BASIC_ACTION->getLabel(), $MODULE)}
-										</button>
-									</li>
-								{/if}
-
-							{/foreach}
-
-							{if $LISTVIEW_LINKS['LISTVIEWSETTING']|@count gt 0}
-								{if empty($QUALIFIEDMODULE)} 
-									{assign var=QUALIFIEDMODULE value=$MODULE}
+									<button type="button" class="btn addButton btn-default module-buttons" 
+										id="{$MODULE}_listView_basicAction_{Vtiger_Util_Helper::replaceSpaceWithUnderScores($BASIC_ACTION->getLabel())}"
+										{if stripos($BASIC_ACTION->getUrl(), 'javascript:')===0}
+											onclick='{$BASIC_ACTION->getUrl()|substr:strlen("javascript:")};'
+										{else} 
+											onclick='window.location.href="{$BASIC_ACTION->getUrl()}"'
+										{/if}>
+										<div class="fa {$BASIC_ACTION->getIcon()}" aria-hidden="true"></div>
+										&nbsp;&nbsp;{vtranslate($BASIC_ACTION->getLabel(), $MODULE)}
+									</button>
 								{/if}
-								<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; <span class="caret"></span>
-										</button>
-										<ul class="detailViewSetting dropdown-menu">
-											{foreach item=SETTING from=$LISTVIEW_LINKS['LISTVIEWSETTING']}
-												<li id="{$MODULE}_setings_lisview_advancedAction_{$SETTING->getLabel()}"><a href="javascript:void(0);" onclick="{$SETTING->getUrl()};">{vtranslate($SETTING->getLabel(), $QUALIFIEDMODULE)}</a></li>
-											{/foreach}
-										</ul>
-									</div>
-								</li>
+							</li>
+						{/foreach}
+						{if $LISTVIEW_LINKS['LISTVIEWSETTING']|@count gt 0}
+							{if empty($QUALIFIEDMODULE)} 
+								{assign var=QUALIFIEDMODULE value=$MODULE}
 							{/if}
+							<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; <span class="caret"></span>
+									</button>
+									<ul class="detailViewSetting dropdown-menu">
+										{foreach item=SETTING from=$LISTVIEW_LINKS['LISTVIEWSETTING']}
+											<li id="{$MODULE}_setings_lisview_advancedAction_{$SETTING->getLabel()}"><a href="javascript:void(0);" onclick="{$SETTING->getUrl()};">{vtranslate($SETTING->getLabel(), $QUALIFIEDMODULE)}</a></li>
+											{/foreach}
+									</ul>
+								</div>
+							</li>
+						{/if}
 
-							{assign var=RESTRICTED_MODULE_LIST value=['Users', 'EmailTemplates']}
-							{if $LISTVIEW_LINKS['LISTVIEWBASIC']|@count gt 0 and !in_array($MODULE, $RESTRICTED_MODULE_LIST)}
-								{if empty($QUALIFIED_MODULE)} 
-									{assign var=QUALIFIED_MODULE value='Settings:'|cat:$MODULE}
-								{/if}
-								{foreach item=LISTVIEW_BASICACTION from=$LISTVIEW_LINKS['LISTVIEWBASIC']}
-									{if $MODULE eq 'Users'} {assign var=LANGMODULE value=$MODULE} {/if}
-									<li>
-										<button class="btn btn-default addButton module-buttons"
-											id="{$MODULE}_listView_basicAction_{Vtiger_Util_Helper::replaceSpaceWithUnderScores($LISTVIEW_BASICACTION->getLabel())}" 
-											{if $MODULE eq 'Workflows'}
-												onclick='Settings_Workflows_List_Js.triggerCreate("{$LISTVIEW_BASICACTION->getUrl()}&mode=V7Edit")'
+						{assign var=RESTRICTED_MODULE_LIST value=['Users', 'EmailTemplates']}
+						{if $LISTVIEW_LINKS['LISTVIEWBASIC']|@count gt 0 and !in_array($MODULE, $RESTRICTED_MODULE_LIST)}
+							{if empty($QUALIFIED_MODULE)} 
+								{assign var=QUALIFIED_MODULE value='Settings:'|cat:$MODULE}
+							{/if}
+							{foreach item=LISTVIEW_BASICACTION from=$LISTVIEW_LINKS['LISTVIEWBASIC']}
+								{if $MODULE eq 'Users'} {assign var=LANGMODULE value=$MODULE} {/if}
+								<li>
+									<button class="btn btn-default addButton module-buttons"
+										id="{$MODULE}_listView_basicAction_{Vtiger_Util_Helper::replaceSpaceWithUnderScores($LISTVIEW_BASICACTION->getLabel())}" 
+										{if $MODULE eq 'Workflows'}
+											onclick='Settings_Workflows_List_Js.triggerCreate("{$LISTVIEW_BASICACTION->getUrl()}&mode=V7Edit")'
+										{else}
+											{if stripos($LISTVIEW_BASICACTION->getUrl(), 'javascript:')===0}
+												onclick='{$LISTVIEW_BASICACTION->getUrl()|substr:strlen("javascript:")};'
 											{else}
-												{if stripos($LISTVIEW_BASICACTION->getUrl(), 'javascript:')===0}
-													onclick='{$LISTVIEW_BASICACTION->getUrl()|substr:strlen("javascript:")};'
-												{else}
-													onclick='window.location.href="{$LISTVIEW_BASICACTION->getUrl()}"'
-												{/if}
-											{/if}>
+												onclick='window.location.href = "{$LISTVIEW_BASICACTION->getUrl()}"'
+											{/if}
+										{/if}>
+										{if $MODULE eq 'Tags'}
 											<i class="fa fa-plus"></i>&nbsp;&nbsp;
-											{if $MODULE eq 'Tags'}
-												{vtranslate('LBL_ADD_TAG', $QUALIFIED_MODULE)}
-											{else}
-												{vtranslate('LBL_ADD_RECORD', $QUALIFIED_MODULE)}
+											{vtranslate('LBL_ADD_TAG', $QUALIFIED_MODULE)}
+										{else}
+											{if $LISTVIEW_BASICACTION->getIcon()}
+												<i class="{$LISTVIEW_BASICACTION->getIcon()}"></i>&nbsp;&nbsp;
 											{/if}
-										</button>
-									</li>
-								{/foreach}
-							{/if}
-						</ul>
-					</div>
+											{vtranslate($LISTVIEW_BASICACTION->getLabel(), $QUALIFIED_MODULE)}
+										{/if}
+									</button>
+								</li>
+							{/foreach}
+						{/if}
+					</ul>
 				</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;
+		</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]
 								}
 							},
-						};
-					})();
-				</script>
-			{/if}
-		</div>
-		{/strip}
+							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}
diff --git a/layouts/v7/modules/Vtiger/ListViewContents.tpl b/layouts/v7/modules/Vtiger/ListViewContents.tpl
index 804139438..1771522de 100644
--- a/layouts/v7/modules/Vtiger/ListViewContents.tpl
+++ b/layouts/v7/modules/Vtiger/ListViewContents.tpl
@@ -212,7 +212,7 @@
 							<div class="emptyRecordsContent">
 								{assign var=SINGLE_MODULE value="SINGLE_$MODULE"}
 								{vtranslate('LBL_NO')} {vtranslate($MODULE, $MODULE)} {vtranslate('LBL_FOUND')}.
-								{if $IS_RECORD_CREATABLE}
+								{if $IS_CREATE_PERMITTED}
 									<a style="color:blue" href="{$MODULE_MODEL->getCreateRecordUrl()}"> {vtranslate('LBL_CREATE')}</a>
 									{if Users_Privileges_Model::isPermitted($MODULE, 'Import') && $LIST_VIEW_MODEL->isImportEnabled()}
 										{vtranslate('LBL_OR', $MODULE)}
diff --git a/layouts/v7/skins/contact/style.css b/layouts/v7/skins/contact/style.css
index 60ab60617..e4f565feb 100644
--- a/layouts/v7/skins/contact/style.css
+++ b/layouts/v7/skins/contact/style.css
@@ -4960,7 +4960,6 @@ TN-34230
 .relatedTabModulesList .addButton {
   border-radius: 2px;
   border: 1px solid #DDDDDD;
-  text-transform: uppercase;
   color: #666666;
   background: #FFFFFF;
 }
diff --git a/layouts/v7/skins/inventory/style.css b/layouts/v7/skins/inventory/style.css
index f07e059d9..f8fc83588 100644
--- a/layouts/v7/skins/inventory/style.css
+++ b/layouts/v7/skins/inventory/style.css
@@ -4960,7 +4960,6 @@ TN-34230
 .relatedTabModulesList .addButton {
   border-radius: 2px;
   border: 1px solid #DDDDDD;
-  text-transform: uppercase;
   color: #666666;
   background: #FFFFFF;
 }
diff --git a/layouts/v7/skins/marketing/style.css b/layouts/v7/skins/marketing/style.css
index b0c408def..332b24e2c 100644
--- a/layouts/v7/skins/marketing/style.css
+++ b/layouts/v7/skins/marketing/style.css
@@ -4960,7 +4960,6 @@ TN-34230
 .relatedTabModulesList .addButton {
   border-radius: 2px;
   border: 1px solid #DDDDDD;
-  text-transform: uppercase;
   color: #666666;
   background: #FFFFFF;
 }
diff --git a/layouts/v7/skins/marketing_and_sales/style.css b/layouts/v7/skins/marketing_and_sales/style.css
index f9e97b2c1..fcf59fd66 100644
--- a/layouts/v7/skins/marketing_and_sales/style.css
+++ b/layouts/v7/skins/marketing_and_sales/style.css
@@ -4960,7 +4960,6 @@ TN-34230
 .relatedTabModulesList .addButton {
   border-radius: 2px;
   border: 1px solid #DDDDDD;
-  text-transform: uppercase;
   color: #666666;
   background: #FFFFFF;
 }
diff --git a/layouts/v7/skins/project/style.css b/layouts/v7/skins/project/style.css
index ab5a67f8b..7e631f927 100644
--- a/layouts/v7/skins/project/style.css
+++ b/layouts/v7/skins/project/style.css
@@ -4960,7 +4960,6 @@ TN-34230
 .relatedTabModulesList .addButton {
   border-radius: 2px;
   border: 1px solid #DDDDDD;
-  text-transform: uppercase;
   color: #666666;
   background: #FFFFFF;
 }
diff --git a/layouts/v7/skins/sales/style.css b/layouts/v7/skins/sales/style.css
index 7e7af6ac3..b51c53d83 100644
--- a/layouts/v7/skins/sales/style.css
+++ b/layouts/v7/skins/sales/style.css
@@ -4960,7 +4960,6 @@ TN-34230
 .relatedTabModulesList .addButton {
   border-radius: 2px;
   border: 1px solid #DDDDDD;
-  text-transform: uppercase;
   color: #666666;
   background: #FFFFFF;
 }
diff --git a/layouts/v7/skins/support/style.css b/layouts/v7/skins/support/style.css
index dd1c46792..494bbe7e7 100644
--- a/layouts/v7/skins/support/style.css
+++ b/layouts/v7/skins/support/style.css
@@ -4960,7 +4960,6 @@ TN-34230
 .relatedTabModulesList .addButton {
   border-radius: 2px;
   border: 1px solid #DDDDDD;
-  text-transform: uppercase;
   color: #666666;
   background: #FFFFFF;
 }
diff --git a/layouts/v7/skins/tools/style.css b/layouts/v7/skins/tools/style.css
index 5379f64c6..1befe7e96 100644
--- a/layouts/v7/skins/tools/style.css
+++ b/layouts/v7/skins/tools/style.css
@@ -4960,7 +4960,6 @@ TN-34230
 .relatedTabModulesList .addButton {
   border-radius: 2px;
   border: 1px solid #DDDDDD;
-  text-transform: uppercase;
   color: #666666;
   background: #FFFFFF;
 }
diff --git a/modules/Calendar/views/Calendar.php b/modules/Calendar/views/Calendar.php
index 32e1d8604..c7d3feddd 100644
--- a/modules/Calendar/views/Calendar.php
+++ b/modules/Calendar/views/Calendar.php
@@ -15,7 +15,7 @@ class Calendar_Calendar_View extends Vtiger_Index_View {
 		$moduleName = $request->getModule();
 		$viewer->assign('MODULE_NAME', $moduleName);
 		$moduleModel = Vtiger_Module_Model::getInstance($moduleName);
-		$viewer->assign('IS_RECORD_CREATABLE', $moduleModel->isPermitted('CreateView'));
+		$viewer->assign('IS_CREATE_PERMITTED', $moduleModel->isPermitted('CreateView'));
 		$viewer->assign('IS_MODULE_EDITABLE', $moduleModel->isPermitted('EditView'));
 		$viewer->assign('IS_MODULE_DELETABLE', $moduleModel->isPermitted('Delete'));
 
diff --git a/modules/Documents/views/List.php b/modules/Documents/views/List.php
index 5cdfffdbd..7661fac0c 100644
--- a/modules/Documents/views/List.php
+++ b/modules/Documents/views/List.php
@@ -265,7 +265,7 @@ class Documents_List_View extends Vtiger_List_View {
 			$viewer->assign('LISTVIEW_COUNT', $totalCount);
 		}
 
-		$viewer->assign('IS_RECORD_CREATABLE', $listViewModel->getModule()->isPermitted('CreateView'));
+		$viewer->assign('IS_CREATE_PERMITTED', $listViewModel->getModule()->isPermitted('CreateView'));
 		$viewer->assign('IS_MODULE_EDITABLE', $listViewModel->getModule()->isPermitted('EditView'));
 		$viewer->assign('IS_MODULE_DELETABLE', $listViewModel->getModule()->isPermitted('Delete'));
 		$viewer->assign('SEARCH_DETAILS', $searchParams);
diff --git a/modules/Settings/LayoutEditor/actions/Field.php b/modules/Settings/LayoutEditor/actions/Field.php
index ecd58039c..2c1dc460c 100644
--- a/modules/Settings/LayoutEditor/actions/Field.php
+++ b/modules/Settings/LayoutEditor/actions/Field.php
@@ -30,6 +30,23 @@ class Settings_LayoutEditor_Field_Action extends Settings_Vtiger_Index_Action {
             $fieldModel = $moduleModel->addField($type,$blockId,$request->getAll());
             $fieldInfo = $fieldModel->getFieldInfo();
             $responseData = array_merge(array('id'=>$fieldModel->getId(), 'blockid'=>$blockId, 'customField'=>$fieldModel->isCustomField()),$fieldInfo);
+
+			$defaultValue = $fieldModel->get('defaultvalue');
+			$responseData['fieldDefaultValueRaw'] = $defaultValue;
+			if (isset($defaultValue)) {
+				if ($defaultValue && $fieldInfo['type'] == 'date') {
+					$defaultValue = DateTimeField::convertToUserFormat($defaultValue);
+				} else if (!$defaultValue) {
+					$defaultValue = $fieldModel->getDisplayValue($defaultValue);
+				} else if (is_array($defaultValue)) {
+					foreach ($defaultValue as $key => $value) {
+						$defaultValue[$key] = $fieldModel->getDisplayValue($value);
+					}
+					$defaultValue = Zend_Json::encode($defaultValue);
+				}
+			}
+			$responseData['fieldDefaultValue'] = $defaultValue;
+
             $response->setResult($responseData);
         }catch(Exception $e) {
             $response->setError($e->getCode(), $e->getMessage());
@@ -86,11 +103,11 @@ class Settings_LayoutEditor_Field_Action extends Settings_Vtiger_Index_Action {
 			$fieldInfo = $fieldInstance->getFieldInfo();
 			$fieldInfo['id'] = $fieldInstance->getId();
 
+			$fieldInfo['fieldDefaultValueRaw'] = $defaultValue;
 			if (isset($defaultValue)) {
 				if ($defaultValue && $fieldInfo['type'] == 'date') {
-					$fieldInfo['fieldDefaultValue'] = DateTimeField::convertToUserFormat($defaultValue);
+					$defaultValue = DateTimeField::convertToUserFormat($defaultValue);
 				} else if (!$defaultValue) {
-					$fieldInfo['fieldDefaultValueRaw'] = strip_tags($defaultValue);
 					$defaultValue = $fieldInstance->getDisplayValue($defaultValue);
 				} else if (is_array($defaultValue)) {
 					foreach ($defaultValue as $key => $value) {
@@ -98,9 +115,9 @@ class Settings_LayoutEditor_Field_Action extends Settings_Vtiger_Index_Action {
 					}
 					$defaultValue = Zend_Json::encode($defaultValue);
 				}
-				$fieldInfo['fieldDefaultValue'] = $defaultValue;
 			}
-			
+			$fieldInfo['fieldDefaultValue'] = $defaultValue;
+
             $response->setResult(array_merge(array('success'=>true), $fieldInfo));
         }catch(Exception $e) {
 			$response->setError($e->getCode(), $e->getMessage());
diff --git a/modules/Settings/LayoutEditor/models/Module.php b/modules/Settings/LayoutEditor/models/Module.php
index 01c903d99..562febcfe 100644
--- a/modules/Settings/LayoutEditor/models/Module.php
+++ b/modules/Settings/LayoutEditor/models/Module.php
@@ -176,7 +176,19 @@ class Settings_LayoutEditor_Module_Model extends Vtiger_Module_Model {
 		if(strtolower($fieldType) == 'date') {
 			$dateInstance = new Vtiger_Date_UIType();
 			$defaultValue = $dateInstance->getDBInsertedValue($defaultValue);
+		} else if (strtolower($fieldType) == 'time') {
+			$defaultValue = Vtiger_Time_UIType::getTimeValueWithSeconds($defaultValue);
+		} else if (strtolower($fieldType) == 'currency') {
+			$defaultValue = CurrencyField::convertToDBFormat($defaultValue, null, true);
+		} else if (strtolower($fieldType) == 'decimal') {
+			$defaultValue = CurrencyField::convertToDBFormat($defaultValue, null, true);
 		}
+
+		if (is_array($defaultValue)) {
+			$defaultValue = implode(' |##| ', $defaultValue);
+		}
+		$fieldModel->set('defaultvalue', $defaultValue);
+
 		$blockModel = Vtiger_Block_Model::getInstance($blockId, $this);
 		$blockModel->addField($fieldModel);
 
diff --git a/modules/Users/views/Calendar.php b/modules/Users/views/Calendar.php
index c386e9b3a..731325c3a 100644
--- a/modules/Users/views/Calendar.php
+++ b/modules/Users/views/Calendar.php
@@ -54,6 +54,7 @@ class Users_Calendar_View extends Vtiger_Detail_View {
 
 			$viewer->assign('MODULE_MODEL', $detailViewModel->getModule());
 			$viewer->assign('DETAILVIEW_LINKS', $detailViewLinks);
+			$viewer->assign('MODULE_BASIC_ACTIONS', array());
 
 			$viewer->assign('IS_EDITABLE', $detailViewModel->getRecord()->isEditable($moduleName));
 			$viewer->assign('IS_DELETABLE', $detailViewModel->getRecord()->isDeletable($moduleName));
diff --git a/modules/Vtiger/views/List.php b/modules/Vtiger/views/List.php
index 94973858b..b14686e6b 100644
--- a/modules/Vtiger/views/List.php
+++ b/modules/Vtiger/views/List.php
@@ -402,7 +402,7 @@ class Vtiger_List_View extends Vtiger_Index_View {
 		}
 		$viewer->assign('LIST_VIEW_MODEL', $listViewModel);
 		$viewer->assign('GROUPS_IDS', Vtiger_Util_Helper::getGroupsIdsForUsers($currentUser->getId()));
-		$viewer->assign('IS_RECORD_CREATABLE', $listViewModel->getModule()->isPermitted('CreateView'));
+		$viewer->assign('IS_CREATE_PERMITTED', $listViewModel->getModule()->isPermitted('CreateView'));
 		$viewer->assign('IS_MODULE_EDITABLE', $listViewModel->getModule()->isPermitted('EditView'));
 		$viewer->assign('IS_MODULE_DELETABLE', $listViewModel->getModule()->isPermitted('Delete'));
 		$viewer->assign('SEARCH_DETAILS', $searchParams);
diff --git a/packages/vtiger/optional/EmailTemplates.zip b/packages/vtiger/optional/EmailTemplates.zip
index 11bf193c6cff63c370e6dc5cf0755d99b3ed05a2..e72a57f2c8ea36b86cecc70466e28312eb3399be 100644
GIT binary patch
delta 2275
zcmV<92psp!x&+y}1h7NR2~cyMNodF|j>of1%@_!O2PH7}Iv5UbeASyyy~`43?gb6r
z=Q#v=5eY#<s8;!{5TQ<^R)c;l_bz+W&PCt*C<R^^iNnN$)85C+zm$(6PQ$)}7M?-X
zmlrNyHWPKTNauvfH+xQ?;3OqbPxkn6S5PJ;d@C<%q~;|PA??hYGFUiPGF7S6uzlo9
zCyKIvC+AW<8czMX%qU;Q!rWy*hF$#CQ7ZAZKD%4yAX1$~D9u}`%QWFMe@PhYRjI{-
z<jKi{<lt7|7O-b$FFdHx+4qy-pn`2I&2Y6jMF0h%Ze5nm(bJTTI&b`wG};h9V;=uM
zPrc7~lLlcQec|{=_l>=mu=*Ek;6CUgK?*m234-6(_FiVp5IMHrclYcd`wJLn5uUnK
z0n70OB6TH8B?uLMY-gFo^NK<q!TKRZY<H-Gr_JHd2L?;~5j3#9E!Y5!3^4;XrUW#K
zT{ps=yI^LU=w&1OpdkogH3F@c99;!<IM<^bp#{a~2aLo|GuyB<&=gGhBw*1}kcGT|
z5g_1}k|+t{RY=3brk*XQuR9p1H>5@SO1k0to+~vfl_XL_pt97|Nl?M}eN(-+STk7U
z714a-EQ%}cau57%q(+c^wo^~NdXM9$%79ZwWn04ndge3>sQld9ht{thCE;e_BN*g=
zYclwgzhe2NoVV9swd3fv{Q%CgO`H3FAxoF|j(hsRPfFmE(}O<UpPpo8&g0Y<Q%rzf
zIkhX#rv=9EoCc!B1D3||t<TyIyu5g-(5QA#B>MQD(;g}Q-Fo;Dms-7~g$>+#E01ds
z<<=-(!B}a@BE?m|Eq|TkucwPh22rZnR#Bk>?cfXUY4D+wgxxe*QzlFsa5r0IdLX8{
zmTgte7L?slw;I$WMH944-Idi`dPE!%{VBfOgI&J6|Ilaytm{5a&vzbj2E3~GK1s<0
zysBmbuB!zs(gy8MAb2tn8)!)v@P!PPqfyRZ8POy;%`!YTb7j1`^*#L!vpv|90trrY
zo=IgQsTtLi+S*10i0DmelO)?!34cQ7#ixWtWXzL-+d3?9cFt0o5GRX)F!8wQ&Mb$N
zEV6<}TfCPt$q;@Dmyl#Ra2;L;QN{C6Db6#K=-VA1uLOelAb?*&tiJz;pQFJbN~jRT
zT~n3>fO$hlML5rsB-|ki%z>|&P$je~EgzFl+-QH&HIS!Ul?TtxK~A*98XYTGbm_(W
z0Bfk2QdAw5pq!q=v{-)v-iD&AhGjekezIv}wBXaGf(h)#8IQZjlt_aW6tQeYEbIlj
zu^K*%bcFkE4Id4W9gAmz$3P)LQI)1L?ofYy{21+dsgP<otwyp+7db@e#sV86!p?vi
zXt;m;9Y7c9%ZyivZhC|Cia)7JTzR<P^>qjQ#@G8qmruKVbVOsE>nzqCC?HV_4o6C@
zCZYBmmE;OYL{q{+a&`%2<I<G`jzAWD!4}jlo2$ucdHLWO8gR0tSf@d@(EJWfklq@i
z)w;F`OTWx1r)z;xQO@bc8ct@X%dtBoPoIC09p{I(6L_<!5_I+7aD))&%sbTp9jURQ
zT~apookaC<{e=o)>){es!?A5kv-G^qe+pOIy`lwW=B<4!8W7v2$Ml;HH2r$BY}k4l
z%5H6EQ#1zyscQIfAJ_~B!p#tkOxFvbJi2%T9TQlJ!Y`l-Ww2*hLFh$aDrtpRM-6{P
z^KEb~LEv5nYDs?zjJgWSDCi_q`wSaT2zH)Y!`a;R?O^6#18R@wuk8~z2+!>C(nW=4
zz-7vIoi)iDkvn&Y`D(NdMPc%bwhUKKHCs9E@eebdP}RU)JKD%p=6kFdkg{QZGqt*{
zE-nwA)yl7dVpEAK)=uG}u`?j6jG}+XjGIc%z?kU}9x`J<R&zQ{;?iukGBi<Eq|)lP
zf;t`jbLP2kar2lB+rrd)4KcgNM^D6KTtFt?mZ&#c18HxupL=JdSqj?F-dTIgUO2a!
zMQKVaajloaH@Rr)p1NAO=JeLM`PBC~yGm`&v#Z6LCdtD*JugiVNCfne+1-C!Mc&2K
zmHM%_2vmu}u{V9Qz!G#O`}m;h#9l1Q6G#)7Q{}@JV<5wi$ks(Sw_kbFS0VO-J4TvT
zH+Ctw;dD7UasBoQ(zW#bQ`Zkq-tV0eZQx?&2cbr{&WAR5>b?uY9gW>89WdcdFalIC
zwd)2uv+;5=4X5_R-Sz!oRos7R;Ct>ObY{zGp!Ccn|E{2~T^mDD#q8N>$JepkRyWpr
zmw>5%>#nB;Z4P{u@wK|Y%{i=uzR{gzSpu}_fis)Tmw_AV7O4}kqKT-^p6<ossO474
zZ*<9eH;aMjWvyrJP=;!kx{R28)YA8`n!anRz+8Xg1%Zo;we6C5m^^=Y#)N*lNeMAF
zl76%*=x~H)x-C?7a8JF!J{h}zWWbG?ydFIk+5L0=Q%FF9X78f+T?dCSTm=5o36{QT
zroLwg@?3-F0D*RP`_<|R+gbWP4n??Jxc=6sr2sCf=TGB#;uM@iDwR}!M9%F?y8V<!
z1yX0PJe)P;MXruE((^Igt=`S6ny1ynJ$l!F5C7LY^uK%dA=w|_LjUR#`r8|O|5E_9
z>p!bpZ~0)W{2crOv)SOsHVII3o=IrPEsn>RsTTog0z=rB(GUR{lWxrllYH0+mp&K)
z3?NQ(o=IgQsTtJ;000&g001Tc0000000000Ab|gY&DxjI5CIvJ4&e)zju-(h0_NbC
z(GUR{lMdk%m+BY+Dgi&26&V3G0cMv>838>3l$VMb0Y?HJ=94Yv9GCAI0V)E(=aT3Z
zmoORuDgyE6lISIuzzzWlmx~$!AOZT9tQrA40w?Q}VeS=|{~7@<0#fdiVeTB4OB(?y
z1px2>0Cbn(5CIjJj~f9V0x0m80UQAqlTGjtm(2?S43o3+6bk?V00000Ab|gYww4?L
xPyv*eQ5*q70d|*_905QAJ^hn@{T7$)904i<Z~c>g{T-J!9RUyq69NGM008OxLWlqW

delta 2245
zcmV;$2s-!Kx&+L+1h7NR39f*gNzwSu1i`aR%@_!OH<_8lj=j#bbJ6!ooVgb?c%SDG
z=tU$14WU})w?c$Ejam)*vD~}teY^rMjKpE$!D;W~<zLE25vO5aK?~2I>dOn4FPn+F
zS)_Bq<eNPwP;inGs3&{;xGN}=626reHB$4EiI8^YO&Kg4E19ZPYS=#Vr4vQjlXIya
z4X1v8U1pT8VqxwwAj2;H>L``?TA$r5a}cRcB9!K>)Mc7*n!hBB^{UijLGt9}L2_^_
za0}S8vlre~Z#w&aG8|N}jini`Hm3-nAk?kPvN?L1vQg)af09NU;%Cg`|L3Xq`EJr6
z?4vIn|LDH4_YzkBVh!8}T_i~1CPDD~+TP25j2R-w_WSOh9b|t2<1E5cmnvX6o<O9o
zWT^z9!jJ7NlXzZH$Rk)kq=@Yfb?~$~{Q1COX+MGnwzmZvpphYFz{Zq-MzQNgxN{fG
zY!kg~WFIsH0jx%#)smyDpbqDHlq0mD`22v8_-SSvmIj)FDW3!^S_-m|Hv$CQQW7P9
zLA(lSc-Yjl<@9w21NDZqNMA`eT;Fr0Mx~NOY6w)8nmP$8_`Ywd_ZDjgi@YM5Z=6MO
z#a-@!zm3!gvd?zvsaNlD{8Slm%BXB>SU}I5W&xF-d;8G(wWB25EPMom{BKPLfAUu>
zzm)U#`m1&v-L@aVS+;3&KV<0=-*HcWANWZLd~$lwr~A{Btju|w`eKR+&?~2Q<@vP0
z_?^>0w0OYMIKK5+`+=7iPZb)~?ukSn|8v?S#lKq*KjKoWm$a~fTW{rY4Wir{#VZ&q
zEm@?v>bK>ubNuym5y>D*HQOpGRG=Mv!95K=bds=}CTq%sX#?(NOAo|U*Rri*%GrXl
zJL*=0nxtrgmZ`h4noEy}BceaWmwT|wclRF}ZGd&%r|J35L(YI#_1-5bnSfW-Ou%)u
zfJNG%{Rsq5CSn6E=>oox!E!Xp`70xuB&S)1$7ZgKSGT^WzX4E70|b})7XccRbiy5%
zKNtZFvx?YF0tvZ*oJssc_IA#b;Mzt6sOU{elPcR)32#ak#ixWtWWtk(+d3?BcFt0o
z5GRX)F!8wQ&OC>d_*ucDEq<Ib$q;@Dmyl#Ra2;L;QN{C6DK0XT?%N#%rv!p{lMmb(
z0=USND%>FoEP$_>P$je~Ef14b+-QH%HIS!Ul?TtxK~A;A8XYTGbUBXq0oG74rKmbA
zK{-8#S+V{EybVQJ4a;~8{AAO{Xu+pV1rykfa~^k*DUk*%C}P=)SlA14V>Nsj=?M4T
z8a^5#I~LCbkAXshqAE>g+@b#Z_%YfWr$VaXv>M4OUE~m<8$LEfgq;C3&~SfwJAf|I
zml>}T-Sh_O6@OBdxbkqn>+25qjj#8KE}wS!=!nKR*IBGPP(Y#<9FCM)O+xKCD#;a)
zh^B;t<m?j4#-%F>9DywQf-R_9Hdm9?^76qmG~i@Ou}*``*ZdAmklq@i)w;F`OTR2A
zr)z;xQO@bc8cye@%ZWQAPoIC09p{I(6O89GCFttE;Rqql+4xigbfm_Hc1hXTcM{bn
z^%p9Ht%plk4ac@E&C>Ha|0!H;_lg#jnYZ?_Xh3Y69@B3+(DdugvSI6KD7&?tP0<_-
zq^jY^ePA;j2scACGF>l#^626XbWC6=3cr9Vl);{11)&#xsiYNN9W{Rx&9}j|1c7@Q
zs3rX=FzPBOqo9*e?K5mVA=r6p4d)BjvxB*J4X8a?ytYr=AUv}tOBWTI0hcM;b=D+r
zMDE-n=Bv><6ottz+A>@{)okUs$3M(;LRABI?Pw!YneVY;K+1;s&D83)y0|=eRx7^-
z8Uq(qtewI`V`o5C8AX4O88?-jficq|JY>dztmbr@#HHDMWoV+TNTt<n1$8?5=WOi0
z#m!?jYztHGHN@;5A3YIIZ~>WkTcX}*4Wzxre(s%-W+`YxduQz}+jnj?i_(-<;#x0-
zZ_;n-p1NAO<{Yna^QrG~c9q(kXIK83CdtD*JugiVNCfne+1-C!Mc&2KmHNrp4^)Z5
z$$0k0#}afV`}m;h)b{=I1kwcNRQa&Q7|8G=vUSld>{sL2s}Os^oghuC8@m+TaJHPD
zxL*4N=~{Z;sq2L&@AuA#Hqf7YL8#HK^Pvr%x$lB-M`O222TY8o7y&An+I54S`D8hr
zg)@8V?)rYPD(-(Q@W!qmI`ic$P<m#Pe^=1gu8pCnV)pE`<Lg*%s~hXROTg5>b=Oma
zwgA4$_*&iH793VW-{?-VECJf|z?n}M%fJnFi_{5N(L_{dPxoSR)N-rjH@alKo5eu%
zvevV9C_}YNT}I44YUz*t&~qK^v(WKeJFrjG(rmkA9wvVeo-v`HZc;*wjieu~3OXF2
znQjYJ9o*CLpBr#vCa*`2MRxz3{}d9CpxL|VtK|5Bw{(J~XPT++8G=05pgBOGo!x%5
zdct;=o`*vbE`8VA`m_|lMfLn?JWrg0b4aC<>W|2|eMz^U(x^b{?3IVJhP=qt(MEcn
zyVbjSRr4yedbmgL`tRZYdWZgZ&pssk<6G!oT|$3*WAA?opmzOdmFq1ZY?YsbU$f@m
z$2JMBfSgIu_|62um$nxHXaPN!9~c2R3AuorN&G|hcFvbz7y%Um$J&=57y%!bmKXsu
z0@>h~AQ%B3m+BY+Hw`l50047kbaZKMXLB!?VG{uylYrv{mrfZ03ISP{Ss4L60*B+1
zu;Uz;JrDs9m&6$X8UYcP-x&c%0kfAU8Ua88<mZzO=p~nq8UZQ+?U%V40XzX3m-ZR~
zL;^+blWy)DmslGCDgyKGmxLPuHUb;)mkt~O7L!`=5SPsk0SuS!8vz~xsh15L0Z;;m
z^pmjk7?<b=0SuRe9048yX_ulL0YC*X{Qv-Tmx~MmAD0Fl0UiQk{gaFR9Trea1qJ{B
T00341Rsb*?000I80RR91-#tZE

diff --git a/pkg/vtiger/modules/EmailTemplates/modules/EmailTemplates/views/List.php b/pkg/vtiger/modules/EmailTemplates/modules/EmailTemplates/views/List.php
index 0ba8ca351..225730d59 100644
--- a/pkg/vtiger/modules/EmailTemplates/modules/EmailTemplates/views/List.php
+++ b/pkg/vtiger/modules/EmailTemplates/modules/EmailTemplates/views/List.php
@@ -204,7 +204,7 @@ class EmailTemplates_List_View extends Vtiger_Index_View {
 		}
 
 		$viewer->assign('LIST_VIEW_MODEL', $listViewModel);
-		$viewer->assign('IS_RECORD_CREATABLE', $listViewModel->getModule()->isPermitted('CreateView'));
+		$viewer->assign('IS_CREATE_PERMITTED', $listViewModel->getModule()->isPermitted('CreateView'));
 		$viewer->assign('IS_MODULE_EDITABLE', $listViewModel->getModule()->isPermitted('EditView'));
 		$viewer->assign('IS_MODULE_DELETABLE', $listViewModel->getModule()->isPermitted('Delete'));
 	}
diff --git a/pkg/vtiger/modules/EmailTemplates/modules/EmailTemplates/views/Popup.php b/pkg/vtiger/modules/EmailTemplates/modules/EmailTemplates/views/Popup.php
index 3376e7f80..0179f97e4 100644
--- a/pkg/vtiger/modules/EmailTemplates/modules/EmailTemplates/views/Popup.php
+++ b/pkg/vtiger/modules/EmailTemplates/modules/EmailTemplates/views/Popup.php
@@ -106,7 +106,7 @@ class EmailTemplates_Popup_View extends Vtiger_Popup_View {
 			$viewer->assign('LISTVIEW_COUNT', $this->listViewCount);
 		}
 
-		$viewer->assign('IS_RECORD_CREATABLE', $listViewModel->getModule()->isPermitted('CreateView'));
+		$viewer->assign('IS_CREATE_PERMITTED', $listViewModel->getModule()->isPermitted('CreateView'));
 		$viewer->assign('IS_MODULE_EDITABLE', $listViewModel->getModule()->isPermitted('EditView'));
 		$viewer->assign('IS_MODULE_DELETABLE', $listViewModel->getModule()->isPermitted('Delete'));
 
diff --git a/pkg/vtiger/modules/ModComments/layouts/v7/modules/ModComments/ListViewContents.tpl b/pkg/vtiger/modules/ModComments/layouts/v7/modules/ModComments/ListViewContents.tpl
index 9fa63f8fc..40254a5ec 100644
--- a/pkg/vtiger/modules/ModComments/layouts/v7/modules/ModComments/ListViewContents.tpl
+++ b/pkg/vtiger/modules/ModComments/layouts/v7/modules/ModComments/ListViewContents.tpl
@@ -164,7 +164,7 @@
                                 <div class="emptyRecordsContent">
                                     {assign var=SINGLE_MODULE value="SINGLE_$MODULE"}
                                     {vtranslate('LBL_NO')} {vtranslate($MODULE, $MODULE)} {vtranslate('LBL_FOUND')}.
-                                    {if $IS_RECORD_CREATABLE}
+                                    {if $IS_CREATE_PERMITTED}
                                         <a style="color:blue" href="{$MODULE_MODEL->getCreateRecordUrl()}"> {vtranslate('LBL_CREATE')}</a>
                                         {if Users_Privileges_Model::isPermitted($MODULE, 'Import') && $LIST_VIEW_MODEL->isImportEnabled()}
                                             {vtranslate('LBL_OR', $MODULE)}
-- 
GitLab