diff --git a/layouts/v7/modules/Campaigns/RelatedList.tpl b/layouts/v7/modules/Campaigns/RelatedList.tpl index 9b0ee10034af5fa915f0db8fa115fe82260f6e67..c3a57d6f7c034ab0d0dae2292058762589f19edb 100644 --- a/layouts/v7/modules/Campaigns/RelatedList.tpl +++ b/layouts/v7/modules/Campaigns/RelatedList.tpl @@ -18,7 +18,7 @@ <input type="hidden" name="emailEnabledModules" value=true /> <input type="hidden" id="view" value="{$VIEW}" /> <input type="hidden" name="currentPageNum" value="{$PAGING->getCurrentPage()}" /> - <input type="hidden" name="relatedModuleName" class="relatedModuleName" value="{$RELATED_MODULE->get('name')}" /> + <input type="hidden" name="relatedModuleName" class="relatedModuleName" value="{$RELATED_MODULE_NAME}" /> <input type="hidden" value="{$ORDER_BY}" id="orderBy"> <input type="hidden" value="{$SORT_ORDER}" id="sortOrder"> <input type="hidden" value="{$RELATED_ENTIRES_COUNT}" id="noOfEntries"> @@ -124,7 +124,7 @@ <i class="fa fa-sort customsort"></i> {/if} - {vtranslate($HEADER_FIELD->get('label'), $RELATED_MODULE->get('name'))} + {vtranslate($HEADER_FIELD->get('label'), $RELATED_MODULE_NAME)} {if $COLUMN_NAME eq $HEADER_FIELD->get('column')}<img class="{$SORT_IMAGE}">{/if} </a> {if $COLUMN_NAME eq $HEADER_FIELD->get('column')} @@ -133,7 +133,7 @@ </th> {/foreach} <th class="nowrap"> - <a href="javascript:void(0);" class="listViewContentHeaderValues noSorting">{vtranslate('Status', $RELATED_MODULE->get('name'))}</a> + <a href="javascript:void(0);" class="listViewContentHeaderValues noSorting">{vtranslate('Status', $RELATED_MODULE_NAME)}</a> </th> </tr> <tr class="searchRow"> diff --git a/layouts/v7/modules/Inventory/LineItemsDetail.tpl b/layouts/v7/modules/Inventory/LineItemsDetail.tpl index 7b4ac3c7bf68d2b2feb14ece86f3f3628eaeb08c..2f861345f52f80d5e2d628d7a9c052d65fb703db 100644 --- a/layouts/v7/modules/Inventory/LineItemsDetail.tpl +++ b/layouts/v7/modules/Inventory/LineItemsDetail.tpl @@ -73,7 +73,7 @@ <input type="hidden" class="isCustomFieldExists" value="false"> {assign var=FINAL_DETAILS value=$RELATED_PRODUCTS.1.final_details} -<div class = "details"> +<div class="details block"> <div class="lineItemTableDiv"> <table class="table table-bordered lineItemsTable" style = "margin-top:15px"> <thead> @@ -230,7 +230,6 @@ </tbody> </table> </div> - <br> <table class="table table-bordered lineItemsTable"> <tr> <td width="83%"> diff --git a/layouts/v7/modules/Inventory/partials/LineItemsEdit.tpl b/layouts/v7/modules/Inventory/partials/LineItemsEdit.tpl index f415d9ff65451bc7b29d037ce5165fa360da647c..c0af62ed33c6dccbf4971038c9f912d5b0bb13ea 100644 --- a/layouts/v7/modules/Inventory/partials/LineItemsEdit.tpl +++ b/layouts/v7/modules/Inventory/partials/LineItemsEdit.tpl @@ -226,284 +226,286 @@ </div> </div> <br> - <table class="table table-bordered blockContainer lineItemTable" id="lineItemResult"> - <tr> - <td width="83%"> - <div class="pull-right"><strong>{vtranslate('LBL_ITEMS_TOTAL',$MODULE)}</strong></div> - </td> - <td> - <div id="netTotal" class="pull-right netTotal">{if !empty($FINAL.hdnSubTotal)}{$FINAL.hdnSubTotal}{else}0{/if}</div> - </td> - </tr> - {if $DISCOUNT_AMOUNT_EDITABLE || $DISCOUNT_PERCENT_EDITABLE} + <div class="fieldBlockContainer"> + <table class="table table-bordered blockContainer lineItemTable" id="lineItemResult"> <tr> <td width="83%"> - <span class="pull-right">(-) - <strong><a href="javascript:void(0)" id="finalDiscount">{vtranslate('LBL_OVERALL_DISCOUNT',$MODULE)} - <span id="overallDiscount"> - {if $DISCOUNT_PERCENT_EDITABLE && $FINAL.discount_type_final eq 'percentage'} - ({$FINAL.discount_percentage_final}%) - {else if $DISCOUNT_AMOUNT_EDITABLE && $FINAL.discount_type_final eq 'amount'} - ({$FINAL.discount_amount_final}) - {else} - (0) - {/if} - </span></a> - </strong> - </span> + <div class="pull-right"><strong>{vtranslate('LBL_ITEMS_TOTAL',$MODULE)}</strong></div> </td> <td> - <span id="discountTotal_final" class="pull-right discountTotal_final">{if $FINAL.discountTotal_final}{$FINAL.discountTotal_final}{else}0{/if}</span> + <div id="netTotal" class="pull-right netTotal">{if !empty($FINAL.hdnSubTotal)}{$FINAL.hdnSubTotal}{else}0{/if}</div> + </td> + </tr> + {if $DISCOUNT_AMOUNT_EDITABLE || $DISCOUNT_PERCENT_EDITABLE} + <tr> + <td width="83%"> + <span class="pull-right">(-) + <strong><a href="javascript:void(0)" id="finalDiscount">{vtranslate('LBL_OVERALL_DISCOUNT',$MODULE)} + <span id="overallDiscount"> + {if $DISCOUNT_PERCENT_EDITABLE && $FINAL.discount_type_final eq 'percentage'} + ({$FINAL.discount_percentage_final}%) + {else if $DISCOUNT_AMOUNT_EDITABLE && $FINAL.discount_type_final eq 'amount'} + ({$FINAL.discount_amount_final}) + {else} + (0) + {/if} + </span></a> + </strong> + </span> + </td> + <td> + <span id="discountTotal_final" class="pull-right discountTotal_final">{if $FINAL.discountTotal_final}{$FINAL.discountTotal_final}{else}0{/if}</span> - <!-- Popup Discount Div --> - <div id="finalDiscountUI" class="finalDiscountUI validCheck hide"> - {assign var=DISCOUNT_TYPE_FINAL value="zero"} - {if !empty($FINAL.discount_type_final)} - {assign var=DISCOUNT_TYPE_FINAL value=$FINAL.discount_type_final } - {/if} - <input type="hidden" id="discount_type_final" name="discount_type_final" value="{$DISCOUNT_TYPE_FINAL}" /> - <p class="popover_title hide"> - {vtranslate('LBL_SET_DISCOUNT_FOR',$MODULE)} : <span class="subTotalVal">{if !empty($FINAL.hdnSubTotal)}{$FINAL.hdnSubTotal}{else}0{/if}</span> - </p> - <table width="100%" border="0" cellpadding="5" cellspacing="0" class="table table-nobordered popupTable"> - <tbody> - <tr> - <td><input type="radio" name="discount_final" class="finalDiscounts" data-discount-type="zero" {if $DISCOUNT_TYPE_FINAL eq 'zero'}checked{/if} /> {vtranslate('LBL_ZERO_DISCOUNT',$MODULE)}</td> - <td class="lineOnTop"> - <!-- Make the discount value as zero --> - <input type="hidden" class="discountVal" value="0" /> - </td> - </tr> - {if $DISCOUNT_PERCENT_EDITABLE} + <!-- Popup Discount Div --> + <div id="finalDiscountUI" class="finalDiscountUI validCheck hide"> + {assign var=DISCOUNT_TYPE_FINAL value="zero"} + {if !empty($FINAL.discount_type_final)} + {assign var=DISCOUNT_TYPE_FINAL value=$FINAL.discount_type_final } + {/if} + <input type="hidden" id="discount_type_final" name="discount_type_final" value="{$DISCOUNT_TYPE_FINAL}" /> + <p class="popover_title hide"> + {vtranslate('LBL_SET_DISCOUNT_FOR',$MODULE)} : <span class="subTotalVal">{if !empty($FINAL.hdnSubTotal)}{$FINAL.hdnSubTotal}{else}0{/if}</span> + </p> + <table width="100%" border="0" cellpadding="5" cellspacing="0" class="table table-nobordered popupTable"> + <tbody> <tr> - <td><input type="radio" name="discount_final" class="finalDiscounts" data-discount-type="percentage" {if $DISCOUNT_TYPE_FINAL eq 'percentage'}checked{/if} /> % {vtranslate('LBL_OF_PRICE',$MODULE)}</td> - <td><span class="pull-right"> %</span><input type="text" data-rule-positive=true data-rule-inventory_percentage=true id="discount_percentage_final" name="discount_percentage_final" value="{$FINAL.discount_percentage_final}" class="discount_percentage_final span1 pull-right discountVal {if $DISCOUNT_TYPE_FINAL neq 'percentage'}hide{/if}" /></td> + <td><input type="radio" name="discount_final" class="finalDiscounts" data-discount-type="zero" {if $DISCOUNT_TYPE_FINAL eq 'zero'}checked{/if} /> {vtranslate('LBL_ZERO_DISCOUNT',$MODULE)}</td> + <td class="lineOnTop"> + <!-- Make the discount value as zero --> + <input type="hidden" class="discountVal" value="0" /> + </td> </tr> - {/if} - {if $DISCOUNT_AMOUNT_EDITABLE} + {if $DISCOUNT_PERCENT_EDITABLE} + <tr> + <td><input type="radio" name="discount_final" class="finalDiscounts" data-discount-type="percentage" {if $DISCOUNT_TYPE_FINAL eq 'percentage'}checked{/if} /> % {vtranslate('LBL_OF_PRICE',$MODULE)}</td> + <td><span class="pull-right"> %</span><input type="text" data-rule-positive=true data-rule-inventory_percentage=true id="discount_percentage_final" name="discount_percentage_final" value="{$FINAL.discount_percentage_final}" class="discount_percentage_final span1 pull-right discountVal {if $DISCOUNT_TYPE_FINAL neq 'percentage'}hide{/if}" /></td> + </tr> + {/if} + {if $DISCOUNT_AMOUNT_EDITABLE} + <tr> + <td><input type="radio" name="discount_final" class="finalDiscounts" data-discount-type="amount" {if $DISCOUNT_TYPE_FINAL eq 'amount'}checked{/if} /> {vtranslate('LBL_DIRECT_PRICE_REDUCTION',$MODULE)}</td> + <td><input type="text" data-rule-positive=true id="discount_amount_final" name="discount_amount_final" value="{$FINAL.discount_amount_final}" class="span1 pull-right discount_amount_final discountVal {if $DISCOUNT_TYPE_FINAL neq 'amount'}hide{/if}" /></td> + </tr> + {/if} + </tbody> + </table> + </div> + <!-- End Popup Div --> + </td> + </tr> + {/if} + {if $SH_PERCENT_EDITABLE} + {assign var=CHARGE_AND_CHARGETAX_VALUES value=$FINAL.chargesAndItsTaxes} + <tr> + <td width="83%"> + <span class="pull-right">(+) <strong><a href="javascript:void(0)" id="charges">{vtranslate('LBL_CHARGES',$MODULE)}</a></strong></span> + <div id="chargesBlock" class="validCheck hide chargesBlock"> + <table width="100%" border="0" cellpadding="5" cellspacing="0" class="table table-nobordered popupTable"> + {foreach key=CHARGE_ID item=CHARGE_MODEL from=$INVENTORY_CHARGES} <tr> - <td><input type="radio" name="discount_final" class="finalDiscounts" data-discount-type="amount" {if $DISCOUNT_TYPE_FINAL eq 'amount'}checked{/if} /> {vtranslate('LBL_DIRECT_PRICE_REDUCTION',$MODULE)}</td> - <td><input type="text" data-rule-positive=true id="discount_amount_final" name="discount_amount_final" value="{$FINAL.discount_amount_final}" class="span1 pull-right discount_amount_final discountVal {if $DISCOUNT_TYPE_FINAL neq 'amount'}hide{/if}" /></td> + {assign var=CHARGE_VALUE value=$CHARGE_AND_CHARGETAX_VALUES[$CHARGE_ID]['value']} + {assign var=CHARGE_PERCENT value=0} + {if $CHARGE_MODEL->get('format') eq 'Percent' && $CHARGE_AND_CHARGETAX_VALUES[$CHARGE_ID]['percent'] neq NULL} + {assign var=CHARGE_PERCENT value=$CHARGE_AND_CHARGETAX_VALUES[$CHARGE_ID]['percent']} + {/if} + + <td class="lineOnTop chargeName" data-charge-id="{$CHARGE_ID}">{$CHARGE_MODEL->getName()}</td> + <td class="lineOnTop"> + {if $CHARGE_MODEL->get('format') eq 'Percent'} + <input type="text" class="span1 chargePercent" size="5" data-rule-positive=true data-rule-inventory_percentage=true name="charges[{$CHARGE_ID}][percent]" value="{if $CHARGE_PERCENT}{$CHARGE_PERCENT}{else if $RECORD_ID}0{else}{$CHARGE_MODEL->getValue()}{/if}" /> % + {/if} + </td> + <td style="text-align: right;" class="lineOnTop"> + <input type="text" class="span1 chargeValue" size="5" {if $CHARGE_MODEL->get('format') eq 'Percent'}readonly{/if} data-rule-positive=true name="charges[{$CHARGE_ID}][value]" value="{if $CHARGE_VALUE}{$CHARGE_VALUE}{else if $RECORD_ID}0{else}{$CHARGE_MODEL->getValue() * $USER_MODEL->get('conv_rate')}{/if}" /> + </td> </tr> - {/if} - </tbody> - </table> - </div> - <!-- End Popup Div --> + {/foreach} + </table> + </div> + </td> + <td> + <input type="hidden" class="lineItemInputBox" id="chargesTotal" name="shipping_handling_charge" value="{if $FINAL.shipping_handling_charge}{$FINAL.shipping_handling_charge}{else}0{/if}" /> + <span id="chargesTotalDisplay" class="pull-right chargesTotalDisplay">{if $FINAL.shipping_handling_charge}{$FINAL.shipping_handling_charge}{else}0{/if}</span> + </td> + </tr> + {/if} + <tr> + <td width="83%"> + <span class="pull-right"><strong>{vtranslate('LBL_PRE_TAX_TOTAL', $MODULE)} </strong></span> + </td> + <td> + {assign var=PRE_TAX_TOTAL value=$FINAL.preTaxTotal} + <span class="pull-right" id="preTaxTotal">{if $PRE_TAX_TOTAL}{$PRE_TAX_TOTAL}{else}0{/if}</span> + <input type="hidden" id="pre_tax_total" name="pre_tax_total" value="{if $PRE_TAX_TOTAL}{$PRE_TAX_TOTAL}{else}0{/if}"/> </td> </tr> - {/if} - {if $SH_PERCENT_EDITABLE} - {assign var=CHARGE_AND_CHARGETAX_VALUES value=$FINAL.chargesAndItsTaxes} - <tr> + <!-- Group Tax - starts --> + + <tr id="group_tax_row" valign="top" class="{if $IS_INDIVIDUAL_TAX_TYPE}hide{/if}"> <td width="83%"> - <span class="pull-right">(+) <strong><a href="javascript:void(0)" id="charges">{vtranslate('LBL_CHARGES',$MODULE)}</a></strong></span> - <div id="chargesBlock" class="validCheck hide chargesBlock"> + <span class="pull-right">(+) <strong><a href="javascript:void(0)" id="finalTax">{vtranslate('LBL_TAX',$MODULE)}</a></strong></span> + <!-- Pop Div For Group TAX --> + <div class="hide finalTaxUI validCheck" id="group_tax_div"> + <input type="hidden" class="popover_title" value="{vtranslate('LBL_GROUP_TAX',$MODULE)}" /> <table width="100%" border="0" cellpadding="5" cellspacing="0" class="table table-nobordered popupTable"> - {foreach key=CHARGE_ID item=CHARGE_MODEL from=$INVENTORY_CHARGES} + {foreach item=tax_detail name=group_tax_loop key=loop_count from=$TAXES} <tr> - {assign var=CHARGE_VALUE value=$CHARGE_AND_CHARGETAX_VALUES[$CHARGE_ID]['value']} - {assign var=CHARGE_PERCENT value=0} - {if $CHARGE_MODEL->get('format') eq 'Percent' && $CHARGE_AND_CHARGETAX_VALUES[$CHARGE_ID]['percent'] neq NULL} - {assign var=CHARGE_PERCENT value=$CHARGE_AND_CHARGETAX_VALUES[$CHARGE_ID]['percent']} - {/if} - - <td class="lineOnTop chargeName" data-charge-id="{$CHARGE_ID}">{$CHARGE_MODEL->getName()}</td> + <td class="lineOnTop">{$tax_detail.taxlabel}</td> <td class="lineOnTop"> - {if $CHARGE_MODEL->get('format') eq 'Percent'} - <input type="text" class="span1 chargePercent" size="5" data-rule-positive=true data-rule-inventory_percentage=true name="charges[{$CHARGE_ID}][percent]" value="{if $CHARGE_PERCENT}{$CHARGE_PERCENT}{else if $RECORD_ID}0{else}{$CHARGE_MODEL->getValue()}{/if}" /> % - {/if} + <input type="text" size="5" data-compound-on="{if $tax_detail['method'] eq 'Compound'}{Vtiger_Util_Helper::toSafeHTML(Zend_Json::encode($tax_detail['compoundon']))}{/if}" + name="{$tax_detail.taxname}_group_percentage" id="group_tax_percentage{$smarty.foreach.group_tax_loop.iteration}" value="{$tax_detail.percentage}" class="span1 groupTaxPercentage" + data-rule-positive=true data-rule-inventory_percentage=true /> % </td> <td style="text-align: right;" class="lineOnTop"> - <input type="text" class="span1 chargeValue" size="5" {if $CHARGE_MODEL->get('format') eq 'Percent'}readonly{/if} data-rule-positive=true name="charges[{$CHARGE_ID}][value]" value="{if $CHARGE_VALUE}{$CHARGE_VALUE}{else if $RECORD_ID}0{else}{$CHARGE_MODEL->getValue() * $USER_MODEL->get('conv_rate')}{/if}" /> + <input type="text" size="6" name="{$tax_detail.taxname}_group_amount" id="group_tax_amount{$smarty.foreach.group_tax_loop.iteration}" style="cursor:pointer;" value="{$tax_detail.amount}" readonly class="cursorPointer span1 groupTaxTotal" /> </td> </tr> {/foreach} + <input type="hidden" id="group_tax_count" value="{$smarty.foreach.group_tax_loop.iteration}" /> </table> </div> + <!-- End Popup Div Group Tax --> </td> - <td> - <input type="hidden" class="lineItemInputBox" id="chargesTotal" name="shipping_handling_charge" value="{if $FINAL.shipping_handling_charge}{$FINAL.shipping_handling_charge}{else}0{/if}" /> - <span id="chargesTotalDisplay" class="pull-right chargesTotalDisplay">{if $FINAL.shipping_handling_charge}{$FINAL.shipping_handling_charge}{else}0{/if}</span> - </td> + <td><span id="tax_final" class="pull-right tax_final">{if $FINAL.tax_totalamount}{$FINAL.tax_totalamount}{else}0{/if}</span></td> </tr> - {/if} - <tr> - <td width="83%"> - <span class="pull-right"><strong>{vtranslate('LBL_PRE_TAX_TOTAL', $MODULE)} </strong></span> - </td> - <td> - {assign var=PRE_TAX_TOTAL value=$FINAL.preTaxTotal} - <span class="pull-right" id="preTaxTotal">{if $PRE_TAX_TOTAL}{$PRE_TAX_TOTAL}{else}0{/if}</span> - <input type="hidden" id="pre_tax_total" name="pre_tax_total" value="{if $PRE_TAX_TOTAL}{$PRE_TAX_TOTAL}{else}0{/if}"/> - </td> - </tr> - <!-- Group Tax - starts --> - - <tr id="group_tax_row" valign="top" class="{if $IS_INDIVIDUAL_TAX_TYPE}hide{/if}"> - <td width="83%"> - <span class="pull-right">(+) <strong><a href="javascript:void(0)" id="finalTax">{vtranslate('LBL_TAX',$MODULE)}</a></strong></span> - <!-- Pop Div For Group TAX --> - <div class="hide finalTaxUI validCheck" id="group_tax_div"> - <input type="hidden" class="popover_title" value="{vtranslate('LBL_GROUP_TAX',$MODULE)}" /> - <table width="100%" border="0" cellpadding="5" cellspacing="0" class="table table-nobordered popupTable"> - {foreach item=tax_detail name=group_tax_loop key=loop_count from=$TAXES} - <tr> - <td class="lineOnTop">{$tax_detail.taxlabel}</td> - <td class="lineOnTop"> - <input type="text" size="5" data-compound-on="{if $tax_detail['method'] eq 'Compound'}{Vtiger_Util_Helper::toSafeHTML(Zend_Json::encode($tax_detail['compoundon']))}{/if}" - name="{$tax_detail.taxname}_group_percentage" id="group_tax_percentage{$smarty.foreach.group_tax_loop.iteration}" value="{$tax_detail.percentage}" class="span1 groupTaxPercentage" - data-rule-positive=true data-rule-inventory_percentage=true /> % - </td> - <td style="text-align: right;" class="lineOnTop"> - <input type="text" size="6" name="{$tax_detail.taxname}_group_amount" id="group_tax_amount{$smarty.foreach.group_tax_loop.iteration}" style="cursor:pointer;" value="{$tax_detail.amount}" readonly class="cursorPointer span1 groupTaxTotal" /> - </td> - </tr> - {/foreach} - <input type="hidden" id="group_tax_count" value="{$smarty.foreach.group_tax_loop.iteration}" /> - </table> - </div> - <!-- End Popup Div Group Tax --> - </td> - <td><span id="tax_final" class="pull-right tax_final">{if $FINAL.tax_totalamount}{$FINAL.tax_totalamount}{else}0{/if}</span></td> - </tr> - <!-- Group Tax - ends --> - {if $SH_PERCENT_EDITABLE} - <tr> - <td width="83%"> - <span class="pull-right">(+) <strong><a href="javascript:void(0)" id="chargeTaxes">{vtranslate('LBL_TAXES_ON_CHARGES',$MODULE)} </a></strong></span> + <!-- Group Tax - ends --> + {if $SH_PERCENT_EDITABLE} + <tr> + <td width="83%"> + <span class="pull-right">(+) <strong><a href="javascript:void(0)" id="chargeTaxes">{vtranslate('LBL_TAXES_ON_CHARGES',$MODULE)} </a></strong></span> - <!-- Pop Div For Shipping and Handling TAX --> - <div id="chargeTaxesBlock" class="hide validCheck chargeTaxesBlock"> - <p class="popover_title hide"> - {vtranslate('LBL_TAXES_ON_CHARGES', $MODULE)} : <span id="SHChargeVal" class="SHChargeVal">{if $FINAL.shipping_handling_charge}{$FINAL.shipping_handling_charge}{else}0{/if}</span> - </p> - <table class="table table-nobordered popupTable"> - <tbody> - {foreach key=CHARGE_ID item=CHARGE_MODEL from=$INVENTORY_CHARGES} - {foreach key=CHARGE_TAX_ID item=CHARGE_TAX_MODEL from=$RECORD->getChargeTaxModelsList($CHARGE_ID)} - {if !isset($CHARGE_AND_CHARGETAX_VALUES[$CHARGE_ID]['taxes'][$CHARGE_TAX_ID]) && $CHARGE_TAX_MODEL->isDeleted()} - {continue} - {/if} - {if !$RECORD_ID && $CHARGE_TAX_MODEL->isDeleted()} - {continue} - {/if} - <tr> - {assign var=SH_TAX_VALUE value=$CHARGE_TAX_MODEL->getTax()} - {if $CHARGE_AND_CHARGETAX_VALUES[$CHARGE_ID]['value'] neq NULL} - {assign var=SH_TAX_VALUE value=0} - {if $CHARGE_AND_CHARGETAX_VALUES[$CHARGE_ID]['taxes'][$CHARGE_TAX_ID]} - {assign var=SH_TAX_VALUE value=$CHARGE_AND_CHARGETAX_VALUES[$CHARGE_ID]['taxes'][$CHARGE_TAX_ID]} - {/if} + <!-- Pop Div For Shipping and Handling TAX --> + <div id="chargeTaxesBlock" class="hide validCheck chargeTaxesBlock"> + <p class="popover_title hide"> + {vtranslate('LBL_TAXES_ON_CHARGES', $MODULE)} : <span id="SHChargeVal" class="SHChargeVal">{if $FINAL.shipping_handling_charge}{$FINAL.shipping_handling_charge}{else}0{/if}</span> + </p> + <table class="table table-nobordered popupTable"> + <tbody> + {foreach key=CHARGE_ID item=CHARGE_MODEL from=$INVENTORY_CHARGES} + {foreach key=CHARGE_TAX_ID item=CHARGE_TAX_MODEL from=$RECORD->getChargeTaxModelsList($CHARGE_ID)} + {if !isset($CHARGE_AND_CHARGETAX_VALUES[$CHARGE_ID]['taxes'][$CHARGE_TAX_ID]) && $CHARGE_TAX_MODEL->isDeleted()} + {continue} + {/if} + {if !$RECORD_ID && $CHARGE_TAX_MODEL->isDeleted()} + {continue} {/if} + <tr> + {assign var=SH_TAX_VALUE value=$CHARGE_TAX_MODEL->getTax()} + {if $CHARGE_AND_CHARGETAX_VALUES[$CHARGE_ID]['value'] neq NULL} + {assign var=SH_TAX_VALUE value=0} + {if $CHARGE_AND_CHARGETAX_VALUES[$CHARGE_ID]['taxes'][$CHARGE_TAX_ID]} + {assign var=SH_TAX_VALUE value=$CHARGE_AND_CHARGETAX_VALUES[$CHARGE_ID]['taxes'][$CHARGE_TAX_ID]} + {/if} + {/if} + + <td class="lineOnTop">{$CHARGE_MODEL->getName()} - {$CHARGE_TAX_MODEL->getName()}</td> + <td class="lineOnTop"> + <input type="text" data-charge-id="{$CHARGE_ID}" data-compound-on="{if $CHARGE_TAX_MODEL->getTaxMethod() eq 'Compound'}{$CHARGE_TAX_MODEL->get('compoundon')}{/if}" + class="span1 chargeTaxPercentage" name="charges[{$CHARGE_ID}][taxes][{$CHARGE_TAX_ID}]" value="{$SH_TAX_VALUE}" + data-rule-positive=true data-rule-inventory_percentage=true /> % + </td> + <td style="text-align: right;" class="lineOnTop"> + <input type="text" class="span1 chargeTaxValue cursorPointer pull-right chargeTax{$CHARGE_ID}{$CHARGE_TAX_ID}" size="5" value="0" readonly /> + </td> + </tr> + {/foreach} + {/foreach} + </tbody> + </table> + </div> + <!-- End Popup Div for Shipping and Handling TAX --> + </td> + <td> + <input type="hidden" id="chargeTaxTotalHidden" class="chargeTaxTotal" name="s_h_percent" value="{if $FINAL.shtax_totalamount}{$FINAL.shtax_totalamount}{else}0{/if}" /> + <span class="pull-right" id="chargeTaxTotal">{if $FINAL.shtax_totalamount}{$FINAL.shtax_totalamount}{else}0{/if}</span> + </td> + </tr> + <tr> + <td width="83%"> + <span class="pull-right">(-) <strong><a href="javascript:void(0)" id="deductTaxes">{vtranslate('LBL_DEDUCTED_TAXES',$MODULE)} </a></strong></span> - <td class="lineOnTop">{$CHARGE_MODEL->getName()} - {$CHARGE_TAX_MODEL->getName()}</td> + <div id="deductTaxesBlock" class="hide validCheck deductTaxesBlock"> + <table class="table table-nobordered popupTable"> + <tbody> + {foreach key=DEDUCTED_TAX_ID item=DEDUCTED_TAX_INFO from=$DEDUCTED_TAXES} + <tr> + <td class="lineOnTop">{$DEDUCTED_TAX_INFO['taxlabel']}</td> <td class="lineOnTop"> - <input type="text" data-charge-id="{$CHARGE_ID}" data-compound-on="{if $CHARGE_TAX_MODEL->getTaxMethod() eq 'Compound'}{$CHARGE_TAX_MODEL->get('compoundon')}{/if}" - class="span1 chargeTaxPercentage" name="charges[{$CHARGE_ID}][taxes][{$CHARGE_TAX_ID}]" value="{$SH_TAX_VALUE}" + <input type="text" class="span1 deductTaxPercentage" name="{$DEDUCTED_TAX_INFO['taxname']}_group_percentage" value="{if $DEDUCTED_TAX_INFO['selected'] || !$RECORD_ID}{$DEDUCTED_TAX_INFO['percentage']}{else}0{/if}" data-rule-positive=true data-rule-inventory_percentage=true /> % </td> <td style="text-align: right;" class="lineOnTop"> - <input type="text" class="span1 chargeTaxValue cursorPointer pull-right chargeTax{$CHARGE_ID}{$CHARGE_TAX_ID}" size="5" value="0" readonly /> + <input type="text" class="span1 deductTaxValue cursorPointer pull-right" name="{$DEDUCTED_TAX_INFO['taxname']}_group_amount" size="5" readonly value="{$DEDUCTED_TAX_INFO['amount']}"/> </td> </tr> {/foreach} - {/foreach} - </tbody> - </table> - </div> - <!-- End Popup Div for Shipping and Handling TAX --> - </td> - <td> - <input type="hidden" id="chargeTaxTotalHidden" class="chargeTaxTotal" name="s_h_percent" value="{if $FINAL.shtax_totalamount}{$FINAL.shtax_totalamount}{else}0{/if}" /> - <span class="pull-right" id="chargeTaxTotal">{if $FINAL.shtax_totalamount}{$FINAL.shtax_totalamount}{else}0{/if}</span> - </td> - </tr> - <tr> - <td width="83%"> - <span class="pull-right">(-) <strong><a href="javascript:void(0)" id="deductTaxes">{vtranslate('LBL_DEDUCTED_TAXES',$MODULE)} </a></strong></span> - - <div id="deductTaxesBlock" class="hide validCheck deductTaxesBlock"> - <table class="table table-nobordered popupTable"> - <tbody> - {foreach key=DEDUCTED_TAX_ID item=DEDUCTED_TAX_INFO from=$DEDUCTED_TAXES} - <tr> - <td class="lineOnTop">{$DEDUCTED_TAX_INFO['taxlabel']}</td> - <td class="lineOnTop"> - <input type="text" class="span1 deductTaxPercentage" name="{$DEDUCTED_TAX_INFO['taxname']}_group_percentage" value="{if $DEDUCTED_TAX_INFO['selected'] || !$RECORD_ID}{$DEDUCTED_TAX_INFO['percentage']}{else}0{/if}" - data-rule-positive=true data-rule-inventory_percentage=true /> % - </td> - <td style="text-align: right;" class="lineOnTop"> - <input type="text" class="span1 deductTaxValue cursorPointer pull-right" name="{$DEDUCTED_TAX_INFO['taxname']}_group_amount" size="5" readonly value="{$DEDUCTED_TAX_INFO['amount']}"/> - </td> - </tr> - {/foreach} - </tbody> - </table> - </div> - </td> - <td> - <span class="pull-right" id="deductTaxesTotalAmount">{if $FINAL.deductTaxesTotalAmount}{$FINAL.deductTaxesTotalAmount}{else}0{/if}</span> - </td> - </tr> - {/if} + </tbody> + </table> + </div> + </td> + <td> + <span class="pull-right" id="deductTaxesTotalAmount">{if $FINAL.deductTaxesTotalAmount}{$FINAL.deductTaxesTotalAmount}{else}0{/if}</span> + </td> + </tr> + {/if} - <tr valign="top"> - <td width="83%" > - <div class="pull-right"> - <strong>{vtranslate('LBL_ADJUSTMENT',$MODULE)} </strong> - <span> - <input type="radio" name="adjustmentType" option value="+" {if $FINAL.adjustment gte 0}checked{/if}> {vtranslate('LBL_ADD',$MODULE)} - </span> - <span> - <input type="radio" name="adjustmentType" option value="-" {if $FINAL.adjustment lt 0}checked{/if}> {vtranslate('LBL_DEDUCT',$MODULE)} - </span> - </div> - </td> - <td> - <span class="pull-right"> - <input id="adjustment" name="adjustment" type="text" data-rule-positive="true" class="lineItemInputBox form-control" value="{if $FINAL.adjustment lt 0}{abs($FINAL.adjustment)}{elseif $FINAL.adjustment}{$FINAL.adjustment}{else}0{/if}"> - </span> - </td> - </tr> - <tr valign="top"> - <td width="83%"> - <span class="pull-right"><strong>{vtranslate('LBL_GRAND_TOTAL',$MODULE)}</strong></span> - </td> - <td> - <span id="grandTotal" name="grandTotal" class="pull-right grandTotal">{$FINAL.grandTotal}</span> - </td> - </tr> - {if $MODULE eq 'Invoice' or $MODULE eq 'PurchaseOrder'} <tr valign="top"> <td width="83%" > <div class="pull-right"> - {if $MODULE eq 'Invoice'} - <strong>{vtranslate('LBL_RECEIVED',$MODULE)}</strong> - {else} - <strong>{vtranslate('LBL_PAID',$MODULE)}</strong> - {/if} + <strong>{vtranslate('LBL_ADJUSTMENT',$MODULE)} </strong> + <span> + <input type="radio" name="adjustmentType" option value="+" {if $FINAL.adjustment gte 0}checked{/if}> {vtranslate('LBL_ADD',$MODULE)} + </span> + <span> + <input type="radio" name="adjustmentType" option value="-" {if $FINAL.adjustment lt 0}checked{/if}> {vtranslate('LBL_DEDUCT',$MODULE)} + </span> </div> </td> <td> - {if $MODULE eq 'Invoice'} - <span class="pull-right"><input id="received" name="received" type="text" class="lineItemInputBox form-control" value="{if $RECORD->getDisplayValue('received') && !($IS_DUPLICATE)}{$RECORD->getDisplayValue('received')}{else}0{/if}"></span> - {else} - <span class="pull-right"><input id="paid" name="paid" type="text" class="lineItemInputBox" value="{if $RECORD->getDisplayValue('paid') && !($IS_DUPLICATE)}{$RECORD->getDisplayValue('paid')}{else}0{/if}"></span> - {/if} + <span class="pull-right"> + <input id="adjustment" name="adjustment" type="text" data-rule-positive="true" class="lineItemInputBox form-control" value="{if $FINAL.adjustment lt 0}{abs($FINAL.adjustment)}{elseif $FINAL.adjustment}{$FINAL.adjustment}{else}0{/if}"> + </span> </td> </tr> <tr valign="top"> - <td width="83%" > - <div class="pull-right"> - <strong>{vtranslate('LBL_BALANCE',$MODULE)}</strong> - </div> + <td width="83%"> + <span class="pull-right"><strong>{vtranslate('LBL_GRAND_TOTAL',$MODULE)}</strong></span> </td> <td> - <span class="pull-right"><input id="balance" name="balance" type="text" class="lineItemInputBox form-control" value="{if $RECORD->getDisplayValue('balance') && !($IS_DUPLICATE)}{$RECORD->getDisplayValue('balance')}{else}0{/if}" readonly></span> + <span id="grandTotal" name="grandTotal" class="pull-right grandTotal">{$FINAL.grandTotal}</span> </td> </tr> - {/if} - </table> + {if $MODULE eq 'Invoice' or $MODULE eq 'PurchaseOrder'} + <tr valign="top"> + <td width="83%" > + <div class="pull-right"> + {if $MODULE eq 'Invoice'} + <strong>{vtranslate('LBL_RECEIVED',$MODULE)}</strong> + {else} + <strong>{vtranslate('LBL_PAID',$MODULE)}</strong> + {/if} + </div> + </td> + <td> + {if $MODULE eq 'Invoice'} + <span class="pull-right"><input id="received" name="received" type="text" class="lineItemInputBox form-control" value="{if $RECORD->getDisplayValue('received') && !($IS_DUPLICATE)}{$RECORD->getDisplayValue('received')}{else}0{/if}"></span> + {else} + <span class="pull-right"><input id="paid" name="paid" type="text" class="lineItemInputBox" value="{if $RECORD->getDisplayValue('paid') && !($IS_DUPLICATE)}{$RECORD->getDisplayValue('paid')}{else}0{/if}"></span> + {/if} + </td> + </tr> + <tr valign="top"> + <td width="83%" > + <div class="pull-right"> + <strong>{vtranslate('LBL_BALANCE',$MODULE)}</strong> + </div> + </td> + <td> + <span class="pull-right"><input id="balance" name="balance" type="text" class="lineItemInputBox form-control" value="{if $RECORD->getDisplayValue('balance') && !($IS_DUPLICATE)}{$RECORD->getDisplayValue('balance')}{else}0{/if}" readonly></span> + </td> + </tr> + {/if} + </table> + </div> {/if} </div> diff --git a/layouts/v7/modules/Inventory/resources/Edit.js b/layouts/v7/modules/Inventory/resources/Edit.js index ddbfd248a24df9597833c30ade8a8f8739f13914..1f1f5abdb35bf1ffd22d54d136f2038ed063132d 100644 --- a/layouts/v7/modules/Inventory/resources/Edit.js +++ b/layouts/v7/modules/Inventory/resources/Edit.js @@ -777,9 +777,7 @@ Vtiger_Edit_Js("Inventory_Edit_Js", { 'discount_amount','lineItemType','searchIcon','netPrice','subprod_names', 'productTotal','discountTotal','totalAfterDiscount','taxTotal'); - var nameFields = new Array('discount', 'purchaseCost', 'margin'); var classFields = new Array('taxPercentage'); - //To handle variable tax ids for(var classIndex in classFields) { var className = classFields[classIndex]; @@ -799,6 +797,14 @@ Vtiger_Edit_Js("Inventory_Edit_Js", { .filter('[name="'+actualElementId+'"]').attr('name',expectedElementId); } + var nameFields = new Array('discount', 'purchaseCost', 'margin'); + for (var nameIndex in nameFields) { + var elementName = nameFields[nameIndex]; + var actualElementName = elementName+currentSequenceNumber; + var expectedElementName = elementName+expectedSequenceNumber; + lineItemRow.find('[name="'+actualElementName+'"]').attr('name', expectedElementName); + } + lineItemRow.attr('id', expectedRowId).attr('data-row-num', expectedSequenceNumber); lineItemRow.find('input.rowNumber').val(expectedSequenceNumber); diff --git a/layouts/v7/modules/PriceBooks/RelatedList.tpl b/layouts/v7/modules/PriceBooks/RelatedList.tpl index ccd5375e7a4cc72a28471c4cb34994c84782d916..d49874833f1e52158b92783053d61b7d6c1cc848 100644 --- a/layouts/v7/modules/PriceBooks/RelatedList.tpl +++ b/layouts/v7/modules/PriceBooks/RelatedList.tpl @@ -9,12 +9,13 @@ {* modules/PriceBooks/views/Detail.php *} {strip} - {if $RELATED_MODULE->get('name') neq 'Products' && $RELATED_MODULE->get('name') neq 'Services'} + {assign var=RELATED_MODULE_NAME value=$RELATED_MODULE->get('name')} + {if $RELATED_MODULE_NAME neq 'Products' && $RELATED_MODULE_NAME neq 'Services'} {include file='RelatedList.tpl'|vtemplate_path:'Vtiger'} {else} <div class="relatedContainer"> <input type="hidden" name="currentPageNum" value="{$PAGING->getCurrentPage()}" /> - <input type="hidden" name="relatedModuleName" class="relatedModuleName" value="{$RELATED_MODULE->get('name')}" /> + <input type="hidden" name="relatedModuleName" class="relatedModuleName" value="{$RELATED_MODULE_NAME}" /> <input type="hidden" value="{$ORDER_BY}" id="orderBy"> <input type="hidden" value="{$SORT_ORDER}" id="sortOrder"> <input type="hidden" value="{$RELATED_ENTIRES_COUNT}" id="noOfEntries"> @@ -33,7 +34,7 @@ </th> {foreach item=HEADER_FIELD from=$RELATED_HEADERS} <th nowrap {if $HEADER_FIELD@last} {/if}> - <a href="javascript:void(0);" class="listViewContentHeaderValues" data-nextsortorderval="{if $COLUMN_NAME eq $HEADER_FIELD->get('name')}{$NEXT_SORT_ORDER}{else}ASC{/if}" data-fieldname="{$HEADER_FIELD->get('name')}">{vtranslate($HEADER_FIELD->get('label'), $RELATED_MODULE->get('name'))} + <a href="javascript:void(0);" class="listViewContentHeaderValues" data-nextsortorderval="{if $COLUMN_NAME eq $HEADER_FIELD->get('name')}{$NEXT_SORT_ORDER}{else}ASC{/if}" data-fieldname="{$HEADER_FIELD->get('name')}">{vtranslate($HEADER_FIELD->get('label'), $RELATED_MODULE_NAME)} {if $COLUMN_NAME eq $HEADER_FIELD->get('column')} <i class="fa fa-sort {$FASORT_IMAGE}"></i> {else} diff --git a/layouts/v7/modules/Settings/LayoutEditor/FieldCreate.tpl b/layouts/v7/modules/Settings/LayoutEditor/FieldCreate.tpl index bd20b0868a182ea1411e485e39ef825bf97c3390..226f493f2ef78c1905587c16f85baa1b9d47501d 100644 --- a/layouts/v7/modules/Settings/LayoutEditor/FieldCreate.tpl +++ b/layouts/v7/modules/Settings/LayoutEditor/FieldCreate.tpl @@ -218,9 +218,9 @@ </div> <div class="row"> <div class="form-group col-sm-7"> - <span class="control-label fieldLabel col-sm-10"> + <label class="control-label fieldLabel col-sm-10"> <img src="{vimage_path('MassEdit.png')}" height=14 width=14/> {vtranslate('LBL_MASS_EDIT',$QUALIFIED_MODULE)} - </span> + </label> <div class="controls col-sm-2"> {if $FIELD_MODEL->isMassEditOptionDisabled()} <input type="hidden" name="masseditable" value={$FIELD_MODEL->get('masseditable')} /> diff --git a/layouts/v7/modules/Settings/ModuleManager/resources/ModuleImport.js b/layouts/v7/modules/Settings/ModuleManager/resources/ModuleImport.js new file mode 100644 index 0000000000000000000000000000000000000000..5b11638a71ac7f859d0b8187d09cd2f38cd5b6b3 --- /dev/null +++ b/layouts/v7/modules/Settings/ModuleManager/resources/ModuleImport.js @@ -0,0 +1,10 @@ +/*+*********************************************************************************** + * 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. + *************************************************************************************/ + +Settings_Module_Manager_Js('Settings_ModuleManager_ModuleImport_Js', {}, {}); \ No newline at end of file diff --git a/layouts/v7/modules/Settings/ModuleManager/resources/ModuleManager.js b/layouts/v7/modules/Settings/ModuleManager/resources/ModuleManager.js index cab89a9d05fa67d33d62d95dd2e96ae4e0e462fe..f90107f19c0d400148a473a8561ddac04f47861d 100644 --- a/layouts/v7/modules/Settings/ModuleManager/resources/ModuleManager.js +++ b/layouts/v7/modules/Settings/ModuleManager/resources/ModuleManager.js @@ -173,7 +173,4 @@ Vtiger_Index_Js('Settings_Module_Manager_Js', { } }); } -}); - -var moduleManagerInstance = new Settings_Module_Manager_Js(); -moduleManagerInstance.registerEvents(); +}); \ No newline at end of file diff --git a/layouts/v7/modules/Users/ListViewHeader.tpl b/layouts/v7/modules/Users/ListViewHeader.tpl index d84013c35624c233e47d04e755fcf987b59047d4..d47ab19f7ff84b685845db600a5500d6d8b48079 100644 --- a/layouts/v7/modules/Users/ListViewHeader.tpl +++ b/layouts/v7/modules/Users/ListViewHeader.tpl @@ -13,7 +13,7 @@ <div id="listview-actions" class="listview-actions-container"> <div class = "row"> <div class="btn-group col-md-2"></div> - <div class='col-md-7' style="padding-top: 5px"> + <div class='col-md-7' style="padding-top: 5px;text-align: center;"> <div class="btn-group userFilter" style="text-align: center;"> <button class="btn btn-default btn-primary" id="activeUsers" data-searchvalue="Active"> {vtranslate('LBL_ACTIVE_USERS', $MODULE)} diff --git a/layouts/v7/modules/Vtiger/RelatedList.tpl b/layouts/v7/modules/Vtiger/RelatedList.tpl index a66ff70ec94b99d6993fd83f433c97114b7e49e6..eb81218a7df2b53e31099a3c1a427aa29ae3f1a7 100644 --- a/layouts/v7/modules/Vtiger/RelatedList.tpl +++ b/layouts/v7/modules/Vtiger/RelatedList.tpl @@ -46,7 +46,7 @@ {else} <th class="nowrap"> {if $HEADER_FIELD->get('column') eq "access_count" or $HEADER_FIELD->get('column') eq "idlists"} - <a href="javascript:void(0);" class="noSorting">{vtranslate($HEADER_FIELD->get('label'), $RELATED_MODULE->get('name'))}</a> + <a href="javascript:void(0);" class="noSorting">{vtranslate($HEADER_FIELD->get('label'), $RELATED_MODULE_NAME)}</a> {else} <a href="javascript:void(0);" class="listViewContentHeaderValues" data-nextsortorderval="{if $COLUMN_NAME eq $HEADER_FIELD->get('column')}{$NEXT_SORT_ORDER}{else}ASC{/if}" data-fieldname="{$HEADER_FIELD->get('column')}"> {if $COLUMN_NAME eq $HEADER_FIELD->get('column')} @@ -55,7 +55,7 @@ <i class="fa fa-sort customsort"></i> {/if} - {vtranslate($HEADER_FIELD->get('label'), $RELATED_MODULE->get('name'))} + {vtranslate($HEADER_FIELD->get('label'), $RELATED_MODULE_NAME)} {if $COLUMN_NAME eq $HEADER_FIELD->get('column')}<img class="{$SORT_IMAGE}">{/if} </a> {if $COLUMN_NAME eq $HEADER_FIELD->get('column')} @@ -86,7 +86,7 @@ <tr class="listViewEntries" data-id='{$RELATED_RECORD->getId()}' {if $RELATED_MODULE_NAME eq 'Calendar'} data-recurring-enabled='{$RELATED_RECORD->isRecurringEnabled()}' - {assign var=DETAILVIEWPERMITTED value=isPermitted($RELATED_MODULE->get('name'), 'DetailView', $RELATED_RECORD->getId())} + {assign var=DETAILVIEWPERMITTED value=isPermitted($RELATED_MODULE_NAME, 'DetailView', $RELATED_RECORD->getId())} {if $DETAILVIEWPERMITTED eq 'yes'} data-recordUrl='{$RELATED_RECORD->getDetailViewUrl()}' {/if} @@ -121,7 +121,7 @@ {assign var=RELATED_LIST_VALUE value=$RELATED_RECORD->get($RELATED_HEADERNAME)} <td class="relatedListEntryValues" title="{strip_tags($RELATED_RECORD->getDisplayValue($RELATED_HEADERNAME))}" data-field-type="{$HEADER_FIELD->getFieldDataType()}" nowrap> <span class="value textOverflowEllipsis"> - {if $RELATED_MODULE->get('name') eq 'Documents' && $RELATED_HEADERNAME eq 'document_source'} + {if $RELATED_MODULE_NAME eq 'Documents' && $RELATED_HEADERNAME eq 'document_source'} <center>{$RELATED_RECORD->get($RELATED_HEADERNAME)}</center> {else} {if $HEADER_FIELD->isNameField() eq true or $HEADER_FIELD->get('uitype') eq '4'} @@ -171,7 +171,7 @@ {else} {$RELATED_RECORD->getDisplayValue($RELATED_HEADERNAME)} {* Documents list view special actions "view file" and "download file" *} - {if $RELATED_MODULE_NAME eq 'Documents' && $RELATED_HEADERNAME eq 'filename' && isPermitted($RELATED_MODULE->get('name'), 'DetailView', $RELATED_RECORD->getId()) eq 'yes'} + {if $RELATED_MODULE_NAME eq 'Documents' && $RELATED_HEADERNAME eq 'filename' && isPermitted($RELATED_MODULE_NAME, 'DetailView', $RELATED_RECORD->getId()) eq 'yes'} <span class="actionImages"> {assign var=RECORD_ID value=$RELATED_RECORD->getId()} {assign var="DOCUMENT_RECORD_MODEL" value=Vtiger_Record_Model::getInstanceById($RECORD_ID)} diff --git a/layouts/v7/modules/Vtiger/dashboards/TagCloudContents.tpl b/layouts/v7/modules/Vtiger/dashboards/TagCloudContents.tpl index 1791bf8cf7c28e7e039b1c33437b4f15a552eb2a..5aac5d8a9c61083925cc34927ac081983018d7a7 100644 --- a/layouts/v7/modules/Vtiger/dashboards/TagCloudContents.tpl +++ b/layouts/v7/modules/Vtiger/dashboards/TagCloudContents.tpl @@ -6,12 +6,14 @@ * Portions created by vtiger are Copyright (C) vtiger. * All Rights Reserved. *************************************************************************************} + {strip} - <div class="tagsContainer" id="tagCloud"> - {foreach from=$TAGS[1] item=TAG_ID key=TAG_NAME} - <div class=" textOverflowEllipsis col-sm-4" title="{$TAG_NAME}"> - <a class="tagName cursorPointer" data-tagid="{$TAG_ID}" rel="{$TAGS[0][$TAG_NAME]}">{$TAG_NAME}</a> - </div> + <div class="tagsContainer" id="tagCloud"> + {foreach item=TAG_MODEL key=TAG_ID from=$TAGS} + {assign var=TAG_LABEL value=$TAG_MODEL->getName()} + <span class="tag" title="{$TAG_LABEL}" data-type="{$TAG_MODEL->getType()}" data-id="{$TAG_ID}"> + <span class="tagName display-inline-block textOverflowEllipsis cursorPointer" data-tagid="{$TAG_ID}">{$TAG_LABEL}</span> + </span> {/foreach} </div> -{/strip} \ No newline at end of file +{/strip} \ No newline at end of file diff --git a/layouts/v7/modules/Vtiger/resources/List.js b/layouts/v7/modules/Vtiger/resources/List.js index 64cd1f8f1415bab3df3fae4397aae827e37bd460..92902e6599bcf7b869b6c16f32f88a99ae7554ad 100644 --- a/layouts/v7/modules/Vtiger/resources/List.js +++ b/layouts/v7/modules/Vtiger/resources/List.js @@ -1181,6 +1181,7 @@ Vtiger.Class("Vtiger_List_Js", { thisInstance.registerInlineSaveOnEnterEvent(editedRow); }); + var isOwnerChanged = false; app.event.on('post.listViewMassEdit.loaded', function (e, container) { app.event.trigger('post.listViewInlineEdit.click', container); var offset = container.find('.modal-body .datacontent').offset(); @@ -1189,12 +1190,17 @@ Vtiger.Class("Vtiger_List_Js", { var params = { setHeight: (viewPortHeight - offset['top']) + 'px' }; + + container.find('[name="assigned_user_id"]').on('click', function() { + isOwnerChanged = true; + }); app.helper.showVerticalScroll(container.find('.modal-body .datacontent'), params); var editInstance = Vtiger_Edit_Js.getInstance(); editInstance.registerBasicEvents(container); var form_original_data = $("#massEdit").serialize(); $('#massEdit').on('submit', function (event) { - thisInstance.saveMassedit(event, form_original_data); + thisInstance.saveMassedit(event, form_original_data, isOwnerChanged); + isOwnerChanged = false; }); app.helper.registerLeavePageWithoutSubmit($("#massEdit")); app.helper.registerModalDismissWithoutSubmit($("#massEdit")); @@ -1289,12 +1295,12 @@ Vtiger.Class("Vtiger_List_Js", { element.trigger('change'); }); }, - saveMassedit: function (event, form_original_data) { + saveMassedit: function (event, form_original_data, isOwnerChanged) { event.preventDefault(); var form = $('#massEdit'); var form_new_data = form.serialize(); app.helper.showProgress(); - if (form_new_data !== form_original_data) { + if (form_new_data !== form_original_data || isOwnerChanged) { var originalData = app.convertUrlToDataParams(form_original_data); var newData = app.convertUrlToDataParams(form_new_data); @@ -1306,6 +1312,10 @@ Vtiger.Class("Vtiger_List_Js", { } } + if (!newData['assigned_user_id'] && isOwnerChanged) { + newData['assigned_user_id'] = originalData['assigned_user_id']; + } + var form_update_data = ''; for (var key in newData) { form_update_data += key + '=' + newData[key] + '&'; diff --git a/layouts/v7/skins/contact/style.css b/layouts/v7/skins/contact/style.css index ea321b08db0b9fc5f0e9f38c9270f452fdc11105..4c34a8a94dae1cb9bcdbdde24e35764ce7b99cc7 100644 --- a/layouts/v7/skins/contact/style.css +++ b/layouts/v7/skins/contact/style.css @@ -4402,6 +4402,22 @@ form[name="notification_settings"] .select2-choice { width: 100%; border: 1px solid #dcdcdc; } +#tagCloud .tag { + color: #5ea9dd; + padding: 0px; + background-color: #FFFFFF; + border-color: #FFFFFF; + border-radius: 0px; + margin: 3px; +} +#tagCloud .tag[data-type="public"] { + color: #3cb878; +} +#tagCloud .tag .tagName { + margin: 3px; + max-width: 80px; + vertical-align: bottom; +} #s2id_memberList li > div, .groupMembersColors li > div { margin-left: 10px; diff --git a/layouts/v7/skins/inventory/style.css b/layouts/v7/skins/inventory/style.css index 19afbb1d4293c32b3b779601aa71cab250083702..5b177c0ca1cb6552111204ba45a53c8c5746ea5c 100644 --- a/layouts/v7/skins/inventory/style.css +++ b/layouts/v7/skins/inventory/style.css @@ -4402,6 +4402,22 @@ form[name="notification_settings"] .select2-choice { width: 100%; border: 1px solid #dcdcdc; } +#tagCloud .tag { + color: #5ea9dd; + padding: 0px; + background-color: #FFFFFF; + border-color: #FFFFFF; + border-radius: 0px; + margin: 3px; +} +#tagCloud .tag[data-type="public"] { + color: #3cb878; +} +#tagCloud .tag .tagName { + margin: 3px; + max-width: 80px; + vertical-align: bottom; +} #s2id_memberList li > div, .groupMembersColors li > div { margin-left: 10px; diff --git a/layouts/v7/skins/marketing/style.css b/layouts/v7/skins/marketing/style.css index d1f1253ae3197fa798d02fcd2a109f84b76096a6..5ad0f30e5c1abf5eeab68b6efc7cf38972513bf4 100644 --- a/layouts/v7/skins/marketing/style.css +++ b/layouts/v7/skins/marketing/style.css @@ -4402,6 +4402,22 @@ form[name="notification_settings"] .select2-choice { width: 100%; border: 1px solid #dcdcdc; } +#tagCloud .tag { + color: #5ea9dd; + padding: 0px; + background-color: #FFFFFF; + border-color: #FFFFFF; + border-radius: 0px; + margin: 3px; +} +#tagCloud .tag[data-type="public"] { + color: #3cb878; +} +#tagCloud .tag .tagName { + margin: 3px; + max-width: 80px; + vertical-align: bottom; +} #s2id_memberList li > div, .groupMembersColors li > div { margin-left: 10px; diff --git a/layouts/v7/skins/marketing_and_sales/style.css b/layouts/v7/skins/marketing_and_sales/style.css index ba6826af561d51861db6056f169e9ee013dc9806..0a5c6c0cdce0a97b1428042ad645e71b869af4b1 100644 --- a/layouts/v7/skins/marketing_and_sales/style.css +++ b/layouts/v7/skins/marketing_and_sales/style.css @@ -4402,6 +4402,22 @@ form[name="notification_settings"] .select2-choice { width: 100%; border: 1px solid #dcdcdc; } +#tagCloud .tag { + color: #5ea9dd; + padding: 0px; + background-color: #FFFFFF; + border-color: #FFFFFF; + border-radius: 0px; + margin: 3px; +} +#tagCloud .tag[data-type="public"] { + color: #3cb878; +} +#tagCloud .tag .tagName { + margin: 3px; + max-width: 80px; + vertical-align: bottom; +} #s2id_memberList li > div, .groupMembersColors li > div { margin-left: 10px; diff --git a/layouts/v7/skins/project/style.css b/layouts/v7/skins/project/style.css index e7c08a32c7ac51ead097454807af8801e013b5a4..c45bc18d03626ddb5dc84ca050842a91d938f207 100644 --- a/layouts/v7/skins/project/style.css +++ b/layouts/v7/skins/project/style.css @@ -4402,6 +4402,22 @@ form[name="notification_settings"] .select2-choice { width: 100%; border: 1px solid #dcdcdc; } +#tagCloud .tag { + color: #5ea9dd; + padding: 0px; + background-color: #FFFFFF; + border-color: #FFFFFF; + border-radius: 0px; + margin: 3px; +} +#tagCloud .tag[data-type="public"] { + color: #3cb878; +} +#tagCloud .tag .tagName { + margin: 3px; + max-width: 80px; + vertical-align: bottom; +} #s2id_memberList li > div, .groupMembersColors li > div { margin-left: 10px; diff --git a/layouts/v7/skins/sales/style.css b/layouts/v7/skins/sales/style.css index ef198b53c128cab70e60e46410dda18ac07dd7f6..2fb98bb5b8815db85e10b59d7739309c117e6d3b 100644 --- a/layouts/v7/skins/sales/style.css +++ b/layouts/v7/skins/sales/style.css @@ -4402,6 +4402,22 @@ form[name="notification_settings"] .select2-choice { width: 100%; border: 1px solid #dcdcdc; } +#tagCloud .tag { + color: #5ea9dd; + padding: 0px; + background-color: #FFFFFF; + border-color: #FFFFFF; + border-radius: 0px; + margin: 3px; +} +#tagCloud .tag[data-type="public"] { + color: #3cb878; +} +#tagCloud .tag .tagName { + margin: 3px; + max-width: 80px; + vertical-align: bottom; +} #s2id_memberList li > div, .groupMembersColors li > div { margin-left: 10px; diff --git a/layouts/v7/skins/support/style.css b/layouts/v7/skins/support/style.css index fbd8a0c5379fe90345db5c83171cbe876f55aa48..2630094f1b4b47fe62b82d567a2e38d34d810b75 100644 --- a/layouts/v7/skins/support/style.css +++ b/layouts/v7/skins/support/style.css @@ -4402,6 +4402,22 @@ form[name="notification_settings"] .select2-choice { width: 100%; border: 1px solid #dcdcdc; } +#tagCloud .tag { + color: #5ea9dd; + padding: 0px; + background-color: #FFFFFF; + border-color: #FFFFFF; + border-radius: 0px; + margin: 3px; +} +#tagCloud .tag[data-type="public"] { + color: #3cb878; +} +#tagCloud .tag .tagName { + margin: 3px; + max-width: 80px; + vertical-align: bottom; +} #s2id_memberList li > div, .groupMembersColors li > div { margin-left: 10px; diff --git a/layouts/v7/skins/tools/style.css b/layouts/v7/skins/tools/style.css index e029ed20a13e88ddf343bb40efcaa17d663bf7fb..ef60ee9eb5631ed84e84532430f67baf832870ae 100644 --- a/layouts/v7/skins/tools/style.css +++ b/layouts/v7/skins/tools/style.css @@ -4402,6 +4402,22 @@ form[name="notification_settings"] .select2-choice { width: 100%; border: 1px solid #dcdcdc; } +#tagCloud .tag { + color: #5ea9dd; + padding: 0px; + background-color: #FFFFFF; + border-color: #FFFFFF; + border-radius: 0px; + margin: 3px; +} +#tagCloud .tag[data-type="public"] { + color: #3cb878; +} +#tagCloud .tag .tagName { + margin: 3px; + max-width: 80px; + vertical-align: bottom; +} #s2id_memberList li > div, .groupMembersColors li > div { margin-left: 10px; diff --git a/layouts/v7/skins/vtiger/style.less b/layouts/v7/skins/vtiger/style.less index 2e602184a89c05f201ec5542448ce3dd424084a0..1e320a8fa8697beb413dbc6ecafe1f9fae4c6076 100644 --- a/layouts/v7/skins/vtiger/style.less +++ b/layouts/v7/skins/vtiger/style.less @@ -5109,7 +5109,24 @@ form[name="notification_settings"] .select2-choice { border : 1px solid #dcdcdc; } } -} +} +#tagCloud { + .tag { + background-color: @white; + border-color: @white; + border-radius: 0px; + color : #5ea9dd; + &[data-type="public"] { + color : #3cb878; + } + margin: 3px; + .tagName { + margin: 3px; + max-width: 80px; + vertical-align: bottom; + } + } +} /******************************************* ********** Groups view styles ******** diff --git a/modules/Settings/LayoutEditor/models/Field.php b/modules/Settings/LayoutEditor/models/Field.php index 2d0032786077df010a4bade0de868a039284f4e6..25f7b080ac42d192a1af4bdd3e6a414ad231c7c3 100644 --- a/modules/Settings/LayoutEditor/models/Field.php +++ b/modules/Settings/LayoutEditor/models/Field.php @@ -308,7 +308,7 @@ class Settings_LayoutEditor_Field_Model extends Vtiger_Field_Model { $blockId = array($blockId); } - $query = 'SELECT * FROM vtiger_field WHERE block IN('. generateQuestionMarks($blockId) .') AND vtiger_field.displaytype IN (1,2,4) ORDER BY sequence'; + $query = 'SELECT * FROM vtiger_field WHERE block IN('. generateQuestionMarks($blockId) .') AND vtiger_field.displaytype IN (1,2,4,5) ORDER BY sequence'; $result = $db->pquery($query, $blockId); $numOfRows = $db->num_rows($result); diff --git a/modules/Vtiger/dashboards/TagCloud.php b/modules/Vtiger/dashboards/TagCloud.php index 61910fd61f67c838c4cedf4f8f8b4b56ec7df8e1..bff60fe34decef272eb75e7a9137776aa4f52bff 100644 --- a/modules/Vtiger/dashboards/TagCloud.php +++ b/modules/Vtiger/dashboards/TagCloud.php @@ -34,7 +34,7 @@ class Vtiger_TagCloud_Dashboard extends Vtiger_IndexAjax_View { $widget = Vtiger_Widget_Model::getInstance($linkId, $currentUser->getId()); - $tags = Vtiger_Tag_Model::getAll($currentUser->id); + $tags = Vtiger_Tag_Model::getAllUserTags($currentUser->getId()); //Include special script and css needed for this widget $viewer->assign('SCRIPTS',$this->getHeaderScripts($request)); diff --git a/pkg/vtiger/modules/EmailTemplates/modules/EmailTemplates/models/ListView.php b/pkg/vtiger/modules/EmailTemplates/modules/EmailTemplates/models/ListView.php index f183e78cf1a7599c1dd0ee0daf0d04f4eef133a9..a039ab10dda689ea0e35eb1ddd030b27843b10f1 100644 --- a/pkg/vtiger/modules/EmailTemplates/modules/EmailTemplates/models/ListView.php +++ b/pkg/vtiger/modules/EmailTemplates/modules/EmailTemplates/models/ListView.php @@ -13,7 +13,7 @@ class EmailTemplates_ListView_Model extends Vtiger_ListView_Model { private $querySelectColumns = array('templatename, foldername, subject', 'systemtemplate', 'module', 'description'); private $listViewColumns = array('templatename', 'subject', 'description', 'module'); - public function addColumnToSelectCaluse($columName) { + public function addColumnToSelectClause($columName) { if (!is_array($columName)) $columNameList = array($columName); else diff --git a/pkg/vtiger/modules/EmailTemplates/modules/EmailTemplates/views/Popup.php b/pkg/vtiger/modules/EmailTemplates/modules/EmailTemplates/views/Popup.php index 0179f97e45168a4a06412d7b1f6f45612d0aea6c..d5e561d00d86940c6fe9ad7209e4273b91112f29 100644 --- a/pkg/vtiger/modules/EmailTemplates/modules/EmailTemplates/views/Popup.php +++ b/pkg/vtiger/modules/EmailTemplates/modules/EmailTemplates/views/Popup.php @@ -33,7 +33,7 @@ class EmailTemplates_Popup_View extends Vtiger_Popup_View { $listViewModel = EmailTemplates_ListView_Model::getInstance($moduleName, $cvId); //add body to select clause so that we can retrive data after click in the popup - $listViewModel->addColumnToSelectCaluse('body'); + $listViewModel->addColumnToSelectClause('body'); $linkParams = array('MODULE' => $moduleName, 'ACTION' => $request->get('view'), 'CVID' => $cvId); $linkModels = $listViewModel->getListViewMassActions($linkParams); $pagingModel = new Vtiger_Paging_Model(); diff --git a/vtlib/Vtiger/Link.php b/vtlib/Vtiger/Link.php index df90bd440a1b81fe6eef7d3ef9984ddb87557995..c006fb5075b2ab9152f6462249441e7297a1ddc2 100644 --- a/vtlib/Vtiger/Link.php +++ b/vtlib/Vtiger/Link.php @@ -286,5 +286,29 @@ class Vtiger_Link { return $user->is_admin == 'on' || $user->column_fields['is_admin'] == 'on'; } + static function updateLink($tabId, $linkId, $linkInfo = array()) { + if ($linkInfo && is_array($linkInfo)) { + $db = PearDatabase::getInstance(); + $result = $db->pquery('SELECT 1 FROM vtiger_links WHERE tabid=? AND linkid=?', array($tabId, $linkId)); + if ($db->num_rows($result)) { + $columnsList = $db->getColumnNames('vtiger_links'); + $isColumnUpdate = false; + + $sql = 'UPDATE vtiger_links SET '; + foreach ($linkInfo as $column => $columnValue) { + if (in_array($column, $columnsList)) { + $columnValue = ($column == 'sequence') ? intval($columnValue) : $columnValue; + $sql .= "$column='$columnValue',"; + $isColumnUpdate = true; + } + } + + if ($isColumnUpdate) { + $sql = trim($sql, ',').' WHERE tabid=? AND linkid=?'; + $db->pquery($sql, array($tabId, $linkId)); + } + } + } + } } ?>