コード例 #1
0
 /**
  * Renders the HTML form for generating secure URLs.
  *
  * @return string
  *
  * @since 1.0
  */
 private function renderForm()
 {
     $config = ConfigProvider::getInstance();
     $html = '<p>Use this form to generate secure (encrypted) URLs which make use of the Front Controller.  Always be sure to specify an action controller' . ' (act) at a minimum.</p>';
     $html .= '<p>Example 1: to generate a secure URL for viewing article object 00000000001, enter <em>act=Alpha\\Controller\\ArticleController&amp;ActiveRecordOID=00000000001</em></p>';
     $html .= '<p>Example 2: to generate a secure URL for viewing an Atom news feed of the articles, enter' . ' <em>act=Alpha\\Controller\\FeedController&amp;ActiveRecordType=Alpha\\Model\\Article&amp;type=Atom</em></p>';
     $html .= '<form action="' . $this->request->getURI() . '" method="post" accept-charset="UTF-8"><div class="form-group">';
     $string = new StringBox(new String(''), 'Parameters', 'QS');
     $html .= $string->render();
     $fieldname = $config->get('security.encrypt.http.fieldnames') ? base64_encode(SecurityUtils::encrypt('saveBut')) : 'saveBut';
     $temp = new Button('submit', 'Generate', $fieldname);
     $html .= $temp->render();
     $html .= '</div></form>';
     return $html;
 }
コード例 #2
0
ファイル: PersonView.php プロジェクト: alphadevx/alpha
 /**
  * Method to render the reset password HTML form.
  *
  * @return string
  *
  * @since 1.0
  */
 public function displayResetForm()
 {
     $config = ConfigProvider::getInstance();
     $html = '<div class="bordered padded">';
     $html .= '<h1>Password reset</h1>';
     $html .= '<p>If you have forgotten your password, you can use this form to have a new password automatically generated and sent to your e-mail address.</p>';
     $html .= '<form action="' . FrontController::generateSecureURL('act=Alpha\\Controller\\LoginController&reset=true') . '" method="POST" id="resetForm" accept-charset="UTF-8">';
     $request = new Request(array('method' => 'GET'));
     $email = new String($request->getParam('email', ''));
     $email->setRule(Validator::REQUIRED_EMAIL);
     $email->setSize(70);
     $email->setHelper('Please provide a valid e-mail address!');
     $stringBox = new StringBox($email, $this->BO->getDataLabel('email'), 'email', 'resetForm', '50');
     $html .= $stringBox->render();
     $html .= '<div class="form-group lower spread">';
     $temp = new Button('submit', 'Reset Password', 'resetBut');
     $html .= $temp->render();
     $temp = new Button("document.location.replace('" . $config->get('app.url') . "')", 'Cancel', 'cancelBut');
     $html .= $temp->render();
     $html .= '</div>';
     $html .= $this->renderSecurityFields();
     $html .= '</form>';
     $html .= '</div>';
     return $html;
 }
コード例 #3
0
ファイル: TagController.php プロジェクト: alphadevx/alpha
 /**
  * Handle GET requests.
  *
  * @param Alpha\Util\Http\Request $request
  *
  * @return Alpha\Util\Http\Response
  *
  * @throws Alpha\Exception\IllegalArguementException
  * @throws Alpha\Exception\FileNotFoundException
  *
  * @since 1.0
  */
 public function doGET($request)
 {
     self::$logger->debug('>>doGET($request=[' . var_export($request, true) . '])');
     $params = $request->getParams();
     $config = ConfigProvider::getInstance();
     $body = '';
     // render the tag manager screen
     if (!isset($params['ActiveRecordType']) && !isset($params['ActiveRecordOID'])) {
         $body .= View::displayPageHead($this);
         $message = $this->getStatusMessage();
         if (!empty($message)) {
             $body .= $message;
         }
         $body .= '<h3>Listing active record which are tagged</h3>';
         $ActiveRecordTypes = ActiveRecord::getBOClassNames();
         foreach ($ActiveRecordTypes as $ActiveRecordType) {
             $record = new $ActiveRecordType();
             if ($record->isTagged()) {
                 $tag = new Tag();
                 $count = count($tag->loadAllByAttribute('taggedClass', $ActiveRecordType));
                 $body .= '<h4>' . $record->getFriendlyClassName() . ' record type is tagged (' . $count . ' tags found)</h4>';
                 $fieldname = $config->get('security.encrypt.http.fieldnames') ? base64_encode(SecurityUtils::encrypt('clearTaggedClass')) : 'clearTaggedClass';
                 $js = "if(window.jQuery) {\n                        BootstrapDialog.show({\n                            title: 'Confirmation',\n                            message: 'Are you sure you want to delete all tags attached to the " . $record->getFriendlyClassName() . " class, and have them re-created?',\n                            buttons: [\n                                {\n                                    icon: 'glyphicon glyphicon-remove',\n                                    label: 'Cancel',\n                                    cssClass: 'btn btn-default btn-xs',\n                                    action: function(dialogItself){\n                                        dialogItself.close();\n                                    }\n                                },\n                                {\n                                    icon: 'glyphicon glyphicon-ok',\n                                    label: 'Okay',\n                                    cssClass: 'btn btn-default btn-xs',\n                                    action: function(dialogItself) {\n                                        \$('[id=\"" . $fieldname . "\"]').attr('value', '" . addslashes($ActiveRecordType) . "');\n                                        \$('#clearForm').submit();\n                                        dialogItself.close();\n                                    }\n                                }\n                            ]\n                        });\n                    }";
                 $button = new Button($js, 'Re-create tags', 'clearBut' . stripslashes($ActiveRecordType));
                 $body .= $button->render();
             }
         }
         ActiveRecord::disconnect();
         $body .= '<form action="' . $request->getURI() . '" method="POST" id="clearForm">';
         $body .= '<input type="hidden" name="' . $fieldname . '" id="' . $fieldname . '"/>';
         $body .= View::renderSecurityFields();
         $body .= '</form>';
     } elseif (isset($params['ActiveRecordType']) && $params['ActiveRecordType'] != 'Alpha\\Model\\Tag' && isset($params['ActiveRecordOID'])) {
         // render screen for managing individual tags on a given active record
         $body .= View::displayPageHead($this);
         $message = $this->getStatusMessage();
         if (!empty($message)) {
             $body .= $message;
         }
         $ActiveRecordType = urldecode($params['ActiveRecordType']);
         $ActiveRecordOID = $params['ActiveRecordOID'];
         if (class_exists($ActiveRecordType)) {
             $record = new $ActiveRecordType();
         } else {
             throw new IllegalArguementException('No ActiveRecord available to display tags for!');
         }
         try {
             $record->load($ActiveRecordOID);
             $tags = $record->getPropObject('tags')->getRelatedObjects();
             ActiveRecord::disconnect();
             $body .= '<form action="' . $request->getURI() . '" method="POST" accept-charset="UTF-8">';
             $body .= '<h3>The following tags were found:</h3>';
             foreach ($tags as $tag) {
                 $labels = $tag->getDataLabels();
                 $temp = new StringBox($tag->getPropObject('content'), $labels['content'], 'content_' . $tag->getID(), '');
                 $body .= $temp->render(false);
                 $js = "if(window.jQuery) {\n                        BootstrapDialog.show({\n                            title: 'Confirmation',\n                            message: 'Are you sure you wish to delete this tag?',\n                            buttons: [\n                                {\n                                    icon: 'glyphicon glyphicon-remove',\n                                    label: 'Cancel',\n                                    cssClass: 'btn btn-default btn-xs',\n                                    action: function(dialogItself){\n                                        dialogItself.close();\n                                    }\n                                },\n                                {\n                                    icon: 'glyphicon glyphicon-ok',\n                                    label: 'Okay',\n                                    cssClass: 'btn btn-default btn-xs',\n                                    action: function(dialogItself) {\n                                        \$('[id=\"" . ($config->get('security.encrypt.http.fieldnames') ? base64_encode(SecurityUtils::encrypt('ActiveRecordOID')) : 'ActiveRecordOID') . "\"]').attr('value', '" . $tag->getID() . "');\n                                        \$('#deleteForm').submit();\n                                        dialogItself.close();\n                                    }\n                                }\n                            ]\n                        });\n                    }";
                 $button = new Button($js, 'Delete', 'delete' . $tag->getID() . 'But');
                 $body .= $button->render();
             }
             $body .= '<h3>Add a new tag:</h3>';
             $temp = new StringBox(new String(), 'New tag', 'NewTagValue', '');
             $body .= $temp->render(false);
             $temp = new Button('submit', 'Save', 'saveBut');
             $body .= $temp->render();
             $body .= '&nbsp;&nbsp;';
             if ($params['ActiveRecordType'] = 'Alpha\\Model\\Article') {
                 $temp = new Button("document.location = '" . FrontController::generateSecureURL('act=Alpha\\Controller\\ArticleController&ActiveRecordType=' . $params['ActiveRecordType'] . '&ActiveRecordOID=' . $params['ActiveRecordOID'] . '&view=edit') . "'", 'Back to record', 'cancelBut');
             } else {
                 $temp = new Button("document.location = '" . FrontController::generateSecureURL('act=Alpha\\Controller\\ActiveRecordController&ActiveRecordType=' . $params['ActiveRecordType'] . '&ActiveRecordOID=' . $params['ActiveRecordOID'] . '&view=edit') . "'", 'Back to record', 'cancelBut');
             }
             $body .= $temp->render();
             $body .= View::renderSecurityFields();
             $body .= '</form>';
             $body .= View::renderDeleteForm($request->getURI());
         } catch (RecordNotFoundException $e) {
             $msg = 'Unable to load the ActiveRecord of id [' . $params['ActiveRecordOID'] . '], error was [' . $e->getMessage() . ']';
             self::$logger->error($msg);
             throw new FileNotFoundException($msg);
         }
     } else {
         return parent::doGET($request);
     }
     $body .= View::displayPageFoot($this);
     self::$logger->debug('<<doGET');
     return new Response(200, $body, array('Content-Type' => 'text/html'));
 }
コード例 #4
0
 /**
  * {@inheritdoc}
  */
 public function renderStringField($name, $label, $mode, $value = '')
 {
     self::$logger->debug('>>renderStringField(name=[' . $name . '], label=[' . $label . '], mode=[' . $mode . '], value=[' . $value . '])');
     $config = ConfigProvider::getInstance();
     $html = '';
     if ($mode == 'create' || $mode == 'edit') {
         $string = new StringBox($this->BO->getPropObject($name), $label, $name);
         $html .= $string->render();
     }
     if ($mode == 'view') {
         $html .= '<p><strong>' . $label . ':</strong> ' . $value . '</p>';
     }
     self::$logger->debug('<<renderStringField [' . $html . ']');
     return $html;
 }
コード例 #5
0
ファイル: DEnumView.php プロジェクト: alphadevx/alpha
 /**
  * Custom edit view.
  *
  * @return string
  *
  * @since 1.0
  */
 public function editView($fields = array())
 {
     $config = ConfigProvider::getInstance();
     $labels = $this->BO->getDataLabels();
     $obj_type = '';
     $html = '<form action="' . $fields['URI'] . '" method="POST" accept-charset="UTF-8">';
     $temp = new StringBox($this->BO->getPropObject('name'), $labels['name'], 'name', '', 0, true, true);
     $html .= $temp->render();
     $html .= '<h3>DEnum display values:</h3>';
     // now get all of the options for the enum and render
     $denum = $this->BO;
     $tmp = new DEnumItem();
     $denumItems = $tmp->loadItems($denum->getID());
     foreach ($denumItems as $item) {
         $labels = $item->getDataLabels();
         $temp = new StringBox($item->getPropObject('value'), $labels['value'], 'value_' . $item->getID(), '');
         $html .= $temp->render();
     }
     $fieldname = $config->get('security.encrypt.http.fieldnames') ? base64_encode(SecurityUtils::encrypt('version_num')) : 'version_num';
     $html .= '<input type="hidden" name="' . $fieldname . '" value="' . $this->BO->getVersion() . '"/>';
     $html .= '<h3>Add a new value to the DEnum dropdown list:</h3>';
     $temp = new StringBox(new String(), 'Dropdown value', 'new_value', '');
     $html .= $temp->render();
     $temp = new Button('submit', 'Save', 'saveBut');
     $html .= $temp->render();
     $html .= '&nbsp;&nbsp;';
     $temp = new Button("document.location = '" . FrontController::generateSecureURL('act=Alpha\\Controller\\DEnumController') . "'", 'Back to List', 'cancelBut');
     $html .= $temp->render();
     $html .= '';
     $html .= View::renderSecurityFields();
     $html .= '</form>';
     return $html;
 }