コード例 #1
0
 /**
  * Returns a JasperResponseXmlDoc to working on
  * @return JasperResponseXmlDoc
  */
 private function getJasperResponse()
 {
     $request = new JasperRequestXmlDoc('get');
     $request->setResourceDescriptor(JasperRequestXmlDoc::DESCRIPTOR_ATTR_URI, $this->__uri);
     $response = new JasperResponseXmlDoc($this->__client->get($request->getSoapParameter()));
     return $response;
 }
コード例 #2
0
 private function buildSoapRequest($uri)
 {
     $request = new JasperRequestXmlDoc('get');
     $request->setResourceDescriptor(JasperRequestXmlDoc::DESCRIPTOR_ATTR_URI, $uri);
     $descriptors = new JasperResponseXmlDoc($this->__client->get($request->getSoapParameter()));
     foreach ($descriptors as $rd) {
         if ($rd->getResourceDescriptor()->getParameter(JasperResourceDescriptor::DESCRIPTOR_ATTR_TYPE) == 'inputControl') {
             $this->__inputControls[] = $rd;
         }
     }
 }
コード例 #3
0
 private function getListvalues($uri)
 {
     $request = new JasperRequestXmlDoc('get');
     $request->setResourceDescriptor(JasperRequestXmlDoc::DESCRIPTOR_ATTR_URI, $uri);
     $response = new JasperResponseXmlDoc($this->__client->get($request->getSoapParameter()));
     $data = array();
     foreach ($response as $rd) {
         $data = $rd->getProperties()->getParameter(JasperResourceDescriptor::PROP_LOV);
         break;
     }
     return $data;
 }
コード例 #4
0
 public function getJsonStructure()
 {
     $request = new JasperRequestXmlDoc('list');
     $request->setResourceDescriptor(JasperRequestXmlDoc::DESCRIPTOR_ATTR_TYPE, 'folder');
     $uri = $this->__parent;
     if ($this->hasParameter('tree_root')) {
         if (!preg_match('/^' . preg_quote($this->getParameter('tree_root'), '/') . '/', $uri)) {
             if ($uri !== 'root') {
                 $this->getContext()->getLoggerManager()->log('Reports: Possible security hack, try accessing jasper server on ' . $uri . ' without matching root path', AgaviLogger::ERROR);
             }
             $uri = $this->getParameter('tree_root');
         }
     } else {
         if ($uri == 'root') {
             $uri = '/';
         }
     }
     $request->setResourceDescriptor(JasperRequestXmlDoc::DESCRIPTOR_ATTR_URI, $uri);
     $response = new JasperResponseXmlDoc($this->__soap->list($request->getSoapParameter()));
     $out = array();
     foreach ($response as $rd) {
         /*
          * Maybe we should dereference references without name, don't know
          */
         if (!$rd->getResourceDescriptor()->getParameter(JasperResourceDescriptor::DESCRIPTOR_ATTR_NAME)) {
             continue;
         }
         if ($this->__filter) {
             if ($this->__filter->matchDescriptor($rd) == false) {
                 continue;
             }
         }
         $p = $rd->getResourceDescriptor();
         $tmp = array('id' => $p->getParameter(JasperResourceDescriptor::DESCRIPTOR_ATTR_URI), 'text' => $p->getParameter(JasperResourceDescriptor::DESCRIPTOR_ATTR_NAME), 'leaf' => $p->getParameter(JasperResourceDescriptor::DESCRIPTOR_ATTR_TYPE) == 'folder' ? false : true, 'type' => $p->getParameter(JasperResourceDescriptor::DESCRIPTOR_ATTR_TYPE), 'uri' => $p->getParameter(JasperResourceDescriptor::DESCRIPTOR_ATTR_URI), 'name' => $p->getParameter(JasperResourceDescriptor::DESCRIPTOR_ATTR_NAME), 'label' => $rd->getLabel(), 'iconCls' => $this->mapIconClassByType($p->getParameter(JasperResourceDescriptor::DESCRIPTOR_ATTR_TYPE)));
         $tmp = (array) $rd->getProperties()->getParameters() + $tmp;
         $out[] = $tmp;
     }
     return $out;
 }
コード例 #5
0
 /**
  * We have our own envelope request doc so create the request
  * from that and do not call the methods seperately
  * @param JasperRequestXmlDoc $doc
  * @throws SoapFault
  * @return boolean
  */
 public function doRequest(JasperRequestXmlDoc $doc)
 {
     $this->__request =& $doc;
     $function = $doc->getOperationName();
     try {
         $this->__call($function, array($doc->getSoapParameter()));
         $this->parseSoapReply();
     } catch (SoapFault $e) {
         if ($e->getMessage() == self::SOAP_BLIND_ERROR) {
             $this->parseSoapReply();
         } else {
             /**
              * That is not the wanted error, so throw again
              */
             throw $e;
         }
     }
     if ($this->getJasperResponseFor(self::CONTENT_ID_RESPONSE)->success() === false) {
         throw new AppKitModelException($this->getJasperResponseFor(self::CONTENT_ID_RESPONSE)->returnMessage());
     }
     return true;
 }