/** * {@inheritdoc} */ public function detailedView($fields = array()) { self::$logger->debug('>>detailedView(fields=[' . var_export($fields, true) . '])'); $config = ConfigProvider::getInstance(); $sessionProvider = $config->get('session.provider.name'); $session = SessionProviderFactory::getInstance($sessionProvider); // we may want to display the OID regardless of class $fields['OIDLabel'] = $this->BO->getDataLabel('OID'); $fields['OID'] = $this->BO->getOID(); // buffer form fields to $formFields $fields['formFields'] = $this->renderAllFields('view'); // Back button $button = new Button('history.back()', 'Back', 'backBut'); $fields['backButton'] = $button->render(); $html = ''; // render edit and delete buttons for admins only if ($session->get('currentUser') !== false && $session->get('currentUser')->inGroup('Admin')) { if (isset($fields['editButtonURL'])) { $button = new Button("document.location = '" . $fields['editButtonURL'] . "'", 'Edit', 'editBut'); } else { $button = new Button("document.location = '" . FrontController::generateSecureURL('act=Alpha\\Controller\\ActiveRecordController&ActiveRecordType=' . get_class($this->BO) . '&ActiveRecordOID=' . $this->BO->getOID() . '&view=edit') . "'", 'Edit', 'editBut'); } $html .= $button->render(); $js = "if(window.jQuery) {\n BootstrapDialog.show({\n title: 'Confirmation',\n message: 'Are you sure you wish to delete this item?',\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', '" . $this->BO->getOID() . "');\n \$('#deleteForm').submit();\n dialogItself.close();\n }\n }\n ]\n });\n }"; $button = new Button($js, 'Delete', 'deleteBut'); $html .= $button->render(); } $fields['adminButtons'] = $html; self::$logger->debug('<<detailedView [HTML]'); return View::loadTemplate($this->BO, 'detail', $fields); }