Skip to content
Snippets Groups Projects
Commit 7bc33f79 authored by Satish's avatar Satish
Browse files

Fixed:

Report list view issues
Import usability issues
parent 9d3f4bb1
No related branches found
No related tags found
No related merge requests found
Showing
with 234 additions and 905 deletions
......@@ -1236,7 +1236,7 @@ $languageStrings = array(
'SINGLE_SalesOrder' => 'Sales Order',
'SINGLE_PurchaseOrder' => 'Purchase Order',
'SINGLE_Quotes' => 'Quote',
'LBL_POST_YOUR_COMMENT_HERE' => 'Post a comment and mention @user / @group / @All to notify',
'LBL_POST_YOUR_COMMENT_HERE' => 'Post your comment here',
// Phone Calls
'LBL_CLICK_TO_CALL' => 'Click-to-Call',
'LBL_SHOW_TOTAL_NUMBER_OF_RECORDS' => 'Click for this list size',
......
......@@ -46,7 +46,7 @@
</tr>
</table>
</div>
<div class="modal-overlay-footer clearfix">
<div class="modal-overlay-footer border1px clearfix">
<div class="row clearfix">
<div class="textAlignCenter col-lg-12 col-md-12 col-sm-12">
<button class="btn btn-danger" onclick="return Vtiger_Import_Js.undoImport('index.php?module={$MODULE}&view=Import&mode=undoIcalImport');"><strong>{'LBL_UNDO_LAST_IMPORT'|@vtranslate:$MODULE}</strong></button>
......
......@@ -13,7 +13,7 @@
<div class="vtFooter">
<p>
{vtranslate('POWEREDBY')} {$VTIGER_VERSION}&nbsp;
&copy; 2004 - {date('Y')}&nbsp
&copy; 2004 - {date('Y')}&nbsp;
<a href="//www.vtiger.com" target="_blank">vtiger.com</a>
&nbsp;|&nbsp;
<a href="#" onclick="window.open('copyright.html', 'copyright', 'height=115,width=575').moveTo(210, 620)">{vtranslate('LBL_READ_LICENSE')}</a>
......
......@@ -63,7 +63,7 @@
</div>
</div>
<br>
<div class="marginLeftZero modal-overlay-footer clearfix">
<div class="modal-overlay-footer border1px clearfix">
<div class="row clearfix">
<div class="textAlignCenter col-lg-12 col-md-12 col-sm-12 ">
<button type="button" class="btn btn-danger backStep"><strong>{vtranslate('LBL_BACK',$MODULE)}</strong></button>&nbsp;&nbsp;
......
......@@ -100,7 +100,7 @@
</div>
</div>
<br>
<div class="marginLeftZero modal-overlay-footer clearfix">
<div class="modal-overlay-footer border1px clearfix">
<div class="row clearfix">
<div class="textAlignCenter col-lg-12 col-md-12 col-sm-12 ">
<button type="button" class="btn btn-danger backStep"><strong>{vtranslate('LBL_BACK',$MODULE)}</strong></button>&nbsp;&nbsp;
......
......@@ -30,7 +30,7 @@
<div class="form-group">
<label for="description" class="col-sm-4 control-label">{vtranslate('LBL_FOLDER_DESCRIPTION', $MODULE)}</label>
<div class="col-sm-7">
<textarea name="description" class="col-sm-12" rows="3" placeholder="{vtranslate('LBL_WRITE_YOUR_DESCRIPTION_HERE', $MODULE)}">{vtranslate($FOLDER_MODEL->getDescription(), $MODULE)}</textarea>
<textarea name="description" class="form-control col-sm-12" rows="3" placeholder="{vtranslate('LBL_WRITE_YOUR_DESCRIPTION_HERE', $MODULE)}">{vtranslate($FOLDER_MODEL->getDescription(), $MODULE)}</textarea>
</div>
</div>
</div>
......
This diff is collapsed.
......@@ -26,7 +26,7 @@
</span>
<span>
<p class="current-filter-name pull-left">&nbsp;&nbsp;<span class="fa fa-angle-right" aria-hidden="true"></span>
{if $VIEW eq 'Detail' or $VIEW eq 'PivotDetail' or $VIEW eq 'ChartDetail'}
{if $VIEW eq 'Detail' or $VIEW eq 'ChartDetail'}
&nbsp;{$REPORT_NAME}
{else}
&nbsp;{$VIEW}
......@@ -65,13 +65,11 @@
{foreach item="childLink" from=$childLinks}
{if $childLink->getLabel() eq 'LBL_CHARTS'}
{assign var="ICON_CLASS" value='fa fa-pie-chart'}
{elseif $childLink->getLabel() eq 'LBL_PIVOT_REPORT'}
{assign var="ICON_CLASS" value='vicon-pivots'}
{elseif $childLink->getLabel() eq 'LBL_DETAIL_REPORT'}
{assign var="ICON_CLASS" value='vicon-detailreport'}
{/if}
<li id="{$MODULE}_listView_basicAction_{Vtiger_Util_Helper::replaceSpaceWithUnderScores($childLink->getLabel())}" data-edition-disable="{$childLink->disabled}" data-edition-message="{$childLink->message}">
<a {if $childLink->disabled neq '1'} {if stripos($childLink->getUrl(), 'javascript:') === 0} onclick='{$childLink->getUrl()|substr:strlen("javascript:")};' {else} href='{$childLink->getUrl()}' {/if} {else} href="javascript:void(0);" {/if}><i class='{$ICON_CLASS}' style="font-size:13px;"></i>&nbsp; {vtranslate($childLink->getLabel(), $MODULE)}</a>
<a {if $childLink->disabled neq '1'} {if stripos($childLink->getUrl(), 'javascript:') === 0} onclick='{$childLink->getUrl()|substr:strlen("javascript:")};' {else} href='{$childLink->getUrl()}' {/if} {else} href="javascript:void(0);" {/if}><i class='{$ICON_CLASS}' style="font-size:13px;"></i>&nbsp; {vtranslate($childLink->getLabel(), $MODULE)}</a>
</li>
{/foreach}
</ul>
......@@ -108,7 +106,7 @@
}
return false;
}
},
}
};
})();
</script>
......
{*<!--
/*********************************************************************************
** 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.
*
********************************************************************************/
-->*}
{strip}
<div class="editContainer" style="padding-left: 1%;padding-right: 3%">
<div class="row">
{assign var=LABELS value = ["step1" => "LBL_REPORT_DETAILS", "step2" => "LBL_FILTERS", "step3" => "LBL_SELECT_PIVOT_FIELDS"]}
{include file="BreadCrumbs.tpl"|vtemplate_path:$MODULE ACTIVESTEP=1 BREADCRUMB_LABELS=$LABELS MODULE=$MODULE}
</div>
<div class="clearfix"></div>
</div>
{/strip}
\ No newline at end of file
{*+**********************************************************************************
* The contents of this file are subject to the vtiger CRM Public License Version 1.1
* ("License"); You may not use this file except in compliance with the License
* The Original Code is: vtiger CRM Open Source
* The Initial Developer of the Original Code is vtiger.
* Portions created by vtiger are Copyright (C) vtiger.
* All Rights Reserved.
************************************************************************************}
{* modules/Reports/views/PivotDetail.php *}
{* START YOUR IMPLEMENTATION FROM BELOW. Use {debug} for information *}
{strip}
<input type="hidden" name='hdnrowfields' value={Zend_JSON::encode($SELECTED_ROW_FIELDS)} />
<input type="hidden" name='hdncolumnfields' value={Zend_JSON::encode($SELECTED_COLUMN_FIELDS)} />
<input type="hidden" name='hdndatafields' value={Zend_JSON::encode($SELECTED_DATA_FIELDS)} />
<input type="hidden" name="primary_module" value="{$PRIMARY_MODULE}" />
<input type="hidden" name="secondary_modules" value={ZEND_JSON::encode($SECONDARY_MODULES)} />
<div class="reportsDetailHeader">
{include file="DetailViewActions.tpl"|vtemplate_path:$MODULE}
{if $REPORT_MODEL->isEditableBySharing()}
<div class="contactAdd">
<div class="filterElements well filterConditionContainer filterConditionsDiv" style="margin: 0px;">
<h5><strong>{vtranslate('LBL_PIVOT_FIELDS',$MODULE)}</strong></h5><br>
<div class="col-lg-4 marginLeftZero">
<strong>{vtranslate('LBL_SELECT_ROWS',$MODULE)}</strong> ({vtranslate('LBL_MAX',$MODULE)} 3)<br>
<select data-placeholder="{vtranslate('LBL_ADD_ROWS',$MODULE)}" id="pivot_rowfields" name="rowfields[]" class="select2 col-lg-10 row" style="min-width: 300px;"></select>
</div>
<div class="col-lg-4 marginLeftZero">
<strong>{vtranslate('LBL_SELECT_COLUMNS',$MODULE)}</strong> ({vtranslate('LBL_MAX',$MODULE)} 3)<br>
<select data-placeholder="{vtranslate('LBL_ADD_COLUMNS',$MODULE)}" id="pivot_columnfields" name="columnfields[]" class="select2 col-lg-10 row" style="min-width: 300px;"></select>
</div>
<div class="col-lg-4 marginLeftZero">
<strong>{vtranslate('LBL_SELECT_DATA_FIELDS',$MODULE)}</strong> ({vtranslate('LBL_MAX',$MODULE)} 3)<br>
<select data-placeholder="{vtranslate('LBL_ADD_DATA_FIELDS',$MODULE)}" id="pivot_datafields" name="datafields[]" class="select2 col-lg-10 row" style="min-width: 300px;"></select>
</div><div class="clearfix">&nbsp;</div>
</div>
<div class ='hide'>
<select id="pivotfields" data-placeholder="">
{foreach key=PRIMARY_MODULE_NAME item=PRIMARY_MODULE from=$PRIMARY_MODULE_FIELDS}
{foreach key=BLOCK_LABEL item=BLOCK from=$PRIMARY_MODULE}
<optgroup label='{vtranslate($PRIMARY_MODULE_NAME,$MODULE)}-{vtranslate($BLOCK_LABEL,$PRIMARY_MODULE_NAME)}'>
{foreach key=FIELD_KEY item=FIELD_LABEL from=$BLOCK}
{assign var=FIELD_INFO value=explode(':', $FIELD_KEY)}
{if $FIELD_INFO[4] eq 'D' or $FIELD_INFO[4] eq 'DT'}
<option value="{$FIELD_KEY}:Y" data-escaped-value="{str_replace('\\', '\\\\', $FIELD_KEY)}:Y">{vtranslate($FIELD_LABEL, $PRIMARY_MODULE_NAME)} ({vtranslate('LBL_YEAR', $PRIMARY_MODULE_NAME)})</option>
<option value="{$FIELD_KEY}:M" data-escaped-value="{str_replace('\\', '\\\\', $FIELD_KEY)}:M">{vtranslate($FIELD_LABEL, $PRIMARY_MODULE_NAME)} ({vtranslate('LBL_MONTH', $PRIMARY_MODULE_NAME)})</option>
<option value="{$FIELD_KEY}:W" data-escaped-value="{str_replace('\\', '\\\\', $FIELD_KEY)}:W">{vtranslate($FIELD_LABEL, $PRIMARY_MODULE_NAME)} ({vtranslate('LBL_WEEK', $PRIMARY_MODULE_NAME)})</option>
<option value="{$FIELD_KEY}" data-escaped-value="{str_replace('\\', '\\\\', $FIELD_KEY)}">{vtranslate($FIELD_LABEL, $PRIMARY_MODULE_NAME)}</option>
{else if $FIELD_INFO[4] neq 'I' and $FIELD_INFO[4] neq 'N' and $FIELD_INFO[4] neq 'NN'}
<option value="{$FIELD_KEY}" data-escaped-value="{str_replace('\\', '\\\\', $FIELD_KEY)}">{vtranslate($FIELD_LABEL, $PRIMARY_MODULE_NAME)}</option>
{/if}
{/foreach}
</optgroup>
{/foreach}
{/foreach}
{foreach key=SECONDARY_MODULE_NAME item=SECONDARY_MODULE from=$SECONDARY_MODULE_FIELDS}
{foreach key=BLOCK_LABEL item=BLOCK from=$SECONDARY_MODULE}
<optgroup label='{vtranslate($SECONDARY_MODULE_NAME,$MODULE)}-{vtranslate($BLOCK_LABEL,$SECONDARY_MODULE_NAME)}'>
{foreach key=FIELD_KEY item=FIELD_LABEL from=$BLOCK}
{assign var=FIELD_INFO value=explode(':', $FIELD_KEY)}
{if $FIELD_INFO[4] eq 'D' or $FIELD_INFO[4] eq 'DT'}
<option value="{$FIELD_KEY}:Y" data-escaped-value="{str_replace('\\', '\\\\', $FIELD_KEY)}:Y">{vtranslate($FIELD_LABEL, $SECONDARY_MODULE_NAME)} ({vtranslate('LBL_YEAR', $PRIMARY_MODULE_NAME)})</option>
<option value="{$FIELD_KEY}:M" data-escaped-value="{str_replace('\\', '\\\\', $FIELD_KEY)}:M">{vtranslate($FIELD_LABEL, $SECONDARY_MODULE_NAME)} ({vtranslate('LBL_MONTH', $PRIMARY_MODULE_NAME)})</option>
<option value="{$FIELD_KEY}" data-escaped-value="{str_replace('\\', '\\\\', $FIELD_KEY)}">{vtranslate($FIELD_LABEL, $SECONDARY_MODULE_NAME)}</option>
{else if $FIELD_INFO[4] neq 'I' and $FIELD_INFO[4] neq 'N' and $FIELD_INFO[4] neq 'NN'}
<option value="{$FIELD_KEY}" data-escaped-value="{str_replace('\\', '\\\\', $FIELD_KEY)}">{vtranslate($FIELD_LABEL, $SECONDARY_MODULE_NAME)}</option>
{/if}
{/foreach}
</optgroup>
{/foreach}
{/foreach}
</select>
<select id="datafields_element" data-placeholder="{vtranslate('LBL_SELECT_DATA_FIELDS',$MODULE)}">>
{foreach key=CALCULATION_FIELDS_MODULE_LABEL item=CALCULATION_FIELDS_MODULE from=$CALCULATION_FIELDS}
<optgroup label="{vtranslate($CALCULATION_FIELDS_MODULE_LABEL, $CALCULATION_FIELDS_MODULE_LABEL)}">
{foreach key=CALCULATION_FIELD_KEY item=CALCULATION_FIELD_TRANSLATED_LABEL from=$CALCULATION_FIELDS_MODULE}
<option value="{$CALCULATION_FIELD_KEY}">{$CALCULATION_FIELD_TRANSLATED_LABEL}</option>
{/foreach}
</optgroup>
{/foreach}
<optgroup label='{vtranslate('RECORD COUNT',$MODULE)}'>
<option value="record_count">{vtranslate('LBL_RECORD_COUNT', $MODULE)}</option>
</optgroup>
</select>
</div>
<div class='row'>
<span class="alert alert-danger col-lg-12 hide" id="warning1"><i class="fa fa-exclamation-triangle"></i>&nbsp;{vtranslate('LBL_SELECT_PIVOT_FIELDS_WARNING', $MODULE)}</span>
</div>
<br>
<div class=''>
{assign var=filterConditionNotExists value=(count($SELECTED_ADVANCED_FILTER_FIELDS[1]['columns']) eq 0 and count($SELECTED_ADVANCED_FILTER_FIELDS[2]['columns']) eq 0)}
<button class="btn btn-default" name="modify_condition" data-val="{$filterConditionNotExists}">
<strong>{vtranslate('LBL_MODIFY_CONDITION', $MODULE)}</strong>&nbsp;&nbsp;
<i class="fa {if $filterConditionNotExists eq true} fa-chevron-right {else} fa-chevron-down {/if}"></i>
</button>
</div>
<br>
<div id='filterContainer' class='{if $filterConditionNotExists eq true} hide {/if}'>
<input type="hidden" id="recordId" value="{$RECORD_ID}" />
{assign var=RECORD_STRUCTURE value=array()}
{assign var=PRIMARY_MODULE_LABEL value=vtranslate($PRIMARY_MODULE_NAME, $PRIMARY_MODULE_NAME)}
{foreach key=BLOCK_LABEL item=BLOCK_FIELDS from=$PRIMARY_MODULE_RECORD_STRUCTURE}
{assign var=PRIMARY_MODULE_BLOCK_LABEL value=vtranslate($BLOCK_LABEL, $PRIMARY_MODULE_NAME)}
{assign var=key value="$PRIMARY_MODULE_LABEL $PRIMARY_MODULE_BLOCK_LABEL"}
{if $LINEITEM_FIELD_IN_CALCULATION eq false && $BLOCK_LABEL eq 'LBL_ITEM_DETAILS'}
{* dont show the line item fields block when Inventory fields are selected for calculations *}
{else}
{$RECORD_STRUCTURE[$key] = $BLOCK_FIELDS}
{/if}
{/foreach}
{foreach key=MODULE_LABEL item=SECONDARY_MODULE_RECORD_STRUCTURE from=$SECONDARY_MODULE_RECORD_STRUCTURES}
{assign var=SECONDARY_MODULE_LABEL value=vtranslate($MODULE_LABEL, $MODULE_LABEL)}
{foreach key=BLOCK_LABEL item=BLOCK_FIELDS from=$SECONDARY_MODULE_RECORD_STRUCTURE}
{assign var=SECONDARY_MODULE_BLOCK_LABEL value=vtranslate($BLOCK_LABEL, $MODULE_LABEL)}
{assign var=key value="$SECONDARY_MODULE_LABEL $SECONDARY_MODULE_BLOCK_LABEL"}
{$RECORD_STRUCTURE[$key] = $BLOCK_FIELDS}
{/foreach}
{/foreach}
{include file='AdvanceFilter.tpl'|@vtemplate_path:$MODULE RECORD_STRUCTURE=$RECORD_STRUCTURE ADVANCE_CRITERIA=$SELECTED_ADVANCED_FILTER_FIELDS COLUMNNAME_API=getReportFilterColumnName}
</div>
<div class="row textAlignCenter hide reportActionButtons">
<button class="btn btn-success generateReportPivot" data-mode="save" value="{vtranslate('LBL_SAVE',$MODULE)}"/>
<strong>{vtranslate('LBL_SAVE',$MODULE)}</strong>
</button>
</div>
{/if}
</div>
<br>
<div id="reportContentsDiv" class="padding1per">
{/strip}
\ No newline at end of file
{*+**********************************************************************************
* The contents of this file are subject to the vtiger CRM Public License Version 1.1
* ("License"); You may not use this file except in compliance with the License
* The Original Code is: vtiger CRM Open Source
* The Initial Developer of the Original Code is vtiger.
* Portions created by vtiger are Copyright (C) vtiger.
* All Rights Reserved.
************************************************************************************}
{include file="Step1.tpl"|vtemplate_path:$MODULE}
{*+**********************************************************************************
* The contents of this file are subject to the vtiger CRM Public License Version 1.1
* ("License"); You may not use this file except in compliance with the License
* The Original Code is: vtiger CRM Open Source
* The Initial Developer of the Original Code is vtiger.
* Portions created by vtiger are Copyright (C) vtiger.
* All Rights Reserved.
************************************************************************************}
{strip}
<form class="form-horizontal recordEditView" id="report_step2" method="post" action="index.php">
<input type="hidden" name="module" value="{$MODULE}" />
<input type="hidden" name="view" value="PivotEdit" />
<input type="hidden" name="mode" value="pivotStep3" />
<input type="hidden" name="record" value="{$RECORD_ID}" />
<input type="hidden" name="reportname" value="{$REPORT_MODEL->get('reportname')}" />
{if $REPORT_MODEL->get('members')}
<input type="hidden" name="members" value={ZEND_JSON::encode($REPORT_MODEL->get('members'))} />
{/if}
<input type="hidden" name="folderid" value="{$REPORT_MODEL->get('folderid')}" />
<input type="hidden" name="description" value="{$REPORT_MODEL->get('description')}" />
<input type="hidden" name="primary_module" value="{$PRIMARY_MODULE}" />
<input type="hidden" name="secondary_modules" value={ZEND_JSON::encode($SECONDARY_MODULES)} />
<input type="hidden" name="advanced_filter" id="advanced_filter" value="" />
<input type="hidden" name="isDuplicate" value="{$IS_DUPLICATE}" />
<input type="hidden" class="step" value="2" />
<input type="hidden" name="enable_schedule" value="{$REPORT_MODEL->get('enable_schedule')}">
<input type="hidden" name="schtime" value="{$REPORT_MODEL->get('schtime')}">
<input type="hidden" name="schdate" value="{$REPORT_MODEL->get('schdate')}">
<input type="hidden" name="schdayoftheweek" value={ZEND_JSON::encode($REPORT_MODEL->get('schdayoftheweek'))}>
<input type="hidden" name="schdayofthemonth" value={ZEND_JSON::encode($REPORT_MODEL->get('schdayofthemonth'))}>
<input type="hidden" name="schannualdates" value={ZEND_JSON::encode($REPORT_MODEL->get('schannualdates'))}>
<input type="hidden" name="recipients" value={ZEND_JSON::encode($REPORT_MODEL->get('recipients'))}>
<input type="hidden" name="specificemails" value={ZEND_JSON::encode($REPORT_MODEL->get('specificemails'))}>
<input type="hidden" name="schtypeid" value="{$REPORT_MODEL->get('schtypeid')}">
<input type="hidden" name="fileformat" value="{$REPORT_MODEL->get('fileformat')}">
{assign var=RECORD_STRUCTURE value=array()}
{assign var=PRIMARY_MODULE_LABEL value=vtranslate($PRIMARY_MODULE, $PRIMARY_MODULE)}
{foreach key=BLOCK_LABEL item=BLOCK_FIELDS from=$PRIMARY_MODULE_RECORD_STRUCTURE}
{assign var=PRIMARY_MODULE_BLOCK_LABEL value=vtranslate($BLOCK_LABEL, $PRIMARY_MODULE)}
{assign var=key value="$PRIMARY_MODULE_LABEL $PRIMARY_MODULE_BLOCK_LABEL"}
{if $LINEITEM_FIELD_IN_CALCULATION eq false && $BLOCK_LABEL eq 'LBL_ITEM_DETAILS'}
{* dont show the line item fields block when Inventory fields are selected for calculations *}
{else}
{$RECORD_STRUCTURE[$key] = $BLOCK_FIELDS}
{/if}
{/foreach}
{foreach key=MODULE_LABEL item=SECONDARY_MODULE_RECORD_STRUCTURE from=$SECONDARY_MODULE_RECORD_STRUCTURES}
{assign var=SECONDARY_MODULE_LABEL value=vtranslate($MODULE_LABEL, $MODULE_LABEL)}
{foreach key=BLOCK_LABEL item=BLOCK_FIELDS from=$SECONDARY_MODULE_RECORD_STRUCTURE}
{assign var=SECONDARY_MODULE_BLOCK_LABEL value=vtranslate($BLOCK_LABEL, $MODULE_LABEL)}
{assign var=key value="$SECONDARY_MODULE_LABEL $SECONDARY_MODULE_BLOCK_LABEL"}
{$RECORD_STRUCTURE[$key] = $BLOCK_FIELDS}
{/foreach}
{/foreach}
<div style="border:1px solid #ccc;padding:2%;">
<div class="row">
<h4><strong>{vtranslate('LBL_CHOOSE_FILTER_CONDITIONS',$MODULE)}</strong></h4>
<br>
<span class="col-lg-12">
{include file='AdvanceFilter.tpl'|@vtemplate_path RECORD_STRUCTURE=$RECORD_STRUCTURE ADVANCE_CRITERIA=$SELECTED_ADVANCED_FILTER_FIELDS COLUMNNAME_API=getReportFilterColumnName}
</span>
</div>
</div>
<br>
<div class="marginLeftZero modal-overlay-footer clearfix">
<div class="row clearfix">
<div class="textAlignCenter col-lg-12 col-md-12 col-sm-12 ">
<button type="button" class="btn btn-danger backStep"><strong>{vtranslate('LBL_BACK',$MODULE)}</strong></button>&nbsp;&nbsp;
<button type="submit" class="btn btn-success nextStep"><strong>{vtranslate('LBL_NEXT',$MODULE)}</strong></button>&nbsp;&nbsp;
<a class="cancelLink" onclick="window.history.back()">{vtranslate('LBL_CANCEL',$MODULE)}</a>
</div>
</div>
</div>
</form>
</div>
</div>
{/strip}
{*+**********************************************************************************
* The contents of this file are subject to the vtiger CRM Public License Version 1.1
* ("License"); You may not use this file except in compliance with the License
* The Original Code is: vtiger CRM Open Source
* The Initial Developer of the Original Code is vtiger.
* Portions created by vtiger are Copyright (C) vtiger.
* All Rights Reserved.
************************************************************************************}
{strip}
<form class="form-horizontal recordEditView" id="report_step3" method="post" action="index.php">
<input type="hidden" name="module" value="{$MODULE}" />
<input type="hidden" name="action" value="PivotSave" />
<input type="hidden" name="record" value="{$RECORD_ID}" />
<input type="hidden" name="reportname" value="{Vtiger_Util_Helper::toSafeHTML($REPORT_MODEL->get('reportname'))}" />
{if $REPORT_MODEL->get('members')}
<input type="hidden" name="members" value={ZEND_JSON::encode($REPORT_MODEL->get('members'))} />
{/if}
<input type="hidden" name="folderid" value="{$REPORT_MODEL->get('folderid')}" />
<input type="hidden" name="description" value="{Vtiger_Util_Helper::toSafeHTML($REPORT_MODEL->get('description'))}" />
<input type="hidden" name="primary_module" value="{$PRIMARY_MODULE}" />
<input type="hidden" name="secondary_modules" value={ZEND_JSON::encode($SECONDARY_MODULES)} />
<input type="hidden" name="advanced_filter" value="" />
<input type="hidden" name="isDuplicate" value="{$IS_DUPLICATE}" />
<input type="hidden" name='hdnrowfields' value={Zend_JSON::encode($SELECTED_ROW_FIELDS)} />
<input type="hidden" name='hdncolumnfields' value={Zend_JSON::encode($SELECTED_COLUMN_FIELDS)} />
<input type="hidden" name='hdndatafields' value={Zend_JSON::encode($SELECTED_DATA_FIELDS)} />
<input type="hidden" class="step" value="3" />
<input type="hidden" name="reporttype" value="pivot" />
<input type="hidden" name="rowfields" />
<input type="hidden" name="columnfields" />
<input type="hidden" name="datafields" />
<input type="hidden" name="enable_schedule" value="{$REPORT_MODEL->get('enable_schedule')}">
<input type="hidden" name="schtime" value="{$REPORT_MODEL->get('schtime')}">
<input type="hidden" name="schdate" value="{$REPORT_MODEL->get('schdate')}">
<input type="hidden" name="schdayoftheweek" value={ZEND_JSON::encode($REPORT_MODEL->get('schdayoftheweek'))}>
<input type="hidden" name="schdayofthemonth" value={ZEND_JSON::encode($REPORT_MODEL->get('schdayofthemonth'))}>
<input type="hidden" name="schannualdates" value={ZEND_JSON::encode($REPORT_MODEL->get('schannualdates'))}>
<input type="hidden" name="recipients" value={ZEND_JSON::encode($REPORT_MODEL->get('recipients'))}>
<input type="hidden" name="specificemails" value={ZEND_JSON::encode($REPORT_MODEL->get('specificemails'))}>
<input type="hidden" name="schtypeid" value="{$REPORT_MODEL->get('schtypeid')}">
<input type="hidden" name="fileformat" value="{$REPORT_MODEL->get('fileformat')}">
<div class="" style="border:1px solid #ccc;padding:4%;">
<div class="block">
<h4><strong>{vtranslate('LBL_SELECT_PIVOT_FIELDS',$MODULE)}</strong></h4><br>
<div class="row">
<span class="col-lg-4">
<strong class="marginBottom10px">{vtranslate('LBL_SELECT_ROWS',$MODULE)}</strong> ({vtranslate('LBL_MAX',$MODULE)} 3)<br>
<br>
<select data-placeholder="{vtranslate('LBL_ADD_ROWS',$MODULE)}" id="pivot_rowfields" class="select2 col-lg-8 rows"></select>
</span>
<span class="col-lg-4">
<strong class="marginBottom10px">{vtranslate('LBL_SELECT_COLUMNS',$MODULE)}</strong> ({vtranslate('LBL_MAX',$MODULE)} 3)<br>
<br>
<select data-placeholder="{vtranslate('LBL_ADD_COLUMNS',$MODULE)}" id="pivot_columnfields" class="select2 col-lg-8 rows"></select>
</span>
<span class="col-lg-4">
<strong class="marginBottom10px">{vtranslate('LBL_SELECT_DATA_FIELDS',$MODULE)}</strong> ({vtranslate('LBL_MAX',$MODULE)} 3)<br>
<br>
<select data-placeholder="{vtranslate('LBL_ADD_DATA_FIELDS',$MODULE)}" id="pivot_datafields" class="select2 col-lg-8 rows"></select>
</span>
</div>
<div class ='hide'>
<select id="pivotfields">
{foreach key=PRIMARY_MODULE_NAME item=PRIMARY_MODULE from=$PRIMARY_MODULE_FIELDS}
{foreach key=BLOCK_LABEL item=BLOCK from=$PRIMARY_MODULE}
<optgroup label='{vtranslate($PRIMARY_MODULE_NAME,$MODULE)}-{vtranslate($BLOCK_LABEL,$PRIMARY_MODULE_NAME)}'>
{foreach key=FIELD_KEY item=FIELD_LABEL from=$BLOCK}
{assign var=FIELD_INFO value=explode(':', $FIELD_KEY)}
{if $FIELD_INFO[4] eq 'D' or $FIELD_INFO[4] eq 'DT'}
<option value="{$FIELD_KEY}:Y" data-escaped-value="{str_replace('\\', '\\\\', $FIELD_KEY)}:Y">{vtranslate($FIELD_LABEL, $PRIMARY_MODULE_NAME)} ({vtranslate('LBL_YEAR', $PRIMARY_MODULE_NAME)})</option>
<option value="{$FIELD_KEY}:M" data-escaped-value="{str_replace('\\', '\\\\', $FIELD_KEY)}:M">{vtranslate($FIELD_LABEL, $PRIMARY_MODULE_NAME)} ({vtranslate('LBL_MONTH', $PRIMARY_MODULE_NAME)})</option>
<option value="{$FIELD_KEY}:W" data-escaped-value="{str_replace('\\', '\\\\', $FIELD_KEY)}:W">{vtranslate($FIELD_LABEL, $PRIMARY_MODULE_NAME)} ({vtranslate('LBL_WEEK', $PRIMARY_MODULE_NAME)})</option>
<option value="{$FIELD_KEY}" data-escaped-value="{str_replace('\\', '\\\\', $FIELD_KEY)}">{vtranslate($FIELD_LABEL, $PRIMARY_MODULE_NAME)}</option>
{else if $FIELD_INFO[4] neq 'I' and $FIELD_INFO[4] neq 'N' and $FIELD_INFO[4] neq 'NN'}
<option value="{$FIELD_KEY}" data-escaped-value="{str_replace('\\', '\\\\', $FIELD_KEY)}">{vtranslate($FIELD_LABEL, $PRIMARY_MODULE_NAME)}</option>
{/if}
{/foreach}
</optgroup>
{/foreach}
{/foreach}
{foreach key=SECONDARY_MODULE_NAME item=SECONDARY_MODULE from=$SECONDARY_MODULE_FIELDS}
{foreach key=BLOCK_LABEL item=BLOCK from=$SECONDARY_MODULE}
<optgroup label='{vtranslate($SECONDARY_MODULE_NAME,$MODULE)}-{vtranslate($BLOCK_LABEL,$SECONDARY_MODULE_NAME)}'>
{foreach key=FIELD_KEY item=FIELD_LABEL from=$BLOCK}
{assign var=FIELD_INFO value=explode(':', $FIELD_KEY)}
{if $FIELD_INFO[4] eq 'D' or $FIELD_INFO[4] eq 'DT'}
<option value="{$FIELD_KEY}:Y" data-escaped-value="{str_replace('\\', '\\\\', $FIELD_KEY)}:Y">{vtranslate($FIELD_LABEL, $SECONDARY_MODULE_NAME)} ({vtranslate('LBL_YEAR', $PRIMARY_MODULE_NAME)})</option>
<option value="{$FIELD_KEY}:M" data-escaped-value="{str_replace('\\', '\\\\', $FIELD_KEY)}:M">{vtranslate($FIELD_LABEL, $SECONDARY_MODULE_NAME)} ({vtranslate('LBL_MONTH', $PRIMARY_MODULE_NAME)})</option>
<option value="{$FIELD_KEY}" data-escaped-value="{str_replace('\\', '\\\\', $FIELD_KEY)}">{vtranslate($FIELD_LABEL, $SECONDARY_MODULE_NAME)}</option>
{else if $FIELD_INFO[4] neq 'I' and $FIELD_INFO[4] neq 'N' and $FIELD_INFO[4] neq 'NN'}
<option value="{$FIELD_KEY}" data-escaped-value="{str_replace('\\', '\\\\', $FIELD_KEY)}">{vtranslate($FIELD_LABEL, $SECONDARY_MODULE_NAME)}</option>
{/if}
{/foreach}
</optgroup>
{/foreach}
{/foreach}
</select>
<select id="datafields_element">
{foreach key=CALCULATION_FIELDS_MODULE_LABEL item=CALCULATION_FIELDS_MODULE from=$CALCULATION_FIELDS}
<optgroup label="{vtranslate($CALCULATION_FIELDS_MODULE_LABEL, $CALCULATION_FIELDS_MODULE_LABEL)}">
{foreach key=CALCULATION_FIELD_KEY item=CALCULATION_FIELD_TRANSLATED_LABEL from=$CALCULATION_FIELDS_MODULE}
<option value="{$CALCULATION_FIELD_KEY}">{$CALCULATION_FIELD_TRANSLATED_LABEL}</option>
{/foreach}
</optgroup>
{/foreach}
<optgroup label='{vtranslate('RECORD COUNT',$MODULE)}'>
<option value="record_count">{vtranslate('LBL_RECORD_COUNT', $MODULE)}</option>
</optgroup>
</select>
</div>
<br><br>
<div class='row col-lg-12'>
<span class="alert alert-danger col-lg-11 hide" id="warning1"><i class="fa fa-exclamation-triangle"></i>&nbsp;{vtranslate('LBL_SELECT_PIVOT_FIELDS_WARNING', $MODULE)}</span>
</div>
<br><br>
<div class=''>
<span><h4><strong>{vtranslate('LBL_PIVOT_PREVIEW_EX', $MODULE)}</strong></h4></span>
<span class="padding20px" name="pivotPreview"><img src="layouts/v7/skins/images/pivotpreview.png" data-image-id="{$IMAGE_INFO.id}"></span>
</div>
</div>
</div>
<br>
<div class="marginLeftZero modal-overlay-footer clearfix">
<div class="row clearfix">
<div class="textAlignCenter col-lg-12 col-md-12 col-sm-12 ">
<button type="button" class="btn btn-danger backStep"><strong>{vtranslate('LBL_BACK',$MODULE)}</strong></button>&nbsp;&nbsp;
<button type="submit" class="btn btn-success" id="generateReport"><strong>{vtranslate('LBL_GENERATE_REPORT',$MODULE)}</strong></button>&nbsp;&nbsp;
<a class="cancelLink" onclick="window.history.back()">{vtranslate('LBL_CANCEL',$MODULE)}</a>
</div>
</div>
</div>
</form>
</div>
{/strip}
{*+**********************************************************************************
* The contents of this file are subject to the vtiger CRM Public License Version 1.1
* ("License"); You may not use this file except in compliance with the License
* The Original Code is: vtiger CRM Open Source
* The Initial Developer of the Original Code is vtiger.
* Portions created by vtiger are Copyright (C) vtiger.
* All Rights Reserved.
************************************************************************************}
{strip}
<script type="text/javascript" src="libraries/jquery/pivot/js/jbPivot.min.js"></script>
<input type="hidden" name="reportdata" id="reportdata" value='{$DATA}'></input>
<div class="contents-topscroll">
<div class="topscroll-div container-fluid">
&nbsp;
</div>
</div>
<div id="reportDetails" class="contents-bottomscroll filterConditionContainer">
<center>
<div id="pivot1" class="contactAdd"></div>
</center>
<div class="bottomscroll-div">
</div>
</div>
{if $REPORT_MODEL->isInventoryModuleSelected()}
<br>
<div class="alert alert-info">
{assign var=BASE_CURRENCY_INFO value=Vtiger_Util_Helper::getUserCurrencyInfo()}
<i class="icon-info-sign" style="margin-top: 1px;"></i>&nbsp;&nbsp;
{vtranslate('LBL_CALCULATION_CONVERSION_MESSAGE', $MODULE)} - {$BASE_CURRENCY_INFO['currency_name']} ({$BASE_CURRENCY_INFO['currency_code']})
</div>
{/if}
</div>
</div>
</div>
{/strip}
......@@ -6,20 +6,15 @@
* Portions created by vtiger are Copyright (C) vtiger.
* All Rights Reserved.
************************************************************************************}
{if $REPORT_TYPE eq 'PivotEdit'}
{include file="PivotEditHeader.tpl"|vtemplate_path:$MODULE}
{elseif $REPORT_TYPE eq 'ChartEdit'}
{if $REPORT_TYPE eq 'ChartEdit'}
{include file="EditChartHeader.tpl"|vtemplate_path:$MODULE}
{else}
{include file="EditHeader.tpl"|vtemplate_path:$MODULE}
{/if}
<div class="reportContents">
<form class="form-horizontal recordEditView" id="report_step1" method="post" action="index.php">
{if $REPORT_TYPE eq 'PivotEdit'}
<input type="hidden" name="mode" value="PivotStep2" />
{else}
<input type="hidden" name="mode" value="step2" />
{/if}
<input type="hidden" name="mode" value="step2" />
<input type="hidden" name="module" value="{$MODULE}" />
<input type="hidden" name="view" value="{$VIEW}" />
<input type="hidden" class="step" value="1" />
......@@ -122,7 +117,7 @@
</div>
{include file="ScheduleReport.tpl"|@vtemplate_path:$MODULE}
</div>
<div class="marginLeftZero modal-overlay-footer clearfix">
<div class="border1px modal-overlay-footer clearfix">
<div class="row clearfix">
<div class="textAlignCenter col-lg-12 col-md-12 col-lg-12 ">
<button class="btn btn-success nextStep" type="submit">{vtranslate('LBL_NEXT',$MODULE)}</button>&nbsp;&nbsp;
......
......@@ -6,65 +6,68 @@
* Portions created by vtiger are Copyright (C) vtiger.
* All Rights Reserved.
************************************************************************************}
<div class="sidebar-menu sidebar-menu-full">
<div class="module-filters" id="module-filters">
<div class="sidebar-container lists-menu-container">
<div class="sidebar-header clearfix">
<h5 class="pull-left">{vtranslate('LBL_FOLDERS', $MODULE)}</h5>
<button id="createFilter" onclick='Reports_List_Js.triggerAddFolder("index.php?module=Reports&view=EditFolder");' class="btn btn-default pull-right sidebar-btn" title="{vtranslate('LBL_ADD_NEW_FOLDER', $MODULE)}">
<div class="fa fa-plus" aria-hidden="true"></div>
</button>
</div>
<hr>
<div>
<input class="search-list" type="text" placeholder="{vtranslate('LBL_SEARCH_FOR_FOLDERS',$MODULE)}">
</div>
<div class="menu-scroller mCustomScrollBox" data-mcs-theme="dark">
<div class="mCustomScrollBox mCS-light-2 mCSB_inside" tabindex="0">
<div class="mCSB_container" style="position:relative; top:0; left:0;">
<div class="list-menu-content">
<div class="list-group">
<ul class="lists-menu">
<li style="font-size:12px;" class="listViewFilter" >
<a href="#" class='filterName' data-filter-id="All"><i class="fa fa-folder foldericon"></i>&nbsp;{vtranslate('LBL_ALL_REPORTS', $MODULE)}</a>
</li>
{foreach item=FOLDER from=$FOLDERS name="folderview"}
<li style="font-size:12px;" class="listViewFilter {if $smarty.foreach.folderview.iteration gt 5} filterHidden hide{/if}" >
{assign var=VIEWNAME value={$FOLDER->getName()}}
<a href="#" class='filterName' data-filter-id={$FOLDER->getId()}><i class="fa fa-folder foldericon"></i>&nbsp;{if {$VIEWNAME|strlen > 50} }{$VIEWNAME|substr:0:45}..{else}{$VIEWNAME}{/if}</a>
<div class="pull-right">
{assign var="FOLDERID" value=$FOLDER->get('folderid')}
<span class="js-popover-container">
<span class="fa fa-angle-down" data-id="{$FOLDERID}" data-deletable="true" data-editable="true" rel="popover" data-toggle="popover" data-deleteurl="{$FOLDER->getDeleteUrl()}" data-editurl="{$FOLDER->getEditUrl()}" data-toggle="dropdown" aria-expanded="true"></span>
</span>
</div>
</li>
{/foreach}
<li style="font-size:12px;" class="listViewFilter" >
<a href="#" class='filterName' data-filter-id="shared"><i class="fa fa-folder foldericon"></i>&nbsp;{vtranslate('LBL_SHARED_REPORTS', $MODULE)}</a>
</li>
</ul>
<div id="filterActionPopoverHtml">
<ul class="listmenu hide" role="menu">
<li role="presentation" class="editFilter">
<a role="menuitem"><i class="fa fa-pencil-square-o"></i>&nbsp;{vtranslate('LBL_EDIT',$MODULE)}</a>
</li>
<li role="presentation" class="deleteFilter">
<a role="menuitem"><i class="fa fa-trash"></i>&nbsp;{vtranslate('LBL_DELETE',$MODULE)}</a>
</li>
</ul>
</div>
<h5 class="toggleFilterSize" data-more-text="More.." data-less-text="Less..">
{if $smarty.foreach.folderview.iteration gt 5}
More ..
{/if}
</h5>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
\ No newline at end of file
{strip}
<div class="sidebar-menu sidebar-menu-full">
<div class="module-filters" id="module-filters">
<div class="sidebar-container lists-menu-container">
<div class="sidebar-header clearfix">
<h5 class="pull-left">{vtranslate('LBL_FOLDERS', $MODULE)}</h5>
<button id="createFilter" onclick='Reports_List_Js.triggerAddFolder("index.php?module=Reports&view=EditFolder");' class="btn btn-default pull-right sidebar-btn" title="{vtranslate('LBL_ADD_NEW_FOLDER', $MODULE)}">
<div class="fa fa-plus" aria-hidden="true"></div>
</button>
</div>
<hr>
<div>
<input class="search-list" type="text" placeholder="{vtranslate('LBL_SEARCH_FOR_FOLDERS',$MODULE)}">
</div>
<div class="menu-scroller mCustomScrollBox" data-mcs-theme="dark">
<div class="mCustomScrollBox mCS-light-2 mCSB_inside" tabindex="0">
<div class="mCSB_container" style="position:relative; top:0; left:0;">
<div class="list-menu-content">
<div class="list-group">
<ul class="lists-menu">
<li style="font-size:12px;" class="listViewFilter" >
<a href="#" class='filterName' data-filter-id="All"><i class="fa fa-folder foldericon"></i>&nbsp;{vtranslate('LBL_ALL_REPORTS', $MODULE)}</a>
</li>
{foreach item=FOLDER from=$FOLDERS name="folderview"}
<li style="font-size:12px;" class="listViewFilter {if $smarty.foreach.folderview.iteration gt 5} filterHidden hide{/if}" >
{assign var=VIEWNAME value={vtranslate($FOLDER->getName(),$MODULE)}}
<a href="#" class='filterName' data-filter-id={$FOLDER->getId()}><i class="fa fa-folder foldericon"></i>&nbsp;{if {$VIEWNAME|strlen > 50} }{$VIEWNAME|substr:0:45}..{else}{$VIEWNAME}{/if}</a>
<div class="pull-right">
{assign var="FOLDERID" value=$FOLDER->get('folderid')}
<span class="js-popover-container">
<span class="fa fa-angle-down" data-id="{$FOLDERID}" data-deletable="true" data-editable="true" rel="popover" data-toggle="popover" data-deleteurl="{$FOLDER->getDeleteUrl()}" data-editurl="{$FOLDER->getEditUrl()}" data-toggle="dropdown" aria-expanded="true"></span>
</span>
</div>
</li>
{/foreach}
<li style="font-size:12px;" class="listViewFilter" >
<a href="#" class='filterName' data-filter-id="shared"><i class="fa fa-folder foldericon"></i>&nbsp;{vtranslate('LBL_SHARED_REPORTS', $MODULE)}</a>
</li>
</ul>
<div id="filterActionPopoverHtml">
<ul class="listmenu hide" role="menu">
<li role="presentation" class="editFilter">
<a role="menuitem"><i class="fa fa-pencil-square-o"></i>&nbsp;{vtranslate('LBL_EDIT',$MODULE)}</a>
</li>
<li role="presentation" class="deleteFilter">
<a role="menuitem"><i class="fa fa-trash"></i>&nbsp;{vtranslate('LBL_DELETE',$MODULE)}</a>
</li>
</ul>
</div>
<h5 class="toggleFilterSize" data-more-text="{vtranslate('LBL_MORE',$MODULE)}.." data-less-text="{vtranslate('LBL_LESS',$MODULE)}..">
{if $smarty.foreach.folderview.iteration gt 5}
{vtranslate('LBL_MORE',$MODULE)}..
{/if}
</h5>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
{/strip}
\ No newline at end of file
......@@ -133,7 +133,7 @@ Vtiger_Detail_Js("Reports_Detail_Js",{},{
},
registerConditionBlockChangeEvent : function() {
jQuery('.reportsDetailHeader').find('#pivot_rowfields,#pivot_columnfields,#pivot_datafields,#groupbyfield,#datafields,[name="columnname"],[name="comparator"]').on('change', function() {
jQuery('.reportsDetailHeader').find('#groupbyfield,#datafields,[name="columnname"],[name="comparator"]').on('change', function() {
jQuery('.reportActionButtons').removeClass('hide');
});
jQuery('.fieldUiHolder').find('[data-value="value"]').on('change input', function() {
......
/*+***********************************************************************************
* 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.
*************************************************************************************/
Reports_Detail_Js("Reports_PivotDetail_Js",{},{
registerUpdateSelectElementEventForRows: function(){
jQuery('#pivot_rowfields').on('change',function(e) {
if(!jQuery('#warning').hasClass('hide')){
jQuery('#warning').addClass(' hide')
}
var selectedFields = jQuery(e.currentTarget).val();
var columnFieldElement = jQuery('#pivot_columnfields');
Reports_PivotEdit3_Js.updateSelectElement(selectedFields, columnFieldElement);
});
},
registerUpdateSelectElementEventForColumns: function(){
jQuery('#pivot_columnfields').on('change',function(e) {
if(!jQuery('#warning').hasClass('hide')){
jQuery('#warning').addClass(' hide')
}
var selectedFields = jQuery(e.currentTarget).val();
var rowFieldElement = jQuery('#pivot_rowfields');
Reports_PivotEdit3_Js.updateSelectElement(selectedFields, rowFieldElement);
});
},
registerSaveEvent : function(){
var thisInstance = this;
jQuery('.generateReportPivot').on('click',function(e){
var rowElements = thisInstance.getSelectedColumns(jQuery('#pivot_rowfields'));
var columnsElements = thisInstance.getSelectedColumns(jQuery('#pivot_columnfields'));
var dataFields = thisInstance.getSelectedColumns(jQuery('#pivot_datafields'));
var warningContainer1 = jQuery('#warning1');
if(rowElements.length == 0 || columnsElements.length == 0 || dataFields.length == 0){
warningContainer1.removeClass('hide');
e.preventDefault();
} else{
warningContainer1.addClass('hide');
var advFilterCondition = thisInstance.calculateValues();
var recordId = thisInstance.getRecordId();
var currentMode = jQuery(e.currentTarget).data('mode');
var postData = {
'advanced_filter': advFilterCondition,
'rows': JSON.stringify(rowElements),
'columns': JSON.stringify(columnsElements),
'data_fields': JSON.stringify(dataFields),
'record' : recordId,
'view' : "PivotSaveAjax",
'module' : app.getModuleName(),
'mode' : currentMode
};
app.helper.showProgress();
app.request.post({data:postData}).then(function(error,data){
app.helper.hideProgress();
jQuery('.reportActionButtons').addClass('hide');
window.location.reload(true);
});
}
});
},
/**
* Function which will get the selected columns with order preserved
* @param : selectElement
* @return : array of selected values in order
*/
getSelectedColumns : function(selectElement) {
var id = jQuery(selectElement).attr('id');
vtUtils.showSelect2ElementView(selectElement);
var select2Element = jQuery('#s2id_'+id);
var selectedValuesByOrder = new Array();
var selectedOptions = selectElement.find('option:selected');
var orderedSelect2Options = select2Element.find('li.select2-search-choice').find('div');
orderedSelect2Options.each(function(index,element){
var chosenOption = jQuery(element);
selectedOptions.each(function(optionIndex, domOption){
var option = jQuery(domOption);
if(option.html() == chosenOption.html()) {
selectedValuesByOrder.push(option.val());
return false;
}
});
});
return selectedValuesByOrder;
},
/**
* Function which will arrange the select2 element choices in order
*/
arrangeSelectChoicesInOrder : function(selectElement, selectedFields) {
vtUtils.showSelect2ElementView(selectElement);
var id = jQuery(selectElement).attr('id');
var chosenElement = jQuery('#s2id_'+id);
var choicesContainer = chosenElement.find('.select2-choices');
var choicesList = choicesContainer.find('.select2-search-choice');
//var coulmnListSelectElement = Vtiger_CustomView_Js.getColumnSelectElement();
var selectedOptions = selectElement.find('option:selected');
var selectedOrder = JSON.parse(selectedFields.val());
var selectedOrderKeys = [];
for(var key in selectedOrder) {
if(selectedOrder.hasOwnProperty(key)){
selectedOrderKeys.push(key);
}
}
for(var index=selectedOrderKeys.length ; index > 0 ; index--) {
var selectedValue = selectedOrder[selectedOrderKeys[index-1]];
var option = selectedOptions.filter('[value="'+selectedValue+'"]');
choicesList.each(function(choiceListIndex,element){
var liElement = jQuery(element);
if(liElement.find('div').html() == option.html()){
choicesContainer.prepend(liElement);
return false;
}
});
}
},
registerPivotTableEvent : function(){
var response =jQuery.parseJSON(jQuery('#reportdata').val());
var columns = {};
//left columns
var xfields = [];
for (var i=0,len=response.leftColumns.length; i<len; i++){
var column = response.leftColumns[i].toLowerCase();
var sort = 'asc';
if (column.indexOf( "_month" ) > -1 ) {
sort = 'month_order';
} else if ( column.indexOf( "_dateorder" ) > -1 ) {
column = column.replace(/_dateorder/, '')
sort = 'date_order';
} else if(column.indexOf( "_week" ) > -1) {
sort = 'week_order';
}
var leftColumn = {
field : column,
sort : sort,
showAll : false,
agregateType : "distinct",
label : column.replace(/_/g, ' ')
};
columns[column] = leftColumn;
xfields.push(column);
}
//top columns
var yfields = [];
for (var i=0,len=response.topColumns.length; i<len; i++){
var column = response.topColumns[i].toLowerCase();
var sort = 'asc';
if ( column.indexOf( "_month" ) > -1 ) {
sort = 'month_order';
} else if ( column.indexOf( "_dateorder" ) > -1 ) {
column = column.replace(/_dateorder/, '')
sort = 'date_order';
} else if(column.indexOf( "_week" ) > -1) {
sort = 'week_order';
}
var topColumn = {
field : column,
sort : sort,
showAll: false,
agregateType: "distinct",
label: column.replace(/_/g, ' ')
};
columns[column] = topColumn;
yfields.push(column)
}
//resultant columns
var zfields = [];
for (var i=0,len=response.resultColumns.length; i<len; i++){
var column = response.resultColumns[i].toLowerCase();
var dataFunctions = column.split('_');
if(jQuery.inArray('sum', dataFunctions) != -1) {
var agregateType = 'sum';
} else if(jQuery.inArray('min', dataFunctions) != -1) {
var agregateType = 'min';
} else if(jQuery.inArray('max', dataFunctions) != -1) {
var agregateType = 'max';
} else if(jQuery.inArray('avg', dataFunctions) != -1) {
var agregateType = 'average';
} else if(jQuery.inArray('count', dataFunctions) != -1) {
var agregateType = 'count';
}
var resultColumn = {
field : column.replace(/&/g, 'and'),
agregateType: agregateType,
groupType: "none",
label: column.replace(/_/g, ' ')
};
columns[column] = resultColumn;
zfields.push(column);
}
var options = {
fields : columns,
xfields : xfields,
yfields : yfields,
zfields : zfields,
data : response.data,
formatter: "VtPivotDataFormatter",
copyright: false
}
jQuery('#pivot1').jbPivot(options);
},
registerEvents : function(){
this._super();
jQuery("#reportsRowsList").select2({
maximumSelectionSize: 3
});
jQuery("#reportsColumnsList").select2({
maximumSelectionSize: 3
});
jQuery("#reportsDataList").select2({
maximumSelectionSize: 3
});
this.registerUpdateSelectElementEventForRows();
this.registerUpdateSelectElementEventForColumns();
Reports_PivotEdit3_Js.registerFieldForChosen();
Reports_PivotEdit3_Js.initPivotFields();
var pivotEditInstance = new Reports_PivotEdit3_Js();
pivotEditInstance.lineItemCalculationLimit();
this.registerSaveEvent();
this.registerPivotTableEvent();
this.arrangeSelectChoicesInOrder(jQuery('#pivot_rowfields'), jQuery('[name=hdnrowfields]'));
this.arrangeSelectChoicesInOrder(jQuery('#pivot_columnfields'), jQuery('[name=hdncolumnfields]'));
this.arrangeSelectChoicesInOrder(jQuery('#pivot_datafields'), jQuery('[name=hdndatafields]'));
}
});
/*+***********************************************************************************
* 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.
*************************************************************************************/
Reports_Edit_Js("Reports_PivotEdit_Js",{},{});
/*+***********************************************************************************
* 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.
*************************************************************************************/
Reports_Edit1_Js("Reports_PivotEdit1_Js",{},{});
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment