Projekt

Allgemein

Profil

Herunterladen (1,79 KB) Statistiken
| Zweig: | Markierung: | Revision:
47577d1d Sven Schöling
package SL::Controller::ImageUpload;

use strict;
use parent qw(SL::Controller::Base);

57f15027 Sven Schöling
use JSON qw(to_json);

47577d1d Sven Schöling
use SL::DB::Part;
use SL::DB::Order;
use SL::DB::DeliveryOrder;

use Rose::Object::MakeMethods::Generic
(
scalar => [ qw() ],
'scalar --get_set_init' => [ qw(object_type object) ],
);

my %object_loader = (
part => [ "SL::DB::Part" ],
sales_order => [ "SL::DB::Order", [ sales => 1, quotation => 0 ] ],
sales_quotation => [ "SL::DB::Order", [ sales => 1, quotation => 1 ] ],
purchase_order => [ "SL::DB::Order", [ sales => 0, quotation => 1 ] ],
08e48f66 Jan Büren
sales_delivery_order => [ "SL::DB::DeliveryOrder", [ order_type => 'sales_delivery_order' ] ],
47577d1d Sven Schöling
);


################ actions #################

sub action_upload_image {
my ($self) = @_;

$::request->layout->add_javascripts('kivi.File.js');
ecc4b0c2 Sven Schöling
$::request->layout->add_javascripts('kivi.FileDB.js');
$::request->layout->add_javascripts('kivi.ImageUpload.js');
47577d1d Sven Schöling
ecc4b0c2 Sven Schöling
$self->render('image_upload/local_list');
47577d1d Sven Schöling
}

57f15027 Sven Schöling
sub action_resolve_object_by_number {
my ($self) = @_;

my $result = {
id => $self->object->id,
description => $self->object->displayable_name,
};

$self->render(\ to_json($result), { process => 0, type => 'json' });
}

47577d1d Sven Schöling
################# internal ###############

9c5ae7ed Sven Schöling
sub accept_types {
"image/*"
}

47577d1d Sven Schöling
sub init_object_type {
$::form->{object_type} or die "need object type"
}

sub init_object {
my ($self) = @_;

return unless $self->object_type;

my $loader = $object_loader{ $self->object_type } or die "unknown object type";
my $manager = $loader->[0]->_get_manager_class;

return $manager->find_by(id => $::form->{object_id}*1) if $::form->{object_id};

57f15027 Sven Schöling
return $manager->find_by(donumber => $::form->{object_number}, closed => 0, @{ $loader->[1] // [] }) if $::form->{object_number};
47577d1d Sven Schöling
}


1;