/usr/local/CPAN/App-Office-Contacts/App/Office/Contacts/View/Notes.pm
package App::Office::Contacts::View::Notes;
use Moose;
extends 'App::Office::Contacts::View::Base';
use namespace::autoclean;
our $VERSION = '1.17';
# -----------------------------------------------
sub build_notes_js
{
my($self, $context) = @_;
$self -> log(debug => 'Entered build_notes_js');
my($js) = $self -> load_tmpl('update.notes.js');
$js -> param(context => $context);
$js -> param(form_action => $self -> form_action);
return $js -> output;
} # End of build_notes_js.
# -----------------------------------------------
sub display
{
my($self, $id, $entity, $note, $entity_type, $report) = @_;
$self -> log(debug => 'Entered display');
my($template) = $self -> load_tmpl('update.notes.tmpl');
$template -> param
(
notes_loop =>
[
map
{
{
note => $$_{'note'},
notes_id => $$_{'id'},
timestamp => $self -> format_timestamp($$_{'timestamp'}),
}
} @$note
]
);
$template -> param(context => $entity_type);
$template -> param(result => $report ? $report : "Notes for '$$entity{'name'}'");
$template -> param(sid => $self -> session -> id);
$template -> param(target_id => $id);
return $template -> output;
} # End of display.
# -----------------------------------------------
sub report_add
{
my($self, $user_id, $result, $entity_type, $id, $name) = @_;
$self -> log(debug => 'Entered report_add');
my($template) = $self -> load_tmpl('update.report.tmpl');
if ($result -> success)
{
# Force the user_id into the person's record, so it is available elsewhere.
# Note: This is the user_id of the person logged on.
my($note) = {};
$$note{'creator_id'} = $user_id;
$$note{'note'} = $result -> get_value('note');
# Convert id to table_name_id and table_id.
$$note{'table_id'} = $id;
my(%table_name) =
(
organization => 'organizations',
person => 'people',
);
my($table_name) = $table_name{$entity_type};
$$note{'table_name_id'} = ${$self -> db -> util -> table_map}{$table_name}{'id'};
$self -> log(debug => '-' x 50);
$self -> log(debug => 'Adding note ...'); # Skip note because of Log::Dispatch::DBI's limit.
$self -> log(debug => "$_ => $$note{$_}") for sort grep{! /^note$/} keys %$note;
$self -> log(debug => '-' x 50);
$template -> param(message => $self -> db -> notes -> add($note, $name) );
}
else
{
$self -> db -> util -> build_error_report($result, $template);
$template -> param(message => "Failed to add note for '$name'");
}
return $template -> output;
} # End of report_add.
# -----------------------------------------------
__PACKAGE__ -> meta -> make_immutable;
1;