
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@835348 13f79535-47bb-0310-9956-ffa450edef68
274 lines
8.9 KiB
PHP
274 lines
8.9 KiB
PHP
<!--
|
|
Licensed to the Apache Software Foundation (ASF) under one
|
|
or more contributor license agreements. See the NOTICE file
|
|
distributed with this work for additional information
|
|
regarding copyright ownership. The ASF licenses this file
|
|
to you under the Apache License, Version 2.0 (the
|
|
"License"); you may not use this file except in compliance
|
|
with the License. You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing,
|
|
software distributed under the License is distributed on an
|
|
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
KIND, either express or implied. See the License for the
|
|
specific language governing permissions and limitations
|
|
under the License.
|
|
-->
|
|
<?php
|
|
include 'SCA/SCA.php';
|
|
|
|
/**
|
|
* @service
|
|
* @binding.restrpc
|
|
* @types http://tuscany.apache.org/sca/samples/aggregator/types ./Alerts.xsd
|
|
*/
|
|
class AlertDisplay
|
|
{
|
|
/**
|
|
* @reference
|
|
* @binding.soap ./Alerts.wsdl
|
|
*/
|
|
public $alert_service;
|
|
|
|
/**
|
|
* @reference
|
|
* @binding.soap ./AlertsSources.wsdl
|
|
*/
|
|
public $alert_sources_service;
|
|
|
|
/**
|
|
* @return string
|
|
*/
|
|
public function getAlertsHTMLTable()
|
|
{
|
|
$xmldas = SDO_DAS_XML::create("./Alerts.xsd");
|
|
$doc = $xmldas->loadFile("./Cached_Alerts.xml");
|
|
$cached_alerts = $doc->getRootDataObject();
|
|
|
|
// Use the alertService reference
|
|
$request = $this->alert_service->createDataObject("http://tuscany.apache.org/sca/samples/aggregator/service",
|
|
"getAllNewAlerts");
|
|
$request->parm = "AString";
|
|
$new_alerts = $this->alert_service->getAllNewAlerts($request);
|
|
|
|
foreach($new_alerts->parm->Alert as $alert){
|
|
$new_alert = $cached_alerts->createDataObject('Alert');
|
|
$new_alert->Title = $alert->Title;
|
|
$new_alert->Summary = $alert->Summary;
|
|
$new_alert->Address = $alert->Address;
|
|
$new_alert->Date = $alert->Date;
|
|
$new_alert->SourceId = $alert->SourceId;
|
|
$new_alert->Unread = true;
|
|
}
|
|
|
|
$return_table = "<TABLE border=\'0\'>";
|
|
$alert_id_number = 0;
|
|
foreach($cached_alerts->Alert as $alert){
|
|
$alert->Id = "alert_" . $alert_id_number;
|
|
$title = substr($alert->Title,0,80);
|
|
$summary = substr($alert->Summary,0,40);
|
|
$unread_string = $alert->Unread ? "unread_title" : "read_title";
|
|
$return_row = <<<ALERTROW
|
|
<TR class="source_$alert->SourceId clickable" onclick="displayAlert('$alert->Address', '')">
|
|
<TD>
|
|
<SPAN id="$alert->Id" class="$unread_string">$title</SPAN>
|
|
<SPAN class="summary"> - $summary ...</SPAN>
|
|
</TD>
|
|
<TD>
|
|
$alert->Date
|
|
</TD>
|
|
</TR>
|
|
ALERTROW;
|
|
$return_table = $return_table . $return_row;
|
|
$alert_id_number += 1;
|
|
}
|
|
$return_table = $return_table . "</TABLE>";
|
|
|
|
// as php is one shot we have to save away the alerts we want to cache
|
|
$xmldas->saveFile($doc, "./Cached_Alerts.xml");
|
|
|
|
return $return_table;
|
|
}
|
|
|
|
/**
|
|
* @param string $alert_id
|
|
* @return string
|
|
*/
|
|
public function readAlert($alert_id)
|
|
{
|
|
$xmldas = SDO_DAS_XML::create("./Alerter.xsd");
|
|
$doc = $xmldas->loadFile("./Cached_Alerts.xml");
|
|
$cached_alerts = $doc->getRootDataObject();
|
|
|
|
$return_summary = "";
|
|
|
|
foreach($cached_alerts->alert as $alert){
|
|
if (strcmp($alert->Id,$alert_Id) == 0){
|
|
SCA::$logger->log("Match");
|
|
$alert->Unread = false;
|
|
$return_summary = "<PRE>" . $alert->Summary . "</PRE>";
|
|
}
|
|
}
|
|
|
|
// as php is one shot we have to save away the alerts we want to cache
|
|
$xmldas->saveFile($doc, "./Cached_Alerts.xml");
|
|
|
|
return $return_summary;
|
|
}
|
|
|
|
/**
|
|
* @return string
|
|
*/
|
|
public function getAlertSourcesHTMLTable()
|
|
{
|
|
$request = $this->alert_sources_service->createDataObject("http://tuscany.apache.org/sca/samples/aggregator/sources",
|
|
"getAlertSources");
|
|
$request->parm = "AString";
|
|
$alert_sources = $this->alert_sources_service->getAlertSources($request);
|
|
|
|
$return_table = "<TABLE border='0'>\n";
|
|
|
|
$no_of_sources = 0;
|
|
|
|
foreach ($alert_sources->parm->Source as $alert_source){
|
|
$source_id = $alert_source->Id;
|
|
$return_row = <<<SOURCEROW
|
|
<TR CLASS="source_$source_id" >
|
|
<TD CLASS="clickable" ONCLICK="displayAlert('$alert_source->Address', '')">
|
|
<IMG SRC="rss.png"/> $alert_source->Name
|
|
</TD>
|
|
<TD CLASS="clickable link" ONCLICK="showEditSource('$source_id')">Edit</TD>
|
|
<TD CLASS="clickable link" ONCLICK="deleteSource('$source_id')">Delete</TD>
|
|
</TR>
|
|
<TR ID="edit_source_$source_id" CLASS="hidden source_$source_id">
|
|
<TD COLSPAN="3">
|
|
<TABLE CLASS="sourceDetailsTable">
|
|
<TR>
|
|
<TD>Source name:</TD>
|
|
<TD>
|
|
<INPUT ID="source_{$source_id}_name" TYPE="TEXT" SIZE="50" VALUE="$alert_source->Name"/>
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD>Source address:</TD>
|
|
<TD>
|
|
<INPUT ID="source_{$source_id}_address" TYPE="TEXT" SIZE="50" VALUE="$alert_source->Address"/>
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD>
|
|
<INPUT ID="source_{$source_id}_type" TYPE="HIDDEN" VALUE="$source_id"/>
|
|
<INPUT TYPE="BUTTON" VALUE="Update" ONCLICK="updateSource('$source_id')"/>
|
|
<INPUT TYPE="BUTTON" VALUE="Cancel" ONCLICK="hideEditSource('$source_id')"/>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
</TD>
|
|
</TR>
|
|
SOURCEROW;
|
|
$return_table = $return_table . $return_row;
|
|
$no_of_sources = $no_of_sources + 1;
|
|
}
|
|
|
|
$source_id = $no_of_sources + 1;
|
|
|
|
$return_row = <<<ADDROW
|
|
<TR CLASS="source_$source_id">
|
|
<TD COLSPAN="4" CLASS="clickable link" ONCLICK="showAddNewSource('$source_id')">Add new Alert Source</TD>
|
|
</TR>
|
|
<TR ID="add_source_$source_id" CLASS="hidden source_$source_id">
|
|
<TD COLSPAN="4">
|
|
<TABLE CLASS="sourceDetailsTable">
|
|
<TR>
|
|
<TD>Source name:</TD>
|
|
<TD>
|
|
<INPUT ID="source_{$source_id}_name" TYPE="TEXT" SIZE="50">
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD>Source address:</TD>
|
|
<TD>
|
|
<INPUT ID="source_{$source_id}_address" TYPE="TEXT" SIZE="50">
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD>Source type:</TD>
|
|
<TD>
|
|
<SELECT ID="source_{$source_id}_type" ONCHANGE="showSourceType('$source_id')">
|
|
<OPTION value="rss" selected="selected">RSS/Atom feed</OPTION>"
|
|
</SELECT>
|
|
</TD>
|
|
</TR>
|
|
<TR ID="add_rss_source">
|
|
<TD COLSPAN="2">
|
|
<TABLE CLASS="sourceDetailsTable">
|
|
<TR>
|
|
<TD>Feed address:</TD>
|
|
<TD>
|
|
<INPUT ID="source_{$source_id}_feedAddress" TYPE="TEXT" SIZE="50"/>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD>
|
|
<INPUT TYPE="BUTTON" VALUE="Add" ONCLICK="addSource('$source_id')">
|
|
<INPUT TYPE="BUTTON" VALUE="Cancel" ONCLICK="hideAddNewSource('$source_id')">
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
</TD>
|
|
</TR>
|
|
ADDROW;
|
|
|
|
$return_table = $return_table . $return_row;
|
|
$return_table = $return_table . "</TABLE>\n";
|
|
return $return_table;
|
|
}
|
|
|
|
/**
|
|
* @param integer $source_id
|
|
* @return string
|
|
*/
|
|
public function deleteAlertSource($source_id){
|
|
$this->alert_sources_service->removeAlertSource($source_id);
|
|
}
|
|
|
|
/**
|
|
* @param SingleSourceType $alert_source http://tuscany.apache.org/sca/samples/aggregator/types
|
|
*/
|
|
public function addAlertSource($alert_source){
|
|
$request = $this->alert_sources_service->createDataObject("http://tuscany.apache.org/sca/samples/aggregator/sources",
|
|
"addAlertSource");
|
|
$source = $request->createDataObject("parm");
|
|
|
|
$source->Name = $alert_source->Name;
|
|
$source->Address = $alert_source->Address;
|
|
$source->Id = $alert_source->Id;
|
|
$source->Type = $alert_source->Type;
|
|
|
|
$this->alert_sources_service->addAlertSource($request);
|
|
}
|
|
|
|
/**
|
|
* @param SourceType $alert_source http://tuscany.apache.org/sca/samples/aggregator/types
|
|
*/
|
|
public function updateAlertSource($alert_source){
|
|
$this->alert_sources_service->updateAlertSource($alert_source);
|
|
}
|
|
}
|
|
|
|
/* Some debugging lines
|
|
ob_start();
|
|
print_r( $new_alerts );
|
|
$debug = ob_get_contents();
|
|
ob_end_clean();
|
|
SCA::$logger->log($debug);
|
|
*/
|
|
?>
|
|
|
|
|
|
|