From 7f16ca0d82dad4eb3d31d1c30c71e8896345ae5a Mon Sep 17 00:00:00 2001
From: satish <satish.dvnk@vtiger.com>
Date: Wed, 15 Feb 2017 15:35:04 +0530
Subject: [PATCH] Mail converter Ui issues

---
 config.php                                    |   4 +
 config_override.php                           |  13 +
 includes/runtime/BaseModel.php                |   2 +-
 .../Settings/MailConverter/EditHeader.tpl     |  11 +-
 .../modules/Settings/MailConverter/Rule.tpl   |  88 +++++-
 .../Settings/MailConverter/RuleEditView.tpl   | 185 ++++++-----
 .../Settings/MailConverter/RulesList.tpl      | 104 +++++-
 .../modules/Settings/MailConverter/Step1.tpl  |  14 +-
 .../modules/Settings/MailConverter/Step2.tpl  |  12 +-
 .../modules/Settings/MailConverter/Step3.tpl  |  34 +-
 .../Settings/MailConverter/resources/Edit.js  | 135 ++++++++
 .../Settings/MailConverter/resources/List.js  |  74 +++++
 .../MailConverter/resources/MailConverter.js  | 185 +++++++++++
 .../ModuleManager/ImportUserModuleStep2.tpl   |  90 +++---
 layouts/v7/skins/images/MailConverter.png     | Bin 0 -> 23902 bytes
 layouts/v7/skins/images/white-drag.png        | Bin 0 -> 326 bytes
 modules/Emails/models/Mailer.php              |   8 +-
 modules/Install/views/Index.php               |   4 +-
 modules/Migration/schema/660_to_700.php       |  17 +-
 .../MailConverter/actions/SaveFolders.php     |  22 +-
 .../MailConverter/actions/ScanNow.php         |  10 +-
 .../handlers/MailScannerAction.php            | 297 +++++++++---------
 .../handlers/MailScannerBodyRule.php          | 171 ----------
 .../Settings/MailConverter/models/Module.php  | 126 ++++----
 .../MailConverter/models/RuleRecord.php       |   4 +-
 modules/Settings/MailConverter/views/Edit.php |   4 +-
 .../Settings/MailConverter/views/EditRule.php |   1 -
 modules/Settings/MailConverter/views/List.php |  33 +-
 .../Settings/MailConverter/views/RuleAjax.php |   4 +
 packages/vtiger/mandatory/Import.zip          | Bin 78982 -> 78952 bytes
 .../v7/modules/Import/ImportLandingPage.tpl   |   8 -
 31 files changed, 1040 insertions(+), 620 deletions(-)
 create mode 100644 config_override.php
 create mode 100644 layouts/v7/modules/Settings/MailConverter/resources/Edit.js
 create mode 100644 layouts/v7/modules/Settings/MailConverter/resources/List.js
 create mode 100644 layouts/v7/modules/Settings/MailConverter/resources/MailConverter.js
 create mode 100644 layouts/v7/skins/images/MailConverter.png
 create mode 100644 layouts/v7/skins/images/white-drag.png
 delete mode 100644 modules/Settings/MailConverter/handlers/MailScannerBodyRule.php

diff --git a/config.php b/config.php
index 3f620e49f..e835cce53 100644
--- a/config.php
+++ b/config.php
@@ -22,6 +22,10 @@ include('config.inc.php');
 
 $THIS_DIR = dirname(__FILE__);
 
+if (file_exists($THIS_DIR.'/config_override.php')) {
+	include_once $THIS_DIR.'/config_override.php';
+}
+
 class VtigerConfig {
 
 	static function get($key, $defvalue='') {
diff --git a/config_override.php b/config_override.php
new file mode 100644
index 000000000..5ee107fea
--- /dev/null
+++ b/config_override.php
@@ -0,0 +1,13 @@
+<?php
+/* +**********************************************************************************
+ * 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.
+ * ***********************************************************************************/
+
+//Maximum number of Mailboxes in mail converter
+$max_mailboxes = 3;
+
diff --git a/includes/runtime/BaseModel.php b/includes/runtime/BaseModel.php
index fb6c93f68..2da7c6594 100644
--- a/includes/runtime/BaseModel.php
+++ b/includes/runtime/BaseModel.php
@@ -28,7 +28,7 @@ class Vtiger_Base_Model {
 	 * @return Value for the given key
 	 */
 	public function get($key){
-		return isset($this->valueMap[$key]) ? $this->valueMap[$key] : false;
+		return $this->valueMap[$key];
 	}
 
 	/**
diff --git a/layouts/v7/modules/Settings/MailConverter/EditHeader.tpl b/layouts/v7/modules/Settings/MailConverter/EditHeader.tpl
index d05fd4a0b..5714e616b 100644
--- a/layouts/v7/modules/Settings/MailConverter/EditHeader.tpl
+++ b/layouts/v7/modules/Settings/MailConverter/EditHeader.tpl
@@ -15,16 +15,19 @@
 			<input type="hidden" id="step" value="{$STEP}" />
 			<h4>
 				{if $CREATE eq 'new'}
-					{vtranslate('LBL_ADDING_NEW_MAILBOX',$QUALIFIED_MODULE)}
+					{vtranslate('LBL_ADDING_NEW_MAILBOX', $QUALIFIED_MODULE)}
 				{else}
-					{vtranslate('LBL_EDIT_MAILBOX',$QUALIFIED_MODULE)}
+					{vtranslate('LBL_EDIT_MAILBOX', $QUALIFIED_MODULE)}
 				{/if}
 			</h4>
 			<hr>
 			<div class="editViewContainer" style="padding-left: 2%;padding-right: 2%">
 				<div class="row">
-					{assign var=BREADCRUMB_LABELS value = ["step1" => "MAILBOX_DETAILS", "step2" => "SELECT_FOLDERS", "step3" => "ADD_RULES"]}
-					{include file="BreadCrumbs.tpl"|vtemplate_path:$QUALIFIED_MODULE ACTIVESTEP=1 BREADCRUMB_LABELS=$BREADCRUMB_LABELS MODULE=$QUALIFIED_MODULE}
+					{assign var=BREADCRUMB_LABELS value = ["step1" => "MAILBOX_DETAILS", "step2" => "SELECT_FOLDERS"]}
+					{if $CREATE eq 'new'}
+						{append var=BREADCRUMB_LABELS index=step3 value=ADD_RULES}
+					{/if}
+					{include file="BreadCrumbs.tpl"|vtemplate_path:$QUALIFIED_MODULE BREADCRUMB_LABELS=$BREADCRUMB_LABELS MODULE=$QUALIFIED_MODULE}
 				</div>
 				<div class="clearfix"></div>
 {/strip}
\ No newline at end of file
diff --git a/layouts/v7/modules/Settings/MailConverter/Rule.tpl b/layouts/v7/modules/Settings/MailConverter/Rule.tpl
index 191fde254..346434162 100644
--- a/layouts/v7/modules/Settings/MailConverter/Rule.tpl
+++ b/layouts/v7/modules/Settings/MailConverter/Rule.tpl
@@ -1,12 +1,76 @@
-{*+**********************************************************************************
- * 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.
- ************************************************************************************}
-{* modules/Settings/MailConverter/views/RuleAjax.php *}
-
-{* START YOUR IMPLEMENTATION FROM BELOW. Use {debug} for information *}
-<DIV>TEMPLATE: layout/modules/Settings/MailConverter/Rule.tpl</DIV>
+{*+**********************************************************************************
+ * 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="mailConverterRuleBlock">
+		<div class="details border1px">
+			<div class="ruleHead modal-header" style="cursor: move; min-height: 30px; padding: 10px 0px;">
+				<strong>
+					<img class="alignMiddle" src="{vimage_path('white-drag.png')}" style="margin-left: 10px;" />&nbsp;&nbsp;{vtranslate('LBL_RULE', $QUALIFIED_MODULE)}&nbsp;<span class="sequenceNumber">{$RULE_COUNT}</span>&nbsp;:&nbsp;{vtranslate($RULE_MODEL->get('action'), $QUALIFIED_MODULE)}
+					<div class="pull-right" style="padding-right: 10px;">
+						{foreach from=$RULE_MODEL->getRecordLinks() item=ACTION_LINK}
+							<span {if stripos($ACTION_LINK->getUrl(), 'javascript:')===0}
+								onclick='{$ACTION_LINK->getUrl()|substr:strlen("javascript:")}'
+								{else}
+									onclick='window.location.href = "{$ACTION_LINK->getUrl()}"'
+								{/if}>
+								<i title="{vtranslate($ACTION_LINK->get('linklabel'), $MODULE)}" class="{$ACTION_LINK->get('linkicon')} alignMiddle cursorPointer"></i>
+							</span>&nbsp;&nbsp;
+						{/foreach}
+					</div>
+				</strong>
+			</div>
+			<fieldset class="marginTop10px">
+				<strong class="marginLeft10px">{vtranslate('LBL_CONDITIONS', $QUALIFIED_MODULE)}</strong>
+				<hr>
+				{foreach key=FIELD_NAME item=FIELD_MODEL from=$FIELDS}
+					<div class="col-lg-12 padding10">
+						<div class="col-lg-1"></div>
+						<div class="col-lg-3 fieldLabel"><label>{vtranslate($FIELD_MODEL->get('label'), $QUALIFIED_MODULE)}</label></div>
+						<div class="col-lg-7 fieldValue">
+							{if $FIELD_NAME neq 'action' && $FIELD_NAME neq 'assigned_to'}
+								{assign var=FIELD_VALUE value=$RULE_MODEL->get($FIELD_NAME)}
+								{if $FIELD_NAME eq 'matchusing'}
+									{assign var=FIELD_VALUE value=vtranslate('LBL_ANY_CONDITIONS', $QUALIFIED_MODULE)}
+									{if $RULE_MODEL->get('matchusing') eq 'AND'}
+										{assign var=FIELD_VALUE value=vtranslate('LBL_ALL_CONDITIONS', $QUALIFIED_MODULE)}
+									{/if}
+								{else if $FIELD_NAME eq 'subject'}
+									{vtranslate($RULE_MODEL->get('subjectop'))}&nbsp;&nbsp;&nbsp;
+								{else if $FIELD_NAME eq 'body'}
+									{vtranslate($RULE_MODEL->get('bodyop'))}&nbsp;&nbsp;&nbsp;
+								{/if}
+								{$FIELD_VALUE}
+							{/if}
+						</div>
+					</div>
+				{/foreach}
+				{assign var=ASSIGNED_TO_RULES_ARRAY value=array('CREATE_HelpDesk_FROM', 'CREATE_Leads_SUBJECT', 'CREATE_Contacts_SUBJECT', 'CREATE_Accounts_SUBJECT')}
+				{if in_array($RULE_MODEL->get('action'), $ASSIGNED_TO_RULES_ARRAY)}
+					<div class="col-lg-12 padding10">
+						<div class="col-lg-1"></div>
+						<div class="col-lg-3 fieldLabel"><label>{vtranslate('Assigned To')}</label></div>
+						<div class="col-lg-7 fieldValue">{$RULE_MODEL->get('assigned_to')}</div>
+					</div>
+				{/if}
+			</fieldset>
+			<hr>
+			<fieldset class="marginTop10px">
+				<strong class="marginLeft10px">{vtranslate('LBL_ACTIONS', $QUALIFIED_MODULE)}</strong>
+				<hr>
+				<div class="col-lg-12 padding10" style="padding-bottom: 10px;">
+					<div class="col-lg-1"></div>
+					<div class="col-lg-3 fieldLabel"><label>{vtranslate('action', $QUALIFIED_MODULE)}</label></div>
+					<div class="col-lg-7 fieldValue">{vtranslate($RULE_MODEL->get('action'), $QUALIFIED_MODULE)}</small></div>
+				</div>
+			</fieldset>
+		</div>
+	</div>
+	<br>
+{/strip}
diff --git a/layouts/v7/modules/Settings/MailConverter/RuleEditView.tpl b/layouts/v7/modules/Settings/MailConverter/RuleEditView.tpl
index dcbc63bfe..c0fdfe609 100644
--- a/layouts/v7/modules/Settings/MailConverter/RuleEditView.tpl
+++ b/layouts/v7/modules/Settings/MailConverter/RuleEditView.tpl
@@ -8,94 +8,105 @@
 *************************************************************************************}
 
 {strip}
-	<div class='modelContainer'>
-		<div class="modal-header contentsBackground">
-			<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
-			<h3>{vtranslate('LBL_ADD_RULE', $QUALIFIED_MODULE)}</h3>
-		</div>
-		<form class="form-horizontal" id="ruleSave" method="post" action="index.php">
-			<input type="hidden" name="module" value="{$MODULE_NAME}" />
-			<input type="hidden" name="parent" value="Settings" />
-			<input type="hidden" name="action" value="SaveRule" />
-			<input type="hidden" name="scannerId" value="{$SCANNER_ID}" />
-			<input type="hidden" name="record" value="{$RECORD_ID}" />
-			<div class="modal-body tabbable">
-				{assign var=FIELDS value=$MODULE_MODEL->getSetupRuleFiels()}
-				{foreach key=FIELD_NAME item=FIELD_MODEL from=$FIELDS}
-					<div class="control-group">
-						<div class="control-label">
-							<label>
-								{vtranslate($FIELD_MODEL->get('label'),$QUALIFIED_MODULE)}
-							</label>
-						</div>
-						<div class="controls">
-							{assign var=FIELD_DATA_TYPE value=$FIELD_MODEL->getFieldDataType()}
-							{if $FIELD_DATA_TYPE eq 'picklist'}
-								{assign var=PICKLIST_VALUES value=$FIELD_MODEL->getPickListValues()}
-								{if $FIELD_NAME eq 'subject'}
-									<select name="subjectop" class="chzn-select" style="min-width:220px">
-										<option value="">{vtranslate('LBL_SELECT_OPTION',$QUALIFIED_MODULE)}</option>
-										{foreach key=PICKLIST_KEY item=PICKLIST_VALUE from=$PICKLIST_VALUES}
-											<option value="{$PICKLIST_KEY}" {if $RECORD_MODEL->get('subjectop') eq $PICKLIST_KEY} selected {/if} >{$PICKLIST_VALUE}</option>
-										{/foreach}
-									</select>&nbsp;&nbsp;
-									<input type="text" name="{$FIELD_MODEL->getName()}" value="{$RECORD_MODEL->get($FIELD_NAME)}" />
-								{elseif $FIELD_NAME eq 'body'}
-									<select name="bodyop" class="chzn-select" style="min-width:220px">
-										<option value="" {if $RECORD_MODEL->get('bodyop') eq ""}selected{/if}>{vtranslate('LBL_SELECT_OPTION',$QUALIFIED_MODULE)}</option>
-										{foreach key=PICKLIST_KEY item=PICKLIST_VALUE from=$PICKLIST_VALUES}
-											<option value="{$PICKLIST_KEY}" {if $RECORD_MODEL->get('bodyop') eq $PICKLIST_KEY} selected {/if} >{$PICKLIST_VALUE}</option>
-										{/foreach}
-									</select>&nbsp;&nbsp;
-									<br><br>
-									<textarea name="{$FIELD_MODEL->getName()}">{$RECORD_MODEL->get($FIELD_NAME)}</textarea>
-								{else}
-									<select id="actions" name="action1" class="select2" style="min-width:220px">
-										{foreach key=PICKLIST_KEY item=PICKLIST_VALUE from=$PICKLIST_VALUES}
-											<option value="{$PICKLIST_KEY}" {if $RECORD_MODEL->get($FIELD_NAME) eq $PICKLIST_KEY} selected {/if} >{$PICKLIST_VALUE}</option>
-										{/foreach}
+	<div class="modelContainer modal-dialog modal-xs" style="width: 600px;">
+		<div class="modal-content">
+			<form class="form-horizontal" id="ruleSave" method="post" action="index.php">
+				{if $RECORD_ID}
+					{assign var=TITLE value={vtranslate('LBL_EDIT_RULE', $QUALIFIED_MODULE)}}
+				{else}
+					{assign var=TITLE value={vtranslate('LBL_ADD_RULE', $QUALIFIED_MODULE)}}
+				{/if}
+				{include file="ModalHeader.tpl"|vtemplate_path:$MODULE TITLE=$TITLE}
+				<input type="hidden" name="module" value="{$MODULE_NAME}" />
+				<input type="hidden" name="parent" value="Settings" />
+				<input type="hidden" name="action" value="SaveRule" />
+				<input type="hidden" name="scannerId" value="{$SCANNER_ID}" />
+				<input type="hidden" name="record" value="{$RECORD_ID}" />
+				<div class="addMailBoxStep modal-body">
+					{assign var=FIELDS value=$MODULE_MODEL->getSetupRuleFields()}
+					<table class="table editview-table no-border">
+						<tbody>
+							{assign var=FIELDS value=$MODULE_MODEL->getSetupRuleFields()}
+							{foreach key=FIELD_NAME item=FIELD_MODEL from=$FIELDS}
+								<tr class="row">
+									<td class="col-lg-2 control-label"><label class="fieldLabel">{vtranslate($FIELD_MODEL->get('label'), $QUALIFIED_MODULE)}</label>
+									<td class="col-lg-4">
+										{assign var=FIELD_DATA_TYPE value=$FIELD_MODEL->getFieldDataType()}
+										{if $FIELD_DATA_TYPE eq 'picklist'}
+											{assign var=PICKLIST_VALUES value=$FIELD_MODEL->getPickListValues()}
+											{if $FIELD_NAME eq 'subject'}
+												<select name="subjectop" class="select2 fieldValue inputElement">
+													<option value="">{vtranslate('LBL_SELECT_OPTION', $QUALIFIED_MODULE)}</option>
+													{foreach key=PICKLIST_KEY item=PICKLIST_VALUE from=$PICKLIST_VALUES}
+														<option value="{$PICKLIST_KEY}" {if $RECORD_MODEL->get('subjectop') eq $PICKLIST_KEY} selected {/if} >{$PICKLIST_VALUE}</option>
+													{/foreach}
+												</select>&nbsp;&nbsp;
+											{elseif $FIELD_NAME eq 'body'}
+												<select name="bodyop" class="select2 fieldValue inputElement">
+													<option value="" {if $RECORD_MODEL->get('bodyop') eq ""}selected{/if}>{vtranslate('LBL_SELECT_OPTION', $QUALIFIED_MODULE)}</option>
+													{foreach key=PICKLIST_KEY item=PICKLIST_VALUE from=$PICKLIST_VALUES}
+														<option value="{$PICKLIST_KEY}" {if $RECORD_MODEL->get('bodyop') eq $PICKLIST_KEY} selected {/if} >{$PICKLIST_VALUE}</option>
+													{/foreach}
+												</select>
+												<br><br>
+												<textarea name="{$FIELD_MODEL->getName()}" class="form-control col-sm-12" style="padding: 3px 8px;">{$RECORD_MODEL->get($FIELD_NAME)}</textarea>
+											{else}
+												<select id="actions" name="action1" class="select2 fieldValue inputElement">
+													{foreach key=PICKLIST_KEY item=PICKLIST_VALUE from=$PICKLIST_VALUES}
+														<option value="{$PICKLIST_KEY}" {if $RECORD_MODEL->get($FIELD_NAME) eq $PICKLIST_KEY} selected {/if} >{$PICKLIST_VALUE}</option>
+													{/foreach}
+												</select>
+											{/if}
+										{elseif $FIELD_DATA_TYPE eq 'radio'}
+											{assign var=RADIO_OPTIONS value=$FIELD_MODEL->getRadioOptions()}
+											{foreach key=RADIO_NAME item=RADIO_VALUE from=$RADIO_OPTIONS}
+												<label class="radioOption inline">
+													<input class="radioOption" type="radio" name="{$FIELD_MODEL->getName()}" value="{$RADIO_NAME}" {if $RECORD_MODEL->get($FIELD_NAME) eq $RADIO_NAME} checked {/if} />
+													{$RADIO_VALUE}
+												</label>&nbsp;&nbsp;&nbsp;&nbsp;
+											{/foreach}
+										{elseif $FIELD_DATA_TYPE eq 'email'}
+											<input type="text" class="fieldValue inputElement" name="{$FIELD_MODEL->getName()}" value="{$RECORD_MODEL->get($FIELD_NAME)}" data-validation-engine="validate[funcCall[Vtiger_Email_Validator_Js.invokeValidation]]"/>
+										{else}
+											<input type="text" class="fieldValue inputElement" name="{$FIELD_MODEL->getName()}" value="{$RECORD_MODEL->get($FIELD_NAME)}"/>
+										{/if}
+									</td>
+									<td class="col-lg-4">
+										{if $FIELD_NAME eq 'subject'}
+											<input type="text" class="fieldValue inputElement" name="{$FIELD_MODEL->getName()}" value="{$RECORD_MODEL->get($FIELD_NAME)}" />
+										{/if}
+									</td>
+								</tr>
+							{/foreach}
+							<tr class="row" id="assignedToBlock">
+								<td class="col-lg-2 control-label"><label class="fieldLabel">{vtranslate('Assigned To')}</label></td>
+								<td class="col-lg-4">
+									<select class="select2 fieldValue inputElement" id="assignedTo" name="assignedTo">
+										<optgroup label="{vtranslate('LBL_USERS')}">
+											{assign var=USERS value=$USER_MODEL->getAccessibleUsersForModule($MODULE_NAME)}
+											{foreach key=OWNER_ID item=OWNER_NAME from=$USERS}
+												<option value="{$OWNER_ID}" data-picklistvalue= '{$OWNER_NAME}' {if $ASSIGNED_USER eq $OWNER_ID} selected {/if}>
+													{$OWNER_NAME}
+												</option>
+											{/foreach}
+										</optgroup>
+										<optgroup label="{vtranslate('LBL_GROUPS')}">
+											{assign var=GROUPS value=$USER_MODEL->getAccessibleGroups()}	
+											{foreach key=OWNER_ID item=OWNER_NAME from=$GROUPS}
+												<option value="{$OWNER_ID}" data-picklistvalue= '{$OWNER_NAME}' {if $ASSIGNED_USER eq $OWNER_ID} selected {/if}>
+													{$OWNER_NAME}
+												</option>
+											{/foreach}
+										</optgroup>
 									</select>
-								{/if}
-							{elseif $FIELD_DATA_TYPE eq 'radio'}
-								{assign var=RADIO_OPTIONS value=$FIELD_MODEL->getRadioOptions()}
-								{foreach key=RADIO_NAME item=RADIO_VALUE from=$RADIO_OPTIONS}
-									<label class="radio inline">
-										<input class="radio" type="radio" name="{$FIELD_MODEL->getName()}" value="{$RADIO_NAME}" 
-											{if empty($RECORD_ID) && ($RADIO_NAME eq 'AND')} checked="" {/if} {if $RECORD_MODEL->get($FIELD_NAME) eq $RADIO_NAME} checked {/if} />
-										{$RADIO_VALUE}
-									</label>
-								{/foreach}
-							{elseif $FIELD_DATA_TYPE eq 'email'}
-								<input type="text" name="{$FIELD_MODEL->getName()}" value="{$RECORD_MODEL->get($FIELD_NAME)}" data-validation-engine="validate[funcCall[Vtiger_Email_Validator_Js.invokeValidation]]"/>
-							{else}
-								<input type="text" name="{$FIELD_MODEL->getName()}" value="{$RECORD_MODEL->get($FIELD_NAME)}"/>
-							{/if}	
-						</div>
-					</div>	
-				{/foreach}
-				<div style="" id="assignedToBlock" {if $RECORD_MODEL->get('action') eq 'UPDATE_HelpDesk_SUBJECT'}class="hide"{/if}>
-					<div class="control-label">
-						<label>{vtranslate('Assigned To')}</label>
-					</div>
-					<div class="controls">
-						<select class="select2-container select2" id="assignedTo" name="assignedTo" style="width: 49%;">
-							<optgroup label="{vtranslate('LBL_USERS')}">
-								{assign var=USERS value=$USER_MODEL->getAccessibleUsersForModule($MODULE_NAME)}
-								{foreach key=OWNER_ID item=OWNER_NAME from=$USERS}
-									<option value="{$OWNER_ID}" data-picklistvalue= '{$OWNER_NAME}' {if $ASSIGNED_USER eq $OWNER_ID} selected {/if}>{$OWNER_NAME}</option>
-								{/foreach}
-							</optgroup>
-							<optgroup label="{vtranslate('LBL_GROUPS')}">
-								{assign var=GROUPS value=$USER_MODEL->getAccessibleGroups()}	
-								{foreach key=OWNER_ID item=OWNER_NAME from=$GROUPS}
-									<option value="{$OWNER_ID}" data-picklistvalue= '{$OWNER_NAME}' {if $ASSIGNED_USER eq $OWNER_ID} selected {/if}>{$OWNER_NAME}</option>
-								{/foreach}
-							</optgroup>
-						</select>
-					</div>
+								</td>
+								<td class="col-lg-4"></td>
+							</tr>
+						</tbody>
+					</table>
 				</div>
-			</div>
-			{include file='ModalFooter.tpl'|@vtemplate_path:$QUALIFIED_MODULE}
-		</form>
+				{include file='ModalFooter.tpl'|@vtemplate_path:$QUALIFIED_MODULE}
+			</form>
+		</div>
 	</div>
 {/strip}
diff --git a/layouts/v7/modules/Settings/MailConverter/RulesList.tpl b/layouts/v7/modules/Settings/MailConverter/RulesList.tpl
index cc8ea5802..2b26044f5 100644
--- a/layouts/v7/modules/Settings/MailConverter/RulesList.tpl
+++ b/layouts/v7/modules/Settings/MailConverter/RulesList.tpl
@@ -1,12 +1,92 @@
-{*+**********************************************************************************
- * 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.
- ************************************************************************************}
-{* modules/Settings/MailConverter/views/List.php *}
-
-{* START YOUR IMPLEMENTATION FROM BELOW. Use {debug} for information *}
-<DIV>TEMPLATE: layout/modules/Settings/MailConverter/RulesList.tpl</DIV>
+{*+**********************************************************************************
+* 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="listViewContentDiv col-lg-12">
+		<h4>{vtranslate($MODULE, $QUALIFIED_MODULE)}</h4>
+		<hr>
+		{if !$RECORD_EXISTS}
+			<div class="mailConveterDesc">
+				<center><br><br>
+					<div>{vtranslate('LBL_MAILCONVERTER_DESCRIPTION', $QUALIFIED_MODULE)}</div>
+					<img src="{vimage_path('MailConverter.png')}" alt="Mail Converter"><br><br>
+					<a onclick="window.location.href='{$MODULE_MODEL->getCreateRecordUrl()}'" style="color: #15c !important;"><u class="cursorPointer" style="font-size:12pt;">{vtranslate('LBL_CREATE_MAILBOX_NOW', $QUALIFIED_MODULE)}</u></a>
+					<br><br>
+				</center>
+			</div>
+		{else}
+			<input type="hidden" id="scannerId" value="{$SCANNER_ID}"/>
+			<div class="col-lg-12">
+				<div class="col-lg-4 mailBoxDropdownWrapper" style="padding-left: 0px;">
+					<select class="mailBoxDropdown select2" style="max-width: 300px; min-width: 200px;">
+						{foreach item=SCANNER from=$MAILBOXES}
+							<option value="{$SCANNER['scannerid']}" {if $SCANNER_ID eq $SCANNER['scannerid']}selected{/if}>{$SCANNER['scannername']}</option>
+						{/foreach}
+					</select>
+				</div>
+				<div class="col-lg-4" id="mailConverterStats">
+					{if $CRON_RECORD_MODEL->isEnabled()}
+						{if $CRON_RECORD_MODEL->hadTimedout()}
+							{vtranslate('LBL_LAST_SCAN_TIMED_OUT', $QUALIFIED_MODULE_NAME)}.
+						{elseif $CRON_RECORD_MODEL->getLastEndDateTime() neq ''}
+							{vtranslate('LBL_LAST_SCAN_AT', $QUALIFIED_MODULE_NAME)}
+							{$CRON_RECORD_MODEL->getLastEndDateTime()}
+							<br />
+							{vtranslate('LBL_FOLDERS_SCANNED', $QUALIFIED_MODULE_NAME)}&nbsp;:&nbsp;
+							{foreach from=$FOLDERS_SCANNED item=FOLDER}<strong>{$FOLDER}&nbsp;&nbsp;</strong>{/foreach}
+						{/if}
+					{/if}
+				</div>
+				<div class="col-lg-4" style="padding-right: 0px;">
+					<div class="btn-group pull-right">
+						<button class="btn btn-default addButton" id="addRuleButton" title="{vtranslate('LBL_DRAG_AND_DROP_BLOCK_TO_PRIORITISE_THE_RULE', $QUALIFIED_MODULE)}"
+							{if stripos($SCANNER_MODEL->getCreateRuleRecordUrl(), 'javascript:')===0}
+								onclick='{$SCANNER_MODEL->getCreateRuleRecordUrl()|substr:strlen("javascript:")}' 
+							{else}
+								onclick='window.location.href="{$SCANNER_MODEL->getCreateRuleRecordUrl()}"'
+							{/if}>
+							<i class="fa fa-plus"></i>&nbsp;&nbsp;{vtranslate('LBL_ADD_RULE', $QUALIFIED_MODULE)}
+						</button>
+						<button href="javascript:void(0);" data-toggle="dropdown" class="btn btn-default" style="margin-left: 4px;">
+							{vtranslate('LBL_ACTIONS', $QUALIFIED_MODULE_NAME)}&nbsp;<i class="caret"></i>
+						</button>
+						<ul class="dropdown-menu pull-right">
+							{foreach item=LINK from=$RECORD->getRecordLinks()}
+								<li>
+									<a {if strpos($LINK->getUrl(), 'javascript:')===0} href='javascript:void(0);' onclick='{$LINK->getUrl()|substr:strlen("javascript:")};'{else}href={$LINK->getUrl()}{/if}>
+										{vtranslate($LINK->getLabel(), $QUALIFIED_MODULE)}
+									</a>
+								</li>
+							{/foreach}
+						</ul>
+					</div>
+				</div>
+			</div>	
+			<br>
+			<div id="mailConverterBody" class="col-lg-12">
+				<br>
+				<div id="rulesList">
+					{if count($RULE_MODELS_LIST)}
+						{assign var=RULE_COUNT value=1}
+						{assign var=FIELDS value=$MODULE_MODEL->getSetupRuleFields()}
+						{foreach from=$RULE_MODELS_LIST item=RULE_MODEL}
+							<div class="row-fluid padding-bottom1per rule" data-id="{$RULE_MODEL->get('ruleid')}" data-blockid="block_{$RULE_MODEL->get('ruleid')}">
+								{include file="Rule.tpl"|@vtemplate_path:$QUALIFIED_MODULE RULE_COUNT=$RULE_COUNT}
+							</div>
+							{assign var=RULE_COUNT value=$RULE_COUNT+1}
+						{/foreach}
+					{else}
+						<div class="details border1px" style="text-align: center; min-height: 200px; padding-top: 100px;">
+							{vtranslate('LBL_NO_RULES', $QUALIFIED_MODULE)}
+						</div>
+					{/if}
+				</div>
+			</div>
+		{/if}
+{/strip}
diff --git a/layouts/v7/modules/Settings/MailConverter/Step1.tpl b/layouts/v7/modules/Settings/MailConverter/Step1.tpl
index c2b8c8937..cd06a1801 100644
--- a/layouts/v7/modules/Settings/MailConverter/Step1.tpl
+++ b/layouts/v7/modules/Settings/MailConverter/Step1.tpl
@@ -30,11 +30,13 @@
 									{continue}
 								{/if}
 								<tr>
-									<td class="fieldLabel" style="width:20%;"><label>{vtranslate($FIELD_MODEL->get('label'),$QUALIFIED_MODULE)}</label></td>
-									<td class="fieldValue">
+									<td class="fieldLabel control-label" style="width:25%;">
+										<label>{vtranslate($FIELD_MODEL->get('label'), $QUALIFIED_MODULE)}{if $FIELD_MODEL->isMandatory()} <span class="redColor">*</span>{/if}</label>
+									</td>
+									<td style="word-wrap:break-word;">
 										{assign var=FIELD_DATA_TYPE value=$FIELD_MODEL->getFieldDataType()}
 										{if $FIELD_DATA_TYPE eq 'password'}
-											<input class="inputElement" type="password" name="{$FIELD_MODEL->getName()}" {if $RECORD_EXISTS} value="{$RECORD_MODEL->get($FIELD_NAME)}" {/if}
+											<input class="fieldValue inputElement" type="password" name="{$FIELD_MODEL->getName()}" {if $RECORD_EXISTS} value="{$RECORD_MODEL->get($FIELD_NAME)}" {/if}
 												{if $FIELD_MODEL->isMandatory()}data-validation-engine="validate[required]"{/if} />
 										{elseif $FIELD_DATA_TYPE eq 'boolean'}
 											{assign var=RECORD_ID value=$RECORD_MODEL->getId()}
@@ -46,7 +48,7 @@
 											{if $FIELD_MODEL->getName() eq 'time_zone' && empty($FIELD_VALUE)}
 												{assign var=FIELD_VALUE value=" "}
 											{/if}
-											<select name="{$FIELD_MODEL->getName()}" class="select2 inputElement"
+											<select name="{$FIELD_MODEL->getName()}" class="select2 fieldValue inputElement"
 												{* to show dropdown above *}
 												{if $FIELD_MODEL->getName() eq 'time_zone'}
 													data-dropdownCssClass="select2-drop-above"
@@ -55,7 +57,7 @@
 												{if $FIELD_MODEL->getName() eq 'time_zone'}
 													{* since in time zone its array of value and key, since there will mutiple areas with same time_zone *}
 													{foreach item=PICKLIST_VALUE key=PICKLIST_KEY from=$PICKLIST_VALUES}
-														<option value="{$PICKLIST_KEY}" {if $FIELD_VALUE eq $PICKLIST_KEY} selected {/if} >{vtranslate($PICKLIST_VALUE,$QUALIFIED_MODULE)}</option>
+														<option value="{$PICKLIST_KEY}" {if $FIELD_VALUE eq $PICKLIST_KEY} selected {/if} >{vtranslate($PICKLIST_VALUE, $QUALIFIED_MODULE)}</option>
 													{/foreach}
 												{else}
 													{foreach key=PICKLIST_KEY item=PICKLIST_VALUE from=$PICKLIST_VALUES}
@@ -77,7 +79,7 @@
 												</label>&nbsp;&nbsp;&nbsp;&nbsp;
 											{/foreach}
 										{else}
-											<input type="text" class="inputElement" name="{$FIELD_MODEL->getName()}" {if $FIELD_MODEL->isMandatory()}data-validation-engine="validate[required]"{/if} value="{$RECORD_MODEL->get($FIELD_NAME)}"/>
+											<input type="text" class="fieldValue inputElement" name="{$FIELD_MODEL->getName()}" {if $FIELD_MODEL->isMandatory()}data-validation-engine="validate[required]"{/if} value="{$RECORD_MODEL->get($FIELD_NAME)}"/>
 										{/if}
 									</td>
 								</tr>
diff --git a/layouts/v7/modules/Settings/MailConverter/Step2.tpl b/layouts/v7/modules/Settings/MailConverter/Step2.tpl
index aadb8ac97..253e6d138 100644
--- a/layouts/v7/modules/Settings/MailConverter/Step2.tpl
+++ b/layouts/v7/modules/Settings/MailConverter/Step2.tpl
@@ -14,7 +14,7 @@
 				{if $IMAP_ERROR}
 					{$IMAP_ERROR}
 				{else if $CONNECTION_ERROR}
-					{vtranslate('LBL_CONNECTION_ERROR',$QUALIFIED_MODULE)}
+					{vtranslate('LBL_CONNECTION_ERROR', $QUALIFIED_MODULE)}
 				{/if}
 			</strong>
 		</div>
@@ -22,17 +22,19 @@
 	{/if}
 	<div class="addMailBoxBlock">
 		<div class="row col-lg-12 padding-bottom1per">
-			<div id="mailConverterDragIcon"><i class="icon-info-sign"></i>&nbsp;&nbsp;{vtranslate('TO_CHANGE_THE_FOLDER_SELECTION_DESELECT_ANY_OF_THE_SELECTED_FOLDERS',$QUALIFIED_MODULE)}</div>
+			<div id="mailConverterDragIcon"><i class="icon-info-sign"></i>&nbsp;&nbsp;{vtranslate('TO_CHANGE_THE_FOLDER_SELECTION_DESELECT_ANY_OF_THE_SELECTED_FOLDERS', $QUALIFIED_MODULE)}</div>
 		</div>
 		<br>
 		<br>
 		<form class="form-horizontal" id="mailBoxEditView" name="step2">
 			<div class="block">
-				<div class="addMailBoxStep row">
+				<div class="addMailBoxStep row" style="margin-top: 10px; margin-bottom: 10px;">
 					{foreach key=FOLDER item=SELECTED from=$FOLDERS}
 						<div class="col-lg-3">
-							<input type="checkbox" name="folders" value="{$FOLDER}" {if $SELECTED eq 'checked'}checked{/if}>
-							&nbsp;&nbsp;&nbsp;{$FOLDER}
+							<label>
+								<input type="checkbox" name="folders" value="{$FOLDER}" {if $SELECTED eq 'checked'}checked{/if}>
+								<span>&nbsp;&nbsp;{$FOLDER}</span>
+							</label>
 						</div>
 					{/foreach}
 				</div>
diff --git a/layouts/v7/modules/Settings/MailConverter/Step3.tpl b/layouts/v7/modules/Settings/MailConverter/Step3.tpl
index 277d1c88c..b8a82992a 100644
--- a/layouts/v7/modules/Settings/MailConverter/Step3.tpl
+++ b/layouts/v7/modules/Settings/MailConverter/Step3.tpl
@@ -19,33 +19,33 @@
 				<div class="row">
 					<table class="table editview-table no-border">
 						<tbody>
-							{assign var=FIELDS value=$MODULE_MODEL->getSetupRuleFiels()}
+							{assign var=FIELDS value=$MODULE_MODEL->getSetupRuleFields()}
 							{foreach key=FIELD_NAME item=FIELD_MODEL from=$FIELDS}
 								<tr>
-									<td class="fieldLabel" style="width:20%;"><label>{vtranslate($FIELD_MODEL->get('label'),$QUALIFIED_MODULE)}</label></td>
-									<td class="fieldValue">
+									<td class="fieldLabel control-label" style="width:25%; padding-right:20px;"><label>{vtranslate($FIELD_MODEL->get('label'), $QUALIFIED_MODULE)}</label>
+									<td style="word-wrap:break-word;">
 										{assign var=FIELD_DATA_TYPE value=$FIELD_MODEL->getFieldDataType()}
 										{if $FIELD_DATA_TYPE eq 'picklist'}
 											{assign var=PICKLIST_VALUES value=$FIELD_MODEL->getPickListValues()}
 											{if $FIELD_NAME eq 'subject'}
-												<select name="subjectop" class="select2 inputElement">
-													<option value="">{vtranslate('LBL_SELECT_OPTION',$QUALIFIED_MODULE)}</option>
+												<select name="subjectop" class="select2 fieldValue inputElement">
+													<option value="">{vtranslate('LBL_SELECT_OPTION', $QUALIFIED_MODULE)}</option>
 													{foreach key=PICKLIST_KEY item=PICKLIST_VALUE from=$PICKLIST_VALUES}
 														<option value="{$PICKLIST_KEY}" {if $RECORD_MODEL->get('subjectop') eq $PICKLIST_KEY} selected {/if} >{$PICKLIST_VALUE}</option>
 													{/foreach}
 												</select>&nbsp;&nbsp;
-												<input type="text" class="inputElement" name="{$FIELD_MODEL->getName()}" value="{$RECORD_MODEL->get($FIELD_NAME)}" style="margin-left: 10px;" />
+												<input type="text" class="fieldValue inputElement" name="{$FIELD_MODEL->getName()}" value="{$RECORD_MODEL->get($FIELD_NAME)}" style="margin-left: 10px;" />
 											{elseif $FIELD_NAME eq 'body'}
-												<select name="bodyop" class="select2 inputElement">
-													<option value="" {if $RECORD_MODEL->get('bodyop') eq ""}selected{/if}>{vtranslate('LBL_SELECT_OPTION',$QUALIFIED_MODULE)}</option>
+												<select name="bodyop" class="select2 fieldValue inputElement">
+													<option value="" {if $RECORD_MODEL->get('bodyop') eq ""}selected{/if}>{vtranslate('LBL_SELECT_OPTION', $QUALIFIED_MODULE)}</option>
 													{foreach key=PICKLIST_KEY item=PICKLIST_VALUE from=$PICKLIST_VALUES}
 														<option value="{$PICKLIST_KEY}" {if $RECORD_MODEL->get('bodyop') eq $PICKLIST_KEY} selected {/if} >{$PICKLIST_VALUE}</option>
 													{/foreach}
-												</select>&nbsp;&nbsp;
+												</select>
 												<br><br>
-												<textarea name="{$FIELD_MODEL->getName()}" class="boxSizingBorderBox inputElement" style="width:416px;padding: 3px 8px;">{$RECORD_MODEL->get($FIELD_NAME)}</textarea>
+												<textarea name="{$FIELD_MODEL->getName()}" class="boxSizingBorderBox fieldValue inputElement" style="width:416px;padding: 3px 8px;">{$RECORD_MODEL->get($FIELD_NAME)}</textarea>
 											{else}
-												<select id="actions" name="action1" class="select2 inputElement" style="min-width:220px">
+												<select id="actions" name="action1" class="select2 fieldValue inputElement" style="min-width:220px">
 													{foreach key=PICKLIST_KEY item=PICKLIST_VALUE from=$PICKLIST_VALUES}
 														<option value="{$PICKLIST_KEY}" {if $RECORD_MODEL->get($FIELD_NAME) eq $PICKLIST_KEY} selected {/if} >{$PICKLIST_VALUE}</option>
 													{/foreach}
@@ -60,17 +60,17 @@
 												</label>&nbsp;&nbsp;&nbsp;&nbsp;
 											{/foreach}
 										{elseif $FIELD_DATA_TYPE eq 'email'}
-											<input type="text" class="inputElement" name="{$FIELD_MODEL->getName()}" value="{$RECORD_MODEL->get($FIELD_NAME)}" data-validation-engine="validate[funcCall[Vtiger_Email_Validator_Js.invokeValidation]]"/>
+											<input type="text" class="fieldValue inputElement" name="{$FIELD_MODEL->getName()}" value="{$RECORD_MODEL->get($FIELD_NAME)}" data-validation-engine="validate[funcCall[Vtiger_Email_Validator_Js.invokeValidation]]"/>
 										{else}
-											<input type="text" class="inputElement" name="{$FIELD_MODEL->getName()}" value="{$RECORD_MODEL->get($FIELD_NAME)}"/>
+											<input type="text" class="fieldValue inputElement" name="{$FIELD_MODEL->getName()}" value="{$RECORD_MODEL->get($FIELD_NAME)}"/>
 										{/if}
 									</td>
 								</tr>
 							{/foreach}
-							<tr>
-								<td class="fieldLabel" style="width:20%;"><label>{vtranslate('Assigned To')}</label></td>
-								<td class="fieldValue">
-									<select class="select2 inputElement" id="assignedTo" name="assignedTo">
+							<tr id="assignedToBlock">
+								<td class="fieldLabel control-label" style="width:25%; padding-right:20px;"><label>{vtranslate('Assigned To')}</label></td>
+								<td style="word-wrap:break-word;">
+									<select class="select2 fieldValue inputElement" id="assignedTo" name="assignedTo">
 										<optgroup label="{vtranslate('LBL_USERS')}">
 											{assign var=USERS value=$USER_MODEL->getAccessibleUsersForModule($MODULE_NAME)}
 											{foreach key=OWNER_ID item=OWNER_NAME from=$USERS}
diff --git a/layouts/v7/modules/Settings/MailConverter/resources/Edit.js b/layouts/v7/modules/Settings/MailConverter/resources/Edit.js
new file mode 100644
index 000000000..3cdceff84
--- /dev/null
+++ b/layouts/v7/modules/Settings/MailConverter/resources/Edit.js
@@ -0,0 +1,135 @@
+/*+**********************************************************************************
+ * The contents of this file are subject to the vtiger CRM Public License Version 1.0
+ * ("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.
+ ************************************************************************************/
+
+Vtiger.Class('Settings_MailConverter_Edit_Js', {
+	firstStep: function (e) {
+		var form = jQuery('#mailBoxEditView');
+		var params = {
+			submitHandler: function (form) {
+				var form = jQuery(form);
+				form.find('[name="saveButton"]').attr('disabled', 'disabled');
+				Settings_MailConverter_Edit_Js.saveMailBox(form);
+			}
+		}
+		form.vtValidate(params);
+
+		form.submit(function (e) {
+			e.preventDefault();
+		});
+	},
+
+	saveMailBox: function (form) {
+		var params = form.serializeFormData();
+		params.scannername = jQuery('input[name="scannername"]').val();
+		params.module = app.getModuleName();
+		params.parent = app.getParentModuleName();
+		params.action = 'SaveMailBox';
+
+		app.helper.showProgress();
+		app.request.post({'data': params}).then(function (err, data) {
+			app.helper.hideProgress();
+			if (typeof data != 'undefined') {
+				var create = jQuery("#create").val();
+				window.location.href = 'index.php?module='+app.getModuleName()+'&parent='+app.getParentModuleName()+'&view=Edit&mode=step2&create='+create+'&record='+data.id;
+			} else {
+				app.helper.showErrorNotification({'message': err['message']});
+			}
+		});
+	},
+
+	secondStep: function (e) {
+		var form = jQuery('#mailBoxEditView');
+		var params = {
+			submitHandler: function (form) {
+				var form = jQuery(form);
+				var checked = jQuery('input[type=checkbox][name=folders]:checked').length;
+				if (checked < 1) {
+					app.helper.showAlertNotification({'message': app.vtranslate('JS_SELECT_ONE_FOLDER')});
+					return false;
+				} else {
+					form.find('[name="saveButton"]').attr('disabled', 'disabled');
+					var selectedFolders = jQuery('input[name=folders]:checked').map(function () {
+						return jQuery(this).val();
+					}).get();
+					Settings_MailConverter_Edit_Js.saveFolders(selectedFolders);
+				}
+			}
+		}
+		form.vtValidate(params);
+
+		form.submit(function (e) {
+			e.preventDefault();
+		});
+	},
+
+	saveFolders: function (selectedFolders) {
+		var create = jQuery('#create').val();
+		var id = jQuery('#recordId').val();
+		var url = 'module='+app.getModuleName()+'&parent='+app.getParentModuleName()+'&action=SaveFolders&folders='+selectedFolders+'&create='+create+'&record='+id;
+
+		app.helper.showProgress();
+		app.request.post({'url': url}).then(function (err, data) {
+			app.helper.hideProgress();
+			if (typeof data != 'undefined') {
+				var fallbackUrl = 'index.php?module='+app.getModuleName()+'&parent='+app.getParentModuleName()+'&view=List&record='+data.id;
+				if (create == 'new') {
+					fallbackUrl = 'index.php?module='+app.getModuleName()+'&parent='+app.getParentModuleName()+'&view=Edit&mode=step3&create='+create+'&record='+data.id;
+				}
+				window.location.href = fallbackUrl;
+			} else {
+				app.helper.showErrorNotification({'message': err['message']});
+			}
+		});
+	},
+
+	thirdStep: function (e) {
+		var form = jQuery('#ruleSave');
+		var params = {
+			submitHandler: function (form) {
+				var form = jQuery(form);
+				form.find('[name="saveButton"]').attr('disabled', 'disabled');
+				Settings_MailConverter_Edit_Js.saveRule(form);
+			}
+		}
+		form.vtValidate(params);
+
+		form.submit(function (e) {
+			e.preventDefault();
+		});
+	},
+
+	saveRule: function (form) {
+		app.helper.showProgress();
+		var params = form.serializeFormData();
+		params.record = '';
+		app.request.post({'data': params}).then(function (err, data) {
+			app.helper.hideProgress();
+			if (typeof data != 'undefined') {
+				window.location.href = 'index.php?module='+app.getModuleName()+'&parent='+app.getParentModuleName()+'&view=List&record='+data.scannerId;
+			} else {
+				app.helper.showErrorNotification({'message': err['message']});
+			}
+		});
+	},
+
+	/*
+	 * Function to activate the header based on the class
+	 * @params class name
+	 */
+	activateHeader: function () {
+		var step = jQuery('#step').val();
+		jQuery('#'+step).addClass('active');
+	}
+
+},{
+	registerEvents: function () {
+		Settings_MailConverter_Edit_Js.firstStep();
+		Settings_MailConverter_Edit_Js.activateHeader();
+	}
+});
\ No newline at end of file
diff --git a/layouts/v7/modules/Settings/MailConverter/resources/List.js b/layouts/v7/modules/Settings/MailConverter/resources/List.js
new file mode 100644
index 000000000..974be236f
--- /dev/null
+++ b/layouts/v7/modules/Settings/MailConverter/resources/List.js
@@ -0,0 +1,74 @@
+/*+**********************************************************************************
+ * The contents of this file are subject to the vtiger CRM Public License Version 1.0
+ * ("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.
+ ************************************************************************************/
+
+Settings_Vtiger_Index_Js('Settings_MailConverter_List_Js', {
+
+	checkMailBoxMaxLimit: function (url) {
+		app.request.post({'url': url}).then(function (err, data) {
+			if (typeof response.result != 'undefined') {
+				window.location.href = 'index.php?module='+app.getModuleName()+'&parent='+app.getParentModuleName()+'&view=Edit&mode=step1&create=new';
+			} else {
+				app.helper.showErrorNotification({'message': err['message']});
+			}
+		});
+	},
+
+	triggerScan: function (url) {
+		app.helper.showProgress();
+		app.request.post({'url': url}).then(function (err, data) {
+			app.helper.hideProgress();
+			if (typeof data != 'undefined') {
+				app.helper.showSuccessNotification({'message': data.message});
+			} else {
+				app.helper.showErrorNotification({'message': err['message']});
+			}
+		});
+	},
+
+	triggerDelete: function (url) {
+		app.helper.showConfirmationBox({'message': app.vtranslate('LBL_DELETE_CONFIRMATION')}).then(function () {
+			app.helper.showProgress();
+			app.request.post({'url': url}).then(function (err, data) {
+				jQuery('#SCANNER_'+data.id).remove();
+				var url = window.location.href;
+				var url1 = url.split('&');
+				var path = url1[0]+'&'+url1[1]+'&'+url1[2];
+				app.helper.showSuccessNotification({'message': app.vtranslate('JS_MAILBOX_DELETED_SUCCESSFULLY')});
+				app.helper.hideProgress();
+				window.location.assign(path);
+			});
+		});
+	},
+
+	loadMailBox: function (params) {
+		params.module = app.getModuleName();
+		params.parent = app.getParentModuleName();
+		params.view = 'ListAjax';
+		params.mode = 'getMailBoxContentView'
+
+		app.helper.showProgress();
+		app.request.post({'data': params}).then(function (err, html) {
+			app.helper.hideProgress();
+			var scannerContentdId = 'SCANNER_'+params.record;
+			if (jQuery('#'+scannerContentdId).length > 0) {
+				jQuery('#'+scannerContentdId).html(html)
+			} else {
+				jQuery('#listViewContents').append('<br>'+html);
+			}
+			app.helper.showSuccessNotification({'message': app.vtranslate('JS_MAILBOX_LOADED_SUCCESSFULLY')});
+			if (typeof params.listViewUrl != 'undefined') {
+				var path = params.listViewUrl+'&record='+params.record;
+				window.location.assign(path);
+			}
+		});
+	}
+}, {
+	registerEvents: function () {
+	}
+})
\ No newline at end of file
diff --git a/layouts/v7/modules/Settings/MailConverter/resources/MailConverter.js b/layouts/v7/modules/Settings/MailConverter/resources/MailConverter.js
new file mode 100644
index 000000000..38bc5d247
--- /dev/null
+++ b/layouts/v7/modules/Settings/MailConverter/resources/MailConverter.js
@@ -0,0 +1,185 @@
+/*+***********************************************************************************
+ * The contents of this file are subject to the vtiger CRM Public License Version 1.0
+ * ('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.
+ *************************************************************************************/
+
+jQuery.Class('Settings_MailConverter_Index_Js', {
+	mailConverterInstance: false,
+	triggerRuleEdit: function (url) {
+		app.request.get({url:url}).then(function (err, data) {
+			var callBackFunction = function (data) {
+				var mcInstance = Settings_MailConverter_Index_Js.mailConverterInstance;
+				app.helper.showVerticalScroll(jQuery('.addMailBoxStep'), {setHeight:'450px'});
+				mcInstance.saveRuleEvent();
+				mcInstance.setAssignedTo();
+				jQuery('#actions').trigger('change');
+			}
+			app.helper.showModal(data, {cb:callBackFunction});
+		});
+	},
+
+	triggerDeleteRule: function (currentElement, url) {
+		var deleteElement = jQuery(currentElement);
+		app.helper.showConfirmationBox({'message': app.vtranslate('LBL_DELETE_CONFIRMATION')}).then(function () {
+			app.request.get({url:url}).then(function (err, data) {
+				if (data) {
+					var closestBlock = deleteElement.closest('[data-blockid]');
+					var nextBlocks = closestBlock.nextAll('[data-blockid]');
+
+					if (nextBlocks.length > 0) {
+						jQuery.each(nextBlocks, function (i, element) {
+							var currentSequenceElement = jQuery(element).find('.sequenceNumber');
+							var updatedNumber = parseInt(currentSequenceElement.text()) - 1;
+							currentSequenceElement.text(updatedNumber);
+						});
+					}
+
+					closestBlock.remove();
+					app.helper.showSuccessNotification({'message':data});
+				}
+			});
+		});
+	}
+}, {
+	registerSortableEvent: function () {
+		var thisInstance = this;
+		var sequenceList = {};
+		var container = jQuery('#rulesList');
+		container.sortable({
+			revert	: true,
+			handle	: '.ruleHead',
+			start	: function (event, ui) {
+						ui.placeholder.height(ui.helper.height());
+					},
+			update	: function (e, ui) {
+						jQuery('[data-blockid]', container).each(function (i) {
+							sequenceList[++i] = jQuery(this).data('id');
+						});
+
+						var params = {
+							sequencesList	: JSON.stringify(sequenceList),
+							module			: app.getModuleName(),
+							parent			: app.getParentModuleName(),
+							action			: 'UpdateSequence',
+							scannerId		: jQuery('#scannerId').val()
+						}
+
+						app.request.post({data:params}).then(function (err, data) {
+							if (typeof data != 'undefined') {
+								jQuery('[data-blockid]', container).each(function (i) {
+									jQuery(this).find('.sequenceNumber').text(++i);
+								});
+
+								app.helper.hideModal();
+								app.helper.showSuccessNotification({'message':data});
+							}
+						});
+					}
+		});
+	},
+
+	saveRuleEvent: function () {
+		var thisInstance = this;
+		var form = jQuery('#ruleSave');
+		var params = {
+			submitHandler: function (form) {
+				var form = jQuery(form);
+				form.find('[name="saveButton"]').attr('disabled', 'disabled');
+				app.helper.showProgress();
+				var params = form.serializeFormData();
+				app.request.post({data:params}).then(function (err, data) {
+					app.helper.hideProgress();
+					app.helper.hideModal();
+					if (typeof data != 'undefined') {
+						var params = {
+							module: app.getModuleName(),
+							parent: app.getParentModuleName(),
+							scannerId: jQuery('[name="scannerId"]', form).val(),
+							record: data.id,
+							view: 'RuleAjax'
+						}
+						thisInstance.getRule(params);
+						app.helper.showSuccessNotification({'message':data.message});
+					}
+				});
+			}
+		}
+		form.vtValidate(params);
+
+		form.submit(function (e) {
+			e.preventDefault();
+		});
+	},
+
+	getRule: function (params) {
+		app.helper.showProgress();
+		var ruleId = params.record;
+		app.request.get({data:params}).then(function (err, data) {
+			app.helper.hideProgress();
+			var currentBlock = jQuery('[data-blockid="block_'+ruleId+'"]')
+			if (currentBlock.length > 0) {
+				var previousValue = currentBlock.prevAll('[data-blockid]').first().find('.sequenceNumber').text();
+				if (previousValue == '') {
+					previousValue = 0;
+				}
+				currentBlock.html(data);
+				currentBlock.find('.sequenceNumber').text(parseInt(previousValue)+1)
+			} else {
+				var lastBlockValue = jQuery('[data-blockid]').size();
+				jQuery('#rulesList').append('<div class="row-fluid padding-bottom1per" data-blockid="block_'+ruleId+'">'+data+'</div>');
+				jQuery('[data-blockid="block_'+ruleId+'"]').find('.sequenceNumber').text(parseInt(lastBlockValue)+1);
+			}
+		});
+	},
+
+	setAssignedTo: function () {
+		jQuery('#actions').on('change', function () {
+			var selectedAction = jQuery('#actions').val();
+			if (!(selectedAction == 'CREATE_HelpDesk_FROM'
+					|| selectedAction == 'CREATE_Leads_SUBJECT'
+					|| selectedAction == 'CREATE_Contacts_SUBJECT'
+					|| selectedAction == 'CREATE_Accounts_SUBJECT')) {
+				jQuery('#assignedTo').val('');
+				jQuery('#assignedToBlock').hide();
+			} else {
+				jQuery('#assignedToBlock').show();
+			}
+		});
+	},
+
+	openMailBox: function () {
+		jQuery('.mailBoxDropdown').change(function () {
+			var id = jQuery('.mailBoxDropdown option:selected').val();
+			var path = 'index.php?parent='+app.getParentModuleName()+'&module='+app.getModuleName()+'&view=List&record='+id;
+			window.location.assign(path);
+		});
+	},
+
+	disableFolderSelection: function () {
+		var checked = jQuery('input[type=checkbox][name=folders]:checked').length >= 2;
+		jQuery('input[type=checkbox][name=folders]').not(':checked').attr('disabled', checked);
+
+		jQuery('input[type=checkbox][name=folders]').click(function () {
+			var checked = jQuery('input[type=checkbox][name=folders]:checked').length >= 2;
+			jQuery('input[type=checkbox][name=folders]').not(':checked').attr('disabled', checked);
+		});
+	},
+
+	registerEvents: function () {
+		this.registerSortableEvent();
+		this.openMailBox();
+		this.setAssignedTo();
+		this.disableFolderSelection();
+		jQuery('#actions').trigger('change');
+	}
+});
+
+//On Page Load
+jQuery(document).ready(function () {
+	var mcInstance = Settings_MailConverter_Index_Js.mailConverterInstance = new Settings_MailConverter_Index_Js();
+	mcInstance.registerEvents();
+});
\ No newline at end of file
diff --git a/layouts/v7/modules/Settings/ModuleManager/ImportUserModuleStep2.tpl b/layouts/v7/modules/Settings/ModuleManager/ImportUserModuleStep2.tpl
index 3aced8c87..863db51d3 100644
--- a/layouts/v7/modules/Settings/ModuleManager/ImportUserModuleStep2.tpl
+++ b/layouts/v7/modules/Settings/ModuleManager/ImportUserModuleStep2.tpl
@@ -31,72 +31,60 @@
 						</div>
 						<input type="hidden" name="view" value="List">
 					{else}
-						<div class="row" style="margin-top: 2%">
+						<div class="col-lg-12">
 							<div>
 								<h3>{vtranslate('LBL_VERIFY_IMPORT_DETAILS',$QUALIFIED_MODULE)}</h3>
 							</div><hr>
 						</div>
 						<div class="container-fluid"><br>
-							<div class="row">
-								<div class="col-lg-12">
-									<h4>
-										{vtranslate($MODULEIMPORT_NAME, $QUALIFIED_MODULE)}
-										{if $MODULEIMPORT_EXISTS eq 'true'} <font color=red><b>{vtranslate('LBL_EXISTS', $QUALIFIED_MODULE)}</b></font> {/if}
-									</h4>
-								</div>
+							<div class="col-lg-12">
+								<h4>
+									{vtranslate($MODULEIMPORT_NAME, $QUALIFIED_MODULE)}
+									{if $MODULEIMPORT_EXISTS eq 'true'} <font color=red><b>{vtranslate('LBL_EXISTS', $QUALIFIED_MODULE)}</b></font> {/if}
+								</h4>
 							</div>
-							<div class="row">
-								<div class="col-lg-12">
-									<p>
-										<small>{vtranslate('LBL_REQ_VTIGER_VERSION', $QUALIFIED_MODULE)} : {$MODULEIMPORT_DEP_VTVERSION}</small>
-									</p>
-								</div>
+							<div class="col-lg-12">
+								<p>
+									<small>{vtranslate('LBL_REQ_VTIGER_VERSION', $QUALIFIED_MODULE)} : {$MODULEIMPORT_DEP_VTVERSION}</small>
+								</p>
 							</div>
 							{assign var="need_license_agreement" value="false"}
 							{if $MODULEIMPORT_LICENSE}
 								{assign var="need_license_agreement" value="true"}
-								<div class="row">
-									<div class="col-lg-12">
-										<p>{vtranslate('LBL_LICENSE', $QUALIFIED_MODULE)}</p>
-									</div>
+								<div class="col-lg-12">
+									<p>{vtranslate('LBL_LICENSE', $QUALIFIED_MODULE)}</p>
 								</div>
-								<div class="row">
-									<div class="col-lg-12">
-										<div style="background: #eee;padding: 20px;box-sizing: border-box;height: 150px;overflow-y: scroll;">
-											<p>{$MODULEIMPORT_LICENSE|nl2br}</p>
-										</div>
+								<div class="col-lg-12">
+									<div style="background: #eee;padding: 20px;box-sizing: border-box;height: 150px;overflow-y: scroll;">
+										<p>{$MODULEIMPORT_LICENSE|nl2br}</p>
 									</div>
 								</div>
 							{/if}
 							<br>
-							<div class="row">
-								<div class="col-lg-4">
-									{if $MODULEIMPORT_EXISTS neq 'true'}
-										<input type="checkbox" class="acceptLicense"> {vtranslate('LBL_LICENSE_ACCEPT_AGREEMENT', $QUALIFIED_MODULE)}
-									{/if}&nbsp;
-								</div>
-								<div class="col-lg-8">
-									<span class="pull-right">
-										<div class="row">
-											{if $MODULEIMPORT_EXISTS eq 'true' || $MODULEIMPORT_DIR_EXISTS eq 'true'}
-												<div class="col-lg-2"></div>
-												<div class="col-lg-10">
-													{if $MODULEIMPORT_EXISTS eq 'true'}
-														<input type="hidden" name="module_import_file" value="{$MODULEIMPORT_FILE}">
-														<input type="hidden" name="module_import_type" value="{$MODULEIMPORT_TYPE}">
-														<input type="hidden" name="module_import_name" value="{$MODULEIMPORT_NAME}">
-													{else}
-														<p class="alert-info">{vtranslate('LBL_DELETE_EXIST_DIRECTORY', $QUALIFIED_MODULE)}</p>
-													{/if}
-												</div>
-											{else}
-												<input type="hidden" name="module_import_file" value="{$MODULEIMPORT_FILE}">
-												<input type="hidden" name="module_import_type" value="{$MODULEIMPORT_TYPE}">
-												<input type="hidden" name="module_import_name" value="{$MODULEIMPORT_NAME}">
-											{/if}
-										</div>
-									</span>
-								</div>
+							<div class="col-lg-12">
+								{if $MODULEIMPORT_EXISTS neq 'true'}
+									<input type="checkbox" class="acceptLicense"> {vtranslate('LBL_LICENSE_ACCEPT_AGREEMENT', $QUALIFIED_MODULE)}
+								{/if}&nbsp;
+								<span class="pull-right">
+									<div class="row">
+										{if $MODULEIMPORT_EXISTS eq 'true' || $MODULEIMPORT_DIR_EXISTS eq 'true'}
+											<div class="col-lg-2"></div>
+											<div class="col-lg-10">
+												{if $MODULEIMPORT_EXISTS eq 'true'}
+													<input type="hidden" name="module_import_file" value="{$MODULEIMPORT_FILE}">
+													<input type="hidden" name="module_import_type" value="{$MODULEIMPORT_TYPE}">
+													<input type="hidden" name="module_import_name" value="{$MODULEIMPORT_NAME}">
+												{else}
+													<p class="alert-info">{vtranslate('LBL_DELETE_EXIST_DIRECTORY', $QUALIFIED_MODULE)}</p>
+												{/if}
+											</div>
+										{else}
+											<input type="hidden" name="module_import_file" value="{$MODULEIMPORT_FILE}">
+											<input type="hidden" name="module_import_type" value="{$MODULEIMPORT_TYPE}">
+											<input type="hidden" name="module_import_name" value="{$MODULEIMPORT_NAME}">
+										{/if}
+									</div>
+								</span>
 							</div>
 						</div>
 						<br><br>
diff --git a/layouts/v7/skins/images/MailConverter.png b/layouts/v7/skins/images/MailConverter.png
new file mode 100644
index 0000000000000000000000000000000000000000..d2885be255ccffcedf17195e079e5e9490e1fff1
GIT binary patch
literal 23902
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
Xq<2sCLyPkQfgfEh1I?TR*1`V=QWW18

literal 0
HcmV?d00001

diff --git a/layouts/v7/skins/images/white-drag.png b/layouts/v7/skins/images/white-drag.png
new file mode 100644
index 0000000000000000000000000000000000000000..c435d33c1721ac42a657821b29aefb55cbae2b95
GIT binary patch
literal 326
zcmV-M0lEH(P)<h;3K|Lk000e1NJLTq000UA000jN1^@s6-Tz(=0003ENkl<Zc-mdi
zKTE<<6vlBi?T_}yNOCZ!EQt*371SF@8**|JcQ?0Qf#BF62sH$~fgp&ch6dM=S{fRX
zCWqd@@Akd)9J%;|4+jsA_ndoU&bg$_A%S=(W*<Kmu!}mjgFmd|0!J3iL{aoab*d{0
zch&o};2Pf598n5d<zBsC3+7NmA5|=2-j75NEerY+^4QSWG!~K43ULeW;0iD31Ytkr
z*`I2`62|WT`^KJv59&D!9^jUxf2aekkwF_@c(mZ5PCe7USuAT$-_KgGf>Shcf_3e=
ziF1@Kc+A+L)_KL2g4ee9^hAOmdfYe4zJhlOPAphP12?z~MpyLU&G6PmT_iVinWR1V
YA17hGVRLC`^8f$<07*qoM6N<$g07X0RsaA1

literal 0
HcmV?d00001

diff --git a/modules/Emails/models/Mailer.php b/modules/Emails/models/Mailer.php
index bd8f97ac0..e2e7c72a1 100644
--- a/modules/Emails/models/Mailer.php
+++ b/modules/Emails/models/Mailer.php
@@ -63,7 +63,7 @@ class Emails_Mailer_Model extends Vtiger_Mailer {
 
 	public static function retrieveMessageIdFromMailroom($crmId) {
 		$db = PearDatabase::getInstance();
-		$result = $db->pquery('SELECT messageid FROM vtiger_message_ids WHERE crmid=?', array($crmId));
+		$result = $db->pquery('SELECT messageid FROM vtiger_mailscanner_ids WHERE crmid=?', array($crmId));
 		return $db->query_result($result, 'messageid', 0);
 	}
 
@@ -85,7 +85,7 @@ class Emails_Mailer_Model extends Vtiger_Mailer {
 		$db = PearDatabase::getInstance();
 		$existingResult = array();
 		//Get existing refids for a given crm id and update new refids to the crmid
-		$existingResultObject = $db->pquery("SELECT refids FROM vtiger_message_ids WHERE crmid=? AND refids != 'null'", array($crmId));
+		$existingResultObject = $db->pquery("SELECT refids FROM vtiger_mailscanner_ids WHERE crmid=? AND refids != 'null'", array($crmId));
 		$num_rows = $db->num_rows($existingResultObject);
 		if ($num_rows > 0) {
 			$existingResult = json_decode($db->query_result($existingResultObject, 'refids', 0), true);
@@ -93,10 +93,10 @@ class Emails_Mailer_Model extends Vtiger_Mailer {
 			if (is_array($existingResult)) {
 				$existingResultValue = array_merge($existingResult, array($messageId));
 				$refIds = json_encode($existingResultValue);
-				$db->pquery("UPDATE vtiger_message_ids SET refids=? WHERE crmid=? ", array($refIds, $crmId));
+				$db->pquery("UPDATE vtiger_mailscanner_ids SET refids=? WHERE crmid=? ", array($refIds, $crmId));
 			}
 		} else {
-			$db->pquery("INSERT INTO vtiger_message_ids (messageid, crmid) VALUES(?,?)", array($messageId, $crmId));
+			$db->pquery("INSERT INTO vtiger_mailscanner_ids (messageid, crmid) VALUES(?,?)", array($messageId, $crmId));
 		}
 	}
 
diff --git a/modules/Install/views/Index.php b/modules/Install/views/Index.php
index 7429a2d19..30987167e 100644
--- a/modules/Install/views/Index.php
+++ b/modules/Install/views/Index.php
@@ -232,7 +232,9 @@ class Install_Index_view extends Vtiger_View_Controller {
 	public function getHeaderScripts(Vtiger_Request $request) {
 		$moduleName = $request->getModule();
 		$parentScripts = parent::getHeaderScripts($request);
-		$jsFileNames = array("modules.$moduleName.resources.Index");
+		$jsFileNames = array("modules.Vtiger.resources.List",
+							 "modules.Vtiger.resources.Popup",
+							 "modules.$moduleName.resources.Index");
 		$jsScriptInstances = $this->checkAndConvertJsScripts($jsFileNames);
 		$headerScriptInstances = array_merge($parentScripts, $jsScriptInstances);
 		return $headerScriptInstances;
diff --git a/modules/Migration/schema/660_to_700.php b/modules/Migration/schema/660_to_700.php
index 0d2b26b1b..cd7888329 100644
--- a/modules/Migration/schema/660_to_700.php
+++ b/modules/Migration/schema/660_to_700.php
@@ -324,6 +324,11 @@ if(defined('VTIGER_UPGRADE')) {
 		$folderModel->save();
 	}
 
+	$columns = $db->getColumnNames('vtiger_schedulereports');
+	if (!in_array('fileformat', $columns)) {
+		$db->pquery('ALTER TABLE vtiger_schedulereports ADD COLUMN fileformat VARCHAR(10) DEFAULT "CSV"', array());
+	}
+
 	$modCommentsInstance = Vtiger_Module_Model::getInstance('ModComments');
 	$modCommentsTabId = $modCommentsInstance->getId();
 
@@ -692,7 +697,7 @@ if(defined('VTIGER_UPGRADE')) {
 	}
 
 	$columns = $db->getColumnNames('vtiger_customerportal_relatedmoduleinfo');
-	if (!in_array('module', $columns)) {
+	if (in_array('module', $columns)) {
 		$db->pquery('ALTER TABLE vtiger_customerportal_relatedmoduleinfo CHANGE module tabid INT(19)', array());
 		$db->pquery('ALTER TABLE vtiger_customerportal_relatedmoduleinfo ADD PRIMARY KEY(tabid)', array());
 		$db->pquery('ALTER TABLE vtiger_customerportal_fields ADD PRIMARY KEY(tabid)', array());
@@ -1832,10 +1837,14 @@ if(defined('VTIGER_UPGRADE')) {
 		}
 	}
 
+	$columns = $db->getColumnNames('vtiger_mailscanner');
+	if (!in_array('scanfrom', $columns)) {
+		$db->pquery('ALTER TABLE vtiger_mailscanner ADD COLUMN scanfrom VARCHAR(10) DEFAULT "ALL"', array());
+	}
+
 	if (Vtiger_Utils::CheckTable('vtiger_mailscanner_ids')) {
-		$db->pquery('RENAME TABLE vtiger_mailscanner_ids TO vtiger_message_ids', array());
-		$db->pquery('ALTER TABLE vtiger_message_ids ADD COLUMN refids MEDIUMTEXT', array());
-		$db->pquery('ALTER TABLE vtiger_message_ids ADD INDEX messageids_crmid_idx(crmid)',array());
+		$db->pquery('ALTER TABLE vtiger_mailscanner_ids ADD COLUMN refids MEDIUMTEXT', array());
+		$db->pquery('ALTER TABLE vtiger_mailscanner_ids ADD INDEX messageids_crmid_idx(crmid)',array());
 	}
 
 	//Migrating data missed in vtiger_settings_field from file to database.
diff --git a/modules/Settings/MailConverter/actions/SaveFolders.php b/modules/Settings/MailConverter/actions/SaveFolders.php
index 470987786..68a9a653a 100755
--- a/modules/Settings/MailConverter/actions/SaveFolders.php
+++ b/modules/Settings/MailConverter/actions/SaveFolders.php
@@ -11,20 +11,20 @@
 class Settings_MailConverter_SaveFolders_Action extends Settings_Vtiger_Index_Action {
 
     public function process(Vtiger_Request $request) {
-        $recordId = $request->get('record');
-        $qualifiedModuleName = $request->getModule(false);
-        $checkedFolders = $request->get('folders');
-        $folders = explode(',', $checkedFolders);
-        Settings_MailConverter_Module_Model::updateFolders($recordId, $folders);
+		$recordId = $request->get('record');
+		$qualifiedModuleName = $request->getModule(false);
+		$checkedFolders = $request->get('folders');
+		$folders = explode(',', $checkedFolders);
+		Settings_MailConverter_Module_Model::updateFolders($recordId, $folders);
 
-        $response = new Vtiger_Response();
+		$response = new Vtiger_Response();
 
-        $result = array('message' => vtranslate('LBL_SAVED_SUCCESSFULLY', $qualifiedModuleName));
-        $result['id'] = $recordId;
-        $response->setResult($result);
+		$result = array('message' => vtranslate('LBL_SAVED_SUCCESSFULLY', $qualifiedModuleName));
+		$result['id'] = $recordId;
+		$response->setResult($result);
 
-        $response->emit();
-        }
+		$response->emit();
+	}
 
 }
 
diff --git a/modules/Settings/MailConverter/actions/ScanNow.php b/modules/Settings/MailConverter/actions/ScanNow.php
index a61fe2ddf..d52902309 100644
--- a/modules/Settings/MailConverter/actions/ScanNow.php
+++ b/modules/Settings/MailConverter/actions/ScanNow.php
@@ -29,12 +29,12 @@ class Settings_MailConverter_ScanNow_Action extends Settings_Vtiger_Index_Action
 		$response = new Vtiger_Response();
 		if (is_bool($status) && $status) {
 			$result = array('message'=> vtranslate('LBL_SCANNED_SUCCESSFULLY', $qualifiedModuleName));
-            $result['id'] = $recordModel->getId();
+			$result['id'] = $recordModel->getId();
 			$response->setResult($result);
-		} else if($status) {
-                        $response->setError($status);
-                } else {
-			$response->setError(vtranslate($request->getModule(), $qualifiedModuleName). ' ' .vtranslate('LBL_IS_IN_RUNNING_STATE', $qualifiedModuleName));
+		} else if ($status) {
+			$response->setError($status);
+		} else {
+			$response->setError(vtranslate($request->getModule(), $qualifiedModuleName).' '.vtranslate('LBL_IS_IN_RUNNING_STATE', $qualifiedModuleName));
 		}
 		$response->emit();
 	}
diff --git a/modules/Settings/MailConverter/handlers/MailScannerAction.php b/modules/Settings/MailConverter/handlers/MailScannerAction.php
index 459ff9b33..3e11d5435 100644
--- a/modules/Settings/MailConverter/handlers/MailScannerAction.php
+++ b/modules/Settings/MailConverter/handlers/MailScannerAction.php
@@ -1,13 +1,12 @@
 <?php
-/*********************************************************************************
- ** The contents of this file are subject to the vtiger CRM Public License Version 1.0
+/* +**********************************************************************************
+ * 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 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.
- *
- ********************************************************************************/
+ * ***********************************************************************************/
 
 require_once('modules/Emails/Emails.php');
 require_once('modules/HelpDesk/HelpDesk.php');
@@ -23,23 +22,23 @@ require_once ('modules/Accounts/Accounts.php');
  */
 class Vtiger_MailScannerAction {
 	// actionid for this instance
-	var $actionid  = false;
+	var $actionid	= false;
 	// scanner to which this action is associated
-	var $scannerid = false;
+	var $scannerid	= false;
 	// type of mailscanner action
-	var $actiontype= false;
+	var $actiontype	= false;
 	// text representation of action
-	var $actiontext= false;
+	var $actiontext	= false;
 	// target module for action
-	var $module    = false;
+	var $module		= false;
 	// lookup information while taking action
-	var $lookup    = false;
+	var $lookup		= false;
 
 	// Storage folder to use
 	var $STORAGE_FOLDER = 'storage/mailscanner/';
 
 	/** DEBUG functionality */
-	var $debug     = false;
+	var $debug		= false;
 	function log($message) {
 		global $log;
 		if($log && $this->debug) { $log->debug($message); }
@@ -61,12 +60,12 @@ class Vtiger_MailScannerAction {
 		$result = $adb->pquery("SELECT * FROM vtiger_mailscanner_actions WHERE actionid=? ORDER BY sequence", Array($foractionid));
 
 		if($adb->num_rows($result)) {
-			$this->actionid   = $adb->query_result($result, 0, 'actionid');
-			$this->scannerid  = $adb->query_result($result, 0, 'scannerid');
-			$this->actiontype = $adb->query_result($result, 0, 'actiontype');
-			$this->module     = $adb->query_result($result, 0, 'module');
-			$this->lookup     = $adb->query_result($result, 0, 'lookup');
-			$this->actiontext = "$this->actiontype,$this->module,$this->lookup";
+			$this->actionid		= $adb->query_result($result, 0, 'actionid');
+			$this->scannerid	= $adb->query_result($result, 0, 'scannerid');
+			$this->actiontype	= $adb->query_result($result, 0, 'actiontype');
+			$this->module		= $adb->query_result($result, 0, 'module');
+			$this->lookup		= $adb->query_result($result, 0, 'lookup');
+			$this->actiontext	= "$this->actiontype,$this->module,$this->lookup";
 		}
 	}
 
@@ -77,9 +76,9 @@ class Vtiger_MailScannerAction {
 		global $adb;
 
 		$inputparts = explode(',', $actiontext);
-		$this->actiontype = $inputparts[0]; // LINK, CREATE
-		$this->module     = $inputparts[1]; // Module name
-		$this->lookup     = $inputparts[2]; // FROM, TO
+		$this->actiontype	= $inputparts[0]; // LINK, CREATE
+		$this->module		= $inputparts[1]; // Module name
+		$this->lookup		= $inputparts[2]; // FROM, TO
 
 		$this->actiontext = $actiontext;
 
@@ -168,24 +167,24 @@ class Vtiger_MailScannerAction {
 			$fromemail = $mailrecord->_from[0];
 
 			$linkfocus = $mailscanner->GetTicketRecord($usesubject, $fromemail);
-            
-            $commentedBy = $mailscanner->LookupContact($fromemail);
-            if(!$commentedBy) {
-                $commentedBy = $mailscanner->LookupAccount($fromemail);
-            }
+
+			$commentedBy = $mailscanner->LookupContact($fromemail);
+			if(!$commentedBy) {
+				$commentedBy = $mailscanner->LookupAccount($fromemail);
+			}
 
 			// If matching ticket is found, update comment, attach email
 			if($linkfocus) {
 				$commentFocus = new ModComments();
 				$commentFocus->column_fields['commentcontent'] = $mailrecord->getBodyText();
 				$commentFocus->column_fields['related_to'] = $linkfocus->id;
-				$commentFocus->column_fields['assigned_user_id'] =  $mailscannerrule->assigned_to;
-                if($commentedBy) {
-                    $commentFocus->column_fields['customer'] = $commentedBy;
-                    $commentFocus->column_fields['from_mailconverter'] = 1;
-                } else {
-                    $commentFocus->column_fields['userid'] = $mailscannerrule->assigned_to;
-                }
+				$commentFocus->column_fields['assigned_user_id'] = $mailscannerrule->assigned_to;
+				if($commentedBy) {
+					$commentFocus->column_fields['customer'] = $commentedBy;
+					$commentFocus->column_fields['from_mailconverter'] = 1;
+				} else {
+					$commentFocus->column_fields['userid'] = $mailscannerrule->assigned_to;
+				}
 				$commentFocus->saveentity('ModComments');
 
 				// Set the ticket status to Open if its Closed
@@ -205,20 +204,20 @@ class Vtiger_MailScannerAction {
 	 * Create ticket action.
 	 */
 	function __CreateContact($mailscanner, $mailrecord, $mailscannerrule) {
-        if($mailscanner->LookupContact($mailrecord->_from[0])) {
-            $this->lookup = 'FROM';
-            return $this->__LinkToRecord($mailscanner, $mailrecord);
-        }
-                $name = $this->getName($mailrecord);
+		if($mailscanner->LookupContact($mailrecord->_from[0])) {
+			$this->lookup = 'FROM';
+			return $this->__LinkToRecord($mailscanner, $mailrecord);
+		}
+		$name = $this->getName($mailrecord);
 		$email = $mailrecord->_from[0];
 		$description = $mailrecord->getBodyText();
 
 		$contact = new Contacts();
-                $this->setDefaultValue('Contacts', $contact);
+		$this->setDefaultValue('Contacts', $contact);
 		$contact->column_fields['firstname'] = $name[0];
-                $contact->column_fields['lastname'] = $name[1];
+		$contact->column_fields['lastname'] = $name[1];
 		$contact->column_fields['email'] = $email;
-		$contact->column_fields['assigned_user_id'] =  $mailscannerrule->assigned_to;
+		$contact->column_fields['assigned_user_id'] = $mailscannerrule->assigned_to;
 		$contact->column_fields['description'] = $description;
 		$contact->save('Contacts');
 
@@ -231,18 +230,18 @@ class Vtiger_MailScannerAction {
 	 * Create Lead action.
 	 */
 	function __CreateLead($mailscanner, $mailrecord, $mailscannerrule) {
-        if($mailscanner->LookupLead($mailrecord->_from[0])) {
-            $this->lookup = 'FROM';
-            return $this->__LinkToRecord($mailscanner, $mailrecord);
-        }
+		if($mailscanner->LookupLead($mailrecord->_from[0])) {
+			$this->lookup = 'FROM';
+			return $this->__LinkToRecord($mailscanner, $mailrecord);
+		}
 		$name = $this->getName($mailrecord);
 		$email = $mailrecord->_from[0];
 		$description = $mailrecord->getBodyText();
 
 		$lead = new Leads();
-        $this->setDefaultValue('Leads', $lead);
+		$this->setDefaultValue('Leads', $lead);
 		$lead->column_fields['firstname'] = $name[0];
-        $lead->column_fields['lastname'] = $name[1];
+		$lead->column_fields['lastname'] = $name[1];
 		$lead->column_fields['email'] = $email;
 		$lead->column_fields['assigned_user_id'] = $mailscannerrule->assigned_to;
 		$lead->column_fields['description'] = $description;
@@ -257,19 +256,19 @@ class Vtiger_MailScannerAction {
 	 * Create Account action.
 	 */
 	function __CreateAccount($mailscanner, $mailrecord, $mailscannerrule) {
-        if($mailscanner->LookupAccount($mailrecord->_from[0])) {
-            $this->lookup = 'FROM';
-            return $this->__LinkToRecord($mailscanner, $mailrecord);
-        }
+		if($mailscanner->LookupAccount($mailrecord->_from[0])) {
+			$this->lookup = 'FROM';
+			return $this->__LinkToRecord($mailscanner, $mailrecord);
+		}
 		$name = $this->getName($mailrecord);
 		$email = $mailrecord->_from[0];
 		$description = $mailrecord->getBodyText();
 
 		$account = new Accounts();
-        $this->setDefaultValue('Accounts', $account);
+		$this->setDefaultValue('Accounts', $account);
 		$account->column_fields['accountname'] = $name[0].' '.$name[1];
 		$account->column_fields['email1'] = $email;
-		$account->column_fields['assigned_user_id'] =  $mailscannerrule->assigned_to;
+		$account->column_fields['assigned_user_id'] = $mailscannerrule->assigned_to;
 		$account->column_fields['description'] = $description;
 		$account->save('Accounts');
 
@@ -289,22 +288,22 @@ class Vtiger_MailScannerAction {
 		// There will be only on FROM address to email, so pick the first one
 		$fromemail = $mailrecord->_from[0];
 		$contactLinktoid = $mailscanner->LookupContact($fromemail);
-        if(!$contactLinktoid) {
-            $contactLinktoid = $this-> __CreateContact($mailscanner, $mailrecord, $mailscannerrule);
-        }
+		if(!$contactLinktoid) {
+			$contactLinktoid = $this-> __CreateContact($mailscanner, $mailrecord, $mailscannerrule);
+		}
 		if ($contactLinktoid)
 			$linktoid = $mailscanner->getAccountId($contactLinktoid);
-        if(!$linktoid)
-                $linktoid = $mailscanner->LookupAccount($fromemail);
+		if(!$linktoid)
+			$linktoid = $mailscanner->LookupAccount($fromemail);
 
 		// Create trouble ticket record
 		$ticket = new HelpDesk();
-                $this->setDefaultValue('HelpDesk', $ticket);
+		$this->setDefaultValue('HelpDesk', $ticket);
 		if(empty($ticket->column_fields['ticketstatus']) || $ticket->column_fields['ticketstatus'] == '?????')
-                    $ticket->column_fields['ticketstatus'] = 'Open';
-                $ticket->column_fields['ticket_title'] = $usetitle;
+			$ticket->column_fields['ticketstatus'] = 'Open';
+		$ticket->column_fields['ticket_title'] = $usetitle;
 		$ticket->column_fields['description'] = $description;
-		$ticket->column_fields['assigned_user_id'] =  $mailscannerrule->assigned_to;
+		$ticket->column_fields['assigned_user_id'] = $mailscannerrule->assigned_to;
 		if ($contactLinktoid)
 			$ticket->column_fields['contact_id'] = $contactLinktoid;
 		if ($linktoid)
@@ -313,44 +312,44 @@ class Vtiger_MailScannerAction {
 
 		// Associate any attachement of the email to ticket
 		$this->__SaveAttachements($mailrecord, 'HelpDesk', $ticket);
-                
-                if($contactLinktoid)
-                    $relatedTo = $contactLinktoid;
-                else
-                    $relatedTo = $linktoid;
-                $this->linkMail($mailscanner, $mailrecord, $relatedTo);
-                
+
+		if($contactLinktoid)
+			$relatedTo = $contactLinktoid;
+		else
+			$relatedTo = $linktoid;
+		$this->linkMail($mailscanner, $mailrecord, $relatedTo);
+
 		return $ticket->id;
 	}
-        
-        /**
-         * Function to link email record to contact/account/lead
-         * record if exists with same email id
-         * @param type $mailscanner
-         * @param type $mailrecord
-         */
-        function linkMail($mailscanner, $mailrecord, $relatedTo) {
-            $fromemail = $mailrecord->_from[0];
-            
-            $linkfocus = $mailscanner->GetContactRecord($fromemail, $relatedTo);
-            $module = 'Contacts';
-            if(!$linkfocus) {
-                $linkfocus = $mailscanner->GetAccountRecord($fromemail, $relatedTo);
-                $module = 'Accounts';
-            }
-
-            if($linkfocus) {
-                $this->__CreateNewEmail($mailrecord, $module, $linkfocus);
-            }
-        }
-
-        /**
+
+	/**
+	 * Function to link email record to contact/account/lead
+	 * record if exists with same email id
+	 * @param type $mailscanner
+	 * @param type $mailrecord
+	 */
+	function linkMail($mailscanner, $mailrecord, $relatedTo) {
+		$fromemail = $mailrecord->_from[0];
+
+		$linkfocus = $mailscanner->GetContactRecord($fromemail, $relatedTo);
+		$module = 'Contacts';
+		if(!$linkfocus) {
+			$linkfocus = $mailscanner->GetAccountRecord($fromemail, $relatedTo);
+			$module = 'Accounts';
+		}
+
+		if($linkfocus) {
+			$this->__CreateNewEmail($mailrecord, $module, $linkfocus);
+		}
+	}
+
+	/**
 	 * Add email to CRM record like Contacts/Accounts
 	 */
 	function __LinkToRecord($mailscanner, $mailrecord) {
 		$linkfocus = false;
 
-		$useemail  = false;
+		$useemail = false;
 		if($this->lookup == 'FROM') $useemail = $mailrecord->_from;
 		else if($this->lookup == 'TO') $useemail = $mailrecord->_to;
 
@@ -389,11 +388,11 @@ class Vtiger_MailScannerAction {
 		if(!$current_user) {
 			$current_user = Users::getActiveAdminUser();
 		}
-        $assignedToId = $linkfocus->column_fields['assigned_user_id'];
-        if(vtws_getOwnerType($assignedToId) == 'Groups') {
-            $assignedToId = Users::getActiveAdminId();
-        }
-        
+		$assignedToId = $linkfocus->column_fields['assigned_user_id'];
+		if(vtws_getOwnerType($assignedToId) == 'Groups') {
+			$assignedToId = Users::getActiveAdminId();
+		}
+
 		$focus = new Emails();
 		$focus->column_fields['parent_type'] = $module;
 		$focus->column_fields['activitytype'] = 'Emails';
@@ -455,13 +454,13 @@ class Vtiger_MailScannerAction {
 			if($issaved) {
 				// Create document record
 				$document = new Documents();
-				$document->column_fields['notes_title']		 = $filename;
-				$document->column_fields['filename']		 = $filename;
-				$document->column_fields['filesize']		 = mb_strlen($filecontent, '8bit');
-				$document->column_fields['filestatus']		 = 1;
-				$document->column_fields['filelocationtype'] = 'I';
-				$document->column_fields['folderid']         = 1; // Default Folder
-				$document->column_fields['assigned_user_id'] = $userid;
+				$document->column_fields['notes_title']		= $filename;
+				$document->column_fields['filename']		= $filename;
+				$document->column_fields['filesize']		= mb_strlen($filecontent, '8bit');
+				$document->column_fields['filestatus']		= 1;
+				$document->column_fields['filelocationtype']= 'I';
+				$document->column_fields['folderid']		= 1; // Default Folder
+				$document->column_fields['assigned_user_id']= $userid;
 				$document->save('Documents');
 
 				// Link file attached to document
@@ -512,49 +511,49 @@ class Vtiger_MailScannerAction {
 
 		return true;
 	}
-    
-    function setDefaultValue($module, $moduleObj) { 
-        $moduleInstance = Vtiger_Module_Model::getInstance($module);
-        
-        $fieldInstances = Vtiger_Field_Model::getAllForModule($moduleInstance);
-        foreach($fieldInstances as $blockInstance) {
-            foreach($blockInstance as $fieldInstance) {
-                $fieldName = $fieldInstance->getName();
-                $defaultValue = $fieldInstance->getDefaultFieldValue();
-                if($defaultValue) {
-                    $moduleObj->column_fields[$fieldName] = decode_html($defaultValue);
-                }
-                if($fieldInstance->isMandatory() && !$defaultValue) {
-                    $moduleObj->column_fields[$fieldName] = Vtiger_Util_Helper::getDefaultMandatoryValue($fieldInstance->getFieldDataType());
-                }
-            }
-        }
-    }
-    
-    /**
-     * Function to get Mail Sender's Name
-     * @param <Vtiger_MailRecord Object> $mailrecord
-     * @return <Array> containing First Name and Last Name
-     */
-    function getName($mailrecord) {
-        $name = $mailrecord->_fromname;
-        if(!empty($name)) {
-            $nameParts = explode(' ', $name);
-            if(count($nameParts) > 1) {
-                $firstName = $nameParts[0];
-                unset($nameParts[0]);
-                $lastName = implode(' ', $nameParts);
-            } else {
-                $firstName = '';
-                $lastName = $nameParts[0];
-            }
-        } else {
-            $firstName = '';
-            $lastName = $mailrecord->_from[0];
-        }
-        
-        return array($firstName, $lastName);
-    }
-    
+
+	function setDefaultValue($module, $moduleObj) { 
+		$moduleInstance = Vtiger_Module_Model::getInstance($module);
+
+		$fieldInstances = Vtiger_Field_Model::getAllForModule($moduleInstance);
+		foreach($fieldInstances as $blockInstance) {
+			foreach($blockInstance as $fieldInstance) {
+				$fieldName = $fieldInstance->getName();
+				$defaultValue = $fieldInstance->getDefaultFieldValue();
+				if($defaultValue) {
+					$moduleObj->column_fields[$fieldName] = decode_html($defaultValue);
+				}
+				if($fieldInstance->isMandatory() && !$defaultValue) {
+					$moduleObj->column_fields[$fieldName] = Vtiger_Util_Helper::getDefaultMandatoryValue($fieldInstance->getFieldDataType());
+				}
+			}
+		}
+	}
+
+	/**
+	 * Function to get Mail Sender's Name
+	 * @param <Vtiger_MailRecord Object> $mailrecord
+	 * @return <Array> containing First Name and Last Name
+	 */
+	function getName($mailrecord) {
+		$name = $mailrecord->_fromname;
+		if(!empty($name)) {
+			$nameParts = explode(' ', $name);
+			if(count($nameParts) > 1) {
+				$firstName = $nameParts[0];
+				unset($nameParts[0]);
+				$lastName = implode(' ', $nameParts);
+			} else {
+				$firstName = '';
+				$lastName = $nameParts[0];
+			}
+		} else {
+			$firstName = '';
+			$lastName = $mailrecord->_from[0];
+		}
+
+		return array($firstName, $lastName);
+	}
+
 }
 ?>
diff --git a/modules/Settings/MailConverter/handlers/MailScannerBodyRule.php b/modules/Settings/MailConverter/handlers/MailScannerBodyRule.php
deleted file mode 100644
index b8ac408eb..000000000
--- a/modules/Settings/MailConverter/handlers/MailScannerBodyRule.php
+++ /dev/null
@@ -1,171 +0,0 @@
-<?php
-/*********************************************************************************
- ** The contents of this file are subject to the vtiger CRM Public License Version 1.0
- * ("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.
- *
- ********************************************************************************/
-
-class Vtiger_MailScannerBodyRule {
-    
-    var $scannerId = false;
-    var $ruleId = false;
-    var $module = false;
-    var $delimiter = false;
-    var $mappingData = false;
-    var $subject = false;
-    var $fromemail = false;
-    var $fromname = false;
-    var $body = false;
-
-    function __construct($scannerId, $ruleId) {
-        $this->initialize($scannerId, $ruleId);
-    }
-    
-    function initialize($scannerId, $ruleId) {
-        $db = PearDatabase::getInstance();
-        $result = $db->pquery("SELECT * FROM vtiger_mailscanner_bodyrule WHERE scannerid = ? AND ruleid = ?", array($scannerId, $ruleId));
-        if($db->num_rows($result)) {
-            $this->scannerId = $scannerId;
-            $this->ruleId = $ruleId;
-            $this->delimiter = decode_html(decode_html($db->query_result($result, 0, 'delimiter')));
-            $this->module = $db->query_result($result, 0, 'module');
-        }
-        $result = $db->pquery("SELECT * FROM vtiger_mailscanner_mapping WHERE scannerid = ? AND ruleid = ?", array($scannerId, $ruleId));
-        $count = $db->num_rows($result);
-        $fieldMapping = array();
-        for($i = 0; $i < $count; $i++) {
-            $crmField = decode_html($db->query_result($result, $i, 'crm_field'));
-            $bodyField = decode_html($db->query_result($result, $i, 'body_field'));
-            $fieldMapping[$bodyField] = $crmField;
-        }
-        $this->mappingData = $fieldMapping;
-    }
-    
-    function getFieldValues($body) {
-        $bodyFields = $this->parseBody($body);
-        return $this->apply($bodyFields);
-    }
-    
-    function parseBody($body) {
-        $body = decode_html($body);
-        $this->body = $body;
-        $bodyFields = array();
-        $rows = explode("\n", $body);
-        foreach($rows as $row) {
-            if(strrpos($row, $this->delimiter)) {
-                $columns = explode($this->delimiter, $row);
-                $label = trim(decode_html($columns[0]));
-                unset($columns[0]);
-                $bodyFields[strtolower($label)] = trim(decode_html(implode($this->delimiter, $columns)));
-            }
-        }
-        return $bodyFields;
-    }
-    
-    function apply($bodyFields) {
-        $data = array();
-        foreach($this->mappingData as $bodyField => $crmField) {
-            $bodyField = strtolower($bodyField);
-            if(!empty($bodyFields[$bodyField])) {
-                $data[$crmField] = $bodyFields[$bodyField];
-            }
-            if($bodyField == 'subject') {
-                $data[$crmField] = $this->subject;
-            }
-            if($bodyField == 'from email') {
-                $data[$crmField] = $this->fromemail;
-            }
-            if($bodyField == 'from name') {
-                $data[$crmField] = $this->fromname;
-            }
-            if($bodyField == 'email content') {
-                $data[$crmField] = $this->body;
-            }
-        }
-        return $this->transformData($data);
-    }
-    
-    function transformData($fields) {
-        $moduleInstance = Vtiger_Module_Model::getInstance($this->module);
-        foreach($fields as $fieldName => $value) {
-            $fieldInstance = Vtiger_Field_Model::getInstance($fieldName, $moduleInstance);
-            if(!$fieldInstance) {
-                unset($fields[$fieldName]);
-                continue;
-            }
-            $fieldInfo = $fieldInstance->getFieldInfo();
-            
-            switch ($fieldInfo['type']) {
-                case 'date'          : $fields[$fieldName] = date('Y-m-d', strtotime($value));
-                                       break;
-                case 'time'          : $fields[$fieldName] = date('H:i:s', strtotime($value));
-                                       break;
-                case 'currency'      : if(!is_numeric($value))
-                                            unset($fields[$fieldName]);
-                                       break;
-                case 'double'        : if(!is_numeric($value))
-                                            unset($fields[$fieldName]);
-                                       break;
-                case 'integer'       : if(!is_numeric($value))
-                                            unset($fields[$fieldName]);
-                                       else
-                                           $fields[$fieldName] = round($value);
-                                       break;
-                case 'percentage'    : if(!is_numeric($value) || $value > 100)
-                                            unset($fields[$fieldName]);
-                                       break;
-                case 'email'         : if(!preg_match("/^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$/", $value)) {
-                                            unset($fields[$fieldName]);
-                                       }
-                                       break;
-                case 'picklist'      : $picklistValues = $fieldInfo['picklistvalues'];
-                                       $picklistValue = $this->getPicklistValue($value, $picklistValues);
-                                       if($picklistValue)
-                                            $fields[$fieldName] = $picklistValue;
-                                       else
-                                           unset($fields[$fieldName]);
-                                       break;
-                case 'multipicklist' : $picklistValues = $fieldInfo['picklistvalues'];
-                                       $bodyValues = explode(',', $value);
-                                       foreach($bodyValues as $key => $bodyValue) {
-                                           $picklistValue = $this->getPicklistValue($bodyValue, $picklistValues);
-                                           if($picklistValue)
-                                                $bodyValues[$key] = $picklistValue;
-                                           else
-                                                unset($bodyValues[$key]);
-                                       }
-                                       $fields[$fieldName] = implode(' |##| ', $bodyValues);
-                                       break;
-                case 'reference'     : unset($fields[$fieldName]);
-                                       break;
-                default              : break;
-            }
-        }
-        return $fields;
-    }
-    
-    function getPicklistValue($value, $allValues) {
-        $result = false;
-        $value = trim($value);
-        foreach($allValues as $option) {
-            if(strtolower($value) == strtolower($option)) {
-                $result = $option;
-                break;
-            }
-        }
-        return $result;
-    }
-    
-    public static function hasBodyRule($scannerId, $ruleId) {
-        $db = PearDatabase::getInstance();
-        $result = $db->pquery("SELECT 1 FROM vtiger_mailscanner_bodyrule WHERE scannerid = ? AND ruleid = ?", array($scannerId, $ruleId));
-        if($db->num_rows($result) > 0) {
-            return true;
-        }
-        return false;
-    }
-}
\ No newline at end of file
diff --git a/modules/Settings/MailConverter/models/Module.php b/modules/Settings/MailConverter/models/Module.php
index dbaf3349e..f3c903199 100644
--- a/modules/Settings/MailConverter/models/Module.php
+++ b/modules/Settings/MailConverter/models/Module.php
@@ -17,8 +17,7 @@ class Settings_MailConverter_Module_Model extends Settings_Vtiger_Module_Model {
 	 * @return <String> Url
 	 */
 	public function getCreateRecordUrl() {
-		$url = 'index.php?module=MailConverter&parent='.$this->getParentName().'&action=CheckMailBoxMaxLimit';
-		return 'javascript:Settings_MailConverter_List_Js.checkMailBoxMaxLimit("'.$url.'")';
+		return 'index.php?module=MailConverter&parent=Settings&view=Edit&mode=step1&create=new';
 	}
 
 	/**
@@ -27,28 +26,28 @@ class Settings_MailConverter_Module_Model extends Settings_Vtiger_Module_Model {
 	 */
 	public function getFields() {
 		$fields =  array(
-                'scannername' => array('name' => 'scannername','typeofdata'=>'V~M','label'=>'Scanner Name','datatype'=>'string'),
-                'server'      => array('name' => 'server','typeofdata'=>'V~M','label'=>'Server','datatype'=>'string'),
-                'username'    => array('name' => 'username','typeofdata'=>'V~M','label'=>'User Name','datatype'=>'string') ,
-                'password'    => array('name' => 'password','typeofdata'=>'V~M','label'=>'Password','datatype'=>'password') ,
-                'protocol'    => array('name' => 'protocol','typeofdata'=>'C~O','label'=>'Protocol','datatype'=>'radio') ,
-                'ssltype'     => array('name' => 'ssltype','typeofdata'=>'C~O','label'=>'SSL Type','datatype'=>'radio') ,
-                'sslmethod'   => array('name' => 'sslmethod','typeofdata'=>'C~O','label'=>'SSL Method','datatype'=>'radio') ,
-                'connecturl'  => array('name' => 'connecturl', 'typeofdata'=>'V~O','label' => 'Connect URL','datatype' => 'string','isEditable'=>false),
-                'searchfor'   => array('name' => 'searchfor', 'typeofdata'=>'V~O','label'=>'Look For','datatype'=>'picklist'),
-                'markas'      => array('name' => 'markas', 'typeofdata'=>'V~O','label'=>'After Scan','datatype'=>'picklist'),
-                'isvalid'     => array('name' => 'isvalid', 'typeofdata'=>'C~O','label'=>'Status','datatype'=>'boolean'),
-                'time_zone'    => array('name' => 'time_zone', 'typeofdata'=>'V~O','label'=>'Time Zone','datatype'=>'picklist'));
-
-        $fieldsList = array();
-        foreach($fields as $fieldName => $fieldInfo) {
-            $fieldModel = new Settings_MailConverter_Field_Model();
-            foreach($fieldInfo as $key=>$value) {
-                $fieldModel->set($key, $value);
-            }
-            $fieldsList[$fieldName] = $fieldModel;
-        }
-        return $fieldsList;
+			'scannername'	=> array('name' => 'scannername',	'typeofdata' => 'V~M',	'label' => 'Scanner Name',	'datatype' => 'string'),
+			'server'		=> array('name' => 'server',		'typeofdata' => 'V~M',	'label' => 'Server',		'datatype' => 'string'),
+			'username'		=> array('name' => 'username',		'typeofdata' => 'V~M',	'label' => 'User Name',		'datatype' => 'string'),
+			'password'		=> array('name' => 'password',		'typeofdata' => 'V~M',	'label' => 'Password',		'datatype' => 'password'),
+			'protocol'		=> array('name' => 'protocol',		'typeofdata' => 'C~O',	'label' => 'Protocol',		'datatype' => 'radio'),
+			'ssltype'		=> array('name' => 'ssltype',		'typeofdata' => 'C~O',	'label' => 'SSL Type',		'datatype' => 'radio'),
+			'sslmethod'		=> array('name' => 'sslmethod',		'typeofdata' => 'C~O',	'label' => 'SSL Method',	'datatype' => 'radio'),
+			'connecturl'	=> array('name' => 'connecturl',	'typeofdata' => 'V~O',	'label' => 'Connect URL',	'datatype' => 'string', 'isEditable' => false),
+			'searchfor'		=> array('name' => 'searchfor',		'typeofdata' => 'V~O',	'label' => 'Look For',		'datatype' => 'picklist'),
+			'markas'		=> array('name' => 'markas',		'typeofdata' => 'V~O',	'label' => 'After Scan',	'datatype' => 'picklist'),
+			'isvalid'		=> array('name' => 'isvalid',		'typeofdata' => 'C~O',	'label' => 'Status',		'datatype' => 'boolean'),
+			'time_zone'		=> array('name' => 'time_zone',		'typeofdata' => 'V~O',	'label' => 'Time Zone',		'datatype' => 'picklist'));
+
+		$fieldsList = array();
+		foreach($fields as $fieldName => $fieldInfo) {
+			$fieldModel = new Settings_MailConverter_Field_Model();
+			foreach($fieldInfo as $key=>$value) {
+				$fieldModel->set($key, $value);
+			}
+			$fieldsList[$fieldName] = $fieldModel;
+		}
+		return $fieldsList;
 	}
 
 	/**
@@ -56,25 +55,25 @@ class Settings_MailConverter_Module_Model extends Settings_Vtiger_Module_Model {
 	 *  @return <Array> List of setup rule fields
 	 */
 
-	public function getSetupRuleFiels() {
+	public function getSetupRuleFields() {
 		$ruleFields = array(
-			'fromaddress' => array('name' => 'fromaddress', 'label' => 'LBL_FROM', 'datatype' => 'email'),
-			'toaddress' => array('name' => 'toaddress', 'label' => 'LBL_TO', 'datatype' => 'email'),
-			'cc' => array('name' => 'cc', 'label' => 'LBL_CC', 'datatype' => 'email'),
-			'bcc' => array('name' => 'bcc', 'label' => 'LBL_BCC', 'datatype' => 'email'),
-			'subject' => array('name' => 'subject', 'label' => 'LBL_SUBJECT', 'datatype' => 'picklist'),
-			'body' => array('name' => 'body', 'label' => 'LBL_BODY', 'datatype' => 'picklist'),
-			'matchusing' => array('name' => 'matchusing', 'label' => 'LBL_MATCH', 'datatype' => 'radio'),
-			'action' => array('name' => 'action', 'label' => 'LBL_ACTION', 'datatype' => 'picklist')
+			'fromaddress'	=> array('name' => 'fromaddress',	'label' => 'LBL_FROM',		'datatype' => 'email'),
+			'toaddress'		=> array('name' => 'toaddress',		'label' => 'LBL_TO',		'datatype' => 'email'),
+			'cc'			=> array('name' => 'cc',			'label' => 'LBL_CC',		'datatype' => 'email'),
+			'bcc'			=> array('name' => 'bcc',			'label' => 'LBL_BCC',		'datatype' => 'email'),
+			'subject'		=> array('name' => 'subject',		'label' => 'LBL_SUBJECT',	'datatype' => 'picklist'),
+			'body'			=> array('name' => 'body',			'label' => 'LBL_BODY',		'datatype' => 'picklist'),
+			'matchusing'	=> array('name' => 'matchusing',	'label' => 'LBL_MATCH',		'datatype' => 'radio'),
+			'action'		=> array('name' => 'action',		'label' => 'LBL_ACTION',	'datatype' => 'picklist')
 		);
 		$ruleFieldsList = array();
 		foreach($ruleFields as $fieldName => $fieldInfo) {
-            $fieldModel = new Settings_MailConverter_RuleField_Model();
-            foreach($fieldInfo as $key=>$value) {
-                $fieldModel->set($key, $value);
-            }
-            $ruleFieldsList[$fieldName] = $fieldModel;
-        }
+			$fieldModel = new Settings_MailConverter_RuleField_Model();
+			foreach($fieldInfo as $key=>$value) {
+				$fieldModel->set($key, $value);
+			}
+			$ruleFieldsList[$fieldName] = $fieldModel;
+		}
 		return $ruleFieldsList;
 	}
 
@@ -136,25 +135,25 @@ class Settings_MailConverter_Module_Model extends Settings_Vtiger_Module_Model {
 		$scannerInfo = new Vtiger_MailScannerInfo($scannerName);
 		$mailBox = new Vtiger_MailBox($scannerInfo);
 		$isConnected = $mailBox->connect();
-                if($isConnected) {
-                        $allFolders = $mailBox->getFolders();
-                        $folders = array();
-                        $selectedFolders = Settings_MailConverter_Module_Model::getScannedFolders($id);
-                        if(is_array($allFolders)) {
-                                foreach ($allFolders as $a) {
-                                        if (in_array($a, $selectedFolders)) {
-                                                $folders[$a] = 'checked';
-                                        } else {
-                                                $folders[$a] = '';
-                                        }
-                                }
-                                return $folders;
-                        } else {
-                                return $allFolders;
-                        }
-
-                }
-                return false;
+		if($isConnected) {
+			$allFolders = $mailBox->getFolders();
+			$folders = array();
+			$selectedFolders = Settings_MailConverter_Module_Model::getScannedFolders($id);
+			if(is_array($allFolders)) {
+				foreach ($allFolders as $a) {
+						if (in_array($a, $selectedFolders)) {
+							$folders[$a] = 'checked';
+						} else {
+							$folders[$a] = '';
+						}
+				}
+				return $folders;
+			} else {
+				return $allFolders;
+			}
+
+		}
+		return false;
 	}
 
 	public function getScannerName($id) {
@@ -176,4 +175,15 @@ class Settings_MailConverter_Module_Model extends Settings_Vtiger_Module_Model {
 		}
 	}
 
+	public function hasCreatePermissions() {
+		$permissions = false;
+		$recordsCount = Settings_MailConverter_Record_Model::getCount();
+
+		global $max_mailboxes;
+		if ($recordsCount < $max_mailboxes) {
+			$permissions = true;
+		}
+		return $permissions;
+	}
+
 }
diff --git a/modules/Settings/MailConverter/models/RuleRecord.php b/modules/Settings/MailConverter/models/RuleRecord.php
index 85ff9788e..b1fce72e7 100644
--- a/modules/Settings/MailConverter/models/RuleRecord.php
+++ b/modules/Settings/MailConverter/models/RuleRecord.php
@@ -85,13 +85,13 @@ class Settings_MailConverter_RuleRecord_Model extends Settings_Vtiger_Record_Mod
 						'linktype' => 'LISTVIEW',
 						'linklabel' => vtranslate('LBL_EDIT', $qualifiedModuleName). ' ' .vtranslate('RULE', $qualifiedModuleName),
 						'linkurl' => $this->getEditViewUrl(),
-						'linkicon' => 'icon-pencil'
+						'linkicon' => 'fa fa-pencil'
 				),
 				array(
 						'linktype' => 'LISTVIEW',
 						'linklabel' => vtranslate('LBL_DELETE', $qualifiedModuleName). ' ' .vtranslate('RULE', $qualifiedModuleName),
 						'linkurl' => $this->getDeleteUrl(),
-						'linkicon' => 'icon-trash'
+						'linkicon' => 'fa fa-trash'
 				)
 		);
 		foreach($recordLinks as $recordLink) {
diff --git a/modules/Settings/MailConverter/views/Edit.php b/modules/Settings/MailConverter/views/Edit.php
index ab2b21761..35b509667 100644
--- a/modules/Settings/MailConverter/views/Edit.php
+++ b/modules/Settings/MailConverter/views/Edit.php
@@ -63,10 +63,10 @@ class Settings_MailConverter_Edit_View extends Settings_Vtiger_Index_View {
 		$recordId = $request->get('record');
 		$qualifiedModuleName = $request->getModule(false);
 		$folders = Settings_MailConverter_Module_Model::getFolders($recordId);
+
 		$viewer = $this->getViewer($request);
-		$folders = array('aasdasdsad','bsadasdsad','casadsad','dsdasdsa', 'eadasdsd', 'fasdsasd');
 		if (is_array($folders)) {
-			$viewer->assign('FOLDERS', array_flip($folders));
+			$viewer->assign('FOLDERS', $folders);
 		} else if ($folders) {
 			$viewer->assign('IMAP_ERROR', $folders);
 		} else {
diff --git a/modules/Settings/MailConverter/views/EditRule.php b/modules/Settings/MailConverter/views/EditRule.php
index a459ec9f7..6246de4fb 100644
--- a/modules/Settings/MailConverter/views/EditRule.php
+++ b/modules/Settings/MailConverter/views/EditRule.php
@@ -41,7 +41,6 @@ class Settings_MailConverter_EditRule_View extends Settings_Vtiger_IndexAjax_Vie
 		$viewer->assign('SCANNER_ID', $scannerId);
 		$viewer->assign('SCANNER_MODEL', Settings_MailConverter_Record_Model::getInstanceById($scannerId));
 		
-		
 		$viewer->assign('DEFAULT_OPTIONS', Settings_MailConverter_RuleRecord_Model::getDefaultConditions());
 		$viewer->assign('DEFAULT_ACTIONS', Settings_MailConverter_RuleRecord_Model::getDefaultActions());
 
diff --git a/modules/Settings/MailConverter/views/List.php b/modules/Settings/MailConverter/views/List.php
index fd2d9685e..61d9f5cfa 100644
--- a/modules/Settings/MailConverter/views/List.php
+++ b/modules/Settings/MailConverter/views/List.php
@@ -10,6 +10,21 @@
 
 class Settings_MailConverter_List_View extends Settings_Vtiger_Index_View {
 
+	public function preProcess (Vtiger_Request $request, $display=true) {
+		parent::preProcess($request, false);
+		$qualifiedModuleName = $request->getModule(false);
+		$listViewModel = Settings_Vtiger_ListView_Model::getInstance($qualifiedModuleName);
+		$viewer = $this->getViewer($request);
+		$viewer->assign('LISTVIEW_LINKS', $listViewModel->getListViewLinks());
+		if($display) {
+			$this->preProcessDisplay($request);
+		}
+	}
+
+	protected function preProcessTplName(Vtiger_Request $request) {
+		return parent::preProcessTplName($request);
+	}
+
 	public function process(Vtiger_Request $request) {
 		$moduleName = $request->getModule();
 		$scannerId = $request->get('record');
@@ -21,7 +36,7 @@ class Settings_MailConverter_List_View extends Settings_Vtiger_Index_View {
 		$recordExists = Settings_MailConverter_Module_Model::MailBoxExists();
 		$recordModel = Settings_MailConverter_Record_Model::getAll();
 		$viewer = $this->getViewer($request);
-        
+
 		$viewer->assign('LISTVIEW_LINKS', $listViewModel->getListViewLinks());
 		$viewer->assign('MODULE_MODEL', Settings_Vtiger_Module_Model::getInstance($qualifiedModuleName));
 		$viewer->assign('MAILBOXES', Settings_MailConverter_Module_Model::getMailboxes());
@@ -32,16 +47,16 @@ class Settings_MailConverter_List_View extends Settings_Vtiger_Index_View {
 		$viewer->assign('RECORD_EXISTS', $recordExists);
 	
 		if ($scannerId) {
-		    $viewer->assign('SCANNER_ID', $scannerId);
-		    $viewer->assign('RECORD', $recordModel[$scannerId]);
-		    $viewer->assign('SCANNER_MODEL', Settings_MailConverter_Record_Model::getInstanceById($scannerId));
-		    $viewer->assign('RULE_MODELS_LIST', Settings_MailConverter_RuleRecord_Model::getAll($scannerId));
-		    $viewer->assign('FOLDERS_SCANNED', Settings_MailConverter_Module_Model::getScannedFolders($scannerId));
+			$viewer->assign('SCANNER_ID', $scannerId);
+			$viewer->assign('RECORD', $recordModel[$scannerId]);
+			$viewer->assign('SCANNER_MODEL', Settings_MailConverter_Record_Model::getInstanceById($scannerId));
+			$viewer->assign('RULE_MODELS_LIST', Settings_MailConverter_RuleRecord_Model::getAll($scannerId));
+			$viewer->assign('FOLDERS_SCANNED', Settings_MailConverter_Module_Model::getScannedFolders($scannerId));
 		}
 		$viewer->view('RulesList.tpl', $qualifiedModuleName);
-    }
-    
-    /**
+	}
+
+	/**
 	 * Function to get the list of Script models to be included
 	 * @param Vtiger_Request $request
 	 * @return <Array> - List of Vtiger_JsScript_Model instances
diff --git a/modules/Settings/MailConverter/views/RuleAjax.php b/modules/Settings/MailConverter/views/RuleAjax.php
index 2cc05a2ec..4cf269f95 100644
--- a/modules/Settings/MailConverter/views/RuleAjax.php
+++ b/modules/Settings/MailConverter/views/RuleAjax.php
@@ -21,8 +21,12 @@ class Settings_MailConverter_RuleAjax_View extends Settings_Vtiger_IndexAjax_Vie
 		$viewer->assign('SCANNER_ID', $scannerId);
 		$viewer->assign('SCANNER_MODEL', Settings_MailConverter_Record_Model::getInstanceById($scannerId));
 		$viewer->assign('RULE_MODEL', Settings_MailConverter_RuleRecord_Model::getRule($scannerId,$ruleId));
+		$moduleModel = Settings_Vtiger_Module_Model::getInstance($qualifiedModuleName);
+		$fields = $moduleModel->getSetupRuleFields();
 
 		$viewer->assign('MODULE_NAME', $moduleName);
+		$viewer->assign('MODULE_MODEL', $moduleModel);
+		$viewer->assign('FIELDS', $fields);
 		$viewer->assign('QUALIFIED_MODULE', $qualifiedModuleName);
 
 		$viewer->view('Rule.tpl', $qualifiedModuleName);
diff --git a/packages/vtiger/mandatory/Import.zip b/packages/vtiger/mandatory/Import.zip
index 865441bf4195c0dbd0a454e07db1b786340278ba..885aaeb8921e93bb8bd33caf702ef7ba03843846 100644
GIT binary patch
delta 1576
zcmY+Dc{tR09LMMTBPOA7GdzZ2%;Xqz(3o{jxyiAj%|?z!?YeR$T^^JkrGww{bre}g
zHk2OZDMCb<U0oVm<Vrc#=vc|Mt^LjL&;Iv%z2BeD@B8~b-{+S(BRxGWU2mqNbU4@D
zJ@u-`V>Kxp&K{4$nWK7Y2C$9{wx%|r`(yhVgpSgg>sFmUp|n{!d_@c|yH+JH@Vll;
zW$(P%eSsO_E_YM{+}o|a-qI@>nuD&oC+?=Utq$`~E{Q&kl=kR*=HqwEWpp08%q*bv
z6WA9WRMVeKmgW!{FNlQrF7;|X9fdJgae{N%Q<~fbhErvs>NC5ahbp{nuBR@Rlyp!F
zc{>91D$+bBo+uo3Vp?`c`xI7OQQ|4Ju^LRx6SnQUu(Mm;lb~3ZO(^)#5o6h<x+$Aq
zH9gQyEeIX>rjziF<>YU<7)geck9&gL`B5sw>K$Q>^ku<b56v>qJ=>4|H0HLHNEKx#
zXsR7kFnC!VpIy6RZ&Tc}LP%BC;_D<u29Ashv`z`@f^!E4FTLQ)4b;RDZ|l&gfwFxC
zD=e4pUO{u&Y0jvH?#m<i4ijP9kI2)aWKr5w`lvycPu_rRWMs$|!1aAl!I?>}d&rh=
zO=?)XX+Nt#KU?lLzdH1WMz(0CS<7aOFF!h!EH#^Pe*93t$!{Xx*;LL*Rcq#EK?DAG
z{^nMmZ-jqOj@#WuTTVfRlgN}3arZtVIG3LB_bb)D#wgD5Aj_JPDOR8*uh>7wUSB}Z
z6lxiuUaLz>w`EP!J0=_*Jx%Go$kV;S`c^?V{;Ey*u)^b^j5NWel!%7<c!%)a+;S`D
zi;b@upQUhb9#1ICO<g@P-duXzKkE$rj#691XuZ_jo*7}*VpW*khp#Q;56en}zN`!v
zzUNxCgvwJ?lBf2~ZAtPTA_hC?8|J7ahSeBXnnYKgL(P7e5|Y*DL<ik{4%o2^aBls9
znxzXZ;Zw0viS7@#lZ^-}?V4?|p9Ds>(Q1>CqqFLQl-5MU&eYG1qP41?y7DdYgd^{5
z<NCs0z4pK(hw|Cw&YZcJ;j93!iK2n%xCJ}U7Lrld^Xuek=ZHe*rn5DZO<SXg!EY1`
zcFt>@h<ryJPaea&C@CdT52rn<{+Ajx@^!65WrbgM!01;+o1*qpTJ7g}u4&g8PGJsy
z6z<vZRlC|#d&t^<^pd!Kf99IU?rPDv_%ZLu`R-!px|&VN_a<aB%1O=TB=8tf{Qv(0
zQ^+71IYUDA)yPoJ09YW`48)B7V;~P>41h5bLX~u_;%>!6!m5VA67ge7=58?+;4wpN
z?k0P~H=$cCWMIEI`^b@G9#)FboPznFwPgP!1vnxL_7Z+i0o#!lM+w^-0b9h;Rl?Vd
z02kqTV5|cdjj*#b*4d4U&8&rpbJRan8Q!4+V-N_(selW9f!Z`+3GP8(8n8j8_^5t_
zHoQRtG(;x?V=Xi`0uL8x*g`wh+Xg%lPBt2sO@^1ZVej@j2V#X56k-At^NqnSr0)tG
zHwK#UpfT2itLsu@3@pF{IA#pIK_+CF0Cyy|7BWq+)jSixMmp+XsOkE12yos65RrwA
zgk}mjfDc1V!S~3Qmi4JVEJH;1*M($;eY0vOn%1cS<IJ!#UBpa+tz!1-mE>z?fCbJ&
z79HDbc#h6J*M(VhtS%LzuZ1LdOCQL?F*?u%ad3?eT#>FJ^xKd&+)u{x!{$I2c{>U(
zn*(QL?Jdfk&=udYWI-CrFaQx$L45{rLEg=xx*|RCrEQc&Sc#;3gtwVM1@<z49di2f
zy67;0HBvJ#7F8I{1Uo=CtY-o*Bx_kRfDSAx!(j#>KuZ>OfFJZ>0Uyu`%UHluii-f~
zD-YD63>%nB)k|-fm)II)H!NRl>hcoPh7)Y;enO#-1<-&L3ye`QGh}|#1vnh;KP?7u
AcmMzZ

delta 1628
zcmYk5c{r3?7{KRz*-OSwcH`P+n8k1{iOQu?maZiwB!ePrp?Yc(qHE2EqwL#NrlAs(
zibRDcyGIL2^C%KR5iOeg8PC1l@1OH~_xC;Tciz7jxG*Vj!$4VbA~<y?`{Q(l(K;N?
zSrmsOqw2B*n63#Vm~~m9J^d7Xv-i_V(@G(ppG2vx^l{sQs|sNP8IRn{k8_-7hAL*p
z<JzM+!+&jGpr$)><QqpGyk7ZuYh=cP!}~hWAf7CaWVaMkHu)j`t#qvv0zRQQdC{(1
zDCM?LeE$s@+4x$~-O0uQGEY)UdqwPBuIvOWwM~0Y4Md)rWj;H+tiHazT`r#P6u9{=
z=+PS&%Ejr|<{N41wgmW_EHVreSk%2F#`!Q2MoRMnE{%0DLWTkpN`-lsd@gt_!F`(0
ztm^NEBIyQtfJumc_RT$k#bOs9Dm*(7z&;dD8y$L+8k@&um))4iZ@u0hlv`r!>Ki=B
z<GzfJ;%K1E@Q2PzIg2ZencRR8B}M~#g*5usr_tQe*A01RGgX}D<ehWX^yN2`thtW^
z-PzAJf|$CYX!|!FpD$U?dCn<mQLBbdF#^O%vQAR6B-`Zq-d*>bn}<)dk)N>o{5EyT
zjnwq)Dog5pRjTY+WJ4ZJPdxqNAXB!>t?PNZD*Nm#b7m?ixA=b2O|P8hJQs!uBmZ*#
zX>a>D53k475xypg#Nuk*J6>wvt1cJLjF+=Q20rh9GHe)F%l;H#Q?Ywr0hOk-F#EcZ
z3z9YFOeLw(lUe1<nc3p!b(9A4k98lmx*8~@?etZY94zN15tvrxCo|E0$t_RLoZPnP
zXXp}9#H>8aD}0`{Z&FH$8}vm`xR;q*Wc8)cq;sNmp5ke`z;Z8}4`ZBkDD<XWxN`Ac
zB-<gOzH+<xQi;^97oz61u7mvz^?O@8<gP#Umt;jb7%_CkiWED~y*)|nEJ{y|oCsZa
z+~JXirbY(-!KS9rxmVg}`dOW$XC82zdd6Z2lHE*rf+uerqH-`JE{s%^WRcU{=d}%Q
z%_&qgz8e%hRTG#^KXT-t-1GM%5z8TxU0YnX%F~GSDrrxHnm>J>&JDghXGWJF`);p(
zElaP>Du7n-N9fEaUd|5md;e}PyS^!=tzV)i;m6Tz5j#ogMR%4=Ov(qV^W!Q%V}iC>
zRqT>8(^PG)TPzdqXcdT;5fO{j5~90iM&1b;WpzoUh<sk=<X;QwfY9GkY=RfTi?Ym_
zwqRGwzM4!6jZ0ADB&dOQ1X^nY0kL1t3m(t}$B;5Lv_y>r)5u^0L<m3?G(iml@IcP$
zpc=B8u#f=ghysbvUkJb$38(VeQ49QzbQ=B3g0MylP!Mrb$khV-k!1^1(wYE$egoSP
zX={uPVVxGhqa8N*4LJU%evTLW(q`2Q{bnNtKWJd(vHnyM-yQr=NCOHmPaCKs-u74#
zW%QoC7#!0E`bY_1hD04;iKra<&z7MBXdni*>Hsrv3$Ew@V}Tb891eD=14ZblizO2D
zhvB+dL+1Qb5%%Z;8Zwf!s#Ju^dYIsv!WYos6j3Os50qh=9@q$$V1XX6K}eafP!IF`
zp$Ck>6r|{5sniM}RUd0KRUf;h(V{hBSRa@m<&|p!kqD?r>h(1tiio+rW}}kTitsTJ
zn?<@B&J%$X5_cPoy{!X}k}#dreZIYhgk7*$6Q6+rFhgi9D5XUax*7mogt5x<FvkFE
zI=F++T#UgrC}W6)_4T1WeX20X5KGrMh~67igY_7LbjURXI}q+LIy$TbZOND!_Xhnr
ziVeETDr2b9m@0H4V7qur#(srIa2*BMA;@&*v^or?U@mYL<t|A>76oiUO6U3flL9P|
zj?Wm&Ku0RrhKwy?On|~PY~k=Le*Le7S3)ion>PFhKhTy2HX}p4RYs?H8(}>a;GrD?
z{vY8Edudn)-2$+W2IL{d2#`S^^fAJ8^bKpe=2aaN&KZHN;O6Qf4|mdmqEMSEz$*U(
DN~We4

diff --git a/pkg/vtiger/modules/Import/layouts/v7/modules/Import/ImportLandingPage.tpl b/pkg/vtiger/modules/Import/layouts/v7/modules/Import/ImportLandingPage.tpl
index 519567500..0a33b0353 100644
--- a/pkg/vtiger/modules/Import/layouts/v7/modules/Import/ImportLandingPage.tpl
+++ b/pkg/vtiger/modules/Import/layouts/v7/modules/Import/ImportLandingPage.tpl
@@ -37,14 +37,6 @@
 							</div>
 						</div>
 					</div>
-					<div class="col-lg-3 col-md-3 col-sm-12 col-xs-12" id = "googleImport">
-						<div class="menu-item app-item app-PROJECT">
-							<span class="fa fa-google"></span>
-							<div>
-								<h4>{'LBL_GOOGLE'|@vtranslate:$MODULE}</h4>
-							</div>
-						</div>
-					</div>
 				{else if $FOR_MODULE == 'Calendar'}
 					<div class="col-lg-3 col-md-3 col-sm-12 col-xs-12" id="icsImport">
 						<div class="menu-item app-item" style="background: #b74f6f none repeat scroll 0 0 !important;">
-- 
GitLab