X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=WEB-INF%2Ftemplates%2Fexpenses.tpl;h=d210507999b28999f44dc1708c1a29ca295a5ea8;hb=e2b992aea6edc4a734ddb751103101e2450f3b20;hp=a64fbc269c21ea18b69ca70988ec370dc8145ba1;hpb=2a998c95dd9e86a9ad57939b056b62cab7402b08;p=timetracker.git diff --git a/WEB-INF/templates/expenses.tpl b/WEB-INF/templates/expenses.tpl index a64fbc26..d2105079 100644 --- a/WEB-INF/templates/expenses.tpl +++ b/WEB-INF/templates/expenses.tpl @@ -6,25 +6,33 @@ // project_names[325] = "Time Tracker"; // Project name. // Prepare an array of project ids for clients. -project_ids = new Array(); +var project_ids = new Array(); {foreach $client_list as $client} project_ids[{$client.id}] = "{$client.projects}"; {/foreach} // Prepare an array of project names. -project_names = new Array(); +var project_names = new Array(); {foreach $project_list as $project} project_names[{$project.id}] = "{$project.name|escape:'javascript'}"; {/foreach} // We'll use this array to populate project dropdown when client is not selected. var idx = 0; -projects = new Array(); +var projects = new Array(); {foreach $project_list as $project} projects[idx] = new Array("{$project.id}", "{$project.name|escape:'javascript'}"); idx++; {/foreach} // Mandatory top option for project dropdown. -empty_label_project = '{$i18n.dropdown.select|escape:'javascript'}'; +var 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). @@ -66,6 +74,34 @@ 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"); + + // 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 + cost_control.value = (quantity_control.value * defined_expenses[dropdown.selectedIndex - 1][2]).toFixed(2); + } +} {$forms.expensesForm.open} @@ -81,7 +117,7 @@ function get_date() { {/if} {if $user->isPluginEnabled('cl')}
{$i18n.label.day_total}: {$user->currency|escape:'html'} {$day_total} | +{$i18n.label.day_total}: {$user->currency|escape} {$day_total} |