Sprache auf ungültig setzen im Admin-Bereich
[kivitendo-erp.git] / SL / Controller / Draft.pm
index 41c8c16..02e74f5 100644 (file)
@@ -9,7 +9,7 @@ use SL::Locale::String qw(t8);
 use SL::Request;
 use SL::DB::Draft;
 use SL::DBUtils qw(selectall_hashref_query);
-use YAML;
+use SL::YAML;
 use List::Util qw(max);
 
 use Rose::Object::MakeMethods::Generic (
@@ -53,7 +53,7 @@ sub action_save {
     module      => $self->module,
     submodule   => $self->submodule,
     description => $description,
-    form        => YAML::Dump($form),
+    form        => SL::YAML::Dump($form),
     employee_id => SL::DB::Manager::Employee->current->id,
   );
 
@@ -68,6 +68,7 @@ sub action_save {
     $self->js
       ->flash('info', t8("Draft saved."))
       ->dialog->close('#save_draft')
+      ->val('#draft_id', $draft->id)
       ->render;
   }
 }
@@ -81,19 +82,16 @@ sub action_load {
     package main;
     require $allowed_modules{ $self->draft->module };
   }
-
-
   my $params = delete $::form->{form};
-  my $new_form = YAML::Load($self->draft->form);
+  my $new_form = SL::YAML::Load($self->draft->form);
   $::form->{$_} = $new_form->{$_} for keys %$new_form;
   $::form->{"draft_$_"} = $self->draft->$_ for qw(id description);
 
   if ($params && 'HASH' eq ref $params) {
     $::form->{$_} = $params->{$_} for keys %$params;
   }
-
   $::form->{script} = $self->draft->module . '.pl';
-  ::update();
+  ::show_draft();
 }
 
 sub action_delete {
@@ -134,13 +132,24 @@ sub _build_form {
 sub draft_list {
   my ($self) = @_;
 
-  my $result = selectall_hashref_query($::form, $::form->get_standard_dbh, <<SQL, $self->module, $self->submodule);
-    SELECT d.*, date(d.itime) AS date, e.name AS employee_name
+  if ($::auth->assert('all_drafts_edit', 1)) {
+   my $result = selectall_hashref_query($::form, $::form->get_standard_dbh, <<SQL, $self->module, $self->submodule);
+    SELECT d.*, date(d.itime) AS date
+    FROM drafts d
+    WHERE (d.module      = ?)
+      AND (d.submodule   = ?)
+    ORDER BY d.itime
+SQL
+  } else {
+    my $result = selectall_hashref_query($::form, $::form->get_standard_dbh, <<SQL, $self->module, $self->submodule, SL::DB::Manager::Employee->current->id);
+    SELECT d.*, date(d.itime) AS date
     FROM drafts d
-    LEFT JOIN employee e ON d.employee_id = e.id
-    WHERE (d.module = ?) AND (d.submodule = ?)
+    WHERE (d.module      = ?)
+      AND (d.submodule   = ?)
+      AND (d.employee_id = ?)
     ORDER BY d.itime
 SQL
+  }
 }
 
 sub dialog_html {