X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=planetlab%2Fsites%2Fjoin_request.php;h=f0b5562f045ee212bc48f06d8f520dfb71c3838e;hb=9b8b74f6feeb99e0222717f0e1ed2f6e51f7b55b;hp=0540bf1b18f5187ae3ab31f6c0549afcee390ae0;hpb=e14802949c7a66853594ae9d8c297ce666039fed;p=plewww.git diff --git a/planetlab/sites/join_request.php b/planetlab/sites/join_request.php index 0540bf1..f0b5562 100644 --- a/planetlab/sites/join_request.php +++ b/planetlab/sites/join_request.php @@ -9,7 +9,8 @@ require_once 'plc_login.php'; // Get session and API handles require_once 'plc_session.php'; -global $plc, $api; +require_once 'plc_api.php'; +global $plc, $api, $adm; // Print header require_once 'plc_drupal.php'; @@ -19,24 +20,46 @@ include 'plc_header.php'; require_once 'plc_functions.php'; require_once 'details.php'; require_once 'nifty.php'; +require_once 'table.php'; +require_once 'nifty.php'; include 'site_form.php'; //////////////////////////////////////// function render_all_join_requests($api) { - $sites = $api->GetSites( array("enabled" => False, "peer_id" => NULL, "ext_consortium_id" => $PENDING_CONSORTIUM_ID)); - if (!empty($sites)) { - print(""); - print(""); - foreach($sites as $site) { - printf("", $site['site_id'], $site['name']); - printf("", $site['site_id'], $site['site_id']); - printf("", date("d F Y, G:i",$site['date_created'])); - } - print("
Site Namesite_idSubmitted
%s %d %s
"); - } else { + global $PENDING_CONSORTIUM_ID; + $filter = array("peer_id" => NULL, "ext_consortium_id" => $PENDING_CONSORTIUM_ID); + $columns=array('site_id','name','enabled','date_created'); + $sites = $api->GetSites( $filter, $columns); + if (empty($sites)) { print("

No open join requests

"); + return; } + $headers = array(); + $headers['id']='int'; + $headers['Site Name']='string'; + # trying the sortEnglishDateTime stuff - not too lucky so far + # http://www.frequency-decoder.com/demo/table-sort-revisited/custom-sort-functions/ + $headers['submitted']='sortEnglishDateTime'; + $headers['enabled']='string'; + + $nifty=new PlekitNifty ('pending','sites-pending','medium'); + $nifty->start(); + $table=new PlekitTable ('pending',$headers,2, + array('pagesize_area'=>FALSE,'pagesize'=>10000)); + $table->start(); + foreach($sites as $site) { + $site_id=$site['site_id']; + $link = $site['enabled'] ? l_site($site_id) : l_site_review_pending($site_id); + $table->row_start(); + $table->cell(href($link,$site['site_id'])); + $table->cell(href($link,$site['name'])); + $table->cell(date("dS F Y",$site['date_created']) . " at " . date("G:i",$site['date_created'])); + $table->cell( $site['enabled'] ? plc_warning_html('yes') : 'no'); + $table->row_end(); + } + $table->end(); + $nifty->end(); } function render_join_request_review($api, $site_id) { @@ -46,17 +69,19 @@ function render_join_request_review($api, $site_id) { return; } $site = $sites[0]; - if ($site['enabled'] && $site['ext_consortium_id'] == $PENDING_CONSORTIUM_ID) { + if ($site['enabled'] && $site['ext_consortium_id'] === $PENDING_CONSORTIUM_ID) { print("

This site is already enabled

"); return; } $addresses = $api->GetAddresses ($site['address_ids']); if (empty ($addresses)) { - print("

No address found for site_id=$site_id

"); - return ; + drupal_set_message("Site $site_id has no address - never mind"); + $address=array('line1'=>''); + $address_id=0; + } else { + $address = $addresses[0]; + $address_id=$address['address_id']; } - $address = $addresses[0]; - $address_id=$address['address_id']; # just in case there is no person attached yet if (empty ($site['person_ids'])) { $persons=array(); @@ -87,6 +112,7 @@ function render_join_request_review($api, $site_id) { EOF; + // don't render the tech part if that was the same as the pi $site_form = build_site_form(FALSE); $input = array ('site' => $site, 'address'=> $address, 'pi' => $pi, 'tech' => $tech); @@ -150,7 +176,7 @@ EOF; PLC_MAIL_SUPPORT_ADDRESS); $subject="Site registration for " . $site['name'] . " has been approved by " . PLC_NAME; - $api->NotifyPersons(array($pi_id),$subject,$body); + $adm->NotifyPersons(array($pi_id),$subject,$body); } @@ -215,9 +241,10 @@ else if ($_POST['submitted'] ) case 'Update': { $api->begin(); $api->UpdateSite($site_id,$site); - $api->UpdateAddress($address_id,$address); + if ($address_id) $api->UpdateAddress($address_id,$address); + else if(!empty($address)) $api->AddSiteAddress($site_id,$address); $api->UpdatePerson($pi_id,$pi); - $api->UpdatePerson($tech_id,$tech); + if ($tech_id != $pi_id) $api->UpdatePerson($tech_id,$tech); $api->commit(); $api_error=$api->error(); if (!empty($api_error)) { @@ -234,6 +261,7 @@ else if ($_POST['submitted'] ) // the PI's email address, which makes the whole thing *a lot* simpler // enable the site, enable the PI, and VerifyPerson the thec if different from the PI $site['enabled'] = True; + global $APPROVED_CONSORTIUM_ID; $site['ext_consortium_id'] = $APPROVED_CONSORTIUM_ID; $api->UpdateSite ($site_id,$site); $api_error=$api->error(); @@ -241,10 +269,10 @@ else if ($_POST['submitted'] ) $error .= $api->error(); $messages [] = "Could not enable site"; } else { - $messages[] = "Site " . $site['name'] . " enabled"; + $messages[] = l_site_t ($site_id,"Site '" . $site['name'] . "' enabled"); } - if (empty ($error)) { + if (empty ($error) && $address_id) { // Update Address $api->UpdateAddress($address_id,$address); $api_error=$api->error();