diff --git a/modules/storm/stormexpense/stormexpense.admin.inc b/modules/storm/stormexpense/stormexpense.admin.inc
index 7ecab9f..e131aa9 100644
--- a/modules/storm/stormexpense/stormexpense.admin.inc
+++ b/modules/storm/stormexpense/stormexpense.admin.inc
@@ -55,20 +55,12 @@ function stormexpense_list() {
$i->type = 'stormexpense';
$report_attrs = array(
- 'onclick' => "storm_popup(this, 'expense_list_form_report', 'Expenses', 300, 244, 'stormexpense_list_form_report', 'l'); return false;",
+ 'onclick' => "storm_popup(this, 'expense_list_form_report', '" . t('Expenses') . "', 300, 244, 'stormexpense_list_form_report', 'l'); return false;",
);
$header = array(
array(
- 'data' => t('Organization'),
- 'field' => 'sex.organization_title',
- ),
- array(
- 'data' => t('Project'),
- 'field' => 'sex.project_title',
- ),
- array(
- 'data' => t('Title'),
+ 'data' => t('Title') . ' / ' . t('Organization') . ' » ' . t('Project') . ' » ' . t('Detail'),
'field' => 'n.title',
),
array(
@@ -407,7 +399,7 @@ function stormexpense_list_form_report_submit($form, &$form_state) {
}
function stormexpense_list_report($report, $language) {
- $timetrackings = array();
+ $expenses = array();
$s = "SELECT n.*, sex.* FROM {node} AS n INNER JOIN {stormexpense} AS sex ON n.vid=sex.vid WHERE n.status=1 AND n.type='stormexpense' ";
$s = stormexpense_access_sql($s, array());
@@ -415,8 +407,8 @@ function stormexpense_list_report($report, $language) {
$sql = isset($_SESSION['stormexpense_list_filter']['sql']) ? $_SESSION['stormexpense_list_filter']['sql'] : $s;
$args = isset($_SESSION['stormexpense_list_filter']['args']) ? $_SESSION['stormexpense_list_filter']['args'] : array();
+
$r = db_query($sql, $args);
- $expenses = array();
while ($e = db_fetch_object($r)) {
$expense = node_load($e->nid);
$expenses[] = $expense;
diff --git a/modules/storm/stormexpense/stormexpense.module b/modules/storm/stormexpense/stormexpense.module
index be8d2c3..16eea56 100644
--- a/modules/storm/stormexpense/stormexpense.module
+++ b/modules/storm/stormexpense/stormexpense.module
@@ -202,7 +202,7 @@ function stormexpense_menu() {
$items['expenses/report/%/%'] = array(
'title' => 'Expenses',
'description' => 'SuiteDesk expenses',
- 'page arguments' => array(3, 4),
+ 'page arguments' => array(2, 3),
'page callback' => 'stormexpense_list_report',
'access arguments' => array('Storm expense: access'),
'type' => MENU_CALLBACK,
diff --git a/modules/storm/stormexpense/stormexpense.theme.inc b/modules/storm/stormexpense/stormexpense.theme.inc
index d0b641e..54dc4c9 100644
--- a/modules/storm/stormexpense/stormexpense.theme.inc
+++ b/modules/storm/stormexpense/stormexpense.theme.inc
@@ -7,11 +7,15 @@
function theme_stormexpense_list($header, $expenses, $totals) {
$rows = array();
foreach ($expenses as $expense) {
+ $expensedate = format_date($expense->expensedate, 'small');
+ $expensedate = substr($expensedate, 0, strpos($expensedate, ' '));
$rows[] = array(
- l($expense->organization_title, 'node/'. $expense->organization_nid),
- l($expense->project_title, 'node/'. $expense->project_nid),
- l($expense->title, 'node/'. $expense->nid),
- format_date($expense->expensedate, 'custom', 'Y-m-d'),
+ '' . l($expense->title, 'node/'. $expense->nid) . theme('mark', node_mark($expense->nid, $expense->changed)) . '
' .
+ l($expense->organization_title, 'node/'. $expense->organization_nid) .
+ (!empty($expense->project_title) ? ' » ' . l($expense->project_title, 'node/'. $expense->project_nid) : '' ) .
+ (!empty($expense->task_title) ? '
' . l($expense->task_title, 'node/'. $expense->task_nid) . ' (' . t('task') . ')' : '' ) .
+ (!empty($expense->ticket_title) ? '
' . l($expense->ticket_title, 'node/'. $expense->ticket_nid) . ' (' . t('ticket') . ')' : '' ),
+ $expensedate,
array('data' => sprintf('%.2f', $expense->total), 'align' => 'right'),
array(
'data' => storm_icon_edit_node($expense, $_GET) .' '. storm_icon_delete_node($expense, $_GET),
@@ -19,7 +23,7 @@ function theme_stormexpense_list($header, $expenses, $totals) {
),
);
}
- $o = theme('table', $header, $rows);
+ $o = theme('table', $header, $rows, array('id' => 'stormexpenses'));
$header = array(
array(
@@ -253,11 +257,13 @@ function theme_stormexpense_list_report($report, $language, $expenses) {
$expenses_total = 0;
$rows = array();
foreach ($expenses as $expense) {
+ $expensedate = format_date($expense->expensedate, 'small');
+ $expensedate = substr($expensedate, 0, strpos($expensedate, ' '));
$rows[] = array(
check_plain($expense->organization_title),
check_plain($expense->project_title),
check_plain($expense->title),
- format_date($expense->expensedate, 'custom', 'Y-m-d'),
+ $expensedate,
array('data' => sprintf('%.2f', $expense->total), 'align' => 'right'),
);
$expenses_total += $expense->total;
@@ -273,10 +279,12 @@ function theme_stormexpense_list_report($report, $language, $expenses) {
t('Total', array(), $language));
$expenses_total = 0;
foreach ($expenses as $expense) {
+ $expensedate = format_date($expense->expensedate, 'small');
+ $expensedate = substr($expensedate, 0, strpos($expensedate, ' '));
$rows[] = array(
check_plain($expense->project_title),
check_plain($expense->title),
- format_date($expense->expensedate, 'custom', 'Y-m-d'),
+ $expensedate,
array('data' => sprintf('%.2f', $expense->total), 'align' => 'right'),
);
$expenses_total += $expense->total;
@@ -287,18 +295,20 @@ function theme_stormexpense_list_report($report, $language, $expenses) {
case 'for_organization_w_task':
$organization = node_load($_SESSION['stormexpense_list_filter']['organization_nid']);
$header = array(
- t('Project', 'expense', array(), $language),
- t('Task', 'expense', array(), $language),
- t('Title', 'expense', array(), $language),
- t('Date', 'expense', array(), $language),
- t('Total', 'expense', array(), $language));
+ t('Project', array(), $language),
+ t('Task', array(), $language),
+ t('Title', array(), $language),
+ t('Date', array(), $language),
+ t('Total', array(), $language));
$total_duration = 0;
foreach ($expenses as $expense) {
+ $expensedate = format_date($expense->expensedate, 'small');
+ $expensedate = substr($expensedate, 0, strpos($expensedate, ' '));
$rows[] = array(
check_plain($expense->project_title),
check_plain($expense->task_title),
check_plain($expense->title),
- format_date($expense->expensedate, 'custom', 'Y-m-d'),
+ $expensedate,
array('data' => sprintf('%.2f', $expense->total), 'align' => 'right'),
);
$expenses_total += $expense->total;
@@ -311,16 +321,18 @@ function theme_stormexpense_list_report($report, $language, $expenses) {
$project = node_load($_SESSION['stormexpense_list_filter']['project_nid']);
$header = array(
- t('Task', 'expense', array(), $language),
- t('Title', 'expense', array(), $language),
- t('Date', 'expense', array(), $language),
- t('Total', 'expense', array(), $language));
+ t('Task', array(), $language),
+ t('Title', array(), $language),
+ t('Date', array(), $language),
+ t('Total', array(), $language));
$total_duration = 0;
foreach ($expenses as $expense) {
+ $expensedate = format_date($expense->expensedate, 'small');
+ $expensedate = substr($expensedate, 0, strpos($expensedate, ' '));
$rows[] = array(
check_plain($expense->task_title),
check_plain($expense->title),
- format_date($expense->expensedate, 'custom', 'Y-m-d'),
+ $expensedate,
array('data' => sprintf('%.2f', $expense->total), 'align' => 'right'),
);
$expenses_total += $expense->total;
diff --git a/modules/storm/stormtask/stormtask.module b/modules/storm/stormtask/stormtask.module
index 6f36b81..43f16a6 100644
--- a/modules/storm/stormtask/stormtask.module
+++ b/modules/storm/stormtask/stormtask.module
@@ -446,9 +446,8 @@ function stormtask_form(&$node) {
$breadcrumb[] = l(t('Home'), '');
if (array_key_exists('project_nid', $_GET)) {
- $breadcrumb[] = l(t('Projects'), 'projects');
$project = node_load($_GET['project_nid']);
- $breadcrumb[] = l($project->title, 'node/'. $project->nid);
+ $breadcrumb[] = l(t('Projects'), 'projects') . ' (' . l($project->title, 'node/'. $project->nid) . ')';
$breadcrumb[] = l(t('Project tasks'), 'node/'. $project->nid .'/tasks');
}
else {
@@ -1006,10 +1005,8 @@ function stormtask_validate(&$node) {
function stormtask_view($node, $teaser = FALSE, $page = FALSE) {
$breadcrumb = array();
$breadcrumb[] = l(t('Home'), '');
- $breadcrumb[] = l(t('Projects'), 'projects');
- $breadcrumb[] = l($node->project_title, 'node/'. $node->project_nid);
- $breadcrumb[] = l(t('Tasks'), 'tasks');
- $breadcrumb[] = l(t('Project tasks'), 'node/'. $node->project_nid .'/tasks');
+ $breadcrumb[] = l(t('Projects'), 'projects') . ' (' . l($node->project_title, 'node/'. $node->project_nid) . ')';
+ $breadcrumb[] = l(t('Tasks'), 'tasks') . ' (' . l(t('Project tasks'), 'node/'. $node->project_nid .'/tasks') . ')';
drupal_set_breadcrumb($breadcrumb);
diff --git a/modules/storm/stormtimetracking/stormtimetracking.admin.inc b/modules/storm/stormtimetracking/stormtimetracking.admin.inc
index be5e344..cb354ed 100644
--- a/modules/storm/stormtimetracking/stormtimetracking.admin.inc
+++ b/modules/storm/stormtimetracking/stormtimetracking.admin.inc
@@ -415,10 +415,10 @@ function stormtimetracking_list_form_report_submit($form, &$form_state) {
function stormtimetracking_list_report($report, $language) {
$timetrackings = array();
- $s = $_SESSION['stormtimetracking_list_filter']['sql'];
+ $sql = $_SESSION['stormtimetracking_list_filter']['sql'];
$args = $_SESSION['stormtimetracking_list_filter']['args'];
- $r = db_query($s, $args);
+ $r = db_query($sql, $args);
while ($t = db_fetch_object($r)) {
$timetracking = node_load($t->nid);
$timetrackings[] = $timetracking;
diff --git a/modules/storm/stormtimetracking/stormtimetracking.theme.inc b/modules/storm/stormtimetracking/stormtimetracking.theme.inc
index 8aed74f..28fd567 100644
--- a/modules/storm/stormtimetracking/stormtimetracking.theme.inc
+++ b/modules/storm/stormtimetracking/stormtimetracking.theme.inc
@@ -168,6 +168,7 @@ function theme_stormtimetracking_list_report($report, $language, $timetrackings)
t('Date', array(), $language),
t('Billing duration (hours)', array(), $language));
$total_billing_duration = 0;
+ $rows = array();
foreach ($timetrackings as $timetracking) {
$rows[] = array(
check_plain($timetracking->organization_title),
diff --git a/themes/zuitedesk/css/suitedesk.css b/themes/zuitedesk/css/suitedesk.css
index 20c5f2e..bf6d913 100644
--- a/themes/zuitedesk/css/suitedesk.css
+++ b/themes/zuitedesk/css/suitedesk.css
@@ -1079,6 +1079,15 @@ body.i18n-es .date-nav div.date-prev {
margin-right: .4em;
}
+/*
+ * "SuiteDesk Expenses" list & filter.
+ */
+table#stormexpenses td .expense-title {
+ line-height: 1em;
+ font-size: 1.2em;
+ font-weight: bold;
+}
+
/*
* "SuiteDesk" node.
*/
diff --git a/themes/zuitedesk/zuitedesk.info b/themes/zuitedesk/zuitedesk.info
index c529cb8..0734a50 100644
--- a/themes/zuitedesk/zuitedesk.info
+++ b/themes/zuitedesk/zuitedesk.info
@@ -1,6 +1,6 @@
name = SuiteDesk Theme
description = SuiteDesk Theme Zen.
-version = 0.2.49
+version = 0.2.50
screenshot = screenshot.png