From b189e0db7cfb16d8138f8ce4466ce7381f56d796 Mon Sep 17 00:00:00 2001
From: satish <satish.dvnk@vtiger.com>
Date: Wed, 8 Mar 2017 13:21:08 +0530
Subject: [PATCH] Usability issue in Create entity page of workflows

---
 .../ModuleManager/ImportUserModuleStep1.tpl   | 12 ++++---
 .../ModuleManager/resources/ModuleManager.js  |  8 ++++-
 .../Settings/Workflows/CreateEntity.tpl       | 34 +++++++++----------
 .../Workflows/resources/AdvanceFilter.js      |  1 +
 layouts/v7/modules/Vtiger/resources/Field.js  |  3 +-
 5 files changed, 34 insertions(+), 24 deletions(-)

diff --git a/layouts/v7/modules/Settings/ModuleManager/ImportUserModuleStep1.tpl b/layouts/v7/modules/Settings/ModuleManager/ImportUserModuleStep1.tpl
index 5d2bf637e..133811344 100644
--- a/layouts/v7/modules/Settings/ModuleManager/ImportUserModuleStep1.tpl
+++ b/layouts/v7/modules/Settings/ModuleManager/ImportUserModuleStep1.tpl
@@ -28,12 +28,14 @@
 						<div>
 							<input type="checkbox" name="acceptDisclaimer" /> &nbsp;&nbsp;<b>{vtranslate('LBL_ACCEPT_WITH_THE_DISCLAIMER', $QUALIFIED_MODULE)}</b>
 						</div>
-						<div name="proceedInstallation" style="margin-top: 15px;" class="fileUploadBtn btn btn-primary">
-							<span><i class="fa fa-laptop"></i> {vtranslate('Select from My Computer', $MODULE)}</span>
-							<input type="file" name="moduleZip" id="moduleZip" size="80px" data-validation-engine="validate[required, funcCall[Vtiger_Base_Validator_Js.invokeValidation]]"
-									data-validator={Zend_Json::encode([['name'=>'UploadModuleZip']])} />
+						<div style="margin-top: 15px;">
+							<span name="proceedInstallation" class="fileUploadBtn btn btn-primary">
+								<span><i class="fa fa-laptop"></i> {vtranslate('Select from My Computer', $MODULE)}</span>
+								<input type="file" name="moduleZip" id="moduleZip" size="80px" data-validation-engine="validate[required, funcCall[Vtiger_Base_Validator_Js.invokeValidation]]"
+										data-validator={Zend_Json::encode([['name'=>'UploadModuleZip']])} />
+							</span>
+							<span id="moduleFileDetails" style="margin-left: 15px;"></span>
 						</div>
-						<div id="moduleFileDetails" style="margin-top: 15px;"></div>
 					</div>
 				</div>
 			</div>
diff --git a/layouts/v7/modules/Settings/ModuleManager/resources/ModuleManager.js b/layouts/v7/modules/Settings/ModuleManager/resources/ModuleManager.js
index 6edcf3981..998e7d170 100644
--- a/layouts/v7/modules/Settings/ModuleManager/resources/ModuleManager.js
+++ b/layouts/v7/modules/Settings/ModuleManager/resources/ModuleManager.js
@@ -46,6 +46,9 @@ Vtiger.Class('Settings_Module_Manager_Js', {
 			var element = jQuery(e.currentTarget);
 			var importFromZip = container.find('[name="importFromZip"]');
 			var uploadedFile = jQuery('#moduleZip').val();
+			if (uploadedFile) {
+				jQuery('#moduleFileDetails').attr('title', uploadedFile).html(uploadedFile);
+			}
 			var disabledStatus = importFromZip.attr('disabled');
 			if ((element.is(':checked')) && (uploadedFile != '')) {
 				if (typeof disabledStatus != "undefined") {
@@ -59,7 +62,10 @@ Vtiger.Class('Settings_Module_Manager_Js', {
 		});
 
 		container.on('change', '[name="moduleZip"]', function (e) {
-			container.find('[name="acceptDisclaimer"]').trigger('click');
+			var acceptDisclaimer = container.find('[name="acceptDisclaimer"]');
+			if (!acceptDisclaimer.is(':checked')) {
+				acceptDisclaimer.trigger('click');
+			}
 		});
 
 		container.on('click', '.finishButton', function() {
diff --git a/layouts/v7/modules/Settings/Workflows/CreateEntity.tpl b/layouts/v7/modules/Settings/Workflows/CreateEntity.tpl
index fba1f6c14..cc3405b67 100644
--- a/layouts/v7/modules/Settings/Workflows/CreateEntity.tpl
+++ b/layouts/v7/modules/Settings/Workflows/CreateEntity.tpl
@@ -19,14 +19,14 @@
 		{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)}
 		{foreach from=$FIELD_VALUE_MAPPING item=FIELD_MAP}
-            {assign var=SELECTED_FIELD_MODEL value=$RELATED_MODULE_MODEL->getField($FIELD_MAP['fieldname'])}
-            {if empty($SELECTED_FIELD_MODEL)}
-                {continue}
-            {/if}
-            {assign var=SELECTED_FIELD_MODEL_FIELD_TYPE value=$SELECTED_FIELD_MODEL->getFieldDataType()}
+			{assign var=SELECTED_FIELD_MODEL value=$RELATED_MODULE_MODEL->getField($FIELD_MAP['fieldname'])}
+			{if empty($SELECTED_FIELD_MODEL)}
+				{continue}
+			{/if}
+			{assign var=SELECTED_FIELD_MODEL_FIELD_TYPE value=$SELECTED_FIELD_MODEL->getFieldDataType()}
 			<div class="row conditionRow form-group">
 				<span class="col-lg-4">
-                	<select name="fieldname" class="select2" style="min-width: 250px" {if $SELECTED_FIELD_MODEL->isMandatory() || ($DISABLE_ROW eq 'true') } disabled="" {/if} >
+					<select name="fieldname" class="select2" style="min-width: 250px" {if $SELECTED_FIELD_MODEL->isMandatory() || ($DISABLE_ROW eq 'true') } disabled="" {/if} >
 						<option value="none"></option>
 						{foreach from=$RELATED_MODULE_MODEL->getFields() item=FIELD_MODEL}
 							{assign var=FIELD_INFO value=$FIELD_MODEL->getFieldInfo()}
@@ -36,9 +36,9 @@
 						{/foreach}
 					</select>
 				</span>
-				<span class="col-lg-1">
+				<span>
 					<input name="modulename" type="hidden"
-						{if $FIELD_MAP['modulename'] eq $SOURCE_MODULE}  value="{$SOURCE_MODULE}" {/if}
+						{if $FIELD_MAP['modulename'] eq $SOURCE_MODULE} value="{$SOURCE_MODULE}" {/if}
 						{if $FIELD_MAP['modulename'] eq $RELATED_MODULE_MODEL_NAME} value="{$RELATED_MODULE_MODEL_NAME}" {/if} 
 					/>
 				</span>
@@ -72,17 +72,17 @@
 							{foreach from=$RELATED_MODULE_MODEL->getFields() item=FIELD_MODEL}
 								{assign var=FIELD_INFO value=$FIELD_MODEL->getFieldInfo()}
 								<option value="{$FIELD_MODEL->get('name')}" data-fieldtype="{$FIELD_MODEL->getFieldType()}" {if $FIELD_MODEL->get('name') eq $MANDATORY_FIELD_MODEL->get('name')} {assign var=FIELD_TYPE value=$FIELD_MODEL->getFieldDataType()} selected=""{/if} data-field-name="{$FIELD_MODEL->get('name')}" data-fieldinfo='{ZEND_JSON::encode($FIELD_INFO)}' >
-                                    {vtranslate($FIELD_MODEL->get('label'), $FIELD_MODEL->getModuleName())}<span class="redColor">*</span>
+									{vtranslate($FIELD_MODEL->get('label'), $FIELD_MODEL->getModuleName())}<span class="redColor">*</span>
 								</option>	
 							{/foreach}
 						</select>
 					</span>
 					<span>
-                        {if ($FIELD_TYPE eq 'picklist' || $FIELD_TYPE eq 'multipicklist')}
-                            <input type="hidden" name="modulename" value="{$RELATED_MODULE_MODEL->get('name')}" />
-                        {else}
-                            <input type="hidden" name="modulename" value="{$SOURCE_MODULE}" />
-                        {/if}
+						{if ($FIELD_TYPE eq 'picklist' || $FIELD_TYPE eq 'multipicklist')}
+							<input type="hidden" name="modulename" value="{$RELATED_MODULE_MODEL->get('name')}" />
+						{else}
+							<input type="hidden" name="modulename" value="{$SOURCE_MODULE}" />
+						{/if}
 					</span>
 					<span class="fieldUiHolder col-lg-4">
 						<input type="text" class="getPopupUi inputElement" name="fieldValue" value="" />
@@ -96,13 +96,13 @@
 </div><br>
 {if $RELATED_MODULE_MODEL}
 	<div class="row form-group basicAddFieldContainer hide">
-        <span class="col-lg-4">
+		<span class="col-lg-4">
 			<select name="fieldname" style="min-width: 250px">
 				<option value="none">{vtranslate('LBL_NONE',$QUALIFIED_MODULE)}</option>
 				{foreach from=$RELATED_MODULE_MODEL->getFields() item=FIELD_MODEL}
 					{assign var=FIELD_INFO value=$FIELD_MODEL->getFieldInfo()}
 					{if !$FIELD_MODEL->isMandatory()}
-					<option value="{$FIELD_MODEL->get('name')}" data-fieldtype="{$FIELD_MODEL->getFieldType()}"  data-field-name="{$FIELD_MODEL->get('name')}" data-fieldinfo='{ZEND_JSON::encode($FIELD_INFO)}' >
+					<option value="{$FIELD_MODEL->get('name')}" data-fieldtype="{$FIELD_MODEL->getFieldType()}" data-field-name="{$FIELD_MODEL->get('name')}" data-fieldinfo='{ZEND_JSON::encode($FIELD_INFO)}' >
 						{vtranslate($FIELD_MODEL->get('label'), $FIELD_MODEL->getModuleName())}
 					</option>
 					{/if}
@@ -110,7 +110,7 @@
 			</select>
 		</span>
 		<span>
-            <input type="hidden" name="modulename" value="{$SOURCE_MODULE}" />
+			<input type="hidden" name="modulename" value="{$SOURCE_MODULE}" />
 		</span>
 		<span class="fieldUiHolder col-lg-4">
 			<input type="text" class="inputElement" readonly="" name="fieldValue" value="" />
diff --git a/layouts/v7/modules/Settings/Workflows/resources/AdvanceFilter.js b/layouts/v7/modules/Settings/Workflows/resources/AdvanceFilter.js
index b6b24f720..2e6c71b18 100644
--- a/layouts/v7/modules/Settings/Workflows/resources/AdvanceFilter.js
+++ b/layouts/v7/modules/Settings/Workflows/resources/AdvanceFilter.js
@@ -506,6 +506,7 @@ Vtiger_Owner_Field_Js('Workflows_Owner_Field_Js',{},{
 
         html +='</select>';
         var selectContainer = jQuery(html);
+		this.addValidationToElement(selectContainer);
         return selectContainer;
     }
 });
diff --git a/layouts/v7/modules/Vtiger/resources/Field.js b/layouts/v7/modules/Vtiger/resources/Field.js
index a7ca4a1ba..f85545dea 100644
--- a/layouts/v7/modules/Vtiger/resources/Field.js
+++ b/layouts/v7/modules/Vtiger/resources/Field.js
@@ -536,7 +536,8 @@ Vtiger_Field_Js('Vtiger_Email_Field_Js',{},{
 	getUi : function() {
 		var html = '<input class="inputElement" type="text" name="'+ this.getName() +'" data-label="'+this.get('label')+'"  data-rule-email="true" data-rule-illegal="true"/>';
 		html = jQuery(html).val(app.htmlDecode(this.getValue()));
-		return jQuery(html);
+		var element = jQuery(html);
+		return this.addValidationToElement(element);
 	}
 });
 
-- 
GitLab