protected function RenderContent() { ?> <style type="text/css"> .CodeMirror { border: dotted 1px #AAAAAA; line-height: 18px; } .CodeMirror .CodeMirror-linenumbers { width: 48px; } </style> <script type="text/javascript"> // TODO: make this work with AJAX var CodeMirrorDefaultParameters = { lineNumbers: true, matchBrackets: true, mode: "text/x-php", indentUnit: 4, indentWithTabs: true }; function InitializeCodeMirror(id) { var txt = document.getElementById(id); if (txt.CodeMirrorInitialized) return; var edt = CodeMirror.fromTextArea(txt, CodeMirrorDefaultParameters); txt.CodeMirrorInitialized = true; } function tbs_OnClientTabChanged() { switch (tbs.SelectedTabID) { case "tabEncoder": { InitializeCodeMirror("txtEncoderCodeBlob"); break; } case "tabDecoder": { InitializeCodeMirror("txtDecoderCodeBlob"); break; } case "tabColumnRenderer": { InitializeCodeMirror("txtColumnRendererCodeBlob"); break; } case "tabEditorRenderer": { InitializeCodeMirror("txtEditorRendererCodeBlob"); break; } } } </script> <form method="POST"> <?php if ($this->CurrentObject != null) { echo "<input type=\"hidden\" name=\"tenanttype_ID\" value=\"" . $this->CurrentObject->ID . "\" />"; } $fv = new FormView("fv"); $fv->Items[] = new FormViewItemText("txtObjectName", "tenanttype_Title", "Title", $this->CurrentObject->Title); $fv->Items[0]->Required = true; $fv->Items[] = new FormViewItemMemo("txtObjectDescription", "tenanttype_Description", "Description", $this->CurrentObject->Description); $fv->Render(); ?> <div class="Buttons"> <input class="Button Default" type="submit" value="Save Changes" /> <a class="Button" href="<?php echo System::ExpandRelativePath("~/tenant-types"); ?> ">Cancel</a> </div> </form> <?php }
protected function RenderContent() { ?> <style type="text/css"> .CodeMirror { border: dotted 1px #AAAAAA; line-height: 18px; } .CodeMirror .CodeMirror-linenumbers { width: 48px; } </style> <script type="text/javascript"> // TODO: make this work with AJAX var CodeMirrorDefaultParameters = { lineNumbers: true, matchBrackets: true, mode: "text/x-php", indentUnit: 4, indentWithTabs: true }; function InitializeCodeMirror(id) { var txt = document.getElementById(id); if (txt.CodeMirrorInitialized) return; var edt = CodeMirror.fromTextArea(txt, CodeMirrorDefaultParameters); txt.CodeMirrorInitialized = true; } function tbs_OnClientTabChanged() { switch (tbs.GetSelectedTabID()) { case "tabEncoder": { InitializeCodeMirror("txtEncoderCodeBlob"); break; } case "tabDecoder": { InitializeCodeMirror("txtDecoderCodeBlob"); break; } case "tabColumnRenderer": { InitializeCodeMirror("txtColumnRendererCodeBlob"); break; } case "tabEditorRenderer": { InitializeCodeMirror("txtEditorRendererCodeBlob"); break; } } } </script> <form method="POST"> <?php if ($this->CurrentDataType != null) { echo "<input type=\"hidden\" name=\"datatype_ID\" value=\"" . $this->CurrentDataType->ID . "\" />"; } $tbs = new TabContainer("tbs"); $tbs->OnClientTabChanged = "tbs_OnClientTabChanged();"; $tbs->TabPages[] = new TabPage("tabGeneral", "General Information", null, null, null, function () { $fv = new FormView("fv"); $fv->Width = "100%"; $fv->Items[] = new FormViewItemText("txtDataTypeName", "datatype_Name", "Name", $this->CurrentDataType->Name); $fv->Items[0]->Required = true; $fv->Items[] = new FormViewItemMemo("txtDataTypeDescription", "datatype_Description", "Description", $this->CurrentDataType->Description); $fv->Render(); }); $tbs->TabPages[] = new TabPage("tabEncoder", "Encoder", null, null, null, function () { $ds = new Disclosure(); $ds->Title = "Code"; $ds->BeginContent(); ?> <textarea id="txtEncoderCodeBlob" name="datatype_EncoderCodeBlob" style="width: 100%;" rows="20"><?php echo $this->CurrentDataType->EncoderCodeBlob; ?> </textarea> <?php $ds->EndContent(); /* $ds = new Disclosure(); $ds->Title = "Preview"; $ds->BeginContent(); ?> <div class="FormView"> <div class="Field"> <label id="lblEncoderCodeBlobValue" for="txtEncoderCodeBlobValue">Value</label> <input type="text" onchange="__EncoderCodeBlob_RefreshResult();" /> </div> <div class="Field"> <label id="lblEncoderCodeBlobResult" for="txtEncoderCodeBlobResult">Result</label> <span id="txtEncoderCodeBlobResult"> </span> </div> </div> <?php $ds->EndContent(); */ }); $tbs->TabPages[] = new TabPage("tabDecoder", "Decoder", null, null, null, function () { $ds = new Disclosure(); $ds->Title = "Code"; $ds->BeginContent(); ?> <textarea id="txtDecoderCodeBlob" name="datatype_DecoderCodeBlob" style="width: 100%;" rows="20"><?php echo $this->CurrentDataType->DecoderCodeBlob; ?> </textarea> <?php $ds->EndContent(); }); $tbs->TabPages[] = new TabPage("tabColumnRenderer", "Column Renderer", null, null, null, function () { $ds = new Disclosure(); $ds->Title = "Code"; $ds->BeginContent(); ?> <textarea id="txtColumnRendererCodeBlob" name="datatype_ColumnRendererCodeBlob" style="width: 100%;" rows="20"><?php echo $this->CurrentDataType->ColumnRendererCodeBlob; ?> </textarea> <?php $ds->EndContent(); $ds = new Disclosure(); $ds->Title = "Preview"; $ds->BeginContent(); $ds->EndContent(); }); $tbs->TabPages[] = new TabPage("tabEditorRenderer", "Editor Renderer", null, null, null, function () { $ds = new Disclosure(); $ds->Title = "Code"; $ds->BeginContent(); ?> <textarea id="txtEditorRendererCodeBlob" name="datatype_EditorRendererCodeBlob" style="width: 100%;" rows="20"><?php echo $this->CurrentDataType->EditorRendererCodeBlob; ?> </textarea> <?php $ds->EndContent(); $ds = new Disclosure(); $ds->Title = "Preview"; $ds->BeginContent(); $ds->EndContent(); }); $tbs->SelectedTab = $tbs->TabPages[0]; $tbs->Render(); ?> <div class="Buttons"> <input class="Button Default" type="submit" value="Save Changes" /> <a class="Button" href="<?php echo System::ExpandRelativePath("~/data-types"); ?> ">Cancel</a> </div> </form> <?php }
protected function RenderContent() { ?> <form method="POST" onsubmit="return form_OnSubmit();"> <?php $tbs = new TabContainer("tbsTabs"); $tbs->TabPages[] = new TabPage("tabGeneralInformation", "General Information", null, null, null, function () { $fv = new FormView(); $fv->Items[] = new FormViewItemText("txtTenantURL", "tenant_URL", "Name", $this->Tenant->URL); $fvTenantTypes = array(); $tenanttypes = TenantType::Get(); foreach ($tenanttypes as $tenanttype) { $fvTenantType = new FormViewItemChoiceValue($tenanttype->Title, $tenanttype->ID); $fvTenantType->Selected = $this->Tenant != null && $this->Tenant->Type != null && $tenanttype->ID == $this->Tenant->Type->ID; $fvTenantTypes[] = $fvTenantType; } $fv->Items[] = new FormViewItemChoice("cboTenantType", "tenant_TypeID", "Type", null, $fvTenantTypes); $fv->Items[] = new FormViewItemBoolean("chkStatus", "tenant_Status", "Status", $this->Tenant->Status == TenantStatus::Enabled); $fvDataCenters = array(); $datacenters = DataCenter::Get(); foreach ($datacenters as $datacenter) { $fvDataCenter = new FormViewItemChoiceValue($datacenter->Title, $datacenter->ID); $fvDataCenter->Selected = $this->Tenant != null && $this->Tenant->DataCenters->Contains($datacenter); $fvDataCenters[] = $fvDataCenter; } $fv->Items[] = new FormViewItemChoice("cboDataCenter", "tenant_DataCenterIDs", "Data centers", null, $fvDataCenters, true); $fvPaymentPlans = array(); $paymentplans = PaymentPlan::Get(); foreach ($paymentplans as $paymentplan) { $fvPaymentPlan = new FormViewItemChoiceValue($paymentplan->Title, $paymentplan->ID); $fvPaymentPlan->Selected = $this->Tenant != null && $this->Tenant->PaymentPlan != null && $paymentplan->ID == $this->Tenant->PaymentPlan->ID; $fvPaymentPlans[] = $fvPaymentPlan; } $fv->Items[] = new FormViewItemChoice("cboPaymentPlan", "tenant_PaymentPlanID", "Payment plan", null, $fvPaymentPlans); $fv->Items[] = new FormViewItemDateTime("txtActivationDate", "tenant_BeginTimestamp", "Activation date", $this->Tenant != null ? $this->Tenant->BeginTimestamp : null, true); $fv->Items[] = new FormViewItemDateTime("txtTerminationDate", "tenant_EndTimestamp", "Termination date", $this->Tenant != null ? $this->Tenant->EndTimestamp : null, true); $fv->Items[] = new FormViewItemMemo("txtDescription", "tenant_Description", "Description", $this->Tenant->Description); $fv->Render(); }); $path = System::GetVirtualPath(); if ($path[1] != "clone") { $tbs->TabPages[] = new TabPage("tabCustomProperties", "Custom Properties", null, null, null, function () { $lv = new ListView(); $lv->Width = "100%"; $lv->EnableAddRemoveRows = true; $lv->Columns = array(new ListViewColumn("lvcProperty", "Property"), new ListViewColumn("lvcDescription", "Description"), new ListViewColumn("lvcValue", "Value")); $properties = $this->Tenant->GetProperties(); foreach ($properties as $property) { $lv->Items[] = new ListViewItem(array(new ListViewItemColumn("lvcProperty", $property->Name), new ListViewItemColumn("lvcDescription", $property->Description), new ListViewItemColumn("lvcValue", null, null, function ($property) { $property->DataType->RenderEditor($this->Tenant->GetPropertyValue($property), "Property_" . $property->ID); }, $property))); } $lv->Render(); }); $tbs->TabPages[] = new TabPage("tabEnabledModules", "Enabled Modules", null, null, null, function () { $lv = new ListView(); $lv->Width = "100%"; $lv->EnableRowCheckBoxes = true; $lv->Columns = array(new ListViewColumn("lvcModule", "Module"), new ListViewColumn("lvcDescription", "Description")); $modules = Module::Get(null); foreach ($modules as $module) { $item = new ListViewItem(array(new ListViewItemColumn("lvcModule", "<a href=\"" . System::ExpandRelativePath("~/tenant/modify/" . $this->Tenant->URL . "/modules/" . $module->ID . "\">" . $module->Title . "</a>", $module->Title)), new ListViewItemColumn("lvcDescription", $module->Description))); $item->Checked = $this->Tenant->HasModule($module); $lv->Items[] = $item; } $lv->Render(); }); $tbs->TabPages[] = new TabPage("tabGlobalObjects", "Global Objects", null, null, null, function () { $lv = new ListView(); $lv->Width = "100%"; $lv->EnableAddRemoveRows = true; $lv->Columns = array(new ListViewColumn("lvcObject", "Object"), new ListViewColumn("lvcDescription", "Description"), new ListViewColumn("lvcInstances", "Instances")); $objects = TenantObject::Get(null, $this->Tenant); foreach ($objects as $object) { $lv->Items[] = new ListViewItem(array(new ListViewItemColumn("lvcObject", $object->Name), new ListViewItemColumn("lvcDescription", $object->Description), new ListViewItemColumn("lvcInstances", "<a href=\"" . System::ExpandRelativePath("~/tenant/modify/" . $this->Tenant->URL . "/objects/" . $object->ID . "/instances") . "\">" . $object->CountInstances() . "</a>"))); } $lv->Render(); }); } $tbs->SelectedTab = $tbs->TabPages[0]; $tbs->Render(); ?> <div class="Buttons"> <input class="Button Default" type="submit" value="Save Changes" /> <a class="Button" onclick="return nav('/tenant');" href="<?php echo System::ExpandRelativePath("~/tenant"); ?> ">Cancel</a> </div> </form> <script type="text/javascript"> var TenantManagementPageMode = { "Create": 1, "Modify": 2 } <?php if ($this->Mode == TenantManagementPageMode::Create) { echo "var Mode = TenantManagementPageMode.Create;"; } else { if ($this->Mode == TenantManagementPageMode::Modify) { echo "var Mode = TenantManagementPageMode.Modify;"; } } ?> function form_OnSubmit() { if (Mode == TenantManagementPageMode.Create) { var xhr = new XMLHttpRequest(); var tenantName = document.getElementById('txtTenantURL').value; xhr.open("GET", "/API/Tenant.php?action=exists&q=" + tenantName, false); xhr.send(null); var obj = JSON.parse(xhr.responseText); if (obj.result == "success" && obj.exists) { Notification.Show("Tenant '" + tenantName + "' already exists", "Please specify a unique tenant name", "Error"); return false; } } Notification.Show("Changes were saved successfully", "Taking you back to the Tenant Management page", "Success"); return true; } </script> <?php }