From 9d3f4bb1af765f2e8ee527da1e28acc894b9a126 Mon Sep 17 00:00:00 2001
From: satish <satish.dvnk@vtiger.com>
Date: Mon, 19 Dec 2016 20:55:03 +0530
Subject: [PATCH] Fixed: supporting to import and export Calendar records
 supporting Documents creation from related list

---
 layouts/v7/modules/Calendar/Export.tpl        |  60 --
 layouts/v7/modules/Documents/ModuleHeader.tpl | 249 ++++----
 .../v7/modules/Documents/UploadDocument.tpl   | 277 +++++----
 .../modules/Documents/resources/Documents.js  | 541 +-----------------
 .../v7/modules/Settings/Vtiger/TaxIndex.tpl   |  60 +-
 layouts/v7/modules/Vtiger/Export.tpl          |   6 +-
 layouts/v7/modules/Vtiger/resources/List.js   |   1 +
 .../Vtiger/uitypes/StringDetailView.tpl       |   2 +
 modules/Calendar/actions/ExportData.php       |   5 +
 modules/Calendar/views/Export.php             |  16 -
 modules/Calendar/views/Import.php             |   3 +
 modules/Documents/models/Module.php           |  44 --
 modules/Documents/views/QuickCreateAjax.php   |  25 +-
 modules/Migration/schema/660_to_700.php       |   5 +
 test/template_imgfiles/default.png            | Bin 0 -> 14136 bytes
 15 files changed, 330 insertions(+), 964 deletions(-)
 delete mode 100644 layouts/v7/modules/Calendar/Export.tpl
 create mode 100644 test/template_imgfiles/default.png

diff --git a/layouts/v7/modules/Calendar/Export.tpl b/layouts/v7/modules/Calendar/Export.tpl
deleted file mode 100644
index 9e7945aa7..000000000
--- a/layouts/v7/modules/Calendar/Export.tpl
+++ /dev/null
@@ -1,60 +0,0 @@
-{*<!--
-/*********************************************************************************
-** 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.
-*
-********************************************************************************/
--->*}
-
-<div class="fc-overlay-modal modal-content">
-    <form id="exportForm" class="form-horizontal" method="post" action="index.php">
-        <input type="hidden" name="module" value="{$SOURCE_MODULE}" />
-        <input type="hidden" name="source_module" value="{$SOURCE_MODULE}" />
-        <input type="hidden" name="action" value="ExportData" />
-        <input type="hidden" name="viewname" value="{$VIEWID}" />
-        <input type="hidden" name="selected_ids" value={ZEND_JSON::encode($SELECTED_IDS)}>
-        <input type="hidden" name="excluded_ids" value={ZEND_JSON::encode($EXCLUDED_IDS)}>
-        <input type="hidden" id="page" name="page" value="{$PAGE}" />
-        <input type="hidden" value="export" name="view">
-
-        <div class="overlayHeader">
-            {include file="ModalHeader.tpl"|vtemplate_path:$MODULE TITLE={vtranslate('LBL_EXPORT_RECORDS', $MODULE)}}
-        </div>
-        <div class="modal-body" style="margin-bottom:250px">
-            <div class="well exportContents">
-                <div>
-                    <label style ="font-weight:normal">&nbsp;&nbsp;{vtranslate('LBL_EXPORT_FILE_NAME',$MODULE)}</label>
-                    <input type='text' name='filename' id='filename' size='25' value='vtiger.calendar'/>
-                </div>
-                <hr>
-                <div>
-                    <input type="radio" name="mode" value="ExportSelectedRecords" id ="group1" {if !empty($SELECTED_IDS)} checked="checked" {else} disabled="disabled"{/if} />
-                    <label style ="font-weight:normal" for="group1">&nbsp;&nbsp;{vtranslate('LBL_EXPORT_SELECTED_RECORDS',$MODULE)}</label>
-                    {if empty($SELECTED_IDS)}&nbsp; <span style ="color:red">{vtranslate('LBL_NO_RECORD_SELECTED',$MODULE)}</span>{/if}
-                </div>
-                <br>
-                <div>
-                    <input type="radio" name="mode" value="ExportCurrentPage" id ="group2"/>
-                    <label style ="font-weight:normal" for="group2">&nbsp;&nbsp;{vtranslate('LBL_EXPORT_DATA_IN_CURRENT_PAGE',$MODULE)}</label>
-                </div>
-                <br>
-                <div>
-                    <input type="radio" name="mode" value="ExportAllData" id ="group3" {if empty($SELECTED_IDS)} checked="checked" {/if}/>
-                    <label style ="font-weight:normal" for="group3">&nbsp;&nbsp;{vtranslate('LBL_EXPORT_ALL_DATA',$MODULE)}</label>
-                </div>
-            </div>
-        </div>
-        <div class='modal-overlay-footer clearfix'>
-            <div class="row clearfix">
-                    <div class='textAlignCenter col-lg-12 col-md-12 col-sm-12 '><button type="submit" class="btn btn-success btn-lg">{vtranslate($MODULE, $MODULE)}&nbsp;{vtranslate($SOURCE_MODULE, $MODULE)}</button>
-                    &nbsp;&nbsp;<a class='cancelLink' data-dismiss="modal" href="#">{vtranslate('LBL_CANCEL', $MODULE)}</a>
-                </div>
-            </div>
-        </div>
-    </form>
-</div>
-
diff --git a/layouts/v7/modules/Documents/ModuleHeader.tpl b/layouts/v7/modules/Documents/ModuleHeader.tpl
index 3a7a772ce..233212f49 100644
--- a/layouts/v7/modules/Documents/ModuleHeader.tpl
+++ b/layouts/v7/modules/Documents/ModuleHeader.tpl
@@ -8,132 +8,129 @@
 * All Rights Reserved.
 ************************************************************************************/
 -->*}
-    
+
 {strip}
-    <div class="col-sm-12 col-xs-12 module-action-bar clearfix coloredBorderTop">
-        <div class="module-action-content clearfix">
-            <div class="col-lg-7 col-md-7 module-breadcrumb module-breadcrumb-{$smarty.request.view}">
-                    {assign var=MODULE_MODEL value=Vtiger_Module_Model::getInstance($MODULE)}
-                    {if $MODULE_MODEL->getDefaultViewName() neq 'List'}
-                        {assign var=DEFAULT_FILTER_URL value=$MODULE_MODEL->getDefaultUrl()}
-                    {else}
-                        {assign var=DEFAULT_FILTER_ID value=$MODULE_MODEL->getDefaultCustomFilter()}
-                        {if $DEFAULT_FILTER_ID}
-                            {assign var=CVURL value="&viewname="|cat:$DEFAULT_FILTER_ID}
-                            {assign var=DEFAULT_FILTER_URL value=$MODULE_MODEL->getListViewUrl()|cat:$CVURL}
-                        {else}
-                            {assign var=DEFAULT_FILTER_URL value=$MODULE_MODEL->getListViewUrlWithAllFilter()}
-                        {/if}
-                    {/if}
-                    <a title="{vtranslate($MODULE, $MODULE)}" href='{$DEFAULT_FILTER_URL}&app={$SELECTED_MENU_CATEGORY}'><h4 class="module-title pull-left textOverflowEllipsis text-uppercase"> {vtranslate($MODULE, $MODULE)} </h4>&nbsp;&nbsp;</a>
-                    {if $smarty.session.lvs.$MODULE.viewname}
-                        {assign var=VIEWID value=$smarty.session.lvs.$MODULE.viewname}
-                    {/if}
-                    {if $VIEWID}
-                    {foreach item=FILTER_TYPES from=$CUSTOM_VIEWS}
-                        {foreach item=FILTERS from=$FILTER_TYPES}
-                            {if $FILTERS->get('cvid') eq $VIEWID}
-                                {assign var=CVNAME value=$FILTERS->get('viewname')}
-                                {break}
-                            {/if}
-                        {/foreach}
-                    {/foreach}
-                    <p  class="current-filter-name filter-name pull-left cursorPointer" title="{$CVNAME}"><span class="fa fa-angle-right pull-left" aria-hidden="true"></span><a  href='{$MODULE_MODEL->getListViewUrl()}&viewname={$VIEWID}'>&nbsp;&nbsp;{$CVNAME}&nbsp;&nbsp;</a> </p>
-                        {/if}
-                        {assign var=SINGLE_MODULE_NAME value='SINGLE_'|cat:$MODULE}
-                        {if $RECORD and $smarty.request.view eq 'Edit'}
-                    <p class="current-filter-name filter-name pull-left "><span class="fa fa-angle-right pull-left" aria-hidden="true"></span><a title="{$RECORD->get('label')}">&nbsp;&nbsp;{vtranslate('LBL_EDITING', $MODULE)} : {$RECORD->get('label')} &nbsp;&nbsp;</a></p>
-                {else if $smarty.request.view eq 'Edit'}
-                    <p class="current-filter-name filter-name pull-left "><span class="fa fa-angle-right pull-left" aria-hidden="true"></span><a>&nbsp;&nbsp;{vtranslate('LBL_ADDING_NEW', $MODULE)}&nbsp;&nbsp;</a></p>
-                {/if}
-                {if $smarty.request.view eq 'Detail'}
-                    <p class="current-filter-name filter-name pull-left"><span class="fa fa-angle-right pull-left" aria-hidden="true"></span><a title="{$RECORD->get('label')}">&nbsp;&nbsp;{$RECORD->get('label')} &nbsp;&nbsp;</a></p>
-                {/if}
-            </div>
-            <div class="col-lg-5 col-md-5 pull-right ">
-                <div id="appnav" class="navbar-right">
-                    <ul class="nav navbar-nav">
-                        {foreach item=BASIC_ACTION from=$MODULE_BASIC_ACTIONS}
-                            {if $BASIC_ACTION->getLabel() eq 'LBL_ADD_RECORD'}
-                                <li>
-                                    <div>
-                                        <button type="button" class="btn btn-default module-buttons dropdown-toggle" data-toggle="dropdown">
-                                            <span class="fa fa-plus" title="{vtranslate('LBL_NEW_DOCUMENT', $MODULE)}"></span>&nbsp;{vtranslate('LBL_NEW_DOCUMENT', $MODULE)}&nbsp; <span class="caret"></span>
-                                        </button>
-                                        <ul class="dropdown-menu">
-                                            <li class="dropdown-header"><i class="fa fa-upload"></i> {vtranslate('LBL_FILE_UPLOAD', $MODULE)}</li>
-                                            <li id="VtigerAction">
-                                                <a href="javascript:Documents_Index_Js.uploadTo('Vtiger')">
-                                                    <img style="  margin-top: -3px;margin-right: 4%;" title="Vtiger" alt="Vtiger" src="layouts/v7/skins//images/Vtiger.png">
-                                                    {vtranslate('LBL_TO_SERVICE', $MODULE_NAME, {vtranslate('LBL_VTIGER', $MODULE_NAME)})}
-                                                </a>
-                                            </li>
-                                            <li role="separator" class="divider"></li>
-                                            <li class="dropdown-header"><i class="fa fa-link"></i> {vtranslate('LBL_LINK_EXTERNAL_DOCUMENT', $MODULE)}</li>
-                                            <li id="shareDocument"><a href="javascript:Documents_Index_Js.createDocument('E')">&nbsp;<i class="fa fa-external-link"></i>&nbsp; {vtranslate('LBL_FROM_SERVICE', $MODULE_NAME, {vtranslate('LBL_FILE_URL', $MODULE_NAME)})}</a></li>
-                                            <li role="separator" class="divider"></li>
-                                            <li id="createDocument"><a href="javascript:Documents_Index_Js.createDocument('W')"><i class="fa fa-file-text"></i> {vtranslate('LBL_CREATE_NEW', $MODULE_NAME, {vtranslate('SINGLE_Documents', $MODULE_NAME)})}</a></li>
-                                        </ul>
-                                    </div>
-                                </li>
-                            {/if}
+	<div class="col-sm-12 col-xs-12 module-action-bar clearfix coloredBorderTop">
+		<div class="module-action-content clearfix">
+			<div class="col-lg-7 col-md-7 module-breadcrumb module-breadcrumb-{$smarty.request.view}">
+				{assign var=MODULE_MODEL value=Vtiger_Module_Model::getInstance($MODULE)}
+				{if $MODULE_MODEL->getDefaultViewName() neq 'List'}
+					{assign var=DEFAULT_FILTER_URL value=$MODULE_MODEL->getDefaultUrl()}
+				{else}
+					{assign var=DEFAULT_FILTER_ID value=$MODULE_MODEL->getDefaultCustomFilter()}
+					{if $DEFAULT_FILTER_ID}
+						{assign var=CVURL value="&viewname="|cat:$DEFAULT_FILTER_ID}
+						{assign var=DEFAULT_FILTER_URL value=$MODULE_MODEL->getListViewUrl()|cat:$CVURL}
+					{else}
+						{assign var=DEFAULT_FILTER_URL value=$MODULE_MODEL->getListViewUrlWithAllFilter()}
+					{/if}
+				{/if}
+				<a title="{vtranslate($MODULE, $MODULE)}" href='{$DEFAULT_FILTER_URL}&app={$SELECTED_MENU_CATEGORY}'><h4 class="module-title pull-left textOverflowEllipsis text-uppercase"> {vtranslate($MODULE, $MODULE)} </h4>&nbsp;&nbsp;</a>
+				{if $smarty.session.lvs.$MODULE.viewname}
+					{assign var=VIEWID value=$smarty.session.lvs.$MODULE.viewname}
+				{/if}
+				{if $VIEWID}
+					{foreach item=FILTER_TYPES from=$CUSTOM_VIEWS}
+						{foreach item=FILTERS from=$FILTER_TYPES}
+							{if $FILTERS->get('cvid') eq $VIEWID}
+								{assign var=CVNAME value=$FILTERS->get('viewname')}
+								{break}
+							{/if}
+						{/foreach}
+					{/foreach}
+					<p  class="current-filter-name filter-name pull-left cursorPointer" title="{$CVNAME}"><span class="fa fa-angle-right pull-left" aria-hidden="true"></span><a  href='{$MODULE_MODEL->getListViewUrl()}&viewname={$VIEWID}'>&nbsp;&nbsp;{$CVNAME}&nbsp;&nbsp;</a> </p>
+				{/if}
+				{assign var=SINGLE_MODULE_NAME value='SINGLE_'|cat:$MODULE}
+				{if $RECORD and $smarty.request.view eq 'Edit'}
+					<p class="current-filter-name filter-name pull-left "><span class="fa fa-angle-right pull-left" aria-hidden="true"></span><a title="{$RECORD->get('label')}">&nbsp;&nbsp;{vtranslate('LBL_EDITING', $MODULE)} : {$RECORD->get('label')} &nbsp;&nbsp;</a></p>
+				{else if $smarty.request.view eq 'Edit'}
+					<p class="current-filter-name filter-name pull-left "><span class="fa fa-angle-right pull-left" aria-hidden="true"></span><a>&nbsp;&nbsp;{vtranslate('LBL_ADDING_NEW', $MODULE)}&nbsp;&nbsp;</a></p>
+				{/if}
+				{if $smarty.request.view eq 'Detail'}
+					<p class="current-filter-name filter-name pull-left"><span class="fa fa-angle-right pull-left" aria-hidden="true"></span><a title="{$RECORD->get('label')}">&nbsp;&nbsp;{$RECORD->get('label')} &nbsp;&nbsp;</a></p>
+				{/if}
+			</div>
+			<div class="col-lg-5 col-md-5 pull-right ">
+				<div id="appnav" class="navbar-right">
+					<ul class="nav navbar-nav">
+						{foreach item=BASIC_ACTION from=$MODULE_BASIC_ACTIONS}
+							{if $BASIC_ACTION->getLabel() eq 'LBL_ADD_RECORD'}
+								<li>
+									<div>
+										<button type="button" class="btn btn-default module-buttons dropdown-toggle" data-toggle="dropdown">
+											<span class="fa fa-plus" title="{vtranslate('LBL_NEW_DOCUMENT', $MODULE)}"></span>&nbsp;{vtranslate('LBL_NEW_DOCUMENT', $MODULE)}&nbsp; <span class="caret"></span>
+										</button>
+										<ul class="dropdown-menu">
+											<li class="dropdown-header"><i class="fa fa-upload"></i> {vtranslate('LBL_FILE_UPLOAD', $MODULE)}</li>
+											<li id="VtigerAction">
+												<a href="javascript:Documents_Index_Js.uploadTo('Vtiger')">
+													<img style="  margin-top: -3px;margin-right: 4%;" title="Vtiger" alt="Vtiger" src="layouts/v7/skins//images/Vtiger.png">
+													{vtranslate('LBL_TO_SERVICE', $MODULE_NAME, {vtranslate('LBL_VTIGER', $MODULE_NAME)})}
+												</a>
+											</li>
+											<li role="separator" class="divider"></li>
+											<li class="dropdown-header"><i class="fa fa-link"></i> {vtranslate('LBL_LINK_EXTERNAL_DOCUMENT', $MODULE)}</li>
+											<li id="shareDocument"><a href="javascript:Documents_Index_Js.createDocument('E')">&nbsp;<i class="fa fa-external-link"></i>&nbsp; {vtranslate('LBL_FROM_SERVICE', $MODULE_NAME, {vtranslate('LBL_FILE_URL', $MODULE_NAME)})}</a></li>
+											<li role="separator" class="divider"></li>
+											<li id="createDocument"><a href="javascript:Documents_Index_Js.createDocument('W')"><i class="fa fa-file-text"></i> {vtranslate('LBL_CREATE_NEW', $MODULE_NAME, {vtranslate('SINGLE_Documents', $MODULE_NAME)})}</a></li>
+										</ul>
+									</div>
+								</li>
+							{/if}
+						{/foreach}
 
-                        {/foreach}
-                        
-                        {if $MODULE_SETTING_ACTIONS|@count gt 0}
-                            <li>
-                                <div class="settingsIcon">
-                                    <button type="button" class="btn btn-default module-buttons dropdown-toggle" data-toggle="dropdown">
-                                        <span class="fa fa-wrench" aria-hidden="true" title="{vtranslate('LBL_SETTINGS', $MODULE)}"></span>&nbsp;{vtranslate('LBL_CUSTOMIZE', 'Reports')}&nbsp; <span class="caret"></span>
-                                    </button>
-                                    <ul class="detailViewSetting dropdown-menu">
-                                        {foreach item=SETTING from=$MODULE_SETTING_ACTIONS}
-                                            {if {vtranslate($SETTING->getLabel())} eq "%s Numbering"}
-                                                 <li id="{$MODULE_NAME}_listview_advancedAction_{$SETTING->getLabel()}"><a href={$SETTING->getUrl()}>{vtranslate($SETTING->getLabel(), $MODULE_NAME ,vtranslate($MODULE_NAME))}</a></li>
-                                            {elseif $SETTING->getLabel() eq 'LBL_REVOKE_ACCESS_TO_DRIVE' || $SETTING->getLabel() eq 'LBL_REVOKE_ACCESS_TO_DROPBOX'}
-                                                <li id="{$MODULE_NAME}_listview_customsettingaction_{$SETTING->getLabel()}" class="{if $SETTING->get('linkvisibility') eq false}hide{/if}"><a href="javascript:Documents_Index_Js.revokeAccess('{$SETTING->getLabel()}','{{$SETTING->getUrl()}}')">{vtranslate($SETTING->getLabel(), $MODULE_NAME)}</a></li>
-                                            {else}
-                                                <li id="{$MODULE_NAME}_listview_advancedAction_{$SETTING->getLabel()}"><a href={$SETTING->getUrl()}>{vtranslate($SETTING->getLabel(), $MODULE_NAME, vtranslate("SINGLE_$MODULE_NAME", $MODULE_NAME))}</a></li>
-                                            {/if}
-                                        {/foreach}
-                                    </ul>
-                                </div>
-                            </li>
-                        {/if}
-                    </ul>
-                </div>
-            </div>
-        </div>
-        {if $FIELDS_INFO neq null}
-            <script type="text/javascript">
-                var uimeta = (function() {
-                    var fieldInfo  = {$FIELDS_INFO};
-                    return {
-                        field: {
-                            get: function(name, property) {
-                                if(name && property === undefined) {
-                                    return fieldInfo[name];
-                                }
-                                if(name && property) {
-                                    return fieldInfo[name][property]
-                                }
-                            },
-                            isMandatory : function(name){
-                                if(fieldInfo[name]) {
-                                    return fieldInfo[name].mandatory;
-                                }
-                                return false;
-                            },
-                            getType : function(name){
-                                if(fieldInfo[name]) {
-                                    return fieldInfo[name].type
-                                }
-                                return false;
-                            }
-                        },
-                    };
-                })();
-            </script>
-        {/if}
-    </div>     
+						{if $MODULE_SETTING_ACTIONS|@count gt 0}
+							<li>
+								<div class="settingsIcon">
+									<button type="button" class="btn btn-default module-buttons dropdown-toggle" data-toggle="dropdown">
+										<span class="fa fa-wrench" aria-hidden="true" title="{vtranslate('LBL_SETTINGS', $MODULE)}"></span>&nbsp;{vtranslate('LBL_CUSTOMIZE', 'Reports')}&nbsp; <span class="caret"></span>
+									</button>
+									<ul class="detailViewSetting dropdown-menu">
+										{foreach item=SETTING from=$MODULE_SETTING_ACTIONS}
+											{if {vtranslate($SETTING->getLabel())} eq "%s Numbering"}
+												<li id="{$MODULE_NAME}_listview_advancedAction_{$SETTING->getLabel()}"><a href={$SETTING->getUrl()}>{vtranslate($SETTING->getLabel(), $MODULE_NAME ,vtranslate($MODULE_NAME))}</a></li>
+											{else}
+												<li id="{$MODULE_NAME}_listview_advancedAction_{$SETTING->getLabel()}"><a href={$SETTING->getUrl()}>{vtranslate($SETTING->getLabel(), $MODULE_NAME, vtranslate("SINGLE_$MODULE_NAME", $MODULE_NAME))}</a></li>
+											{/if}
+										{/foreach}
+									</ul>
+								</div>
+							</li>
+						{/if}
+					</ul>
+				</div>
+			</div>
+		</div>
+		{if $FIELDS_INFO neq null}
+			<script type="text/javascript">
+				var uimeta = (function() {
+					var fieldInfo  = {$FIELDS_INFO};
+					return {
+						field: {
+							get: function(name, property) {
+								if(name && property === undefined) {
+									return fieldInfo[name];
+								}
+								if(name && property) {
+									return fieldInfo[name][property]
+								}
+							},
+							isMandatory : function(name){
+								if(fieldInfo[name]) {
+									return fieldInfo[name].mandatory;
+								}
+								return false;
+							},
+							getType : function(name){
+								if(fieldInfo[name]) {
+									return fieldInfo[name].type
+								}
+								return false;
+							}
+						}
+					};
+				})();
+			</script>
+		{/if}
+	</div>
 {/strip}
diff --git a/layouts/v7/modules/Documents/UploadDocument.tpl b/layouts/v7/modules/Documents/UploadDocument.tpl
index a08a84999..a7c20094d 100644
--- a/layouts/v7/modules/Documents/UploadDocument.tpl
+++ b/layouts/v7/modules/Documents/UploadDocument.tpl
@@ -8,55 +8,53 @@
  ************************************************************************************}
 
 {strip}
-<div class="modal-dialog modelContainer">
-	{assign var=HEADER_TITLE value={vtranslate('LBL_UPLOAD_TO_VTIGER', $MODULE)}}
-	<div class="modal-content" style="width:675px;">
-		{include file="ModalHeader.tpl"|vtemplate_path:$MODULE TITLE=$HEADER_TITLE}
-		<div class="modal-body">
-			<div class="uploadview-content container-fluid">
-				<div class="uploadcontrols row">
-					<div id="upload" data-filelocationtype="I">
-						<br/>
-						<form class="form-horizontal recordEditView" name="upload" method="post" action="index.php">
-							{if !empty($PICKIST_DEPENDENCY_DATASOURCE)}
-								<input type="hidden" name="picklistDependency" value='{Vtiger_Util_Helper::toSafeHTML($PICKIST_DEPENDENCY_DATASOURCE)}' />
-							{/if}
-							<input type="hidden" name="module" value="{$MODULE}" />
-							<input type="hidden" name="action" value="SaveAjax" />
-							<input type="hidden" name="document_source" value="Vtiger" />
-							{if $RELATION_OPERATOR eq 'true'}
-								<input type="hidden" name="relationOperation" value="{$RELATION_OPERATOR}" />
-								<input type="hidden" name="sourceModule" value="{$PARENT_MODULE}" />
-								<input type="hidden" name="sourceRecord" value="{$PARENT_ID}" />
-								{if $RELATION_FIELD_NAME}
-									<input type="hidden" name="{$RELATION_FIELD_NAME}" value="{$PARENT_ID}" /> 
+	<div class="modal-dialog modelContainer">
+		{assign var=HEADER_TITLE value={vtranslate('LBL_UPLOAD_TO_VTIGER', $MODULE)}}
+		<div class="modal-content" style="width:675px;">
+			<form class="form-horizontal recordEditView" name="upload" method="post" action="index.php">
+				{include file="ModalHeader.tpl"|vtemplate_path:$MODULE TITLE=$HEADER_TITLE}
+				<div class="modal-body">
+					<div class="uploadview-content container-fluid">
+						<div class="uploadcontrols row">
+							<div id="upload" data-filelocationtype="I">
+								{if !empty($PICKIST_DEPENDENCY_DATASOURCE)}
+									<input type="hidden" name="picklistDependency" value='{Vtiger_Util_Helper::toSafeHTML($PICKIST_DEPENDENCY_DATASOURCE)}' />
+								{/if}
+								<input type="hidden" name="module" value="{$MODULE}" />
+								<input type="hidden" name="action" value="SaveAjax" />
+								<input type="hidden" name="document_source" value="Vtiger" />
+								{if $RELATION_OPERATOR eq 'true'}
+									<input type="hidden" name="relationOperation" value="{$RELATION_OPERATOR}" />
+									<input type="hidden" name="sourceModule" value="{$PARENT_MODULE}" />
+									<input type="hidden" name="sourceRecord" value="{$PARENT_ID}" />
+									{if $RELATION_FIELD_NAME}
+										<input type="hidden" name="{$RELATION_FIELD_NAME}" value="{$PARENT_ID}" /> 
+									{/if}
 								{/if}
-							{/if}
 
-							<input type="hidden" name="max_upload_limit" value="{$MAX_UPLOAD_LIMIT_BYTES}" />
-							<input type="hidden" name="max_upload_limit_mb" value="{$MAX_UPLOAD_LIMIT_MB}" />
+								<input type="hidden" name="max_upload_limit" value="{$MAX_UPLOAD_LIMIT_BYTES}" />
+								<input type="hidden" name="max_upload_limit_mb" value="{$MAX_UPLOAD_LIMIT_MB}" />
 
-							<div id="dragandrophandler" class="dragdrop-dotted">
-								<div style="font-size:175%;">
-									<span class="fa fa-upload"></span>&nbsp;&nbsp;
-									{vtranslate('LBL_DRAG_&_DROP_FILE_HERE', $MODULE)}
-								</div>
-								<div style="margin-top: 1%;text-transform: uppercase;margin-bottom: 2%;">
-									{vtranslate('LBL_OR', $MODULE)}
-								</div>
-								<div>
-									<div class="fileUploadBtn btn btn-primary">
-										<span><i class="fa fa-laptop"></i> {vtranslate('LBL_SELECT_FILE_FROM_COMPUTER', $MODULE)}</span>
-										{assign var=FIELD_MODEL value=$FIELD_MODELS['filename']}
-										<input type="file" name="{$FIELD_MODEL->getFieldName()}" value="{$FIELD_VALUE}" data-rule-required="true" />
+								<div id="dragandrophandler" class="dragdrop-dotted">
+									<div style="font-size:175%;">
+										<span class="fa fa-upload"></span>&nbsp;&nbsp;
+										{vtranslate('LBL_DRAG_&_DROP_FILE_HERE', $MODULE)}
+									</div>
+									<div style="margin-top: 1%;text-transform: uppercase;margin-bottom: 2%;">
+										{vtranslate('LBL_OR', $MODULE)}
+									</div>
+									<div>
+										<div class="fileUploadBtn btn btn-primary">
+											<span><i class="fa fa-laptop"></i> {vtranslate('LBL_SELECT_FILE_FROM_COMPUTER', $MODULE)}</span>
+											{assign var=FIELD_MODEL value=$FIELD_MODELS['filename']}
+											<input type="file" name="{$FIELD_MODEL->getFieldName()}" value="{$FIELD_VALUE}" data-rule-required="true" />
+										</div>
+										&nbsp;&nbsp;&nbsp;<i class="fa fa-info-circle cursorPointer" data-toggle="tooltip" title="{vtranslate('LBL_MAX_UPLOAD_SIZE', $MODULE)} {$MAX_UPLOAD_LIMIT_MB}{vtranslate('MB', $MODULE)}"></i>
 									</div>
-									&nbsp;&nbsp;&nbsp;<i class="fa fa-info-circle cursorPointer" data-toggle="tooltip" title="{vtranslate('LBL_MAX_UPLOAD_SIZE', $MODULE)} {$MAX_UPLOAD_LIMIT_MB}{vtranslate('MB', $MODULE)}"></i>
+									<div class="fileDetails"></div>
 								</div>
-								<div class="fileDetails"></div>
-							</div>
 
-							<table class="massEditTable table no-border">
-								<tr>
+								<table class="massEditTable table no-border">
 									<tr>
 										{assign var="FIELD_MODEL" value=$FIELD_MODELS['notes_title']}
 										<td class="fieldLabel col-lg-2">
@@ -71,21 +69,8 @@
 											{include file=vtemplate_path($FIELD_MODEL->getUITypeModel()->getTemplateName(),$MODULE)}
 										</td>
 									</tr>
-									{assign var="FIELD_MODEL" value=$FIELD_MODELS['assigned_user_id']}
-									<td class="fieldLabel col-lg-2">
-										<label class="muted pull-right">
-											{vtranslate($FIELD_MODEL->get('label'), $MODULE)}&nbsp;
-											{if $FIELD_MODEL->isMandatory() eq true}
-												<span class="redColor">*</span>
-											{/if}
-										</label>
-									</td>
-									<td class="fieldValue col-lg-4">
-										{include file=vtemplate_path($FIELD_MODEL->getUITypeModel()->getTemplateName(),$MODULE)}
-									</td>
-
-									{assign var="FIELD_MODEL" value=$FIELD_MODELS['folderid']}
-									{if $FIELD_MODELS['folderid']}
+									<tr>
+										{assign var="FIELD_MODEL" value=$FIELD_MODELS['assigned_user_id']}
 										<td class="fieldLabel col-lg-2">
 											<label class="muted pull-right">
 												{vtranslate($FIELD_MODEL->get('label'), $MODULE)}&nbsp;
@@ -97,97 +82,111 @@
 										<td class="fieldValue col-lg-4">
 											{include file=vtemplate_path($FIELD_MODEL->getUITypeModel()->getTemplateName(),$MODULE)}
 										</td>
-									{/if}
-								</tr>
-								<tr>
-									{assign var="FIELD_MODEL" value=$FIELD_MODELS['notecontent']}
-									{if $FIELD_MODELS['notecontent']}
-										<td class="fieldLabel col-lg-2" colspan="1">
-											<label class="muted pull-right">
-												{vtranslate($FIELD_MODEL->get('label'), $MODULE)}&nbsp;
-												{if $FIELD_MODEL->isMandatory() eq true}
-													<span class="redColor">*</span>
+
+										{assign var="FIELD_MODEL" value=$FIELD_MODELS['folderid']}
+										{if $FIELD_MODELS['folderid']}
+											<td class="fieldLabel col-lg-2">
+												<label class="muted pull-right">
+													{vtranslate($FIELD_MODEL->get('label'), $MODULE)}&nbsp;
+													{if $FIELD_MODEL->isMandatory() eq true}
+														<span class="redColor">*</span>
+													{/if}
+												</label>
+											</td>
+											<td class="fieldValue col-lg-4">
+												{include file=vtemplate_path($FIELD_MODEL->getUITypeModel()->getTemplateName(),$MODULE)}
+											</td>
+										{/if}
+									</tr>
+									<tr>
+										{assign var="FIELD_MODEL" value=$FIELD_MODELS['notecontent']}
+										{if $FIELD_MODELS['notecontent']}
+											<td class="fieldLabel col-lg-2" colspan="1">
+												<label class="muted pull-right">
+													{vtranslate($FIELD_MODEL->get('label'), $MODULE)}&nbsp;
+													{if $FIELD_MODEL->isMandatory() eq true}
+														<span class="redColor">*</span>
+													{/if}
+												</label>
+											</td>
+											<td class="fieldValue col-lg-4" colspan="3">
+												{include file=vtemplate_path($FIELD_MODEL->getUITypeModel()->getTemplateName(),$MODULE)}
+											</td>
+										{/if}
+									</tr>
+									<tr>
+										{assign var=HARDCODED_FIELDS value=','|explode:"filename,assigned_user_id,folderid,notecontent,notes_title"}
+										{assign var=COUNTER value=0}
+										{foreach key=FIELD_NAME item=FIELD_MODEL from=$FIELD_MODELS} 
+											{if $FIELD_MODEL->isMandatory() && !in_array($FIELD_NAME,$HARDCODED_FIELDS) && $FIELD_MODEL->isQuickCreateEnabled()}
+												{assign var="isReferenceField" value=$FIELD_MODEL->getFieldDataType()}
+												{assign var="referenceList" value=$FIELD_MODEL->getReferenceList()}
+												{assign var="referenceListCount" value=count($referenceList)}
+												{if $FIELD_MODEL->get('uitype') eq "19"}
+													{if $COUNTER eq '1'}
+														<td></td><td></td></tr><tr>
+														{assign var=COUNTER value=0}
+													{/if}
 												{/if}
-											</label>
-										</td>
-										<td class="fieldValue col-lg-4" colspan="3">
-											{include file=vtemplate_path($FIELD_MODEL->getUITypeModel()->getTemplateName(),$MODULE)}
-										</td>
-									{/if}
-								</tr>
-								<tr>
-									{assign var=HARDCODED_FIELDS value=','|explode:"filename,assigned_user_id,folderid,notecontent,notes_title"}
-									{assign var=COUNTER value=0}
-									{foreach key=FIELD_NAME item=FIELD_MODEL from=$FIELD_MODELS}
-										{if $FIELD_MODEL->isMandatory() && !in_array($FIELD_NAME,$HARDCODED_FIELDS) && $FIELD_MODEL->isQuickCreateEnabled()}
-											{assign var="isReferenceField" value=$FIELD_MODEL->getFieldDataType()}
-											{assign var="referenceList" value=$FIELD_MODEL->getReferenceList()}
-											{assign var="referenceListCount" value=count($referenceList)}
-											{if $FIELD_MODEL->get('uitype') eq "19"}
-												{if $COUNTER eq '1'}
-													<td></td><td></td></tr><tr>
-													{assign var=COUNTER value=0}
+												{if $COUNTER eq 2}
+												</tr><tr>
+													{assign var=COUNTER value=1}
+												{else}
+													{assign var=COUNTER value=$COUNTER+1}
 												{/if}
-											{/if}
-											{if $COUNTER eq 2}
-											</tr><tr>
-												{assign var=COUNTER value=1}
-											{else}
-												{assign var=COUNTER value=$COUNTER+1}
-											{/if}
-											<td class='fieldLabel col-lg-2'>
-												{if $isReferenceField neq "reference"}<label class="muted pull-right">{/if}
-													{if $isReferenceField eq "reference"}
-														{if $referenceListCount > 1}
-															{assign var="DISPLAYID" value=$FIELD_MODEL->get('fieldvalue')}
-															{assign var="REFERENCED_MODULE_STRUCT" value=$FIELD_MODEL->getUITypeModel()->getReferenceModule($DISPLAYID)}
-															{if !empty($REFERENCED_MODULE_STRUCT)}
-																{assign var="REFERENCED_MODULE_NAME" value=$REFERENCED_MODULE_STRUCT->get('name')}
+												<td class='fieldLabel col-lg-2'>
+													{if $isReferenceField neq "reference"}<label class="muted pull-right">{/if}
+														{if $isReferenceField eq "reference"}
+															{if $referenceListCount > 1}
+																{assign var="DISPLAYID" value=$FIELD_MODEL->get('fieldvalue')}
+																{assign var="REFERENCED_MODULE_STRUCT" value=$FIELD_MODEL->getUITypeModel()->getReferenceModule($DISPLAYID)}
+																{if !empty($REFERENCED_MODULE_STRUCT)}
+																	{assign var="REFERENCED_MODULE_NAME" value=$REFERENCED_MODULE_STRUCT->get('name')}
+																{/if}
+																<span class="pull-right">
+																	<select style="width:150px;" class="select2 referenceModulesList {if $FIELD_MODEL->isMandatory() eq true}reference-mandatory{/if}">
+																		{foreach key=index item=value from=$referenceList}
+																			<option value="{$value}" {if $value eq $REFERENCED_MODULE_NAME} selected {/if} >{vtranslate($value, $value)}</option>
+																		{/foreach}
+																	</select>
+																</span>
+															{else}
+																<label class="muted pull-right">{vtranslate($FIELD_MODEL->get('label'), $MODULE)}&nbsp;{if $FIELD_MODEL->isMandatory() eq true} <span class="redColor">*</span> {/if}</label>
 															{/if}
-															<span class="pull-right">
-																<select style="width:150px;" class="select2 referenceModulesList {if $FIELD_MODEL->isMandatory() eq true}reference-mandatory{/if}">
-																	{foreach key=index item=value from=$referenceList}
-																		<option value="{$value}" {if $value eq $REFERENCED_MODULE_NAME} selected {/if} >{vtranslate($value, $value)}</option>
-																	{/foreach}
-																</select>
-															</span>
-														{else}
-															<label class="muted pull-right">{vtranslate($FIELD_MODEL->get('label'), $MODULE)}&nbsp;{if $FIELD_MODEL->isMandatory() eq true} <span class="redColor">*</span> {/if}</label>
-														{/if}
-													{else if $FIELD_MODEL->get('uitype') eq '83'}
-														{include file=vtemplate_path($FIELD_MODEL->getUITypeModel()->getTemplateName(),$MODULE) COUNTER=$COUNTER MODULE=$MODULE}
-														{if $TAXCLASS_DETAILS}
-															{assign 'taxCount' count($TAXCLASS_DETAILS)%2}
-															{if $taxCount eq 0}
-																{if $COUNTER eq 2}
-																	{assign var=COUNTER value=1}
-																{else}
-																	{assign var=COUNTER value=2}
+														{else if $FIELD_MODEL->get('uitype') eq '83'}
+															{include file=vtemplate_path($FIELD_MODEL->getUITypeModel()->getTemplateName(),$MODULE) COUNTER=$COUNTER MODULE=$MODULE}
+															{if $TAXCLASS_DETAILS}
+																{assign 'taxCount' count($TAXCLASS_DETAILS)%2}
+																{if $taxCount eq 0}
+																	{if $COUNTER eq 2}
+																		{assign var=COUNTER value=1}
+																	{else}
+																		{assign var=COUNTER value=2}
+																	{/if}
 																{/if}
 															{/if}
+														{else}
+															{vtranslate($FIELD_MODEL->get('label'), $MODULE)}&nbsp;{if $FIELD_MODEL->isMandatory() eq true} <span class="redColor">*</span> {/if}
 														{/if}
-													{else}
-														{vtranslate($FIELD_MODEL->get('label'), $MODULE)}&nbsp;{if $FIELD_MODEL->isMandatory() eq true} <span class="redColor">*</span> {/if}
-													{/if}
-													{if $isReferenceField neq "reference"}</label>{/if}
-											</td>
-											{if $FIELD_MODEL->get('uitype') neq '83'}
-												<td class="fieldValue col-lg-4" {if $FIELD_MODEL->get('uitype') eq '19'} colspan="3" {assign var=COUNTER value=$COUNTER+1} {/if}>
-													{include file=vtemplate_path($FIELD_MODEL->getUITypeModel()->getTemplateName(),$MODULE)}
+														{if $isReferenceField neq "reference"}</label>{/if}
 												</td>
+												{if $FIELD_MODEL->get('uitype') neq '83'}
+													<td class="fieldValue col-lg-4" {if $FIELD_MODEL->get('uitype') eq '19'} colspan="3" {assign var=COUNTER value=$COUNTER+1} {/if}>
+														{include file=vtemplate_path($FIELD_MODEL->getUITypeModel()->getTemplateName(),$MODULE)}
+													</td>
+												{/if}
 											{/if}
-										{/if}
-									{/foreach}
-								</tr>
-							</table>
-							{assign var=BUTTON_NAME value={vtranslate('LBL_UPLOAD', $MODULE)}}
-							{assign var=BUTTON_ID value="js-upload-document"}
-							{include file="ModalFooter.tpl"|vtemplate_path:$MODULE}
-						</form>
+										{/foreach}
+									</tr>
+								</table>
+							</div>
+						</div>
 					</div>
 				</div>
-			</div>
+				{assign var=BUTTON_NAME value={vtranslate('LBL_UPLOAD', $MODULE)}}
+				{assign var=BUTTON_ID value="js-upload-document"}
+				{include file="ModalFooter.tpl"|vtemplate_path:$MODULE}
+			</form>
 		</div>
 	</div>
-</div>
 {/strip}
diff --git a/layouts/v7/modules/Documents/resources/Documents.js b/layouts/v7/modules/Documents/resources/Documents.js
index 5d1795d77..8dce6cace 100644
--- a/layouts/v7/modules/Documents/resources/Documents.js
+++ b/layouts/v7/modules/Documents/resources/Documents.js
@@ -10,25 +10,13 @@
 Vtiger.Class('Documents_Index_Js', {
 
 	fileObj : false,
-
 	referenceCreateMode : false,
 	referenceFieldName : '',
 
-	hierarchyMap : {
-		'GoogleDrive' : {},
-		'Dropbox' : {}
-	},
-
 	getInstance : function() {
 		return new Documents_Index_Js();
 	},
 
-	authorize : function(serviceName,parentId,relatedModule,mode,referenceFieldName) {
-		var instance = Documents_Index_Js.getInstance();
-		instance.detectReferenceCreateMode(referenceFieldName);
-		instance.authorize(serviceName,parentId,relatedModule,mode,referenceFieldName);
-	},
-
 	uploadTo : function(service,parentId,relatedModule,referenceFieldName) {
 		var instance = Documents_Index_Js.getInstance();
 		instance.detectReferenceCreateMode(referenceFieldName);
@@ -41,17 +29,6 @@ Vtiger.Class('Documents_Index_Js', {
 		instance.createDocument(type,parentId,relatedModule);
 	},
 
-	revokeAccess : function(label,revokeUrl) {
-		var instance = Documents_Index_Js.getInstance();
-		instance.revokeAccess(label,revokeUrl);
-	},
-
-	selectFrom : function(service,parentId,relatedModule, referenceFieldName) {
-		var instance = Documents_Index_Js.getInstance();
-		instance.detectReferenceCreateMode(referenceFieldName);
-		instance.selectFrom(service,parentId,relatedModule);
-	}
-
 }, {
 
 	detectReferenceCreateMode : function(referenceFieldName) {
@@ -64,34 +41,6 @@ Vtiger.Class('Documents_Index_Js', {
 		}
 	},
 
-	revokeAccess : function(label,revokeUrl) {
-		app.helper.showConfirmationBox({
-			message:app.vtranslate('JS_ARE_YOU_SURE_TO_REVOKE_ACCESS')
-		}).then(function() {
-			app.helper.showProgress();
-			app.request.post({'url' : revokeUrl}).then(function(e,resp) {
-				app.helper.hideProgress();
-				if(!e) {
-					if(resp.accessRevoked) {
-						jQuery('#Documents_listview_customsettingaction_'+label).addClass('hide');
-						if(jQuery('.settingsIcon').find('ul.dropdown-menu').find('li').not('.hide').length <= 0) {
-							jQuery('.settingsIcon').parent('li').addClass('hide');
-						}
-						var service = 'GoogleDrive'
-						if(label !== 'LBL_REVOKE_ACCESS_TO_DRIVE') {
-							service = 'Dropbox';
-						}
-						jQuery('#'+service+'UploadAction > a').attr('href','javascript:Documents_Index_Js.authorize(\''+service+'\', undefined, undefined, "upload")');
-						jQuery('#'+service+'SelectAction > a').attr('href','javascript:Documents_Index_Js.authorize(\''+service+'\', undefined, undefined, "select")');
-						app.helper.showSuccessNotification({
-							'message' : app.vtranslate('JS_ACCESS_REVOKED')
-						});
-					}
-				}
-			});
-		});
-	},
-
 	getFile : function() {
 		return Documents_Index_Js.fileObj;
 	},
@@ -124,8 +73,7 @@ Vtiger.Class('Documents_Index_Js', {
 		var parentId = jQuery('#recordId').val();
 		var parentModule = app.getModuleName();
 		var relatedModuleName = jQuery('.relatedModuleName').val();
-		var selectedRelatedTabElement = jQuery('div.related-tabs')
-				.find('li').filter('.active');
+		var selectedRelatedTabElement = jQuery('div.related-tabs').find('li').filter('.active');
 		var relatedList = Vtiger_RelatedList_Js.getInstance(parentId, parentModule, selectedRelatedTabElement, relatedModuleName);
 		relatedList.loadRelatedList();
 	},
@@ -329,100 +277,23 @@ Vtiger.Class('Documents_Index_Js', {
 		vtUtils.enableTooltips();
 	},
 
-	tabChangeHandler : function(container) {
-		jQuery('.tab-item', container).on('click', function() {
-			var currentTab = jQuery(this);
-			//activate tab
-			currentTab.closest('.nav-tabs').find('.tab-item').removeClass('active');
-			currentTab.addClass('active');
-
-			//activate tab-pane
-			container.find('.tab-content > .tab-pane').removeClass('active in');
-			var activatedPane = container.find('.tab-content > '+currentTab.data('tabcontentSelector'));
-			activatedPane.addClass('active in');
-
-			//intimate activated tab-pane
-			activatedPane.trigger('Documents.Upload.Tab.Active');
-		});
-	},
-
-	addToHierarchyMap : function(childDir,parentDir,service) {
-		Documents_Index_Js.hierarchyMap[service][childDir] = parentDir;
-	},
-
-	getParentDirFromHierarchyMap : function(childDir,service) {
-		if(childDir == '/') return false;
-		return Documents_Index_Js.hierarchyMap[service][childDir];
-	},
-
 	updateDirectoryMeta : function(folderId,tab,backwardNavigation) {
 		backwardNavigation = (typeof backwardNavigation == "undefined") ? false : true;
 		var currentDirElement = jQuery('input[name="currentDir"]',tab);
 		var parentDirElement = jQuery('input[name="parentDir"]',tab);
-		var service = jQuery('input[name="serviceProvider"]',tab).val();
 		var currentDir = currentDirElement.val();
 		var parentDir = parentDirElement.val();
 		if(!backwardNavigation) {
-			this.addToHierarchyMap(folderId,currentDir,service);
 			parentDirElement.val(currentDir);
 			currentDirElement.val(folderId);
 			jQuery('.browseBack',tab).removeAttr('disabled');
 			jQuery('.gotoRoot',tab).removeAttr('disabled');
 		} else {
 			currentDirElement.val(folderId);
-			parentDir = this.getParentDirFromHierarchyMap(folderId,service)
-			if(!parentDir) {
-				jQuery('.browseBack',tab).attr('disabled','disabled');
-				jQuery('.gotoRoot',tab).attr('disabled','disabled');
-			}
 			parentDirElement.val(parentDir);
 		}
 	},
 
-	registerInlineAuthEvent : function(container) {
-		var self = this;
-		var authorizeButton = jQuery('.inlineAuth',container);
-		if(authorizeButton.length) {
-			authorizeButton.on('click', function() {
-				var currentTarget = jQuery(this);
-				currentTarget.attr('disabled','disabled');
-				self._getAuthUrl(currentTarget.data('service'),true).then(function(authUrl) {
-					window.resumeAuth = function(status) {
-						if(status) {
-							app.helper.hideModal();
-							var serviceProvider = container.find('input[name="serviceProvider"]').val(),
-							parentId, relatedModule;
-							if(container.find('.relationDetails').length) {
-								var relationDetailsContainer = container.find('.relationDetails');
-								parentId = relationDetailsContainer.find('input[name="sourceRecord"]').val();
-								relatedModule = relationDetailsContainer.find('input[name="sourceModule"]').val();
-							}
-							Documents_Index_Js.selectFrom(serviceProvider,parentId,relatedModule);
-						}
-					};
-					window.open(authUrl,'','height=600,width=600,channelmode=1');
-				}, function(e) {
-					console.log("error : ",e);
-				});
-			});
-		}
-	},
-
-	registerExternalStorageTabEvents : function(tab) {
-		this.registerSearchFilesEvent(tab);
-		this.registerGotoRootFolderEvent(tab);
-		this.registerBackBrowseButton(tab);
-		this.registerFileSelectionHandler(tab);
-		this.registerBrowseFolder(tab);
-		this.registerInlineAuthEvent(tab);
-	},
-
-	registerPostTabLoadEvents : function(tab) {
-		if(tab.data('service') === 'GoogleDrive' || tab.data('service') === 'Dropbox') {
-			this.registerExternalStorageTabEvents(tab);
-		}
-	},
-
 	loadTab : function(tab) {
 		var self = this;
 		var url = tab.data('url');
@@ -432,7 +303,6 @@ Vtiger.Class('Documents_Index_Js', {
 			if(!e) {
 				tab.html(resp);
 				vtUtils.applyFieldElementsView(tab);
-				self.registerPostTabLoadEvents(tab);
 			} else {
 				console.log("error while loading tab : ",e);
 			}
@@ -487,47 +357,6 @@ Vtiger.Class('Documents_Index_Js', {
 		});
 	},
 
-	_uploadToExternalStorage : function(container) {
-		var self = this;
-		if(!self.getFile()) {
-			app.helper.showErrorNotification({
-				'message' : app.vtranslate('JS_PLEASE_SELECT_A_FILE')
-			});
-			return;
-		}
-		var uploadForm = container.find('form[name="uploadToService"]');
-		self._upload(uploadForm).then(function(resp) {
-			if(resp.uploadFail) {
-				app.helper.showErrorNotification({
-					'message' : app.vtranslate(resp.msg)
-				});
-			} else {
-				app.helper.showSuccessNotification({
-					'message' : app.vtranslate('JS_UPLOAD_SUCCESSFUL')
-				});
-			}
-			app.helper.hideModal();
-			self.reloadList();
-
-			if(Documents_Index_Js.referenceCreateMode === true && Documents_Index_Js.referenceFieldName !== '') {
-				self.postQuickCreateSave(resp);
-			}
-		}, function(e) {
-			app.helper.showErrorNotification({'message' : app.vtranslate('JS_UPLOAD_FAILED')});
-		});
-	},
-
-	registerUploadToExternalStorageEvents : function(container) {
-		var self = this;
-		container.find('form').vtValidate({
-			'submitHandler' : function() {
-				self._uploadToExternalStorage(container);
-				return false;
-			}
-		});
-		this.registerFileHandlingEvents(container);
-	},
-
 	applyScrollToModal : function(modalContainer) {
 		app.helper.showVerticalScroll(modalContainer.find('.modal-body').css('max-height', '415px'), 
 		{'autoHideScrollbar': true});
@@ -535,195 +364,7 @@ Vtiger.Class('Documents_Index_Js', {
 
 	uploadTo : function(service,parentId,relatedModule) {
 		this.setFile(false);
-		this.showUploadToVtigerModal(service,parentId,relatedModule);
-	},
-
-	createExternalDocument : function(container) {
-		var self = this;
-		var selection = jQuery('.selectList', container).find('.selectedFile');
-		if(!selection.length) {
-			app.helper.showAlertNotification({
-				'message' : app.vtranslate('JS_PLEASE_SELECT_A_FILE')
-			});
-			return;
-		}
-
-		var service = jQuery('input[name="serviceProvider"]', container).val();
-
-		var assignedUserId = jQuery('select[name="assigned_user_id"] option:selected', container).val();
-		var documentSource = service;
-		if(service === 'GoogleDrive') {
-			documentSource = 'Google Drive';
-		}
-
-		var params = {
-			module : 'Documents',
-			action : 'SaveAjax',
-			service : service,
-			notes_title : selection.data('title'),
-			filename : selection.data('link'),
-			filelocationtype : 'E',
-			assigned_user_id : assignedUserId,
-			document_source : documentSource,
-			externalFileId : selection.data('fileid'),
-			folderid : jQuery('input[name="vtigerFolderId"]',container).val()
-		};
-
-		if(service === 'Dropbox'){
-			params.createDirectLink = "yes";
-		}
-
-		var relationDetailsContainer = container.find('.relationDetails');
-		if(relationDetailsContainer.length) {
-			var relationOperationElement = relationDetailsContainer.find('input[name="relationOperation"]');
-			var relationOperator = relationOperationElement.val();
-			var sourceModule = relationDetailsContainer.find('input[name="sourceModule"]').val();
-			var sourceRecord = relationDetailsContainer.find('input[name="sourceRecord"]').val();
-			var relationFieldName = relationDetailsContainer.find('input[name="relationFieldName"]').val();
-			params.relationOperation = relationOperator;
-			params.sourceModule = sourceModule;
-			params.sourceRecord = sourceRecord;
-			if(relationFieldName){
-				params[relationFieldName] = sourceRecord;
-			}
-		}
-
-		app.helper.showProgress();
-		app.request.post({'data':params}).then(function(e,res) {
-			app.helper.hideProgress();
-			if(!e) {
-				app.helper.showSuccessNotification({
-					'message' : app.vtranslate('JS_DOCUMENT_CREATED')
-				});
-				app.helper.hideModal();
-				self.reloadList();
-
-				//reference create handling
-				if (Documents_Index_Js.referenceCreateMode === true && Documents_Index_Js.referenceFieldName !== '') {
-					self.postQuickCreateSave(res);
-				}
-			} else {
-				app.event.trigger('post.save.failed', e);
-			}
-		});
-	},
-
-	registerLinkExternalDocumentEvent : function(container) {
-		var self = this;
-		jQuery('#js-select-document',container).on('click',function() {
-			self.createExternalDocument(container.find('form'));
-		});
-	},
-
-	updateFilesList : function(files, container) {
-		var tableContainer = container.find('.selectList').find('tbody'),
-			listItem = '';
-		tableContainer.empty();
-		if(typeof files === 'undefined' || !files.length) {
-			listItem = '<div style="padding:20px">'+
-							'<span class="span">'+
-								'<i class="fa fa-info-circle"></i>'+
-									app.vtranslate('JS_NO_RESULTS_FOUND')+
-							'</span>'+
-						'</div>';
-			tableContainer.append(listItem);
-			return;
-		} else {
-			for(var i=0;i<files.length;i++) {
-				if(files[i].is_dir) {
-					listItem = "<tr class='listViewEntries folder' data-fileid='"+files[i].id+"' data-title='"+files[i].title+"' data-link='"+files[i].alternateLink+"'>"+
-									"<td class='listViewEntryValue medium fileTitleData' nowrap=''>"+
-										"<i class='fa fa-folder'></i>&nbsp;<a>"+files[i].title+"</a>"+
-									"</td>";
-					if(files[i].owner_name) {
-						listItem += "<td class='listViewEntryValue medium fileOwnerData' nowrap=''>"+
-										"<a>" + files[i].owner_name + "</a>"+
-									"</td>";
-					}
-					if(files[i].fileSize && !files[i].is_dir) {
-						var fileSize = files[i].fileSize;
-						if(container.find('input[name="serviceProvider"]').val() === 'GoogleDrive') {
-							fileSize = vtUtils.convertFileSizeInToDisplayFormat(fileSize);
-						}
-						listItem += "<td class='listViewEntryValue medium fileSizeData' nowrap=''>"+
-										"<a>" + fileSize + "</a>"+
-									"</td>";
-					}
-					listItem += "</tr>";
-				} else {
-					listItem = "<tr class='listViewEntries file' data-fileid='"+files[i].id+"' data-title='"+files[i].title+"' data-link='"+files[i].alternateLink+"'>"+
-								"<td class='listViewEntryValue medium fileTitleData' nowrap=''>"+
-									"<i class='fa fa-file'></i>&nbsp;<a>"+files[i].title+"</a>"+
-								"</td>";
-					if(files[i].owner_name) {
-						listItem += "<td class='listViewEntryValue medium fileOwnerData' nowrap=''>"+
-										"<a>" + files[i].owner_name + "</a>"+
-									"</td>";
-					}
-					if(files[i].fileSize) {
-						var fileSize = files[i].fileSize;
-						if(container.find('input[name="serviceProvider"]').val() === 'GoogleDrive') {
-							fileSize = vtUtils.convertFileSizeInToDisplayFormat(fileSize);
-						}
-						listItem += "<td class='listViewEntryValue medium fileSizeData' nowrap=''>"+
-									"<a>" + fileSize + "</a>"+
-								"</td>";
-					}
-					listItem += "</tr>";
-				}
-				tableContainer.append(listItem);
-			}
-		}
-		this.registerFileSelectionHandler(container);
-		this.registerBrowseFolder(container);
-	},
-
-	showEmptyDirectoryMessage : function(tab) {
-		var container = jQuery('.selectList',tab).find('tbody');
-		container.empty();
-		var content = '<div style="padding:20px">\n\
-						<span class="span">\n\
-							<i class="fa fa-info-circle"></i>\n\
-							'+app.vtranslate('JS_DIRECTORY_IS_EMPTY')+
-						'</span>\n\
-					</div>';
-		container.append(content);
-	},
-
-	openFolder : function(folderId,container,backwardNavigation) {
-		var self = this;
-		var service = jQuery('input[name="serviceProvider"]',container).val();
-
-		var params = {
-			 'module' : 'Documents',
-			 'action' : 'ServiceProvidersAjax',
-			 'mode' : 'getFilesForDirectory',
-			 'service' : service,
-			 'folderId' : folderId
-		 };
-		 app.helper.showProgress(app.vtranslate('JS_PLEASE_WAIT'));
-		 app.request.post({'data':params}).then(function(e,res) {
-			 app.helper.hideProgress();
-			 if(!e) {
-				 if(res.is_directory_empty) {
-					 self.showEmptyDirectoryMessage(container);
-				 } else {
-					 self.updateFilesList(res.filesList,container);
-				 }
-				 self.updateDirectoryMeta(folderId,container,backwardNavigation);
-				 self.registerBackBrowseButton(container);
-			 }
-		 });
-	},
-
-	registerBrowseFolder : function(container) {
-		var self = this;
-		jQuery('.folder', container).on('click', function() {
-			jQuery('.folder',container).off('click');
-			jQuery('.browseBack',container).off('click');
-			var folderId = jQuery(this).data('fileid');
-			self.openFolder(folderId,container);
-		});
+		this.showUploadToVtigerModal(parentId,relatedModule);
 	},
 
 	registerFileSelectionHandler : function(container) {
@@ -736,178 +377,6 @@ Vtiger.Class('Documents_Index_Js', {
 		});
 	},
 
-	registerBackBrowseButton : function(container) {
-		var thisInstance = this;
-		var currentDirElement = jQuery('input[name="currentDir"]',container);
-		jQuery('.browseBack',container).on('click',function() {
-			var service = jQuery('input[name="serviceProvider"]',container).val();
-			var parentDir = thisInstance.getParentDirFromHierarchyMap(currentDirElement.val(),service);
-			if(parentDir) {
-				jQuery('.browseBack',container).off('click');
-				jQuery('.folder',container).off('click');
-				thisInstance.openFolder(parentDir,container,true);
-			}
-		});
-	},
-
-	registerGotoRootFolderEvent : function(container) {
-		var self = this;
-		jQuery('.gotoRoot', container).on('click', function() {
-			jQuery(this).attr('disabled','disabled');
-			jQuery('.browseBack',container).attr('disabled','disabled');
-			var rootMetaElement = jQuery('input[name="rootDirContents"]',container);
-			var filesList = rootMetaElement.val();
-			var rootDirId = rootMetaElement.attr('data-rootDirId');
-			filesList = JSON.parse(filesList);
-			self.updateFilesList(filesList,container);
-			jQuery('input[name="currentDir"]',container).val(rootDirId);
-			jQuery('input[name="parentDir"]',container).val('');
-		});
-	},
-
-	registerSearchFilesEvent : function(container) {
-		var self = this;
-		jQuery('input[name="searchFiles"]', container).on('change', function() {
-			var searchKey = jQuery(this).val();
-			searchKey = jQuery.trim(searchKey);
-			if(searchKey.length === 0) {
-				jQuery(this).val('');
-				return;
-			}
-
-			var params = {
-				'module' : 'Documents',
-				'action' : 'ServiceProvidersAjax',
-				'mode' : 'search',
-				'searchKey' : searchKey,
-				'service' : jQuery('input[name="serviceProvider"]',container).val()
-			};
-			app.helper.showProgress(app.vtranslate('JS_PLEASE_WAIT'));
-			app.request.post({'data':params}).then(function(e,res) {
-				app.helper.hideProgress();
-				if(!e) {
-					self.updateFilesList(res,container);
-					jQuery('.browseBack',container).attr('disabled','disabled');
-					jQuery('.gotoRoot',container).removeAttr('disabled');
-				}
-			});
-		});
-	},
-
-	registerSelectFromExternalStorageEvents : function(modalContainer) {
-		modalContainer.find('form').vtValidate({
-			'submitHandler' : function() {
-				return false;
-			}
-		});
-
-		this.registerSearchFilesEvent(modalContainer);
-		this.registerGotoRootFolderEvent(modalContainer);
-		this.registerBackBrowseButton(modalContainer);
-		this.registerFileSelectionHandler(modalContainer);
-		this.registerBrowseFolder(modalContainer);
-		this.registerInlineAuthEvent(modalContainer);
-		this.registerLinkExternalDocumentEvent(modalContainer);
-
-		app.helper.showVerticalScroll(modalContainer.find('.selectList'), 
-		{'autoHideScrollbar' : true, 'setHeight' : 270});
-	},
-
-	showSelectFromExternalStorageModal : function(service,parentId,relatedModule) {
-		var self = this;
-		var url = 'index.php?module=Documents&view=ExternalStorage&operation=SelectFrom'+service;
-		if(typeof parentId !== 'undefined' && typeof relatedModule !== 'undefined') {
-			url += '&relationOperation=true&sourceModule='+relatedModule+'&sourceRecord='+parentId;
-		}
-		var relationField = jQuery('div.related-tabs').find('li').filter('.active').data('relatedfield');
-		if (relationField && parentId) {
-			url += '&'+relationField+"="+parentId;
-		}
-		app.helper.showProgress();
-		app.request.get({'url':url}).then(function(e,resp) {
-			app.helper.hideProgress();
-			if(!e) {
-				app.helper.showModal(resp, {
-					'cb' : function(modalContainer) {
-						self.registerSelectFromExternalStorageEvents(modalContainer);
-					}
-				});
-			}
-		});
-	},
-
-	selectFrom : function(service,parentId,relatedModule) {
-		this.showSelectFromExternalStorageModal(service,parentId,relatedModule);
-	},
-
-	_getAuthUrl : function(serviceName,inline) {
-		var aDeferred = jQuery.Deferred();
-		if(typeof inline === 'undefined') {
-			inline = false;
-		}
-		var params = {
-			'module' : 'Documents',
-			'action' : 'ServiceProvidersAjax',
-			'mode' : 'getOauthUrl',
-			'service' : serviceName,
-			'inline' : inline
-		};
-		app.helper.showProgress();
-		app.request.post({'data':params}).then(function(e,resp) {
-			app.helper.hideProgress();
-			if(!e) {
-				if(resp.hasOwnProperty('authUrl')) {
-					aDeferred.resolve(resp.authUrl);
-				} else if(resp.hasOwnProperty('postAuthorization')) {
-					aDeferred.reject({postAuthorization:resp.postAuthorization});
-				}
-			} else {
-				aDeferred.reject(e);
-			}
-		});
-		return aDeferred.promise();
-	},
-
-	authorize : function(serviceName,parentId,relatedModule,mode,referenceFieldName) {
-		if(typeof mode === 'undefined') {
-			mode = 'upload';
-		}
-		this._getAuthUrl(serviceName,true).then(function(authUrl) {
-			window.resumeAuth = function(status) {
-				if(status) {
-					var actionHref = 'javascript:Documents_Index_Js.uploadTo(\''+serviceName+'\'';
-					if(typeof parentId !== 'undefined' && typeof relatedModule !== 'undefined') {
-						actionHref += ','+parentId+',\''+relatedModule+'\'';
-					}
-					actionHref += ')';
-					jQuery('#'+serviceName+'Action').find('a').attr('href',actionHref);
-					if(mode === 'select') {
-						Documents_Index_Js.selectFrom(serviceName,parentId,relatedModule,referenceFieldName);
-					} else {
-						Documents_Index_Js.uploadTo(serviceName,parentId,relatedModule,referenceFieldName);
-					}
-					var revokeSelector = 'Documents_listview_customsettingaction_LBL_REVOKE_ACCESS_TO_DRIVE';
-					if(serviceName === 'Dropbox') {
-						revokeSelector = 'Documents_listview_customsettingaction_LBL_REVOKE_ACCESS_TO_DROPBOX';
-					}
-					jQuery('#'+revokeSelector).removeClass('hide');
-					jQuery('.settingsIcon').parent('li').removeClass('hide');
-				}
-			};
-			window.open(authUrl,'','height=600,width=600,channelmode=1');
-		}, function(e) {
-			if(e.hasOwnProperty('postAuthorization')) {
-				if(e.postAuthorization) {
-					if(mode === 'select') {
-						Documents_Index_Js.selectFrom(serviceName,parentId,relatedModule,referenceFieldName);
-					} else {
-						Documents_Index_Js.uploadTo(serviceName,parentId,relatedModule,referenceFieldName);
-					}
-				}
-			}
-		});
-	},
-
 	_createDocument : function(form) {
 		var self = this;
 		var noteContentElement = form.find('#Documents_editView_fieldName_notecontent_popup');
@@ -966,7 +435,7 @@ Vtiger.Class('Documents_Index_Js', {
 		this.registerCreateDocumentEvent(container);
 	},
 
-	showCreateDocumentModal : function(type,parentId,relatedModule) {
+	createDocument : function(type,parentId,relatedModule) {
 		var self = this;
 		var url = 'index.php?module=Documents&view=QuickCreateAjax&operation=CreateDocument&type='+type;
 		if(typeof parentId !== 'undefined' && typeof relatedModule !== 'undefined') {
@@ -991,10 +460,6 @@ Vtiger.Class('Documents_Index_Js', {
 		});
 	},
 
-	createDocument : function(type,parentId,relatedModule) {
-		this.showCreateDocumentModal(type,parentId,relatedModule);
-	},
-
 	registerQuickCreateEvents : function(container) {
 		var vtigerInstance = Vtiger_Index_Js.getInstance();
 		vtigerInstance.registerReferenceCreate(container);
diff --git a/layouts/v7/modules/Settings/Vtiger/TaxIndex.tpl b/layouts/v7/modules/Settings/Vtiger/TaxIndex.tpl
index 7bfd0228f..1d20cc3f0 100644
--- a/layouts/v7/modules/Settings/Vtiger/TaxIndex.tpl
+++ b/layouts/v7/modules/Settings/Vtiger/TaxIndex.tpl
@@ -9,40 +9,28 @@
 {* modules/Settings/Vtiger/views/TaxIndex.php *}
 
 {strip}
-    <div class="col-lg-12 col-md-12 col-sm-12" id="TaxCalculationsContainer">
-        <div class="editViewHeader">
-            <h4>{vtranslate('LBL_TAX_CALCULATIONS', $QUALIFIED_MODULE)}</h4>
-        </div>
-        <hr>
-        <br>
-        <div class="contents tabbable clearfix">
-            <ul class="nav nav-tabs layoutTabs massEditTabs">
-                <li class="tab-item taxesTab active"><a data-toggle="tab" href="#taxes"><strong>{vtranslate('LBL_TAXES', $QUALIFIED_MODULE)}</strong></a></li>
-                <li class="tab-item chargesTab"><a data-toggle="tab" href="#charges"><strong>{vtranslate('LBL_CHARGES_AND ITS_TAXES', $QUALIFIED_MODULE)}</strong></a></li>
-                <li class="tab-item taxRegionsTab"><a data-toggle="tab" href="#taxRegions"><strong>{vtranslate('LBL_TAX_REGIONS', $QUALIFIED_MODULE)}</strong></a></li>
-            </ul>
-            <div class="tab-content layoutContent padding20 overflowVisible">
-                <div class="tab-pane active" id="taxes">
-                    <div class="col-lg-3 col-md-3 col-sm-3"></div>
-                        <div class="col-lg-6">
-						<div class="defaultTaxMode">
-							<input type="hidden" id="selectedTaxMode" value="{$SELECTED_TAX_MODE}">
-							<div class="pull-left">{vtranslate('LBL_DEFAULT_TAX_MODE', $QUALIFIED_MODULE)} : </div>
-							<label class="span radio-group">&nbsp;&nbsp;
-								<input class="input-medium" type="radio" name="default_tax_mode" {if $SELECTED_TAX_MODE eq 'group'}checked{/if} value='group' style="display: inline-block;">&nbsp;&nbsp;
-								<span class="mode radio-label">{vtranslate('LBL_GROUP', $QUALIFIED_MODULE)}</span>
-							</label>
-							<label class="span radio-group">&nbsp;&nbsp;
-								<input class="input-medium" type="radio" name="default_tax_mode" {if $SELECTED_TAX_MODE eq 'individual'}checked{/if} value='individual' style="display: inline-block;">&nbsp;&nbsp;
-								<span class="mode radio-label">{vtranslate('LBL_INDIVIDUAL', $QUALIFIED_MODULE)}</span>
-							</label>
-						</div>
-						<br>
+	<div class="col-lg-12 col-md-12 col-sm-12" id="TaxCalculationsContainer">
+		<div class="editViewHeader">
+			<h4>{vtranslate('LBL_TAX_CALCULATIONS', $QUALIFIED_MODULE)}</h4>
+		</div>
+		<hr>
+		<br>
+		<div class="contents tabbable clearfix">
+			<ul class="nav nav-tabs layoutTabs massEditTabs">
+				<li class="tab-item taxesTab active"><a data-toggle="tab" href="#taxes"><strong>{vtranslate('LBL_TAXES', $QUALIFIED_MODULE)}</strong></a></li>
+				<li class="tab-item chargesTab"><a data-toggle="tab" href="#charges"><strong>{vtranslate('LBL_CHARGES_AND ITS_TAXES', $QUALIFIED_MODULE)}</strong></a></li>
+				<li class="tab-item taxRegionsTab"><a data-toggle="tab" href="#taxRegions"><strong>{vtranslate('LBL_TAX_REGIONS', $QUALIFIED_MODULE)}</strong></a></li>
+			</ul>
+			<div class="tab-content layoutContent padding20 overflowVisible">
+				<div class="tab-pane active" id="taxes">
+					<div class="col-lg-3 col-md-3 col-sm-3"></div>
+					<div class="col-lg-6">
 						{assign var=CREATE_TAX_URL value=$TAX_RECORD_MODEL->getCreateTaxUrl()}
 						{assign var=WIDTHTYPE value=$CURRENT_USER_MODEL->get('rowheight')}
 						<div class="marginBottom10px">
 							<button type="button" class="btn btn-default addTax addButton btn-default module-buttons" data-url="{$CREATE_TAX_URL}" data-type="0">
-								<i class="fa fa-plus"></i>&nbsp;&nbsp;{vtranslate('LBL_ADD_NEW_TAX', $QUALIFIED_MODULE)}</button>
+								<i class="fa fa-plus"></i>&nbsp;&nbsp;{vtranslate('LBL_ADD_NEW_TAX', $QUALIFIED_MODULE)}
+							</button>
 						</div>
 						<table class="table table-bordered inventoryTaxTable">
 							<tr>
@@ -68,10 +56,10 @@
 							{/foreach}
 						</table>
 					</div>
-                </div>
-                <div class="tab-pane" id="charges"></div>
-                <div class="tab-pane" id="taxRegions"></div>
-            </div>
-        </div>
-    </div>
+				</div>
+				<div class="tab-pane" id="charges"></div>
+				<div class="tab-pane" id="taxRegions"></div>
+			</div>
+		</div>
+	</div>
 {/strip}
\ No newline at end of file
diff --git a/layouts/v7/modules/Vtiger/Export.tpl b/layouts/v7/modules/Vtiger/Export.tpl
index 98b5cd282..2fffe80e6 100644
--- a/layouts/v7/modules/Vtiger/Export.tpl
+++ b/layouts/v7/modules/Vtiger/Export.tpl
@@ -57,19 +57,19 @@
 							<br><div><b>{vtranslate('LBL_EXPORT_DATA',$MODULE)}</b></div><br>
 							<div style="margin-left: 50px;">
 								<div>
-									<input type="radio" name="mode" value="ExportSelectedRecords" id="group1" {if !empty($SELECTED_IDS)} checked="checked" {else} disabled="disabled"{/if} />
+									<input type="radio" name="mode" value="ExportSelectedRecords" id="group1" {if !empty($SELECTED_IDS)} checked="checked" {else} disabled="disabled"{/if} style="margin:2px 0 -4px" />
 									<label style="font-weight:normal" for="group1">&nbsp;&nbsp;{vtranslate('LBL_EXPORT_SELECTED_RECORDS',$MODULE)}</label>
 									{if empty($SELECTED_IDS)}&nbsp; <span style="color:red">{vtranslate('LBL_NO_RECORD_SELECTED',$MODULE)}</span>{/if}
 									<input type="hidden" class="isSelectedRecords" value="{if $SELECTED_IDS}1{else}0{/if}" >
 								</div>
 								<br>
 								<div>
-									<input type="radio" name="mode" value="ExportCurrentPage" id="group2"/>
+									<input type="radio" name="mode" value="ExportCurrentPage" id="group2" style="margin:2px 0 -4px" />
 									<label style="font-weight:normal" for="group2">&nbsp;&nbsp;{vtranslate('LBL_EXPORT_DATA_IN_CURRENT_PAGE',$MODULE)}</label>
 								</div>
 								<br>
 								<div>
-									<input type="radio" name="mode" value="ExportAllData" id="group3" {if empty($SELECTED_IDS)} checked="checked" {/if}/>
+									<input type="radio" name="mode" value="ExportAllData" id="group3" {if empty($SELECTED_IDS)} checked="checked" {/if} style="margin:2px 0 -4px" />
 									<label style="font-weight:normal" for="group3">&nbsp;&nbsp;{vtranslate('LBL_EXPORT_ALL_DATA',$MODULE)}</label>
 								</div>
 								{if $MULTI_CURRENCY}
diff --git a/layouts/v7/modules/Vtiger/resources/List.js b/layouts/v7/modules/Vtiger/resources/List.js
index 219451874..d170c6fc5 100644
--- a/layouts/v7/modules/Vtiger/resources/List.js
+++ b/layouts/v7/modules/Vtiger/resources/List.js
@@ -1071,6 +1071,7 @@ Vtiger.Class("Vtiger_List_Js", {
 					}, 500));
 				}
 			}
+			e.preventDefault();
 			e.stopPropagation();
 		});
 
diff --git a/layouts/v7/modules/Vtiger/uitypes/StringDetailView.tpl b/layouts/v7/modules/Vtiger/uitypes/StringDetailView.tpl
index 0d109d581..6ece8c7be 100644
--- a/layouts/v7/modules/Vtiger/uitypes/StringDetailView.tpl
+++ b/layouts/v7/modules/Vtiger/uitypes/StringDetailView.tpl
@@ -39,6 +39,8 @@
     {else}
         <span class="currencyValue">{$FIELD_MODEL->getDisplayValue($FIELD_MODEL->get('fieldvalue'))}</span>&nbsp;{$CURRENCY_SYMBOL}
     {/if}
+{else if  $FIELD_MODEL->get('name') eq 'signature'}
+	{decode_html($FIELD_MODEL->getDisplayValue($FIELD_MODEL->get('fieldvalue'), $RECORD->getId(), $RECORD))}
 {else}
     {$FIELD_MODEL->getDisplayValue($FIELD_MODEL->get('fieldvalue'), $RECORD->getId(), $RECORD)}
 {/if}
diff --git a/modules/Calendar/actions/ExportData.php b/modules/Calendar/actions/ExportData.php
index 56a8a8a0b..8933e4819 100644
--- a/modules/Calendar/actions/ExportData.php
+++ b/modules/Calendar/actions/ExportData.php
@@ -186,6 +186,11 @@ class Calendar_ExportData_Action extends Vtiger_ExportData_Action {
 
 		$moduleModel = Vtiger_Module_Model::getInstance($moduleName);
 		$moduleFields = $moduleModel->getFields();
+
+		$eventsModuleModel = Vtiger_Module_Model::getInstance('Events');
+		$eventModuleFieldList = $eventsModuleModel->getFields();
+		$moduleFields = array_merge($moduleFields, $eventModuleFieldList);
+
 		foreach ($moduleFields as $fieldName => $fieldModel) {
 			if (in_array($fieldName, $skippedFields)) {
 				unset($moduleFields[$fieldName]);
diff --git a/modules/Calendar/views/Export.php b/modules/Calendar/views/Export.php
index 5f32eaebe..5c5a247fd 100644
--- a/modules/Calendar/views/Export.php
+++ b/modules/Calendar/views/Export.php
@@ -9,20 +9,4 @@
  *************************************************************************************/
 
 class Calendar_Export_View extends Vtiger_Export_View {
-
-	public function preprocess(Vtiger_Request $request) {
-	}
-
-	public function process(Vtiger_Request $request) {
-		$moduleName = $request->getModule();
-
-		$viewer = $this->getViewer($request);
-		$viewer->assign('MODULE', $moduleName);
-		$viewer->assign('ACTION', 'ExportData');
-		
-		$viewer->view('Export.tpl', $moduleName);
-	}
-
-	public function postprocess(Vtiger_Request $request) {
-	}
 }
\ No newline at end of file
diff --git a/modules/Calendar/views/Import.php b/modules/Calendar/views/Import.php
index 996c44f72..85db9b8b9 100644
--- a/modules/Calendar/views/Import.php
+++ b/modules/Calendar/views/Import.php
@@ -89,6 +89,9 @@ class Calendar_Import_View extends Vtiger_Import_View {
 					if(strtotime($dueDate) < strtotime($currentDate))
 						$activityFieldsList['eventstatus'] = 'Held';
 				}
+				if (!$activityFieldsList['time_end']) {
+					$activityFieldsList['time_end'] = '';
+				}
 
 				$recordModel = Vtiger_Record_Model::getCleanInstance($moduleName);
 				$recordModel->setData($activityFieldsList);
diff --git a/modules/Documents/models/Module.php b/modules/Documents/models/Module.php
index 5ec623418..89a8a3d53 100644
--- a/modules/Documents/models/Module.php
+++ b/modules/Documents/models/Module.php
@@ -121,50 +121,6 @@ class Documents_Module_Model extends Vtiger_Module_Model {
 		return $relatedListFields;
 	}
     
-    public function getSettingLinks() {
-        vimport('~~modules/com_vtiger_workflow/VTWorkflowUtils.php');
-        
-        
-		$layoutEditorImagePath = Vtiger_Theme::getImagePath('LayoutEditor.gif');
-        $editWorkflowsImagePath = Vtiger_Theme::getImagePath('EditWorkflows.png');
-		$settingsLinks = array();
-        $currentUserModel = Users_Record_Model::getCurrentUserModel();
-        if($currentUserModel->isAdminUser()) {
-            if(VTWorkflowUtils::checkModuleWorkflow($this->getName())) {
-                $settingsLinks[] = array(
-                    'linktype' => 'LISTVIEWSETTING',
-                    'linklabel' => 'LBL_EDIT_WORKFLOWS',
-                    'linkurl' => 'index.php?parent=Settings&module=Workflows&view=List&sourceModule='.$this->getName(),
-                    'linkicon' => $editWorkflowsImagePath
-                );
-            }
-
-            $settingsLinks[] = array(
-                     'linktype' => 'LISTVIEWSETTING',
-                        'linklabel' => 'LBL_EDIT_FIELDS',
-                            'linkurl' => 'index.php?parent=Settings&module=LayoutEditor&sourceModule='.$this->getName(),
-                        'linkicon' => $layoutEditorImagePath
-            );
-		
-			$settingsLinks[] = array(
-						'linktype' => 'LISTVIEWSETTING',
-						'linklabel' => 'LBL_EDIT_PICKLIST_VALUES',
-					'linkurl' => 'index.php?parent=Settings&module=Picklist&source_module='.$this->getName(),
-					'linkicon' => ''
-			);
-	        
-	        if($this->hasSequenceNumberField()) {
-			$settingsLinks[] = array(
-					'linktype' => 'LISTVIEWSETTING',
-					'linklabel' => 'LBL_MODULE_SEQUENCE_NUMBERING',
-					'linkurl' => 'index.php?parent=Settings&module=Vtiger&view=CustomRecordNumbering&sourceModule='.$this->getName(),
-						'linkicon' => ''
-				);
-			}
-		}
-        return $settingsLinks;
-    }
-    
     /**
 	* Function is used to give links in the All menu bar
 	*/
diff --git a/modules/Documents/views/QuickCreateAjax.php b/modules/Documents/views/QuickCreateAjax.php
index 5ad17797a..97a66313f 100644
--- a/modules/Documents/views/QuickCreateAjax.php
+++ b/modules/Documents/views/QuickCreateAjax.php
@@ -41,9 +41,21 @@ class Documents_QuickCreateAjax_View extends Vtiger_IndexAjax_View {
 
 		$picklistDependencyDatasource = Vtiger_DependencyPicklist::getPicklistDependencyDatasource($moduleName);
 
-		$fieldsInfo = array();
+		$relationOperation = $request->get('relationOperation');
 		$fieldList = $moduleModel->getFields();
-		foreach($fieldList as $name => $model){
+		$requestFieldList = array_intersect_key($request->getAll(), $fieldList);
+        foreach($requestFieldList as $requestFieldName => $requestFieldValue) {
+            if(array_key_exists($requestFieldName, $fieldList)) {
+                $moduleFieldModel = $fieldList[$requestFieldName];
+                $recordModel->set($requestFieldName, $moduleFieldModel->getDBInsertValue($requestFieldValue));
+            }
+        }
+
+		$fieldsInfo = array();
+		foreach ($fieldList as $name => $model) {
+			if ($relationOperation && array_key_exists($name, $requestFieldList)) {
+				$relationFieldName = $name;
+			}
 			$fieldsInfo[$name] = $model->getFieldInfo();
 		}
 
@@ -61,6 +73,15 @@ class Documents_QuickCreateAjax_View extends Vtiger_IndexAjax_View {
 		$viewer->assign('FILE_LOCATION_TYPE', $request->get('type'));
 		$viewer->assign('SCRIPTS', $this->getHeaderScripts($request));
 
+		if ($relationOperation) {
+			$viewer->assign('RELATION_OPERATOR', $relationOperation);
+			$viewer->assign('PARENT_MODULE', $request->get('sourceModule'));
+			$viewer->assign('PARENT_ID', $request->get('sourceRecord'));
+			if ($relationFieldName) {
+				$viewer->assign('RELATION_FIELD_NAME', $relationFieldName);
+			}
+		}
+
 		$viewer->assign('MAX_UPLOAD_LIMIT_MB', Vtiger_Util_Helper::getMaxUploadSize());
 		$viewer->assign('MAX_UPLOAD_LIMIT_BYTES', Vtiger_Util_Helper::getMaxUploadSizeInBytes());
 		echo $viewer->view('QuickCreate.tpl',$moduleName,true);
diff --git a/modules/Migration/schema/660_to_700.php b/modules/Migration/schema/660_to_700.php
index 2c244d16e..ca2db5568 100644
--- a/modules/Migration/schema/660_to_700.php
+++ b/modules/Migration/schema/660_to_700.php
@@ -12,10 +12,15 @@ if(defined('VTIGER_UPGRADE')) {
 	global $adb, $current_user;
 	$db = PearDatabase::getInstance();
 
+	if (!Vtiger_Utils::CheckTable('vtiger_activity_recurring_info')) {
+		$db->pquery('CREATE TABLE IF NOT EXISTS vtiger_activity_recurring_info(activityid INT(19) NOT NULL, recurrenceid INT(19) NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=UTF8;', array());
+	}
+
 	$columns = $db->getColumnNames('vtiger_crmentity');
 	if (!in_array('smgroupid', $columns)) {
 		$db->pquery('ALTER TABLE vtiger_crmentity ADD COLUMN smgroupid INT(19)', array());
 	}
+
 	$db->pquery('UPDATE vtiger_settings_field SET name=? WHERE name=?', array('Configuration Editor', 'LBL_CONFIG_EDITOR'));
 	$db->pquery('UPDATE vtiger_links SET linktype=? WHERE linklabel=?', array('DETAILVIEW', 'LBL_SHOW_ACCOUNT_HIERARCHY'));
 	$db->pquery('UPDATE vtiger_field SET defaultvalue=? WHERE fieldname=?', array('1', 'discontinued'));
diff --git a/test/template_imgfiles/default.png b/test/template_imgfiles/default.png
new file mode 100644
index 0000000000000000000000000000000000000000..796b3d5d65febfb585da2a71395c58a82320a975
GIT binary patch
literal 14136
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

literal 0
HcmV?d00001

-- 
GitLab