diff --git a/config.performance.php b/config.performance.php
index db6125cdc0ff2af6a0bc7943f02cdda4fcfa92ab..303c0dcf5006bb1737ab28658ccf554a2ca414cf 100644
--- a/config.performance.php
+++ b/config.performance.php
@@ -10,7 +10,7 @@
 /* Performance paramters can be configured to fine tune vtiger CRM runtime */
 $PERFORMANCE_CONFIG = Array(
 	// Enable Vtiger Log Level for debugging only if requried 
-	'LOGLEVEl_DEBUG' => false,
+	'LOGLEVEL_DEBUG' => false,
 
 	// Should the caller information be captured in SQL Logging?
 	// It adds little overhead for performance but will be useful to debug
diff --git a/layouts/v7/modules/Documents/resources/Documents.js b/layouts/v7/modules/Documents/resources/Documents.js
index ac8e4123aaec00a9f564f5cdff56cf0684be4a63..492273eb7d6cb405d82639addcc989a94bddda98 100644
--- a/layouts/v7/modules/Documents/resources/Documents.js
+++ b/layouts/v7/modules/Documents/resources/Documents.js
@@ -471,7 +471,16 @@ Vtiger.Class('Documents_Index_Js', {
 		vtigerInstance.referenceModulePopupRegisterEvent(container);
 		vtigerInstance.registerClearReferenceSelectionEvent(container);
 		vtigerInstance.registerAutoCompleteFields(container);
-		app.helper.registerModalDismissWithoutSubmit(container.find('form'));
+
+		// Avoid duplicate registrations
+		// container could remain in DOM where as form in it could get replaced next invoke after cancel
+		// to avoid duplicate registration on form close/cancel within same transaction we are handling state in form DOM element.
+		var containerForm = container.find("form");
+		if (!containerForm.data("isDismissWithoutSubmitRegistered")) {
+			app.helper.registerModalDismissWithoutSubmit(container.find('form'));
+			containerForm.data("isDismissWithoutSubmitRegistered", true);
+		}
+		
 		var moduleInstance = Vtiger_Edit_Js.getInstanceByModuleName('Documents');
 		moduleInstance.registerEventForPicklistDependencySetup(container);
 
diff --git a/layouts/v7/modules/Settings/LayoutEditor/FieldCreate.tpl b/layouts/v7/modules/Settings/LayoutEditor/FieldCreate.tpl
index db9c43a4e8630bfd386a164c8a998f9b1dfa9351..af3e377fa43988bde4aaf523e938994d03bc64ed 100644
--- a/layouts/v7/modules/Settings/LayoutEditor/FieldCreate.tpl
+++ b/layouts/v7/modules/Settings/LayoutEditor/FieldCreate.tpl
@@ -141,7 +141,7 @@
 								<input type="hidden" name="presence" value="1"/>
 								<label class="checkbox">
 									<input type="checkbox" class ='cursorPointer bootstrap-switch' id="fieldPresence" name="presence" {if $FIELD_MODEL->isViewable()} checked {/if}
-										{if $FIELD_MODEL->isActiveOptionDisabled()} readonly="readonly" {/if} {if $FIELD_MODEL->isMandatory()} readonly="readonly" {/if}
+										{if $FIELD_MODEL->isActiveOptionDisabled()} optionDisabled = "true" readonly="readonly" {/if} {if $FIELD_MODEL->isMandatory()} readonly="readonly" {/if}
 										data-on-text="Yes" data-off-text="No" value="{$FIELD_MODEL->get('presence')}"/>
 								</label>
 							</div>
diff --git a/layouts/v7/modules/Settings/LayoutEditor/resources/LayoutEditor.js b/layouts/v7/modules/Settings/LayoutEditor/resources/LayoutEditor.js
index 603295ad483fb289926f00a407a999790458ae88..b8c46da53ff8d0d5382aa5d164dc864492fe26c3 100644
--- a/layouts/v7/modules/Settings/LayoutEditor/resources/LayoutEditor.js
+++ b/layouts/v7/modules/Settings/LayoutEditor/resources/LayoutEditor.js
@@ -504,15 +504,19 @@ Vtiger.Class('Settings_LayoutEditor_Js', {
 					data.find('input[name="quickcreate"]').prop('checked', true).attr('readonly', 'readonly');
 					data.find('input[name="quickcreate"]').removeClass('cursorPointer').addClass('cursorPointerNotAllowed');
 				}
-				data.find('input[name="presence"]').attr('checked', true).attr('readonly', 'readonly');
-				data.find('#fieldPresence').bootstrapSwitch('toggleReadonly', true);
+				if(data.find('#fieldPresence').attr('optionDisabled') != 'true'){
+					data.find('input[name="presence"]').attr('checked', true).attr('readonly', 'readonly');
+					data.find('#fieldPresence').bootstrapSwitch('toggleReadonly', true);
+				}
 			} else {
 				if (data.find('input[name="isquickcreatesupported"]').val()) {
 					data.find('input[name="quickcreate"]').removeAttr('readonly');
 					data.find('input[name="quickcreate"]').removeClass('cursorPointerNotAllowed').addClass('cursorPointer');
 				}
-				data.find('input[name="presence"]').removeAttr('readonly');
-				data.find('#fieldPresence').bootstrapSwitch('toggleReadonly');
+				if(data.find('#fieldPresence').attr('optionDisabled') != 'true'){
+					data.find('input[name="presence"]').removeAttr('readonly');
+					data.find('#fieldPresence').bootstrapSwitch('toggleReadonly');
+				}
 			}
 		})
 		data.find('input[type="checkbox"]').on('click', function (e) {
diff --git a/layouts/v7/modules/Settings/Tags/resources/List.js b/layouts/v7/modules/Settings/Tags/resources/List.js
index 0a945a6cb2b726e5d7942b5b06094ba6f5d70c0b..2a084ad13de1b6273d148755138d8a3a1cf70226 100644
--- a/layouts/v7/modules/Settings/Tags/resources/List.js
+++ b/layouts/v7/modules/Settings/Tags/resources/List.js
@@ -82,7 +82,7 @@ Settings_Vtiger_List_Js('Settings_Tags_List_Js',{
         var editTagContainer = this.getEditTagContainer();
         editTagContainer.find('[name="id"]').val(tagInfo.id);
 
-        editTagContainer.find('[name="tagName"]').val(tagInfo.tag);
+        editTagContainer.find('[name="tagName"]').val(app.helper.getDecodedValue(tagInfo.tag));
         if(tagInfo.visibility == "public") {
             editTagContainer.find('[type="checkbox"]').prop('checked',true);
         }else{
@@ -199,4 +199,4 @@ Settings_Vtiger_List_Js('Settings_Tags_List_Js',{
             self.registerEditTagSaveEvent();
         })
     }
-});
\ No newline at end of file
+});
diff --git a/layouts/v7/modules/Settings/Workflows/resources/AdvanceFilter.js b/layouts/v7/modules/Settings/Workflows/resources/AdvanceFilter.js
index d1559a86a1dbf47ccce49d3606ac791d6c4cd16f..cd60ca0227165bc5eecb3f58dc77aa57819190bb 100644
--- a/layouts/v7/modules/Settings/Workflows/resources/AdvanceFilter.js
+++ b/layouts/v7/modules/Settings/Workflows/resources/AdvanceFilter.js
@@ -384,12 +384,19 @@ Vtiger_Currency_Field_Js('Workflows_Currency_Field_Js',{},{
 
 Vtiger_Time_Field_Js('Workflows_Time_Field_Js',{},{
 
+    /**
+	 * Function to get the user time format
+	 */
+    getTimeFormat : function(){
+        return this.get('time-format');
+    },
+    
     /**
 	 * Function to get the ui
 	 * @return - input text field
 	 */
     getUi : function() {
-        var html = '<input type="text" class="getPopupUi time inputElement" name="'+ this.getName() +'"  value="'+  this.getValue() + '" />'+
+        var html = '<input type="text" class="getPopupUi time inputElement" name="'+ this.getName() +'" data-time-format="'+ this.getTimeFormat() + '" value="'+  this.getValue() + '" />'+
         '<input type="hidden" name="valuetype" value="'+this.get('workflow_valuetype')+'" />';
         var element = jQuery(html);
         return this.addValidationToElement(element);
diff --git a/layouts/v7/modules/Settings/Workflows/resources/Edit.js b/layouts/v7/modules/Settings/Workflows/resources/Edit.js
index fa768106f00f1c639d86c75f9ceab54b72d4c662..3f433fdd2739a879ca6bc3c1ae3eb634c98ba7e7 100644
--- a/layouts/v7/modules/Settings/Workflows/resources/Edit.js
+++ b/layouts/v7/modules/Settings/Workflows/resources/Edit.js
@@ -147,12 +147,13 @@ Settings_Vtiger_Edit_Js("Settings_Workflows_Edit_Js", {
             clonedPopupUi.find('.fieldValueContainer div').prepend(clonedDateElement);
          } else if (fieldValueElement.hasClass('time')) {
             clonedPopupUi.find('.textType').find('option[value="rawtext"]').attr('data-ui', 'input');
+            var timeFormat = fieldValueElement.data('time-format');
             if (valueType == 'rawtext') {
                var value = fieldValueElement.val();
             } else {
                value = '';
             }
-            var clonedTimeElement = '<input type="text" style="width: 30%;" class="timepicker-default fieldValue inputElement" value="' + value + '" data-input="true" >'
+            var clonedTimeElement = '<input type="text" style="width: 30%;" class="timepicker-default fieldValue inputElement" value="' + value + '" data-format="' + timeFormat + '" data-input="true" >'
             clonedPopupUi.find('.fieldValueContainer div').prepend(clonedTimeElement);
          } else if (fieldValueElement.hasClass('boolean')) {
             clonedPopupUi.find('.textType').find('option[value="rawtext"]').attr('data-ui', 'input');
diff --git a/layouts/v7/modules/Vtiger/RecentComments.tpl b/layouts/v7/modules/Vtiger/RecentComments.tpl
index 5bbec85ea00036bd438f7ac81c91a6586c12b36b..a9de04159e12716a4bf45044506aadfcadd50eb7 100644
--- a/layouts/v7/modules/Vtiger/RecentComments.tpl
+++ b/layouts/v7/modules/Vtiger/RecentComments.tpl
@@ -232,8 +232,8 @@
 		</div>
 	</div>
 
-	<div class="hide basicEditCommentBlock container-fluid" style="min-height: 150px;">
-		<div class="row commentArea" >
+	<div class="hide basicEditCommentBlock container-fluid">
+		<div class="row commentArea" style="padding-bottom: 10px" >
 			<input style="width:100%;height:30px;" type="text" name="reasonToEdit" placeholder="{vtranslate('LBL_REASON_FOR_CHANGING_COMMENT', $MODULE_NAME)}" class="input-block-level"/>
 		</div>
 		<div class="row" style="padding-bottom: 10px;">
@@ -242,9 +242,11 @@
 			</div>
 		</div>
 		<input type="hidden" name="is_private">
-		<div class="pull-right row">
-			<button class="btn btn-success btn-sm detailViewSaveComment" type="button" data-mode="edit">{vtranslate('LBL_POST', $MODULE_NAME)}</button>
-			<a href="javascript:void(0);" class="cursorPointer closeCommentBlock cancelLink" type="reset">{vtranslate('LBL_CANCEL', $MODULE_NAME)}</a>
+		<div class="row" style="padding-bottom: 10px;">
+			<div class="pull-right">
+				<button class="btn btn-success btn-sm detailViewSaveComment" type="button" data-mode="edit">{vtranslate('LBL_POST', $MODULE_NAME)}</button>
+				<a href="javascript:void(0);" class="cursorPointer closeCommentBlock cancelLink" type="reset">{vtranslate('LBL_CANCEL', $MODULE_NAME)}</a>
+			</div>
 		</div>
 	</div>
 </div>
diff --git a/layouts/v7/modules/Vtiger/resources/Vtiger.js b/layouts/v7/modules/Vtiger/resources/Vtiger.js
index 2056278a69126f995b647bc308cf8399f24f4eb5..3d13692268e5d2c9990f9cc479101d5a5c4f96ce 100644
--- a/layouts/v7/modules/Vtiger/resources/Vtiger.js
+++ b/layouts/v7/modules/Vtiger/resources/Vtiger.js
@@ -1230,7 +1230,7 @@ Vtiger.Class('Vtiger_Index_Js', {
 		var quickCreateNode = jQuery('#quickCreateModules').find('[data-name="'+ referenceModuleName +'"]');
 		if(quickCreateNode.length <= 0) {
 			var notificationOptions = {
-				'title' : app.vtranslate('JS_NO_CREATE_OR_NOT_QUICK_CREATE_ENABLED')
+				'message' : app.vtranslate('JS_NO_CREATE_OR_NOT_QUICK_CREATE_ENABLED')
 			}
 			app.helper.showAlertNotification(notificationOptions);
 		}
diff --git a/layouts/v7/resources/application.js b/layouts/v7/resources/application.js
index 834d54ae8456456f644e41e835d054d0b669427c..8676d95e63c447a895d319db566b5f828b9b2497 100644
--- a/layouts/v7/resources/application.js
+++ b/layouts/v7/resources/application.js
@@ -537,4 +537,20 @@ jQuery(function () {
 			modal_this.$element.focus()
 		}
 	})};
-});
\ No newline at end of file
+});
+
+/**
+ * Pre-filter Ajax requests to guard against XSS attacks.
+ *
+ * See https://github.com/jquery/jquery/issues/2432
+ */
+if (jQuery.ajaxPrefilter) {
+  // For newer versions of jQuery, use an Ajax prefilter to prevent
+  // auto-executing script tags from untrusted domains. This is similar to the
+  // fix that is built in to jQuery 3.0 and higher.
+  jQuery.ajaxPrefilter(function (s) {
+    if (s.crossDomain) {
+      s.contents.script = false;
+    }
+  });
+}
diff --git a/modules/Calendar/models/Field.php b/modules/Calendar/models/Field.php
index 05d260d74cec283c667dbae97de0f1ac0084c79d..cb81df21944800b02ad1010760b1f81a211bc105 100644
--- a/modules/Calendar/models/Field.php
+++ b/modules/Calendar/models/Field.php
@@ -55,6 +55,8 @@ class Calendar_Field_Model extends Vtiger_Field_Model {
 			return 'reminder';
 		} else if($this->getName() == 'recurringtype') {
 			return 'recurrence';
+		} else if($this->get('uitype') == '9'){
+			return 'percentage';
 		}
 		$webserviceField = $this->getWebserviceFieldObject();
 		return $webserviceField->getFieldDataType();
diff --git a/modules/Emails/models/Record.php b/modules/Emails/models/Record.php
index 44d3e41e78df7235de375f3b7c5cc75c76738474..7f5e1d99ec23cdc7cc82cc8deb6a321772502065 100644
--- a/modules/Emails/models/Record.php
+++ b/modules/Emails/models/Record.php
@@ -220,9 +220,10 @@ class Emails_Record_Model extends Vtiger_Record_Model {
 				$status = $mailer->Send(true);
 			}
 			if(!$status) {
-				$status = $mailer->getError();
-				//If mailer error, then update emailflag as saved
-				if($status){
+				// Before inspecting for mailer error do a explict check on its configuration.
+				$err = $mailer->_serverConfigured ? $mailer->getError() : vtranslate("LBL_MAIL_SERVER_DESCRIPTION", "Settings:Vtiger");
+				// If mailer error, then update emailflag as saved
+				if($err){
 					$this->updateEmailFlag();
 				}
 			} else {
diff --git a/modules/Migration/schema/811_to_812.php b/modules/Migration/schema/811_to_812.php
index b80c3cfc1c89f4c41ce55ffd68e077a35a59ee83..e85c03e5aaa2f53942199ece252d6e612dd2c751 100644
--- a/modules/Migration/schema/811_to_812.php
+++ b/modules/Migration/schema/811_to_812.php
@@ -3,5 +3,9 @@ if (defined('VTIGER_UPGRADE')) {
     global $adb, $current_user;
     $db = PearDatabase::getInstance();
 
+    // Increase column length to hold longer JSONified value.
     $db->pquery('ALTER TABLE com_vtiger_workflows MODIFY COLUMN schannualdates VARCHAR(500)', array());
+
+    // Trim the space in value.
+    $db->pquery('UPDATE vtiger_projecttaskstatus set projecttaskstatus = "Canceled" where projecttaskstatus = "Canceled "', array());
 }
diff --git a/modules/Settings/LayoutEditor/actions/Field.php b/modules/Settings/LayoutEditor/actions/Field.php
index d3d85189626718f2a4bd07907b6e33a132dbb3cf..22796ebc77923a27bdfbe20fc88c257b2f768588 100644
--- a/modules/Settings/LayoutEditor/actions/Field.php
+++ b/modules/Settings/LayoutEditor/actions/Field.php
@@ -97,7 +97,7 @@ class Settings_LayoutEditor_Field_Action extends Settings_Vtiger_Index_Action {
             $fieldInstance->set('masseditable', $massEditable);
         }
 
-        $defaultValue = $fieldInstance->get('defaultvalue');
+        $defaultValue = decode_html($fieldInstance->get('defaultvalue'));
         if(!is_null($request->get('fieldDefaultValue', null))) {
 
             if(is_array($request->get('fieldDefaultValue'))) {
@@ -109,6 +109,10 @@ class Settings_LayoutEditor_Field_Action extends Settings_Vtiger_Index_Action {
             {
                 $defaultValue=Vtiger_Time_UIType::getTimeValueWithSeconds($defaultValue);
             }
+            // Converting the date value to DB format (yyyy-mm-dd)
+            if ($defaultValue && $fieldInstance->get('uitype')=='5') {
+                $defaultValue = Vtiger_Date_UIType::getDBInsertedValue($defaultValue);
+            }
 
             $fieldInstance->set('defaultvalue', $defaultValue);
         }
@@ -200,6 +204,21 @@ class Settings_LayoutEditor_Field_Action extends Settings_Vtiger_Index_Action {
 			foreach($fieldIds as $fieldId) {
 				$fieldModel = Settings_LayoutEditor_Field_Model::getInstance($fieldId);
 				$fieldInfo = $fieldModel->getFieldInfo();
+                //The default value is set to response after reactivating the field.
+                $defaultValue = $fieldModel->getDefaultFieldValue();
+                if (isset($defaultValue)) {
+                    if ($defaultValue && $fieldInfo['type'] == 'date') {
+                        $defaultValue = DateTimeField::convertToUserFormat($defaultValue);
+                    } else if (!$defaultValue) {
+                        $defaultValue = $fieldInstance->getDisplayValue($defaultValue);
+                    } else if (is_array($defaultValue)) {
+                        foreach ($defaultValue as $key => $value) {
+                            $defaultValue[$key] = $fieldInstance->getDisplayValue($value);
+                        }
+                        $defaultValue = Zend_Json::encode($defaultValue);
+                    }
+            }
+            $fieldInfo['fieldDefaultValue'] = $defaultValue;
 				$responseData[] = array_merge(array('id'=>$fieldModel->getId(), 'blockid'=>$fieldModel->get('block')->id, 'customField'=>$fieldModel->isCustomField()),$fieldInfo);
 			}
             $response->setResult($responseData);
diff --git a/modules/Settings/Picklist/models/Module.php b/modules/Settings/Picklist/models/Module.php
index e5c4274cf7c3beb37160eb43abff491031f27e06..a46aebd0d53535bc5e6cbbdc364ab5a563e09f5c 100644
--- a/modules/Settings/Picklist/models/Module.php
+++ b/modules/Settings/Picklist/models/Module.php
@@ -499,7 +499,7 @@ class Settings_Picklist_Module_Model extends Vtiger_Module_Model {
 		$db = PearDatabase::getInstance();
 		$primaryKey = Vtiger_Util_Helper::getPickListId($fieldName);
 		$colums = $db->getColumnNames("vtiger_$fieldName");
-		if(in_array('color',$colums)) {
+		if(is_array($columns) && in_array('color',$colums)) {
 			$query = 'SELECT '.$primaryKey.',color,'.$fieldName.' FROM vtiger_'.$fieldName;
 			$result = $db->pquery($query, array());
 			$pickListColorMap = array();
diff --git a/modules/Settings/Roles/actions/Save.php b/modules/Settings/Roles/actions/Save.php
index 62124df5dd03a3815b90262f311bfb90b1e17aa9..5b2587ea4455a2eae77a656d59cef4de1de57f96 100644
--- a/modules/Settings/Roles/actions/Save.php
+++ b/modules/Settings/Roles/actions/Save.php
@@ -25,6 +25,10 @@ class Settings_Roles_Save_Action extends Vtiger_Action_Controller {
 		$recordId = $request->get('record');
 		$roleName = $request->get('rolename');
 		$allowassignedrecordsto = $request->get('allowassignedrecordsto');
+		$duplicate = Settings_Roles_Record_Model::getInstanceByName($roleName,array($recordId));
+		if($duplicate) {
+			throw new Exception(vtranslate('LBL_DUPLICATES_EXIST',$request->getModule(false)));
+		}
 
 		$moduleModel = Settings_Vtiger_Module_Model::getInstance($qualifiedModuleName);
 		if(!empty($recordId)) {
diff --git a/modules/Settings/Workflows/models/Record.php b/modules/Settings/Workflows/models/Record.php
index fa99605f44e46cfd014f9d943a38e6373e0b2b19..5f3fb4530b58b4fe7642e652c5ef5d505a95cbe0 100644
--- a/modules/Settings/Workflows/models/Record.php
+++ b/modules/Settings/Workflows/models/Record.php
@@ -245,8 +245,18 @@ class Settings_Workflows_Record_Model extends Settings_Vtiger_Record_Model {
 						$isDateValue = true;
 						$valueArray[$i] = DateTimeField::convertToUserFormat($valueArray[$i]);
 					}
+					if(Vtiger_Functions::isTimeValue($valueArray[$i])){
+						$isTimeValue = true;
+						$userModel = Users_Record_Model::getCurrentUserModel();
+						$hourFormat = $userModel->get('hour_format');
+						if($hourFormat == '24') {
+							$valueArray[$i] = date('H:i', strtotime($valueArray[$i]));
+						} else {
+							$valueArray[$i] = date('g:i A', strtotime($valueArray[$i]));
+						}
+					}
 				}
-				if($isDateValue) {
+				if($isDateValue || $isTimeValue ) {
 					$value = implode(',', $valueArray);
 				}
 				// End
diff --git a/modules/Vtiger/helpers/Logger.php b/modules/Vtiger/helpers/Logger.php
index 9a8ac5e00f0f155eb14a41a1dde36773fb8a1d6d..d55d8387f6a17355bf968f46d7a77597d0fd8bd6 100644
--- a/modules/Vtiger/helpers/Logger.php
+++ b/modules/Vtiger/helpers/Logger.php
@@ -32,7 +32,7 @@ class Logger {
         if (!self::$initialized) {
             global $PERFORMANCE_CONFIG;
             // Check if the performance config is set and debug logging is enabled
-            if (isset($PERFORMANCE_CONFIG) && isset($PERFORMANCE_CONFIG['LOGLEVEl_DEBUG']) && $PERFORMANCE_CONFIG['LOGLEVEl_DEBUG']) {
+            if (isset($PERFORMANCE_CONFIG) && isset($PERFORMANCE_CONFIG['LOGLEVEL_DEBUG']) && $PERFORMANCE_CONFIG['LOGLEVEL_DEBUG']) {
                 // Set the default log level to 100 and the log file path
                 self::$logLevel = 100;
                 self::$filePath = "logs/vtigercrm.log";
diff --git a/modules/Vtiger/helpers/Util.php b/modules/Vtiger/helpers/Util.php
index ee94c7792e56776804a92ca6debbb92007fbe75c..cca8ceb6f2df3f61247986e115f16c323fa8700c 100644
--- a/modules/Vtiger/helpers/Util.php
+++ b/modules/Vtiger/helpers/Util.php
@@ -182,7 +182,14 @@ class Vtiger_Util_Helper {
 			 */
 			if ($currentUser->get('date_format') === 'mm-dd-yyyy') {
 				$dateInUserFormat = str_replace('-', '/', $dateInUserFormat);
-			}
+			} else if ($currentUser->get('date_format') === 'dd/mm/yyyy'){
+				// strtotime expects m/d/y format - adjusting the format to make it friendly to its convention
+                $dateArray = explode('/', $dateInUserFormat);
+                $temp = $dateArray[0];
+                $dateArray[0] = $dateArray[1];
+                $dateArray[1] = $temp;
+                $dateInUserFormat = implode('/', $dateArray);
+            }
 
 			$date = strtotime($dateInUserFormat);
 			$formatedDate = vtranslate('LBL_'.date('D', $date)) . ' ' . date('d', $date) . ' ' . vtranslate('LBL_'.date('M', $date));
@@ -1279,4 +1286,4 @@ class Vtiger_Util_Helper {
         }
         return $fieldValue;
     }
-}
\ No newline at end of file
+}
diff --git a/pkg/vtiger/modules/Import/modules/Import/actions/Data.php b/pkg/vtiger/modules/Import/modules/Import/actions/Data.php
index eef394e0a99ae04a2406add4efd22060ae46783c..b1c64ce239fdae4bfeadc6ca54a1f9abfd6e799a 100644
--- a/pkg/vtiger/modules/Import/modules/Import/actions/Data.php
+++ b/pkg/vtiger/modules/Import/modules/Import/actions/Data.php
@@ -765,9 +765,11 @@ class Import_Data_Action extends Vtiger_Action_Controller {
 				$_REQUEST['cur_'.$this->lineitem_currency_id.'_check'] = 1;
 			}
 			$fieldData['currency_id'] = $this->lineitem_currency_id;
-                        // to save Source of Record while Creating
-                        $fieldData['source'] = $this->recordSource;
+                        
+                        
 		}
+		// to save Source of Record while Creating
+		$fieldData['source'] = $this->recordSource;
 		if ($fieldData != null && $checkMandatoryFieldValues) {
 			foreach ($moduleFields as $fieldName => $fieldInstance) {
 				if ((($fieldData[$fieldName] == '') || ($fieldData[$fieldName] == null)) && $fieldInstance->isMandatory()) {
diff --git a/pkg/vtiger/modules/MailManager/layouts/v7/modules/MailManager/resources/List.js b/pkg/vtiger/modules/MailManager/layouts/v7/modules/MailManager/resources/List.js
index 92dc028d998934cdd62bf73581889e7a914efcce..09290bd42a9a8c2cd478b7914cc95623b8b23f32 100644
--- a/pkg/vtiger/modules/MailManager/layouts/v7/modules/MailManager/resources/List.js
+++ b/pkg/vtiger/modules/MailManager/layouts/v7/modules/MailManager/resources/List.js
@@ -354,7 +354,7 @@ Vtiger_List_Js("MailManager_List_Js", {}, {
 						'_msgno' : msgNos.join(',')
 					};
 					app.request.post({data : params}).then(function(err,data) {
-						app.helper.hideProgress();
+						self.openFolder(folder);
 						if(data.status) {
 							app.helper.showSuccessNotification({'message': app.vtranslate('JSLBL_MAILS_DELETED')});
 							self.updateUnreadCount("-"+self.getUnreadCountByMsgNos(msgNos), folder);
@@ -418,7 +418,7 @@ Vtiger_List_Js("MailManager_List_Js", {}, {
 					'_msgno' : msgNos.join(',')
 				};
 				app.request.post({data : params}).then(function(err,data) {
-					app.helper.hideProgress();
+					self.openFolder(folder);
 					if(data.status) {
 						app.helper.showSuccessNotification({'message': app.vtranslate('JSLBL_MAIL_MOVED')});
 						var unreadCount = self.getUnreadCountByMsgNos(msgNos);
diff --git a/pkg/vtiger/modules/Projects/ProjectTask/languages/en_us/ProjectTask.php b/pkg/vtiger/modules/Projects/ProjectTask/languages/en_us/ProjectTask.php
index 989af3a651b796a1f9d48e604accf258876ccbe1..b76a25758479fab4525ad59640801418741e64c0 100644
--- a/pkg/vtiger/modules/Projects/ProjectTask/languages/en_us/ProjectTask.php
+++ b/pkg/vtiger/modules/Projects/ProjectTask/languages/en_us/ProjectTask.php
@@ -45,6 +45,6 @@ $languageStrings = array(
 	'In Progress' => 'In Progress',
 	'Completed' => 'Completed',
 	'Deferred' => 'Deferred',
-	'Canceled ' => 'Canceled',
+	'Canceled' => 'Canceled',
     'LBL_NO_DATE_VALUE_MSG' => 'or Project Tasks do not have Start and/or End Date',
 );
\ No newline at end of file
diff --git a/pkg/vtiger/translations/Arabic_ar_ae/modules/ProjectTask.php b/pkg/vtiger/translations/Arabic_ar_ae/modules/ProjectTask.php
index 405d965ad61c1b0287ee019384aa2d92aa7d08c5..94d86ad632f797407ba1baadfced7cfd45780492 100644
--- a/pkg/vtiger/translations/Arabic_ar_ae/modules/ProjectTask.php
+++ b/pkg/vtiger/translations/Arabic_ar_ae/modules/ProjectTask.php
@@ -45,6 +45,6 @@ $languageStrings = array(
 	'In Progress' => 'في التقدم',
 	'Completed' => 'الانتهاء',
 	'Deferred' => 'تأجيل',
-	'Canceled ' => 'ألغيت',
+	'Canceled' => 'ألغيت',
         'LBL_NO_DATE_VALUE_MSG' => 'أو مهام المشروع لا يكون البدء و / أو تاريخ الانتهاء',
 );
\ No newline at end of file
diff --git a/pkg/vtiger/translations/BrazilianLanguagePack_bz_bz/modules/ProjectTask.php b/pkg/vtiger/translations/BrazilianLanguagePack_bz_bz/modules/ProjectTask.php
index 9abc86377187543621fa11c8d6658d026c6dd6f1..eddfd7583372d81ba96bfd4e8173f2b5f82e053f 100644
--- a/pkg/vtiger/translations/BrazilianLanguagePack_bz_bz/modules/ProjectTask.php
+++ b/pkg/vtiger/translations/BrazilianLanguagePack_bz_bz/modules/ProjectTask.php
@@ -45,6 +45,6 @@ $languageStrings = array(
 	'In Progress' => 'Em Andamento',
 	'Completed' => 'Concluído',
 	'Deferred' => 'Adiado',
-	'Canceled ' => 'Cancelado',
+	'Canceled' => 'Cancelado',
     'LBL_NO_DATE_VALUE_MSG' => 'ou a Tarefa do Projeto não tem Data Início e/ou Data Fim',
 );
diff --git a/pkg/vtiger/translations/BritishLanguagePack_br_br/modules/ProjectTask.php b/pkg/vtiger/translations/BritishLanguagePack_br_br/modules/ProjectTask.php
index 4515429b7698af5f0eb31f39b51b17318fb4ccc8..47d25164a83a1b208122586855b9fddc9dfe4489 100644
--- a/pkg/vtiger/translations/BritishLanguagePack_br_br/modules/ProjectTask.php
+++ b/pkg/vtiger/translations/BritishLanguagePack_br_br/modules/ProjectTask.php
@@ -42,6 +42,6 @@ $languageStrings = array(
 	'In Progress' => 'In Progress',
 	'Completed' => 'Completed',
 	'Deferred' => 'Deferred',
-	'Canceled ' => 'Canceled',
+	'Canceled' => 'Canceled',
         'LBL_NO_DATE_VALUE_MSG' => 'or Project Tasks do not have Start and/or End Date',
 );
\ No newline at end of file
diff --git a/pkg/vtiger/translations/Deutsch/modules/ProjectTask.php b/pkg/vtiger/translations/Deutsch/modules/ProjectTask.php
index 266e7c7afea9d8919fa54f8e1f156f63166c43a7..aff8893924ef31d59efce0dade767fea93d86750 100644
--- a/pkg/vtiger/translations/Deutsch/modules/ProjectTask.php
+++ b/pkg/vtiger/translations/Deutsch/modules/ProjectTask.php
@@ -43,6 +43,6 @@ $languageStrings = array(
 	'Canceled'	=>	"Gestrichen",
         'LBL_NO_DATE_VALUE_MSG' => 'oder Projektaufgaben nicht starten und / oder Enddatum',
 
-  'Canceled ' => 'Abgebrochen',
+  'Canceled' => 'Abgebrochen',
 
 );
\ No newline at end of file
diff --git a/pkg/vtiger/translations/Dutch/modules/ProjectTask.php b/pkg/vtiger/translations/Dutch/modules/ProjectTask.php
index 1304f88ef4ccb6bccc3a88f508f862e0934de810..a4516cca7b278dfb5812c044e758bd108befcc74 100644
--- a/pkg/vtiger/translations/Dutch/modules/ProjectTask.php
+++ b/pkg/vtiger/translations/Dutch/modules/ProjectTask.php
@@ -42,6 +42,6 @@ $languageStrings = array(
 	'In Progress' => 'In Progress',
 	'Completed' => 'Completed',
 	'Deferred' => 'Deferred',
-	'Canceled ' => 'Canceled',
+	'Canceled' => 'Canceled',
         'LBL_NO_DATE_VALUE_MSG' => 'of Projecttaken heb geen Start en / of Einddatum',
 );
\ No newline at end of file
diff --git a/pkg/vtiger/translations/French/modules/ProjectTask.php b/pkg/vtiger/translations/French/modules/ProjectTask.php
index fea77870cdb6f911c01e4f5d41044103ed584b60..5162a4896b77d0ff5add504780106d8cf17a877e 100644
--- a/pkg/vtiger/translations/French/modules/ProjectTask.php
+++ b/pkg/vtiger/translations/French/modules/ProjectTask.php
@@ -43,6 +43,6 @@ $languageStrings = array(
 	'Canceled'	=>	"Annulé",
         'LBL_NO_DATE_VALUE_MSG' => 'ou tâches de projet ne ont pas de début et / ou Date de fin',
 
-  'Canceled ' => 'Annulé',
+  'Canceled' => 'Annulé',
 
 );
\ No newline at end of file
diff --git a/pkg/vtiger/translations/Hungarian/modules/ProjectTask.php b/pkg/vtiger/translations/Hungarian/modules/ProjectTask.php
index 9b0f75a814b8ac7ce7763f5a88937ffa75598fa3..9aa910bb0973e44ad7f355f127d3811725dceb88 100644
--- a/pkg/vtiger/translations/Hungarian/modules/ProjectTask.php
+++ b/pkg/vtiger/translations/Hungarian/modules/ProjectTask.php
@@ -42,6 +42,6 @@ $languageStrings = array(
 	'In Progress' => 'In Progress',
 	'Completed' => 'Completed',
 	'Deferred' => 'Deferred',
-	'Canceled ' => 'Canceled',
+	'Canceled' => 'Canceled',
         'LBL_NO_DATE_VALUE_MSG' => 'vagy Projektfeladatok nincs kezdete és / vagy vége dátum',
 );
\ No newline at end of file
diff --git a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/ProjectTask.php b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/ProjectTask.php
index d98e6039fdc352e6f59a1dd55ae613e540c850ea..5485b64e2725260ff8386d40559296cc11332d02 100644
--- a/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/ProjectTask.php
+++ b/pkg/vtiger/translations/ItalianLanguagePack_it_it/modules/ProjectTask.php
@@ -43,6 +43,6 @@ $languageStrings = array(
 	'Canceled'	=>	"Cancellato",
         'LBL_NO_DATE_VALUE_MSG' => 'o Attività del Progetto non hanno Data di Inizio e/o Fine',
 
-  'Canceled ' => 'Annullata',
+  'Canceled' => 'Annullata',
 
 );
\ No newline at end of file
diff --git a/pkg/vtiger/translations/MexicanSpanishLanguagePack_es_mx/modules/ProjectTask.php b/pkg/vtiger/translations/MexicanSpanishLanguagePack_es_mx/modules/ProjectTask.php
index 255295f1c0ac4cdffbabe3202a1dab0d9f4a82b1..5070a77ad0439cebad59bbbf1a7fc2174884530d 100644
--- a/pkg/vtiger/translations/MexicanSpanishLanguagePack_es_mx/modules/ProjectTask.php
+++ b/pkg/vtiger/translations/MexicanSpanishLanguagePack_es_mx/modules/ProjectTask.php
@@ -41,7 +41,7 @@ $languageStrings = array(
 	'Open' => 'Abierta',
 	'In Progress' => 'En progreso',
 	'Deferred' => 'Diferida',
-	'Canceled ' => 'Cancelada',
+	'Canceled' => 'Cancelada',
     'Completed' => 'Terminada',
         'LBL_NO_DATE_VALUE_MSG' => 'Las tareas del proyecto no tienen fecha de inicio ni / o de término',
 );
\ No newline at end of file
diff --git a/pkg/vtiger/translations/PolishLanguagePack_pl_pl/modules/ProjectTask.php b/pkg/vtiger/translations/PolishLanguagePack_pl_pl/modules/ProjectTask.php
index 65c22a1a19bf1b675a55ad2778a5c2d66be13ebc..01f310e8213169d5f1d305f7b5201445b99eddc7 100644
--- a/pkg/vtiger/translations/PolishLanguagePack_pl_pl/modules/ProjectTask.php
+++ b/pkg/vtiger/translations/PolishLanguagePack_pl_pl/modules/ProjectTask.php
@@ -46,6 +46,6 @@ $languageStrings = array(
 	'In Progress' => 'W toku',
 	'Completed' => 'Zakończony',
 	'Deferred' => 'Odroczona',
-	'Canceled ' => 'Odwołany',
+	'Canceled' => 'Odwołany',
         'LBL_NO_DATE_VALUE_MSG' => 'lub Zadania projektowe nie mają rozpoczęcia i / lub zakończenia Data',
 );
\ No newline at end of file
diff --git a/pkg/vtiger/translations/RomanianLanguagePack_rm_rm/modules/ProjectTask.php b/pkg/vtiger/translations/RomanianLanguagePack_rm_rm/modules/ProjectTask.php
index 4c411107c5914c01a647d0a3330a83284b4091b1..b14a827fcc8213063dd05ddd47c720b6ac9e2101 100644
--- a/pkg/vtiger/translations/RomanianLanguagePack_rm_rm/modules/ProjectTask.php
+++ b/pkg/vtiger/translations/RomanianLanguagePack_rm_rm/modules/ProjectTask.php
@@ -43,6 +43,6 @@ $languageStrings = array(
 	'Canceled'	=>	"Anulat",
         'LBL_NO_DATE_VALUE_MSG' => 'sau sarcini de proiect nu au Start și / sau Data de încheiere',
 
-  'Canceled ' => 'Anulat',
+  'Canceled' => 'Anulat',
 
 );
\ No newline at end of file
diff --git a/pkg/vtiger/translations/Russian/modules/ProjectTask.php b/pkg/vtiger/translations/Russian/modules/ProjectTask.php
index eb9e36761a02d1f316f78789d9424f69e01d2fd2..aa17be0fc196effda70a90e5f60881cd090ae691 100644
--- a/pkg/vtiger/translations/Russian/modules/ProjectTask.php
+++ b/pkg/vtiger/translations/Russian/modules/ProjectTask.php
@@ -43,6 +43,6 @@ $languageStrings = array(
 	'Canceled'	=>	"Отменен",
         'LBL_NO_DATE_VALUE_MSG' => 'или Задачи проекта не имеют начала и / или окончания',
 
-  'Canceled ' => 'Отменен',
+  'Canceled' => 'Отменен',
 
 );
\ No newline at end of file
diff --git a/pkg/vtiger/translations/Spanish/modules/ProjectTask.php b/pkg/vtiger/translations/Spanish/modules/ProjectTask.php
index c97a50b5d7e0c1de994785df8ff41fd19172422a..28c6793e6988421afced3451e1d1a7c435f1010e 100644
--- a/pkg/vtiger/translations/Spanish/modules/ProjectTask.php
+++ b/pkg/vtiger/translations/Spanish/modules/ProjectTask.php
@@ -50,6 +50,6 @@ $languageStrings = array(
 	'In Progress' => 'In Progress',
 	'Completed' => 'Completed',
 	'Deferred' => 'Deferred',
-	'Canceled ' => 'Canceled',
+	'Cancele' => 'Canceled',
         'LBL_NO_DATE_VALUE_MSG' => 'o Tareas del proyecto no tienen inicio y / o fecha de finalización',
 );
\ No newline at end of file
diff --git a/pkg/vtiger/translations/Sweden_sv_se/modules/ProjectTask.php b/pkg/vtiger/translations/Sweden_sv_se/modules/ProjectTask.php
index 9b7c92ff08cf0be828b2351e07365de1fdf66542..69811f62d40df7d87dff6d13dccf2f14a268bedb 100755
--- a/pkg/vtiger/translations/Sweden_sv_se/modules/ProjectTask.php
+++ b/pkg/vtiger/translations/Sweden_sv_se/modules/ProjectTask.php
@@ -45,6 +45,6 @@ $languageStrings = array(
 	'In Progress' => 'In Progress',
 	'Completed' => 'Avslutat',
 	'Deferred' => 'Deferred',
-	'Canceled ' => 'Canceled',
+	'Canceled' => 'Canceled',
         'LBL_NO_DATE_VALUE_MSG' => 'eller projektuppgifter inte har start och / eller slutdatum',
 );
\ No newline at end of file
diff --git a/pkg/vtiger/translations/TurkishLanguagePack_tr_tr/modules/ProjectTask.php b/pkg/vtiger/translations/TurkishLanguagePack_tr_tr/modules/ProjectTask.php
index e316ddb32704f727512b1317143395354f3dc418..f5fd0b2d0dc7e97fdb6edfa5fc02ed6abdc03140 100644
--- a/pkg/vtiger/translations/TurkishLanguagePack_tr_tr/modules/ProjectTask.php
+++ b/pkg/vtiger/translations/TurkishLanguagePack_tr_tr/modules/ProjectTask.php
@@ -43,6 +43,6 @@ $languageStrings = array(
 	'Canceled'	=>	"Iptal edildi",
         'LBL_NO_DATE_VALUE_MSG' => 'veya Proje Görevleri Başlat ve / veya Bitiş Tarihi yok',
 
-  'Canceled ' => 'İptal',
+  'Canceled' => 'İptal',
 
 );
\ No newline at end of file
diff --git a/vtlib/Vtiger/Functions.php b/vtlib/Vtiger/Functions.php
index be26f3d920f24a221b57ec38e12a5b7cfb007c9b..5464064a8ee7c4ddeb60d3a1e2233845e44439f8 100644
--- a/vtlib/Vtiger/Functions.php
+++ b/vtlib/Vtiger/Functions.php
@@ -1287,6 +1287,28 @@ class Vtiger_Functions {
             }
 	}
 
+	/**
+	 * Function to check if a string is a valid time value or not
+	 * @param string $value string to check if that is a time value or not
+	 * @return boolean Returns true if $value is time else returns false
+	 */
+	static function isTimeValue($value) {
+		$value = trim($value);
+		$patterns = array(
+			'/^([01]?[0-9]|2[0-3]):[0-5][0-9]$/',     
+			'/^(1[0-2]|0?[1-9]):[0-5][0-9] (AM|PM)$/i',
+			'/^([01]?[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$/'
+		);
+	
+		foreach ($patterns as $pattern) {
+			if (preg_match($pattern, $value)) {
+				return true;
+			}
+		}
+	
+		return false; 
+	}
+	
 	/**
 	 * Function to get name and email value from a string of format <b>Your Name<youremail@company.com></b>
 	 * @param String $string Name and email value in required format.