X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=WEB-INF%2Ftemplates%2Fmobile%2Fexpenses.tpl;h=a6aa66d99ca7c15c32ceface758b4e3aacdbddaa;hb=aeb30899d6ec142220d83b34fd8f6c68c05e8e90;hp=bf99d801e739a3b96257e14d38b3c27aef51f626;hpb=ee49ee74b2a7d3c6daaa2d4bc6397b0c89e3099b;p=timetracker.git diff --git a/WEB-INF/templates/mobile/expenses.tpl b/WEB-INF/templates/mobile/expenses.tpl index bf99d801..a6aa66d9 100644 --- a/WEB-INF/templates/mobile/expenses.tpl +++ b/WEB-INF/templates/mobile/expenses.tpl @@ -26,6 +26,14 @@ projects = new Array(); // Mandatory top option for project dropdown. empty_label_project = '{$i18n.dropdown.select|escape:'javascript'}'; +// Prepare an array of predefined expenses. +idx = 0; +var defined_expenses = new Array(); +{foreach $predefined_expenses as $predefined_expense} + defined_expenses[idx] = new Array("{$predefined_expense.id}", "{$predefined_expense.name|escape:'javascript'}", "{$predefined_expense.cost}"); + idx++; +{/foreach} + // The fillProjectDropdown function populates the project combo box with // projects associated with a selected client (client id is passed here as id). function fillProjectDropdown(id) { @@ -66,6 +74,42 @@ function get_date() { var date = new Date(); return date.strftime("%Y-%m-%d"); } + +// The recalculateCost function recalculates cost based on the current selection +// of predefined expense and quantity and also changes the comment accordingly. +function recalculateCost() { + var quantity_control = document.getElementById("quantity"); + // Set quantity to 1 if it is not set already. + if (!quantity_control.value) { + quantity_control.value = "1"; + } + + var comment_control = document.getElementById("item_name"); + var cost_control = document.getElementById("cost"); + var replaceDecimalMark = ("." != "{$user->getDecimalMark()}"); + + // Calculate cost. + var dropdown = document.getElementById("predefined_expense"); + if (dropdown.selectedIndex == 0) { + quantity_control.value = ""; + comment_control.value = ""; + cost_control.value = ""; + } else { + comment_control.value = defined_expenses[dropdown.selectedIndex - 1][1] + " - " + quantity_control.value; + var quantity = quantity_control.value; + if (isNaN(quantity)) + cost_control.value = ""; + else { + var expenseCost = defined_expenses[dropdown.selectedIndex - 1][2]; + if (replaceDecimalMark) + expenseCost = expenseCost.replace("{$user->getDecimalMark()}", "."); + var newCost = (quantity_control.value * expenseCost).toFixed(2); + if (replaceDecimalMark) + newCost = newCost.replace(".", "{$user->getDecimalMark()}"); + cost_control.value = newCost; + } + } +} @@ -82,10 +126,10 @@ function get_date() { -{if $on_behalf_control} +{if $user_dropdown} - + {/if} {if $user->isPluginEnabled('cl')} @@ -94,11 +138,21 @@ function get_date() { {/if} -{if ($smarty.const.MODE_PROJECTS == $user->tracking_mode || $smarty.const.MODE_PROJECTS_AND_TASKS == $user->tracking_mode)} +{if $show_project} +{/if} +{if $predefined_expenses} + + + + + + + + {/if} @@ -106,7 +160,7 @@ function get_date() { - +
{$i18n.label.user}:{$forms.expensesForm.onBehalfUser.control}{$forms.expensesForm.user.control}
{$forms.expensesForm.client.control}
{$i18n.label.project} (*): {$forms.expensesForm.project.control}
{$i18n.label.expense}:{$forms.expensesForm.predefined_expense.control}
{$i18n.label.quantity}:{$forms.expensesForm.quantity.control}
{$i18n.label.item} (*):
{$i18n.label.cost} (*):{$forms.expensesForm.cost.control} {$user->currency|escape:'html'}{$forms.expensesForm.cost.control} {$user->getCurrency()|escape}
@@ -135,35 +189,32 @@ function get_date() { {if $user->isPluginEnabled('cl')} {$i18n.label.client} {/if} - {if ($smarty.const.MODE_PROJECTS == $user->tracking_mode || $smarty.const.MODE_PROJECTS_AND_TASKS == $user->tracking_mode)} + {if $show_project} {$i18n.label.project} {/if} {$i18n.label.item} {$i18n.label.cost} - {$i18n.label.edit} {foreach $expense_items as $item} - + {if $user->isPluginEnabled('cl')} - {$item.client|escape:'html'} + {$item.client|escape} {/if} - {if ($smarty.const.MODE_PROJECTS == $user->tracking_mode || $smarty.const.MODE_PROJECTS_AND_TASKS == $user->tracking_mode)} - {$item.project|escape:'html'} + {if $show_project} + {$item.project|escape} {/if} - {$item.item|escape:'html'} - {$item.cost} - {if $item.invoice_id} {else}{$i18n.label.edit}{/if} + {if $item.invoice_id} {$item.item|escape} {else}{$item.item|escape}{/if} + {$item.cost} {/foreach} - +
{$i18n.label.day_total}: {$user->currency|escape:'html'} {$day_total}{$i18n.label.day_total}: {$user->getCurrency()|escape} {$day_total}
{/if} - {$forms.expensesForm.close}