ckp before redoing forms
[plewww.git] / planetlab / sites / site_update.php
1 <?php
2
3 // Require login
4 require_once 'plc_login.php';
5
6 // Get session and API handles
7 require_once 'plc_session.php';
8 global $plc, $api;
9
10 // Common functions
11 require_once 'plc_functions.php';
12 require_once 'plc_sorts.php';
13
14 // find person roles
15 $_person= $plc->person;
16 $_roles= $_person['role_ids'];
17
18 // redirect if no site id is set add instead
19 if( $_GET['site_id'] ) {
20   $site_id= $_GET['site_id'];
21   $do= 'Update';
22  } else {
23   $do= 'Add';
24  }
25
26 // if form not submitted get data from API
27 if( $_POST['submitted'] ) {
28
29   $name= $_POST['name'];
30   $abbrev_name= $_POST['abbrev_name'];
31   $url= $_POST['url'];
32   $login_base= $_POST['login_base'];
33   $latitude= $_POST['latitude'];
34   $longitude= $_POST['longitude'];
35   //$max_slivers= $_POST['max_slivers'];
36   $max_slices= $_POST['max_slices'];
37
38   
39   if( $name == "" )
40     $error['name']= "<font color=red>Name can not be blank.</font>";
41   
42   if( $abbrev_name == "" )
43     $error['abbrev_name']= "<font color=red>Abbreviated Name can not be blank.</font>";
44     
45   if( $login_base == "" ) 
46     $error['login_base']= "<font color=red>Login Base can not be blank.</font>";
47   
48   if( $url == "" || $url == "http://" )
49     $error['url']= "<font color=red>URL can not be blank.</font>";
50     
51   if( !is_numeric( $latitude ) )
52     $error['latitude']= "<font color=red>Latitude must be a number.</font>";
53   
54   if( !is_numeric( $longitude ) )
55     $error['longitude']= "<font color=red>Longitude must be a number.</font>";
56     
57   if( !is_numeric( $max_slices ) )
58     $error['max_slices']= "<font color=red>Max Slices must be a number.</font>";
59   
60   
61   // if no errors add/update site
62   if ( $do == 'Add' ) {
63     $fields= array( "name" => $name, 
64                     "abbreviated_name" => $abbrev_name, 
65                     "url" => $url, 
66                     "login_base" => $login_base, 
67                     "latitude" => floatval( $latitude ), 
68                     "longitude" => floatval( $longitude ), 
69                     "max_slices" => 0,
70                     "is_public" => true);
71     $site_id=$api->AddSite( $fields );
72     plc_redirect(l_site($site_id));
73   }
74   
75   if ( $do == 'Update' ) {
76     $fields= array( "name" => $name, 
77                     "abbreviated_name" => $abbrev_name, 
78                     "url" => $url, 
79                     "login_base" => $login_base, 
80                     "latitude" => floatval( $latitude ), 
81                     "longitude" => floatval( $longitude ), 
82                     "max_slices" => intval( $max_slices ),
83                     "is_public" => true);
84     $api->UpdateSite( intval( $site_id ), $fields );
85     // Thierry aug 31 07 - redirect to the site's details page
86     plc_redirect(l_site($site_id));
87   }
88   
89 }
90
91 // if its an update get site info$max_slices &&
92 if( $do == 'Update' && empty( $error ) ) {
93   // Get site api call
94   $site_info= $api->GetSites( array( intval( $site_id ) ), array( "name", "url", "longitude", "latitude", "login_base", "max_slices", "abbreviated_name" ) );
95   
96   // var names to api return
97   $name= $site_info[0]['name'];
98   $abbrev_name= $site_info[0]['abbreviated_name'];
99   $url= $site_info[0]['url'];
100   $login_base= $site_info[0]['login_base'];
101   $latitude= $site_info[0]['latitude'];
102   $longitude= $site_info[0]['longitude'];
103   //$max_slivers= $site_info[0]['max_slivers'];
104   $max_slices= $site_info[0]['max_slices'];
105
106 }
107
108 // Print header
109 require_once 'plc_drupal.php';
110 drupal_set_title('Sites');
111 include 'plc_header.php';
112
113 // set error styles
114 if( $error['name'] )
115   $name_err= " style='border: 1px solid red;'";
116
117 if( $error['abbrev_name'] )
118   $abbrev_err= " style='border: 1px solid red;'";
119
120 if( $error['login_base'] )
121   $base_err= " style='border: 1px solid red;'";
122
123 if( $error['url'] )
124   $url_err= " style='border: 1px solid red;'";
125
126 if( $error['latitude'] )
127   $lat_err= " style='border: 1px solid red;'";
128
129 if( $error['longitude'] )
130   $long_err= " style='border: 1px solid red;'";
131   
132 if( $error['max_slices'] )
133   $max_err= " style='border: 1px solid red;'";
134
135 // start form
136 require_once 'plc_forms.php';
137
138 plc_
139 echo "<form action='update_site.php?id=$site_id' method='post'>\n";
140 echo "<h2>$do $name</h2>\n";
141
142 echo "<table><tbody>\n";
143 // Thierry - displays name under double quotes - some site names have single quotes, none have double quotes as of now
144 echo "<tr><th>Name: </th><td> <input type=text $name_err name='name' value=\"$name\" size=40></td><td>". $error['name'] ."</td></tr>\n";
145 echo "<tr><th>Abbreviated Name: </th><td> <input type=text $abbrev_err name='abbrev_name' value='$abbrev_name' size=40></td><td>". $error['abbrev_name'] ."</td></tr>\n";
146 echo "<tr><th>Login Base: </th><td> <input type=text $base_err name='login_base' value='$login_base' size=40></td><td>". $error['login_base'] ."</td></tr>\n";
147 echo "<tr><th>URL: </th><td> <input type=text $url_err name='url' value='$url' size=40></td><td>". $error['url'] ."</td></tr>\n";
148 echo "<tr><th>Latitude/Longitude: </th><td> <input type=text $lat_err name='latitude' value='$latitude' size=10> / <input type=text $long_err name='longitude' value='$longitude' size=10></td><td>". $error['latitude'] ." ". $error['longitude'] ."</td></tr>\n";
149
150 if( in_array( 10, $_roles ) ) {
151         echo "<tr><th>Max Slices: </th><td> <input type=text $max_err name='max_slices' value='$max_slices'"; if( !in_array( '10', $_roles ) ) echo " disabled"; echo " size=10></td><td>". $error['max_slices'] ."</td></tr>\n";
152 }
153 else
154         echo "<tr><td colspan=3><input type=hidden name='max_slices' value='$max_slices'></td></tr>\n";
155
156 echo "<tr><td></td><td colspan=2><input type=submit name='submitted' value='$do Site'></td></tr>\n";
157 echo "</tbody></table><br />\n";
158 echo "</form>\n";
159
160 if ($do == "Update")
161   print href(l_site($site_id),"Back to site");
162  else
163    print href(l_sites(),"Back to sites");
164
165
166 // Print footer
167 include 'plc_footer.php';
168
169 ?>