]> git.proxmox.com Git - pve-manager.git/blame - lib/PVE.old/HTMLControls.pm
imported from svn 'pve-manager/pve2'
[pve-manager.git] / lib / PVE.old / HTMLControls.pm
CommitLineData
aff192e6
DM
1package PVE::HTMLControls;
2
3use strict;
4use JSON;
5
6my $uidcount = 0;
7
8my %jsesc = ( "\n" => '\n',
9 "\r" => '\r',
10 "\t" => '\t',
11 "\f" => '\f',
12 "\b" => '\b',
13 "\"" => '\"',
14 "\\" => '\\\\',
15 );
16
17sub string_to_js {
18 my $str = shift;
19 $str =~ s/([\\\"\n\r\t\f\b])/$jsesc{$1}/eg;
20 $str =~ s/([\x00-\x07\x0b\x0e-\x1f])/'\\u00' . unpack('H2',$1)/eg;
21 return '"' . $str . '"';
22}
23
24sub get_uid {
25 my $prefix = shift || 'uid';
26
27 $uidcount++;
28
29 return $prefix . '_' . $$. '_' .$uidcount;
30}
31
32# Ajax controls
33
34sub create_log_viewer {
35 my ($lvid, $service, $serviceid, $filterid, $statusid, $trackid) = @_;
36
37 $service = '' if !$service;
38
39 # trackid format: UID:$pid:/path/to/executable
40
41 $trackid = '' if !$trackid;
42
43 my $myupdater = get_uid ($lvid);
44
45 my $out = "<script type='text/javascript'><!--\n";
46 $out .= <<__EOJS;
47
48 var $myupdater = new logViewer ('$lvid', '$service', '$serviceid', '$filterid', '$statusid', '$trackid');
49
50 $myupdater.start();
51
52__EOJS
53
54 $out .= "--></script>\n";
55
56 return $out;
57}
58
59sub create_wsviewer {
60 my ($lvid, $statusid, $url, $args, $period) = @_;
61
62 my $myupdater = get_uid ($lvid);
63
64 $period = 10 if !$period;
65
66 $statusid = '' if !$statusid;
67
68 my $jsargs = to_json ($args);
69 my $out = "<script type='text/javascript'><!--\n";
70 $out .= <<__EOJS;
71
72 var $myupdater = new wsViewer ('$lvid', '$statusid', $period, '$url', $jsargs);
73
74 $myupdater.start();
75
76__EOJS
77
78 $out .= "--></script>\n";
79
80 return $out;
81}
82
83sub create_periodic_updater {
84 my ($lvid, $url, $args, $period) = @_;
85
86 $period = 10 if !$period;
87
88 my $jsargs = to_json ($args);
89
90 $lvid = 'noautoupdate' if !$lvid;
91
92 my $out = "<script type='text/javascript'><!--\n";
93 $out .= <<__EOJS;
94
95 new Ajax.PeriodicalUpdater ('$lvid', '$url', {
96 frequency: $period,
97 parameters: $jsargs
98 });
99
100__EOJS
101
102 $out .= "--></script>\n";
103 return $out;
104}
105
106# vzlist viewer
107
108sub create_vzlist_viewer {
109 my ($lvid, $statusid, $cid) = @_;
110
111 my $myupdater = get_uid ($lvid);
112
113 my $out = "<script type='text/javascript'><!--\n";
114 $out .= <<__EOJS;
115
116 var $myupdater = new vzlistViewer ('$lvid', '$statusid', '$cid');
117
118 $myupdater.start();
119
120__EOJS
121
122 $out .= "--></script>\n";
123
124 return $out;
125}
126
127# server time viewer
128
129sub create_time_viewer {
130 my ($uid) = @_;
131
132 my $out = "\n<script type='text/javascript'><!--\n";
133 $out .= <<__EOJS;
134
135 new timeViewer ('$uid');
136
137__EOJS
138 $out .= "--></script>\n";
139
140 return $out;
141}
142
143sub create_command_viewer {
144 my ($lvid, $statusid, $abortid, $upid) = @_;
145
146 my $jsvar = get_uid($lvid);
147
148 return '' if !defined ($upid);
149 return '' if !defined ($abortid);
150
151 my $out = "\n<script type='text/javascript'><!--\n";
152 $out .= <<__EOJS;
153
154 var $jsvar = new commandViewer ('$jsvar', '$lvid', '$upid', '$statusid', '$abortid');
155
156 $jsvar.start ();
157
158__EOJS
159
160 $out .= "--></script>\n";
161
162 return $out;
163}
164
1651;