X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=inline;f=WEB-INF%2Ftemplates%2Fexpenses.tpl;h=d210507999b28999f44dc1708c1a29ca295a5ea8;hb=1c708528cc7c5202bb5f26d45c71e32d638863a7;hp=cfc1fe67295b318722aac8d80ff51465dfced186;hpb=a781da5661a1932521e0d1feb4be340b97edce9a;p=timetracker.git
diff --git a/WEB-INF/templates/expenses.tpl b/WEB-INF/templates/expenses.tpl
index cfc1fe67..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}
@@ -79,9 +115,9 @@ function get_date() {
{$forms.expensesForm.onBehalfUser.control} |
{/if}
-{if in_array('cl', explode(',', $user->plugins))}
+{if $user->isPluginEnabled('cl')}
- {$i18n.label.client}{if in_array('cm', explode(',', $user->plugins))} (*){/if}: |
+ {$i18n.label.client}{if $user->isPluginEnabled('cm')} (*){/if}: |
{$forms.expensesForm.client.control} |
{/if}
@@ -90,14 +126,25 @@ function get_date() {
{$i18n.label.project} (*): |
{$forms.expensesForm.project.control} |
+{/if}
+{if $predefined_expenses}
+
+
+ {$i18n.label.expense}: |
+ {$forms.expensesForm.predefined_expense.control} |
+
+
+ {$i18n.label.quantity}: |
+ {$forms.expensesForm.quantity.control} |
+
{/if}
- {$i18n.label.item} (*): |
+ {$i18n.label.comment} (*): |
{$forms.expensesForm.item_name.control} |
{$i18n.label.cost} (*): |
- {$forms.expensesForm.cost.control} {$user->currency|escape:'html'} |
+ {$forms.expensesForm.cost.control} {$user->currency|escape} |
@@ -121,7 +168,7 @@ function get_date() {
{if $expense_items}
- {if in_array('cl', explode(',', $user->plugins))}
+ {if $user->isPluginEnabled('cl')}
{/if}
{if ($smarty.const.MODE_PROJECTS == $user->tracking_mode || $smarty.const.MODE_PROJECTS_AND_TASKS == $user->tracking_mode)}
@@ -133,21 +180,21 @@ function get_date() {
{foreach $expense_items as $item}
- {if in_array('cl', explode(',', $user->plugins))}
- {$item.client|escape:'html'} |
+ {if $user->isPluginEnabled('cl')}
+ {$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'} |
+ {$item.project|escape} |
{/if}
- {$item.item|escape:'html'} |
- {$item.cost} |
- {if $item.invoice_id} {else}{$i18n.label.edit}{/if} |
+ {$item.item|escape} |
+ {$item.cost} |
+ {if $item.invoice_id} {else}{$i18n.label.edit}{/if} |
{/foreach}
- {$i18n.label.day_total}: {$user->currency|escape:'html'} {$day_total} |
+ {$i18n.label.day_total}: {$user->currency|escape} {$day_total} |
{/if}