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> + <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)} + <span class="fa fa-angle-right" aria-hidden="true"></span> + </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%;'> <span class="fa fa-angle-right" aria-hidden="true"></span> {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> + <span class="fa fa-angle-right" aria-hidden="true"></span> + {vtranslate('LBL_EDITING', $MODULE)} : {vtranslate({$PAGETITLE}, $QUALIFIED_MODULE)} {vtranslate('LBL_OF',$QUALIFIED_MODULE)} {$USER_MODEL->getName()} + {else} + {vtranslate({$PAGETITLE}, $QUALIFIED_MODULE)} <span class="fa fa-angle-right" aria-hidden="true"></span> {$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)} + </a> + <span class="fa fa-angle-right" aria-hidden="true"></span> + {vtranslate('LBL_EDITING', $MODULE)} : {$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} + </a> + <span class="fa fa-angle-right" aria-hidden="true"></span> + {if $smarty.request.view eq 'Edit'} + {if $RECORD} + {vtranslate('LBL_EDITING', $MODULE)} : {$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> + <span class="fa fa-angle-right" aria-hidden="true"></span> + {if $RECORD} + {if $smarty.request.view eq 'Edit'} + {vtranslate('LBL_EDITING', $MODULE)} : + {/if} + {$RECORD->getName()} + {/if} + {else} + {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%;'> <span class="fa fa-angle-right" aria-hidden="true"></span> {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> - {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> + {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> - {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> + {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> <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> <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> - {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> {/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 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 delta 2245 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 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