1 |
<%args> |
2 |
$user_id |
3 |
$op => ''; |
4 |
$landscape_id => 0 |
5 |
</%args> |
6 |
<%init> |
7 |
|
8 |
sub growl { |
9 |
my ($level,$title,$message) = @_; |
10 |
print <<_END_OF_GROWL_; |
11 |
<script type="text/javascript"> |
12 |
new protoGrowl({ |
13 |
type: '$level', title: '$title', message: '$message', |
14 |
width: 400, height: 40, |
15 |
minWidth: 400, minHeight: 40, |
16 |
className: 'protogrowl', |
17 |
}); |
18 |
</script> |
19 |
_END_OF_GROWL_ |
20 |
}; |
21 |
|
22 |
warn "user_id: $user_id, op: $op, landscape_id: $landscape_id\n"; |
23 |
|
24 |
if ($op eq 'delete') { |
25 |
my $u = Transports::Model::UserOnLandscape->new(); |
26 |
$u->load_by_cols( |
27 |
user_on => $user_id, |
28 |
landscape => $landscape_id |
29 |
); |
30 |
if ($u->delete) { |
31 |
growl('ok','Deleted', $u->landscape->name . ' removed from ' . $u->user_on->name); |
32 |
} else { |
33 |
growl('error','Error',"Problem while deleting " . $u->landscape->name); |
34 |
} |
35 |
|
36 |
} elsif ($op eq 'add') { |
37 |
my $u = Transports::Model::UserOnLandscape->new(); |
38 |
if($u->create( |
39 |
user_on => $user_id, |
40 |
landscape => $landscape_id, |
41 |
)) { |
42 |
# $m->out("Added ", $u->landscape->name); |
43 |
growl('ok','Added', $u->landscape->name); |
44 |
} else { |
45 |
growl('error','Error',"Problem while adding " . $landscape_id); |
46 |
} |
47 |
} |
48 |
|
49 |
my $landscapes = Transports::Model::UserOnLandscapeCollection->new(); |
50 |
$landscapes->limit( |
51 |
column => 'user_on', |
52 |
value => $user_id, |
53 |
quote_value => 0, |
54 |
); |
55 |
|
56 |
my $selected_landscape; |
57 |
map { $selected_landscape->{ $_->landscape->id }++ } @{ $landscapes->items_array_ref }; |
58 |
|
59 |
my $all_landscapes = Transports::Model::LandscapeCollection->new(); |
60 |
$all_landscapes->unlimit; |
61 |
|
62 |
</%init> |
63 |
|
64 |
<div> |
65 |
Landscapes: |
66 |
|
67 |
<ul> |
68 |
% while (my $l = $all_landscapes->next ) { |
69 |
<li> |
70 |
% if ($selected_landscape->{ $l->id }) { |
71 |
<% $l->name %> |
72 |
<% Jifty->web->link( |
73 |
label => 'remove' , |
74 |
onclick => { args => { op => 'delete', landscape_id => $l->id }} |
75 |
) %> |
76 |
% } else { |
77 |
<del><% $l->name %></del> |
78 |
<% Jifty->web->link( |
79 |
label => 'add' , |
80 |
onclick => { args => { op => 'add', landscape_id => $l->id }} |
81 |
) %> |
82 |
% } |
83 |
</li> |
84 |
% } |
85 |
</ul> |
86 |
|
87 |
</div> |
88 |
|