1 |
dpavlin |
51 |
<%args> |
2 |
|
|
$user_id |
3 |
dpavlin |
62 |
$op => ''; |
4 |
|
|
$landscape_id => 0 |
5 |
dpavlin |
51 |
</%args> |
6 |
|
|
<%init> |
7 |
|
|
|
8 |
dpavlin |
63 |
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 |
dpavlin |
62 |
warn "user_id: $user_id, op: $op, landscape_id: $landscape_id\n"; |
23 |
|
|
|
24 |
|
|
if ($op eq 'delete') { |
25 |
dpavlin |
51 |
my $u = Transports::Model::UserOnLandscape->new(); |
26 |
dpavlin |
60 |
$u->load_by_cols( |
27 |
|
|
user_on => $user_id, |
28 |
dpavlin |
62 |
landscape => $landscape_id |
29 |
dpavlin |
60 |
); |
30 |
dpavlin |
62 |
if ($u->delete) { |
31 |
dpavlin |
63 |
growl('ok','Deleted', $u->landscape->name . ' removed from ' . $u->user_on->name); |
32 |
dpavlin |
62 |
} else { |
33 |
dpavlin |
63 |
growl('error','Error',"Problem while deleting " . $u->landscape->name); |
34 |
dpavlin |
62 |
} |
35 |
dpavlin |
51 |
|
36 |
dpavlin |
62 |
} elsif ($op eq 'add') { |
37 |
dpavlin |
60 |
my $u = Transports::Model::UserOnLandscape->new(); |
38 |
dpavlin |
62 |
if($u->create( |
39 |
dpavlin |
60 |
user_on => $user_id, |
40 |
dpavlin |
62 |
landscape => $landscape_id, |
41 |
|
|
)) { |
42 |
|
|
# $m->out("Added ", $u->landscape->name); |
43 |
dpavlin |
63 |
growl('ok','Added', $u->landscape->name); |
44 |
dpavlin |
62 |
} else { |
45 |
dpavlin |
63 |
growl('error','Error',"Problem while adding " . $landscape_id); |
46 |
dpavlin |
62 |
} |
47 |
dpavlin |
60 |
} |
48 |
|
|
|
49 |
dpavlin |
51 |
my $landscapes = Transports::Model::UserOnLandscapeCollection->new(); |
50 |
|
|
$landscapes->limit( |
51 |
|
|
column => 'user_on', |
52 |
|
|
value => $user_id, |
53 |
|
|
quote_value => 0, |
54 |
|
|
); |
55 |
|
|
|
56 |
dpavlin |
60 |
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 |
dpavlin |
51 |
</%init> |
63 |
|
|
|
64 |
dpavlin |
60 |
<div> |
65 |
dpavlin |
51 |
Landscapes: |
66 |
dpavlin |
60 |
|
67 |
dpavlin |
51 |
<ul> |
68 |
dpavlin |
60 |
% while (my $l = $all_landscapes->next ) { |
69 |
|
|
<li> |
70 |
|
|
% if ($selected_landscape->{ $l->id }) { |
71 |
|
|
<% $l->name %> |
72 |
dpavlin |
51 |
<% Jifty->web->link( |
73 |
|
|
label => 'remove' , |
74 |
dpavlin |
62 |
onclick => { args => { op => 'delete', landscape_id => $l->id }} |
75 |
dpavlin |
51 |
) %> |
76 |
dpavlin |
60 |
% } else { |
77 |
|
|
<del><% $l->name %></del> |
78 |
|
|
<% Jifty->web->link( |
79 |
|
|
label => 'add' , |
80 |
dpavlin |
62 |
onclick => { args => { op => 'add', landscape_id => $l->id }} |
81 |
dpavlin |
60 |
) %> |
82 |
|
|
% } |
83 |
dpavlin |
51 |
</li> |
84 |
|
|
% } |
85 |
|
|
</ul> |
86 |
|
|
|
87 |
dpavlin |
60 |
</div> |
88 |
dpavlin |
51 |
|