From 9aa5f03c6d7aad1ca685d9e03508d4482d1b6f23 Mon Sep 17 00:00:00 2001
From: satish <satish.dvnk@vtiger.com>
Date: Tue, 7 Mar 2017 20:05:15 +0530
Subject: [PATCH] Cancel on module import is showing "handler not found" Mark
 source as mail scanner when record created from scanner Created time and
 modified time is showing in 24 hours format

---
 .../ModuleManager/ImportUserModuleStep1.tpl   |  2 +-
 .../ModuleManager/ImportUserModuleStep2.tpl   | 37 ++++++++-----------
 .../Settings/Workflows/CreateEntity.tpl       |  6 +--
 .../handlers/MailScannerAction.php            |  9 +++++
 modules/Vtiger/uitypes/Datetime.php           | 28 +++++++++++++-
 5 files changed, 54 insertions(+), 28 deletions(-)

diff --git a/layouts/v7/modules/Settings/ModuleManager/ImportUserModuleStep1.tpl b/layouts/v7/modules/Settings/ModuleManager/ImportUserModuleStep1.tpl
index c1c5d03b4..5d2bf637e 100644
--- a/layouts/v7/modules/Settings/ModuleManager/ImportUserModuleStep1.tpl
+++ b/layouts/v7/modules/Settings/ModuleManager/ImportUserModuleStep1.tpl
@@ -41,7 +41,7 @@
 				<div class="row clearfix">
 					<div class="textAlignCenter col-lg-12 col-md-12 col-sm-12">
 						<button class="btn btn-success saveButton" disabled="disabled" type="submit" name="importFromZip"><strong>{vtranslate('LBL_IMPORT', $MODULE)}</strong></button>&nbsp;&nbsp;
-						<a class="cancelLink" href="index.php?module=ExtensionStore&parent=Settings&view=ExtensionImport&mode=step1">{vtranslate('LBL_CANCEL', $QUALIFIED_MODULE)}</a>
+						<a class="cancelLink" href="javascript:history.back()" type="reset">{vtranslate('LBL_CANCEL', $MODULE)}</a>
 					</div>
 				</div>
 			</div>
diff --git a/layouts/v7/modules/Settings/ModuleManager/ImportUserModuleStep2.tpl b/layouts/v7/modules/Settings/ModuleManager/ImportUserModuleStep2.tpl
index 863db51d3..8bb6815bf 100644
--- a/layouts/v7/modules/Settings/ModuleManager/ImportUserModuleStep2.tpl
+++ b/layouts/v7/modules/Settings/ModuleManager/ImportUserModuleStep2.tpl
@@ -65,26 +65,19 @@
 								{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>
+								{if $MODULEIMPORT_EXISTS eq 'true' || $MODULEIMPORT_DIR_EXISTS eq 'true'}
+									{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}
+										<br><br><span class="alert-info" style="padding: 4px 10px;">{vtranslate('LBL_DELETE_EXIST_DIRECTORY', $QUALIFIED_MODULE)}</span>
+									{/if}
+								{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>
 						</div>
 						<br><br>
@@ -98,12 +91,12 @@
 					{if $MODULEIMPORT_FAILED neq ''}
 						<button class="btn btn-success finishButton" type="submit"><strong>{vtranslate('LBL_FINISH', $QUALIFIED_MODULE)}</strong></button>
 					{else if $MODULEIMPORT_EXISTS eq 'true' || $MODULEIMPORT_DIR_EXISTS eq 'true'}
-						<button class="btn btn-success updateModule" name="saveButton">{vtranslate('LBL_UPDATE_NOW', $QUALIFIED_MODULE)}</button>
+						<button class="btn btn-success updateModule" name="saveButton" {if $need_license_agreement eq 'true'} disabled {/if}>{vtranslate('LBL_UPDATE_NOW', $QUALIFIED_MODULE)}</button>
 					{else}
 						<button class="btn btn-success importModule" name="saveButton" {if $need_license_agreement eq 'true'} disabled {/if}><strong>{vtranslate('LBL_IMPORT_NOW', $QUALIFIED_MODULE)}</strong></button>
 					{/if}
 					&nbsp;&nbsp;
-					<a class="cancelLink" href="index.php?module=ModuleManager&parent=Settings&view=ModuleImport&mode=importUserModuleStep1">{vtranslate('LBL_CANCEL', $QUALIFIED_MODULE)}</a>
+					<a class="cancelLink" href="javascript:history.back()" type="reset">{vtranslate('LBL_CANCEL', $MODULE)}</a>
 				</div>
 			</div>
 		</div>
diff --git a/layouts/v7/modules/Settings/Workflows/CreateEntity.tpl b/layouts/v7/modules/Settings/Workflows/CreateEntity.tpl
index 51d6756df..fba1f6c14 100644
--- a/layouts/v7/modules/Settings/Workflows/CreateEntity.tpl
+++ b/layouts/v7/modules/Settings/Workflows/CreateEntity.tpl
@@ -14,7 +14,7 @@
 <div class="conditionsContainer" id="save_fieldvaluemapping">
 	{if $RELATED_MODULE_MODEL_NAME neq '' && getTabid($RELATED_MODULE_MODEL_NAME)}
 		<div>
-			<button type="button" class="btn" id="addFieldBtn">{vtranslate('LBL_ADD_FIELD',$QUALIFIED_MODULE)}</button>
+			<button type="button" class="btn btn-default" id="addFieldBtn">{vtranslate('LBL_ADD_FIELD',$QUALIFIED_MODULE)}</button>
 		</div><br>
 		{assign var=RELATED_MODULE_MODEL value=Vtiger_Module_Model::getInstance($TASK_OBJECT->entity_type)}
 		{assign var=FIELD_VALUE_MAPPING value=ZEND_JSON::decode($TASK_OBJECT->field_value_mapping)}
@@ -58,7 +58,7 @@
 	{else}
 		{if $RELATED_MODULE_MODEL}
 			<div>
-				<button type="button" class="btn" id="addFieldBtn">{vtranslate('LBL_ADD_FIELD',$QUALIFIED_MODULE)}</button>
+				<button type="button" class="btn btn-default" id="addFieldBtn">{vtranslate('LBL_ADD_FIELD',$QUALIFIED_MODULE)}</button>
 			</div><br>
 			{assign var=MANDATORY_FIELD_MODELS value=$RELATED_MODULE_MODEL->getMandatoryFieldModels()}
 			{foreach from=$MANDATORY_FIELD_MODELS item=MANDATORY_FIELD_MODEL}
@@ -95,7 +95,7 @@
 	{/if}
 </div><br>
 {if $RELATED_MODULE_MODEL}
-	<div class="row basicAddFieldContainer hide">
+	<div class="row form-group basicAddFieldContainer hide">
         <span class="col-lg-4">
 			<select name="fieldname" style="min-width: 250px">
 				<option value="none">{vtranslate('LBL_NONE',$QUALIFIED_MODULE)}</option>
diff --git a/modules/Settings/MailConverter/handlers/MailScannerAction.php b/modules/Settings/MailConverter/handlers/MailScannerAction.php
index 3e11d5435..2954f5da7 100644
--- a/modules/Settings/MailConverter/handlers/MailScannerAction.php
+++ b/modules/Settings/MailConverter/handlers/MailScannerAction.php
@@ -37,6 +37,8 @@ class Vtiger_MailScannerAction {
 	// Storage folder to use
 	var $STORAGE_FOLDER = 'storage/mailscanner/';
 
+	var $recordSource = 'MAIL SCANNER';
+
 	/** DEBUG functionality */
 	var $debug		= false;
 	function log($message) {
@@ -219,6 +221,7 @@ class Vtiger_MailScannerAction {
 		$contact->column_fields['email'] = $email;
 		$contact->column_fields['assigned_user_id'] = $mailscannerrule->assigned_to;
 		$contact->column_fields['description'] = $description;
+		$contact->column_fields['source'] = $this->recordSource;
 		$contact->save('Contacts');
 
 		$this->__SaveAttachements($mailrecord, 'Contacts', $contact);
@@ -245,6 +248,7 @@ class Vtiger_MailScannerAction {
 		$lead->column_fields['email'] = $email;
 		$lead->column_fields['assigned_user_id'] = $mailscannerrule->assigned_to;
 		$lead->column_fields['description'] = $description;
+		$lead->column_fields['source'] = $this->recordSource;
 		$lead->save('Leads');
 
 		$this->__SaveAttachements($mailrecord, 'Leads', $lead);
@@ -270,6 +274,7 @@ class Vtiger_MailScannerAction {
 		$account->column_fields['email1'] = $email;
 		$account->column_fields['assigned_user_id'] = $mailscannerrule->assigned_to;
 		$account->column_fields['description'] = $description;
+		$account->column_fields['source'] = $this->recordSource;
 		$account->save('Accounts');
 
 		$this->__SaveAttachements($mailrecord, 'Accounts', $account);
@@ -308,6 +313,8 @@ class Vtiger_MailScannerAction {
 			$ticket->column_fields['contact_id'] = $contactLinktoid;
 		if ($linktoid)
 			$ticket->column_fields['parent_id'] = $linktoid;
+
+		$ticket->column_fields['source'] = $this->recordSource;
 		$ticket->save('HelpDesk');
 
 		// Associate any attachement of the email to ticket
@@ -415,6 +422,7 @@ class Vtiger_MailScannerAction {
 		$focus->column_fields['saved_toid'] = $to;
 		$focus->column_fields['ccmail'] = $cc;
 		$focus->column_fields['bccmail'] = $bcc;
+		$focus->column_fields['source'] = $this->recordSource;
 		$focus->save('Emails');
 
 		$emailid = $focus->id;
@@ -461,6 +469,7 @@ class Vtiger_MailScannerAction {
 				$document->column_fields['filelocationtype']= 'I';
 				$document->column_fields['folderid']		= 1; // Default Folder
 				$document->column_fields['assigned_user_id']= $userid;
+				$document->column_fields['source']			= $this->recordSource;
 				$document->save('Documents');
 
 				// Link file attached to document
diff --git a/modules/Vtiger/uitypes/Datetime.php b/modules/Vtiger/uitypes/Datetime.php
index 35b33f781..1c1d8dd24 100644
--- a/modules/Vtiger/uitypes/Datetime.php
+++ b/modules/Vtiger/uitypes/Datetime.php
@@ -24,7 +24,20 @@ class Vtiger_Datetime_UIType extends Vtiger_Date_UIType {
 	 * @return <Object>
 	 */
 	public function getDisplayValue($value) {
-		return $dateValue = ($value != '') ? self::getDisplayDateTimeValue($value) : '--';
+		$dateValue = '--';
+
+		if ($value != '') {
+			$dateTimeValue = self::getDisplayDateTimeValue($value);
+			list($startDate, $startTime) = explode(' ', $dateTimeValue);
+
+			$currentUser = Users_Record_Model::getCurrentUserModel();
+			if ($currentUser->get('hour_format') == '12') {
+				$startTime = Vtiger_Time_UIType::getTimeValueInAMorPM($startTime);
+			}
+
+			$dateValue = "$startDate $startTime";
+		}
+		return $dateValue;
 	}
 	
 	/**
@@ -55,4 +68,15 @@ class Vtiger_Datetime_UIType extends Vtiger_Date_UIType {
 	public static function getDateTimeValue($dateTime){
 		return Vtiger_Util_Helper::convertDateTimeIntoUsersDisplayFormat($dateTime);
 	}
-}
\ No newline at end of file
+
+	public function getDBInsertValue($value) {
+		$result = explode(' ', $value);
+		//If database value is date, then fall back to parent
+		if (!$result[1]) {
+			return parent::getDBInsertValue($value);
+		} else {
+			return $this->getDBDateTimeValue($value);
+		}
+	}
+
+}
-- 
GitLab