X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FController%2FDraft.pm;h=02e74f586b70babcc48572c8ff5ad0cbb2e97b00;hb=713de5ed35a8a1faea940354254c4e781631c495;hp=41c8c168802c044f456d8d267487ee435e50021e;hpb=e0f5deeae4cdcf3faf3bc68a202f20ec6cd9af2e;p=kivitendo-erp.git diff --git a/SL/Controller/Draft.pm b/SL/Controller/Draft.pm index 41c8c1688..02e74f586 100644 --- a/SL/Controller/Draft.pm +++ b/SL/Controller/Draft.pm @@ -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, <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, <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, <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 {