Refactoring. Moved week_menu config option to plugin config.
authorNik Okuntseff <support@anuko.com>
Mon, 29 Apr 2019 16:09:21 +0000 (16:09 +0000)
committerNik Okuntseff <support@anuko.com>
Mon, 29 Apr 2019 16:09:21 +0000 (16:09 +0000)
42 files changed:
WEB-INF/lib/ttUser.class.php
WEB-INF/lib/ttWeekViewHelper.class.php
WEB-INF/resources/ca.lang.php
WEB-INF/resources/cs.lang.php
WEB-INF/resources/da.lang.php
WEB-INF/resources/de.lang.php
WEB-INF/resources/en.lang.php
WEB-INF/resources/es.lang.php
WEB-INF/resources/et.lang.php
WEB-INF/resources/fa.lang.php
WEB-INF/resources/fi.lang.php
WEB-INF/resources/fr.lang.php
WEB-INF/resources/gr.lang.php
WEB-INF/resources/he.lang.php
WEB-INF/resources/hu.lang.php
WEB-INF/resources/it.lang.php
WEB-INF/resources/ja.lang.php
WEB-INF/resources/ko.lang.php
WEB-INF/resources/nl.lang.php
WEB-INF/resources/no.lang.php
WEB-INF/resources/pl.lang.php
WEB-INF/resources/pt-br.lang.php
WEB-INF/resources/pt.lang.php
WEB-INF/resources/ro.lang.php
WEB-INF/resources/ru.lang.php
WEB-INF/resources/sk.lang.php
WEB-INF/resources/sl.lang.php
WEB-INF/resources/sr.lang.php
WEB-INF/resources/sv.lang.php
WEB-INF/resources/tr.lang.php
WEB-INF/resources/zh-cn.lang.php
WEB-INF/resources/zh-tw.lang.php
WEB-INF/templates/display_options.tpl
WEB-INF/templates/footer.tpl
WEB-INF/templates/header.tpl
WEB-INF/templates/week.tpl
WEB-INF/templates/week_view.tpl
display_options.php
group_edit.php
plugins.php
week.php
week_view.php

index 14e7007..62c786c 100644 (file)
@@ -248,6 +248,11 @@ class ttUser {
     return ($this->behalfGroup ? $this->behalfGroup->configHelper->getConfig() : $this->configHelper->getConfig());
   }
 
+  // getConfigHelper returns ttConfigHelper instance for active group.
+  function getConfigHelper() {
+    return ($this->behalfGroup ? $this->behalfGroup->configHelper : $this->configHelper);
+  }
+
   // getConfigOption returns true if an option is defined for group.
   // This helps us keeping a set of user attributes smaller.
   // We determine whether the option is set only on pages that need to know.
index 1144cea..3486481 100644 (file)
@@ -167,6 +167,7 @@ class ttWeekViewHelper {
     global $i18n;
 
     $dataArray = array();
+    $includeNotes = $user->isOptionEnabled('week_notes');
 
     // Construct the first row for a brand new entry.
     $dataArray[] = array('row_id' => null,'label' => $i18n->get('form.week.new_entry').':'); // Insert row.
@@ -175,7 +176,7 @@ class ttWeekViewHelper {
       $control_id = '0_'. $dayHeaders[$i];
       $dataArray[0][$dayHeaders[$i]] = array('control_id' => $control_id, 'tt_log_id' => null,'duration' => null);
     }
-    if ($user->isPluginEnabled('wvns')) {
+    if ($includeNotes) {
       // Construct the second row for daily comments for a brand new entry.
       $dataArray[] = array('row_id' => null,'label' => $i18n->get('label.notes').':'); // Insert row.
       // Insert empty cells with proper control ids.
@@ -209,7 +210,7 @@ class ttWeekViewHelper {
           $dataArray[$pos][$dayHeaders[$i]] = array('control_id' => $control_id, 'tt_log_id' => null,'duration' => null);
         }
         // Insert row for comments.
-        if ($user->isPluginEnabled('wvns')) {
+        if ($includeNotes) {
           $dataArray[] = array('row_id' => $row_id.'_notes','label' => $i18n->get('label.notes').':');
           $pos++;
           // Insert empty cells with proper control ids.
@@ -223,7 +224,7 @@ class ttWeekViewHelper {
       // Insert actual cell data from $record (one cell only).
       $dataArray[$pos][$day_header] = array('control_id' => $pos.'_'. $day_header, 'tt_log_id' => $record['id'],'duration' => $record['duration']);
       // Insert existing comment from $record into the comment cell.
-      if ($user->isPluginEnabled('wvns')) {
+      if ($includeNotes) {
         $pos++;
         $dataArray[$pos][$day_header] = array('control_id' => $pos.'_'. $day_header, 'tt_log_id' => $record['id'],'note' => $record['comment']);
       }
@@ -273,7 +274,8 @@ class ttWeekViewHelper {
       $control_id = '0_'. $dayHeaders[$i];
       $dataArray[0][$dayHeaders[$i]] = array('control_id' => $control_id, 'tt_log_id' => null,'duration' => null);
     }
-    if ($user->isPluginEnabled('wvns')) {
+    $includeNotes = $user->isOptionEnabled('week_notes');
+    if ($includeNotes) {
       // Construct the second row for daily comments for a brand new entry.
       $dataArray[] = array('row_id' => null,'label' => $i18n->get('label.notes').':'); // Insert row.
       // Insert empty cells with proper control ids.
@@ -299,7 +301,7 @@ class ttWeekViewHelper {
           $dataArray[$pos][$dayHeaders[$i]] = array('control_id' => $control_id, 'tt_log_id' => null,'duration' => null);
         }
         // Insert row for comments.
-        if ($user->isPluginEnabled('wvns')) {
+        if ($includeNotes) {
           $dataArray[] = array('row_id' => $row_id.'_notes','label' => $i18n->get('label.notes').':');
           $pos++;
           // Insert empty cells with proper control ids.
index e24a13d..bd3af04 100644 (file)
@@ -259,6 +259,7 @@ $i18n_key_words = array(
 // 'label.paid_status' => 'Paid status',
 // 'label.paid' => 'Paid',
 // 'label.mark_paid' => 'Mark paid',
+// 'label.week_menu' => 'Week menu',
 // 'label.week_note' => 'Week note',
 // 'label.week_list' => 'Week list',
 // 'label.work_units' => 'Work units',
index 2aa9ebb..2d6f06c 100644 (file)
@@ -269,6 +269,7 @@ $i18n_key_words = array(
 // 'label.paid_status' => 'Paid status',
 // 'label.paid' => 'Paid',
 // 'label.mark_paid' => 'Mark paid',
+// 'label.week_menu' => 'Week menu',
 // 'label.week_note' => 'Week note',
 // 'label.week_list' => 'Week list',
 // 'label.work_units' => 'Work units',
index aa4e97b..70b5592 100644 (file)
@@ -248,6 +248,7 @@ $i18n_key_words = array(
 // 'label.paid_status' => 'Paid status',
 // 'label.paid' => 'Paid',
 // 'label.mark_paid' => 'Mark paid',
+// 'label.week_menu' => 'Week menu',
 // 'label.week_note' => 'Week note',
 // 'label.week_list' => 'Week list',
 // 'label.work_units' => 'Work units',
index 4983758..2863b31 100644 (file)
@@ -236,6 +236,7 @@ $i18n_key_words = array(
 'label.paid_status' => 'Bezahlstatus',
 'label.paid' => 'Bezahlt',
 'label.mark_paid' => 'Als bezahlt setzen',
+// 'label.week_menu' => 'Week menu',
 'label.week_note' => 'Wochennotiz',
 'label.week_list' => 'Wochenliste',
 'label.work_units' => 'Arbeitseinheiten',
index f7d8ac4..9e5d424 100644 (file)
@@ -226,6 +226,7 @@ $i18n_key_words = array(
 'label.paid_status' => 'Paid status',
 'label.paid' => 'Paid',
 'label.mark_paid' => 'Mark paid',
+'label.week_menu' => 'Week menu',
 'label.week_note' => 'Week note',
 'label.week_list' => 'Week list',
 'label.work_units' => 'Work units',
index 97d3c50..e56faf9 100644 (file)
@@ -262,6 +262,7 @@ $i18n_key_words = array(
 // 'label.paid_status' => 'Paid status',
 // 'label.paid' => 'Paid',
 // 'label.mark_paid' => 'Mark paid',
+// 'label.week_menu' => 'Week menu',
 // 'label.week_note' => 'Week note',
 // 'label.week_list' => 'Week list',
 // 'label.work_units' => 'Work units',
index 41fe752..8166114 100644 (file)
@@ -252,6 +252,8 @@ $i18n_key_words = array(
 'label.paid_status' => 'Makse olek',
 'label.paid' => 'Makstud',
 'label.mark_paid' => 'Märgi makstuks',
+// TODO: translate the following.
+// 'label.week_menu' => 'Week menu',
 'label.week_note' => 'Nädala märge',
 'label.week_list' => 'Nädala nimekiri',
 'label.work_units' => 'Töö ühikud',
index c383122..f7bed30 100644 (file)
@@ -260,6 +260,7 @@ $i18n_key_words = array(
 // 'label.paid_status' => 'Paid status',
 // 'label.paid' => 'Paid',
 // 'label.mark_paid' => 'Mark paid',
+// 'label.week_menu' => 'Week menu',
 // 'label.week_note' => 'Week note',
 // 'label.week_list' => 'Week list',
 // 'label.work_units' => 'Work units',
index 0575033..3db44e3 100644 (file)
@@ -252,6 +252,7 @@ $i18n_key_words = array(
 // 'label.paid_status' => 'Paid status',
 // 'label.paid' => 'Paid',
 // 'label.mark_paid' => 'Mark paid',
+// 'label.week_menu' => 'Week menu',
 // 'label.week_note' => 'Week note',
 // 'label.week_list' => 'Week list',
 // 'label.work_units' => 'Work units',
index b8eb0d5..b037216 100644 (file)
@@ -246,6 +246,7 @@ $i18n_key_words = array(
 // 'label.paid_status' => 'Paid status',
 // 'label.paid' => 'Paid',
 // 'label.mark_paid' => 'Mark paid',
+// 'label.week_menu' => 'Week menu',
 // 'label.week_note' => 'Week note',
 // 'label.week_list' => 'Week list',
 // 'label.work_units' => 'Work units',
index 49ab0a1..0e504e0 100644 (file)
@@ -238,6 +238,8 @@ $i18n_key_words = array(
 'label.paid_status' => 'Κατάσταση πληρωμής',
 'label.paid' => 'Πληρωμένο',
 'label.mark_paid' => 'Σήμανση πληρωμένα',
+// TODO: translate the following.
+// 'label.week_menu' => 'Week menu',
 'label.week_note' => 'Σημείωση εβδομάδας',
 'label.week_list' => 'Λίστα εβδομάδων',
 // TODO: translate the following.
index d8e99d6..e3ffac9 100644 (file)
@@ -268,6 +268,7 @@ $i18n_key_words = array(
 // 'label.paid_status' => 'Paid status',
 // 'label.paid' => 'Paid',
 // 'label.mark_paid' => 'Mark paid',
+// 'label.week_menu' => 'Week menu',
 // 'label.week_note' => 'Week note',
 // 'label.week_list' => 'Week list',
 // 'label.work_units' => 'Work units',
index 441db3f..8cd3817 100644 (file)
@@ -265,6 +265,7 @@ $i18n_key_words = array(
 // 'label.paid_status' => 'Paid status',
 // 'label.paid' => 'Paid',
 // 'label.mark_paid' => 'Mark paid',
+// 'label.week_menu' => 'Week menu',
 // 'label.week_note' => 'Week note',
 // 'label.week_list' => 'Week list',
 // 'label.work_units' => 'Work units',
index 4b76fef..311e2c5 100644 (file)
@@ -242,6 +242,8 @@ $i18n_key_words = array(
 'label.paid_status' => 'Stato pagamento',
 'label.paid' => 'Pagato',
 'label.mark_paid' => 'Segna come pagato',
+// TODO: translate the following.
+// 'label.week_menu' => 'Week menu',
 'label.week_note' => 'Nota settimanale',
 'label.week_list' => 'Lista settimanale',
 // TODO: translate the following.
index 6db1741..dbb6b32 100644 (file)
@@ -269,6 +269,7 @@ $i18n_key_words = array(
 // 'label.paid_status' => 'Paid status',
 // 'label.paid' => 'Paid',
 // 'label.mark_paid' => 'Mark paid',
+// 'label.week_menu' => 'Week menu',
 // 'label.week_note' => 'Week note',
 // 'label.week_list' => 'Week list',
 // 'label.work_units' => 'Work units',
index d8ed7b8..c39a44f 100644 (file)
@@ -269,6 +269,7 @@ $i18n_key_words = array(
 // 'label.paid_status' => 'Paid status',
 // 'label.paid' => 'Paid',
 // 'label.mark_paid' => 'Mark paid',
+// 'label.week_menu' => 'Week menu',
 // 'label.week_note' => 'Week note',
 // 'label.week_list' => 'Week list',
 // 'label.work_units' => 'Work units',
index 859741a..dbfaccb 100644 (file)
@@ -226,6 +226,8 @@ $i18n_key_words = array(
 'label.paid_status' => 'Status van betaling',
 'label.paid' => 'Betaald',
 'label.mark_paid' => 'Markeer als betaald',
+// TODO: translate the following.
+// 'label.week_menu' => 'Week menu',
 'label.week_note' => 'Week aantekening',
 'label.week_list' => 'Week overzicht',
 'label.work_units' => 'Werk eenheid',
index 5a108fc..0ea49bb 100644 (file)
@@ -267,6 +267,7 @@ $i18n_key_words = array(
 // 'label.paid_status' => 'Paid status',
 // 'label.paid' => 'Paid',
 // 'label.mark_paid' => 'Mark paid',
+// 'label.week_menu' => 'Week menu',
 // 'label.week_note' => 'Week note',
 // 'label.week_list' => 'Week list',
 // 'label.work_units' => 'Work units',
index 60f5e1a..00ef9c0 100644 (file)
@@ -253,6 +253,7 @@ $i18n_key_words = array(
 // 'label.paid_status' => 'Paid status',
 // 'label.paid' => 'Paid',
 // 'label.mark_paid' => 'Mark paid',
+// 'label.week_menu' => 'Week menu',
 // 'label.week_note' => 'Week note',
 // 'label.week_list' => 'Week list',
 // 'label.work_units' => 'Work units',
index 5013cde..f45dab5 100644 (file)
@@ -250,6 +250,7 @@ $i18n_key_words = array(
 // 'label.paid_status' => 'Paid status',
 // 'label.paid' => 'Paid',
 // 'label.mark_paid' => 'Mark paid',
+// 'label.week_menu' => 'Week menu',
 // 'label.week_note' => 'Week note',
 // 'label.week_list' => 'Week list',
 // 'label.work_units' => 'Work units',
index cc44e6f..27aed7b 100644 (file)
@@ -255,6 +255,7 @@ $i18n_key_words = array(
 // 'label.paid_status' => 'Paid status',
 // 'label.paid' => 'Paid',
 // 'label.mark_paid' => 'Mark paid',
+// 'label.week_menu' => 'Week menu',
 // 'label.week_note' => 'Week note',
 // 'label.week_list' => 'Week list',
 // 'label.work_units' => 'Work units',
index 94690cd..a9bb350 100644 (file)
@@ -266,6 +266,7 @@ $i18n_key_words = array(
 // 'label.paid_status' => 'Paid status',
 // 'label.paid' => 'Paid',
 // 'label.mark_paid' => 'Mark paid',
+// 'label.week_menu' => 'Week menu',
 // 'label.week_note' => 'Week note',
 // 'label.week_list' => 'Week list',
 // 'label.work_units' => 'Work units',
index 22d9a2b..c202200 100644 (file)
@@ -225,6 +225,7 @@ $i18n_key_words = array(
 'label.paid_status' => 'Статус оплаты',
 'label.paid' => 'Оплачено',
 'label.mark_paid' => 'Отметить оплату',
+'label.week_menu' => 'Меню недели',
 'label.week_note' => 'Комментарий недели',
 'label.week_list' => 'Список недели',
 'label.work_units' => 'Единицы работы',
index 664c26f..249f456 100644 (file)
@@ -256,7 +256,8 @@ $i18n_key_words = array(
 // 'label.quantity' => 'Quantity',
 // 'label.paid_status' => 'Paid status',
 // 'label.paid' => 'Paid',
-// 'button.mark_paid' => 'Mark paid',
+// 'label.mark_paid' => 'Mark paid',
+// 'label.week_menu' => 'Week menu',
 // 'label.week_note' => 'Week note',
 // 'label.week_list' => 'Week list',
 // 'label.work_units' => 'Work units',
index d9001b1..c56e11f 100644 (file)
@@ -250,6 +250,7 @@ $i18n_key_words = array(
 // 'label.paid_status' => 'Paid status',
 // 'label.paid' => 'Paid',
 // 'label.mark_paid' => 'Mark paid',
+// 'label.week_menu' => 'Week menu',
 // 'label.week_note' => 'Week note',
 // 'label.week_list' => 'Week list',
 // 'label.work_units' => 'Work units',
index 79769f9..cdb4eae 100644 (file)
@@ -251,7 +251,8 @@ $i18n_key_words = array(
 // 'label.quantity' => 'Quantity',
 // 'label.paid_status' => 'Paid status',
 // 'label.paid' => 'Paid',
-// 'button.mark_paid' => 'Mark paid',
+// 'label.mark_paid' => 'Mark paid',
+// 'label.week_menu' => 'Week menu',
 // 'label.week_note' => 'Week note',
 // 'label.week_list' => 'Week list',
 // 'label.work_units' => 'Work units',
index a442a6e..ab34828 100644 (file)
@@ -247,6 +247,7 @@ $i18n_key_words = array(
 // 'label.paid_status' => 'Paid status',
 // 'label.paid' => 'Paid',
 // 'label.mark_paid' => 'Mark paid',
+// 'label.week_menu' => 'Week menu',
 // 'label.week_note' => 'Week note',
 // 'label.week_list' => 'Week list',
 // 'label.work_units' => 'Work units',
index 2ed0eef..fcebeeb 100644 (file)
@@ -273,6 +273,7 @@ $i18n_key_words = array(
 // 'label.paid_status' => 'Paid status',
 // 'label.paid' => 'Paid',
 // 'label.mark_paid' => 'Mark paid',
+// 'label.week_menu' => 'Week menu',
 // 'label.week_note' => 'Week note',
 // 'label.week_list' => 'Week list',
 // 'label.work_units' => 'Work units',
index 868bf16..62eff58 100644 (file)
@@ -259,6 +259,7 @@ $i18n_key_words = array(
 // 'label.paid_status' => 'Paid status',
 // 'label.paid' => 'Paid',
 // 'label.mark_paid' => 'Mark paid',
+// 'label.week_menu' => 'Week menu',
 // 'label.week_note' => 'Week note',
 // 'label.week_list' => 'Week list',
 // 'label.work_units' => 'Work units',
index fa8d4a0..82b9bc6 100644 (file)
@@ -265,6 +265,7 @@ $i18n_key_words = array(
 // 'label.paid_status' => 'Paid status',
 // 'label.paid' => 'Paid',
 // 'label.mark_paid' => 'Mark paid',
+// 'label.week_menu' => 'Week menu',
 // 'label.week_note' => 'Week note',
 // 'label.week_list' => 'Week list',
 // 'label.work_units' => 'Work units',
index d11b088..d7bbdd5 100644 (file)
@@ -1,14 +1,5 @@
 {$forms.displayOptionsForm.open}
 <table cellspacing="1" cellpadding="2" border="0">
-{if $show_week_menu}
-  <tr><td>&nbsp;</td></tr>
-  <tr><td class="sectionHeaderNoBorder">{$i18n.form.display_options.menu}</td></tr>
-  <tr>
-    <td><label for="menu_week">{$i18n.label.week_view}:</label></td>
-    <td nowrap>{$forms.displayOptionsForm.menu_week.control} <a href="https://www.anuko.com/lp/tt_35.htm" target="_blank">{$i18n.label.what_is_it}</a></td>
-  </tr>
-{/if}
-
   <tr><td>&nbsp;</td></tr>
   <tr><td class="sectionHeaderNoBorder">{$i18n.title.time}</td></tr>
   <tr>
index 0545cff..6a03645 100644 (file)
@@ -12,7 +12,7 @@
       <br>
       <table cellspacing="0" cellpadding="4" width="100%" border="0">
         <tr>
-          <td align="center">&nbsp;Anuko Time Tracker 1.19.4.4999 | Copyright &copy; <a href="https://www.anuko.com/lp/tt_3.htm" target="_blank">Anuko</a> |
+          <td align="center">&nbsp;Anuko Time Tracker 1.19.4.5000 | Copyright &copy; <a href="https://www.anuko.com/lp/tt_3.htm" target="_blank">Anuko</a> |
             <a href="https://www.anuko.com/lp/tt_4.htm" target="_blank">{$i18n.footer.credits}</a> |
             <a href="https://www.anuko.com/lp/tt_5.htm" target="_blank">{$i18n.footer.license}</a> |
             <a href="https://www.anuko.com/lp/tt_7.htm" target="_blank">{$i18n.footer.improve}</a>
index 0862523..8e3dd76 100644 (file)
           <td align="center" bgcolor="#d9d9d9" nowrap height="17" background="images/subm_bg.gif">&nbsp;
     {if $user->exists() && ($user->can('track_own_time') || $user->can('track_time'))}
            <a class="mainMenu" href="time.php">{$i18n.menu.time}</a>
-      {if $user->isPluginEnabled('wv') && $user->getConfigOption('menu_week')}
+      {if $user->isPluginEnabled('wv') && $user->isOptionEnabled('week_menu')}
            <a class="mainMenu" href="week.php">{$i18n.menu.week}</a>
       {/if}
     {/if}
index 8d56707..6f97c4d 100644 (file)
@@ -68,7 +68,7 @@ function fillDropdowns() {
           <td>{$forms.weekTimeForm.task.control}</td>
         </tr>
 {/if}
-{if $user->isPluginEnabled('wvn')}
+{if $show_week_note}
         <tr>
           <td align="right">{$i18n.label.week_note}:</td>
           <td>{$forms.weekTimeForm.note.control}</td>
@@ -96,7 +96,7 @@ function fillDropdowns() {
   <tr><td>&nbsp;</td></tr>
 </table>
 
-{if $user->isPluginEnabled('wvl')}
+{if $show_week_list}
 <table width="720">
 <tr>
   <td valign="top">
@@ -181,7 +181,7 @@ function fillDropdowns() {
 
 {if $time_records}
 <table cellpadding="3" cellspacing="1" width="720">
-  {if $user->isPluginEnabled('wvl')}
+  {if $show_week_list}
   <tr>
     <td align="left">{$i18n.label.week_total}: {$week_total}</td>
     <td></td>
index d3253e9..17b02cb 100644 (file)
@@ -1,5 +1,9 @@
 {$forms.weekViewForm.open}
 <table cellspacing="1" cellpadding="2" border="0">
+  <tr>
+    <td align="right" nowrap>{$forms.weekViewForm.week_menu.control}</td>
+    <td><label for="week_note">{$i18n.label.week_menu}</label> <a href="https://www.anuko.com/lp/tt_35.htm" target="_blank">{$i18n.label.what_is_it}</a></td>
+  </tr>
   <tr>
     <td align="right" nowrap>{$forms.weekViewForm.week_note.control}</td>
     <td><label for="week_note">{$i18n.label.week_note}</label> <a href="https://www.anuko.com/lp/tt_11.htm" target="_blank">{$i18n.label.what_is_it}</a></td>
index a7426aa..ec4ddd9 100644 (file)
@@ -37,21 +37,17 @@ if (!ttAccessAllowed('manage_basic_settings')) {
 }
 // End of access checks.
 
-$config = new ttConfigHelper($user->getConfig());
+$config = $user->getConfigHelper();
 
 if ($request->isPost()) {
-  $cl_menu_week = $request->getParameter('menu_week');
   $cl_time_note_on_separate_row = $request->getParameter('time_note_on_separate_row');
   $cl_report_note_on_separate_row = $request->getParameter('report_note_on_separate_row');
 } else {
-  $cl_menu_week = $config->getDefinedValue('menu_week');
   $cl_time_note_on_separate_row = $config->getDefinedValue('time_note_on_separate_row');
   $cl_report_note_on_separate_row = $config->getDefinedValue('report_note_on_separate_row');
 }
 
 $form = new Form('displayOptionsForm');
-// Menu.
-$form->addInput(array('type'=>'checkbox','name'=>'menu_week','value'=>$cl_menu_week));
 
 // Time page.
 // $form->addInput(array('type'=>'checkbox','name'=>'time_client','value'=>$cl_time_client));
@@ -74,7 +70,6 @@ $form->addInput(array('type'=>'submit','name'=>'btn_save','value'=>$i18n->get('b
 if ($request->isPost()){
   if ($err->no()) {
     // Update config.
-    $config->setDefinedValue('menu_week', $cl_menu_week);
     $config->setDefinedValue('time_note_on_separate_row', $cl_time_note_on_separate_row);
     $config->setDefinedValue('report_note_on_separate_row', $cl_report_note_on_separate_row);
     if ($user->updateGroup(array('config' => $config->getConfig()))) {
@@ -86,7 +81,6 @@ if ($request->isPost()){
 }
 
 $smarty->assign('forms', array($form->getName()=>$form->toArray()));
-$smarty->assign('show_week_menu', $user->isPluginEnabled('wv'));
 $smarty->assign('title', $i18n->get('title.display_options'));
 $smarty->assign('content_page_name', 'display_options.tpl');
 $smarty->display('index.tpl');
index 894546e..abc06b4 100644 (file)
@@ -70,7 +70,7 @@ if ($request->isPost() && $groupChanged) {
 
 $groups = $user->getGroupsForDropdown();
 $group = ttGroupHelper::getGroupAttrs($group_id);
-$config = new ttConfigHelper($group['config']);
+$config = $user->getConfigHelper();
 
 $advanced_settings = $home_group ? $user->can('manage_advanced_settings') : true;
 if (!defined('CURRENCY_DEFAULT')) define('CURRENCY_DEFAULT', '$');
index 4d2972b..bc26e58 100644 (file)
@@ -144,16 +144,6 @@ if ($request->isPost()) {
     $plugins .= ',at';
   if ($cl_work)
     $plugins .= ',wk';
-
-  // Recycle week view plugin options as they are not configured on this page.
-  $existing_plugins = explode(',', $user->getPlugins());
-  if (in_array('wvn', $existing_plugins))
-    $plugins .= ',wvn';
-  if (in_array('wvl', $existing_plugins))
-    $plugins .= ',wvl';
-  if (in_array('wvns', $existing_plugins))
-    $plugins .= ',wvns';
-
   $plugins = trim($plugins, ',');
 
   // Prepare a new config string.
index 2ef7744..a77e987 100644 (file)
--- a/week.php
+++ b/week.php
@@ -143,29 +143,33 @@ else
 
 // Build day totals (total durations for each day in week).
 $dayTotals = ttWeekViewHelper::getDayTotals($dataArray, $dayHeaders);
+$showWeekNote = $user->isOptionEnabled('week_note');
+$showWeekNotes = $user->isOptionEnabled('week_notes');
+
 
 // Define rendering class for a label field to the left of durations.
 class LabelCellRenderer extends DefaultCellRenderer {
   function render(&$table, $value, $row, $column, $selected = false) {
     global $user;
+    $showNotes = $user->isOptionEnabled('week_notes');
 
     $this->setOptions(array('width'=>200,'valign'=>'middle'));
 
     // Special handling for a new week entry (row 0, or 0 and 1 if we show notes).
     if (0 == $row) {
       $this->setOptions(array('style'=>'text-align: center; font-weight: bold; vertical-align: top;'));
-    } else if ($user->isPluginEnabled('wvns') && (1 == $row)) {
+    } else if ($showNotes && (1 == $row)) {
       $this->setOptions(array('style'=>'text-align: right; vertical-align: top;'));
-    } else if ($user->isPluginEnabled('wvns') && (0 != $row % 2)) {
+    } else if ($showNotes && (0 != $row % 2)) {
       $this->setOptions(array('style'=>'text-align: right;'));
     }
     // Special handling for not billable entries.
-    $ignoreRow = $user->isPluginEnabled('wvns') ? 1 : 0; 
+    $ignoreRow = $showNotes ? 1 : 0;
     if ($row > $ignoreRow) {
       $row_id = $table->getValueAtName($row,'row_id');
       $billable = ttWeekViewHelper::parseFromWeekViewRow($row_id, 'bl');
       if (!$billable) {
-        if (($user->isPluginEnabled('wvns') && (0 == $row % 2)) || !$user->isPluginEnabled('wvns')) {
+        if (($showNotes && (0 == $row % 2)) || !$showNotes) {
           $this->setOptions(array('style'=>'color: red;')); // TODO: style it properly in CSS.
         }
       }
@@ -179,6 +183,7 @@ class LabelCellRenderer extends DefaultCellRenderer {
 class WeekViewCellRenderer extends DefaultCellRenderer {
   function render(&$table, $value, $row, $column, $selected = false) {
     global $user;
+    $showNotes = $user->isOptionEnabled('week_notes');
 
     $field_name = $table->getValueAt($row,$column)['control_id']; // Our text field names (and ids) are like x_y (row_column).
     $field = new TextField($field_name);
@@ -189,11 +194,11 @@ class WeekViewCellRenderer extends DefaultCellRenderer {
     $field->setFormName($table->getFormName());
     $field->setStyle('width: 60px;'); // TODO: need to style everything properly, eventually.
     // Provide visual separation for new entry row.
-    $rowToSeparate = $user->isPluginEnabled('wvns') ? 1 : 0;
+    $rowToSeparate = $showNotes ? 1 : 0;
     if ($rowToSeparate == $row) {
       $field->setStyle('width: 60px; margin-bottom: 40px');
     }
-    if ($user->isPluginEnabled('wvns')) {
+    if ($showNotes) {
       if (0 == $row % 2) {
         $field->setValue($table->getValueAt($row,$column)['duration']); // Duration for even rows.
       } else {
@@ -383,7 +388,7 @@ if ($request->isPost()) {
           $control_id = $rowNumber.'_'.$dayHeader;
 
           // Handle durations and comments in separate blocks of code.
-          if (!$user->isPluginEnabled('wvns') || (0 == $rowNumber % 2)) {
+          if (!$showWeekNotes || (0 == $rowNumber % 2)) {
             // Handle durations row here.
 
             // Obtain existing and posted durations.
@@ -422,7 +427,7 @@ if ($request->isPost()) {
                 // Note: no need to check for a possible conflict with an already existing row
                 // because we are doing an insert that does not affect already existing data.
 
-                if ($user->isPluginEnabled('wvn')) {
+                if ($showWeekNote) {
                   $fields['note'] = $request->getParameter('note');
                 }
               }
@@ -430,7 +435,7 @@ if ($request->isPost()) {
               $fields['start_date'] = $startDate->toString(DB_DATEFORMAT); // To be able to determine date for the entry using $dayHeader.
               $fields['duration'] = $postedDuration;
               $fields['browser_today'] = $request->getParameter('browser_today', null);
-              if ($user->isPluginEnabled('wvns')) {
+              if ($showWeekNotes) {
                 // Take note value from the control below duration.
                 $noteRowNumber = $rowNumber + 1;
                 $note_control_id =  $noteRowNumber.'_'.$dayHeader;
@@ -448,7 +453,7 @@ if ($request->isPost()) {
             }
             if (!$result) break; // Break out of the loop in case of first error.
 
-          } else if ($user->isPluginEnabled('wvns')) {
+          } else if ($showWeekNotes) {
             // Handle commments row here.
 
             // Obtain existing and posted comments.
@@ -516,6 +521,8 @@ $smarty->assign('show_navigation', !$user->getConfigOption('menu_week'));
 $smarty->assign('show_client', $showClient);
 $smarty->assign('show_project', $showProject);
 $smarty->assign('show_task', $showTask);
+$smarty->assign('show_week_note', $showWeekNote);
+$smarty->assign('show_week_list', $user->isOptionEnabled('week_list'));
 $smarty->assign('show_files', $showFiles);
 $smarty->assign('title', $i18n->get('menu.week'));
 $smarty->assign('content_page_name', 'week.tpl');
index 0d369bf..149842e 100644 (file)
@@ -35,28 +35,34 @@ if (!ttAccessAllowed('manage_advanced_settings')) {
   exit();
 }
 
+$config = $user->getConfigHelper();
+
 if ($request->isPost()) {
+  $cl_week_menu = $request->getParameter('week_menu');
   $cl_week_note = $request->getParameter('week_note');
   $cl_week_list = $request->getParameter('week_list');
   $cl_notes = $request->getParameter('notes');
 } else {
-  $plugins = explode(',', $user->plugins);
-  $cl_week_note = in_array('wvn', $plugins);
-  $cl_week_list = in_array('wvl', $plugins);
-  $cl_notes = in_array('wvns', $plugins);
+  $cl_week_menu =  $config->getDefinedValue('week_menu');
+  $cl_week_note = $config->getDefinedValue('week_note');
+  $cl_week_list = $config->getDefinedValue('week_list');
+  $cl_notes = $config->getDefinedValue('week_notes');
 }
 
-
 $form = new Form('weekViewForm');
+$form->addInput(array('type'=>'checkbox','name'=>'week_menu','value'=>$cl_week_menu));
 $form->addInput(array('type'=>'checkbox','name'=>'week_note','value'=>$cl_week_note));
 $form->addInput(array('type'=>'checkbox','name'=>'week_list','value'=>$cl_week_list));
 $form->addInput(array('type'=>'checkbox','name'=>'notes','value'=>$cl_notes));
 $form->addInput(array('type'=>'submit','name'=>'btn_save','value'=>$i18n->get('button.save')));
 
 if ($request->isPost()){
-  if (!$user->enablePlugin('wvn', $cl_week_note) ||
-      !$user->enablePlugin('wvl', $cl_week_list) ||
-      !$user->enablePlugin('wvns', $cl_notes)) {
+  // Update config.
+  $config->setDefinedValue('week_menu', $cl_week_menu);
+  $config->setDefinedValue('week_note', $cl_week_note);
+  $config->setDefinedValue('week_list', $cl_week_list);
+  $config->setDefinedValue('week_notes', $cl_notes);
+  if (!$user->updateGroup(array('config' => $config->getConfig()))) {
     $err->add($i18n->get('error.db'));
   }
 }