posaune
[timetracker.git] / plugins.php
index 1c0a076..bc26e58 100644 (file)
@@ -55,13 +55,14 @@ if ($request->isPost()) {
   $cl_timesheets = $request->getParameter('timesheets');
   $cl_templates = $request->getParameter('templates');
   $cl_attachments = $request->getParameter('attachments');
+  $cl_work = $request->getParameter('work');
 } else {
   // Note: we get here in get, and also in post when group changes.
   // Which plugins do we have enabled in currently selected group?
   $plugins = explode(',', $user->getPlugins());
   $cl_charts = in_array('ch', $plugins);
   $cl_clients = in_array('cl', $plugins);
-  $cl_client_required = in_array('cm', $plugins);
+  $cl_client_required = $user->isOptionEnabled('client_required');
   $cl_invoices = in_array('iv', $plugins);
   $cl_paid_status = in_array('ps', $plugins);
   $cl_custom_fields = in_array('cf', $plugins);
@@ -76,6 +77,7 @@ if ($request->isPost()) {
   $cl_timesheets = in_array('ts', $plugins);
   $cl_templates = in_array('tp', $plugins);
   $cl_attachments = in_array('at', $plugins);
+  $cl_work = in_array('wk', $plugins);
 }
 
 $form = new Form('pluginsForm');
@@ -98,6 +100,7 @@ $form->addInput(array('type'=>'checkbox','name'=>'approval','value'=>$cl_approva
 $form->addInput(array('type'=>'checkbox','name'=>'timesheets','value'=>$cl_timesheets));
 $form->addInput(array('type'=>'checkbox','name'=>'templates','value'=>$cl_templates,'onchange'=>'handlePluginCheckboxes()'));
 $form->addInput(array('type'=>'checkbox','name'=>'attachments','value'=>$cl_attachments,'onchange'=>'handlePluginCheckboxes()'));
+$form->addInput(array('type'=>'checkbox','name'=>'work','value'=>$cl_work,'onchange'=>'handlePluginCheckboxes()'));
 
 // Submit button.
 $form->addInput(array('type'=>'submit','name'=>'btn_save','value'=>$i18n->get('button.save')));
@@ -111,8 +114,6 @@ if ($request->isPost()) {
     $plugins .= ',ch';
   if ($cl_clients)
      $plugins .= ',cl';
-  if ($cl_client_required)
-    $plugins .= ',cm';
   if ($cl_invoices)
     $plugins .= ',iv';
   if ($cl_paid_status)
@@ -141,20 +142,18 @@ if ($request->isPost()) {
     $plugins .= ',tp';
   if ($cl_attachments)
     $plugins .= ',at';
-
-  // 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';
-
+  if ($cl_work)
+    $plugins .= ',wk';
   $plugins = trim($plugins, ',');
 
+  // Prepare a new config string.
+  $user->setOption('client_required', $cl_client_required);
+  $user->setOption('tax_expenses', $cl_tax_expenses);
+  $config = $user->getConfig();
+
   if ($user->updateGroup(array(
-    'plugins' => $plugins))) {
+    'plugins' => $plugins,
+    'config' => $config))) {
     header('Location: success.php');
     exit();
   } else