protected function RenderContent() { $datacenters = DataCenter::Get(); $lv = new ListView(); $lv->Columns = array(new ListViewColumn("chDataCenter", "Data Center"), new ListViewColumn("chDescription", "Description"), new ListViewColumn("chHostName", "Host name")); foreach ($datacenters as $datacenter) { $lv->Items[] = new ListViewItem(array(new ListViewItemColumn("chDataCenter", "<a href=\"" . System::ExpandRelativePath("~/data-centers/modify/" . $datacenter->ID) . "\">" . $datacenter->Title . "</a>", $datacenter->Title), new ListViewItemColumn("chDescription", $datacenter->Description), new ListViewItemColumn("chHostName", "<a href=\"http://" . $datacenter->HostName . "\">" . $datacenter->HostName . "</a>"))); } $lv->Render(); }
public function __construct() { parent::__construct(); $this->StyleSheets[] = new WebStyleSheet("~/StyleSheets/Main.css"); $this->StyleSheets[] = new WebStyleSheet("http://static.alcehosting.net/dropins/WebFramework/StyleSheets/Professional/Main.css"); $tenants = Tenant::Get(); $tenantsNavigationButtons = array(); foreach ($tenants as $tenant) { $tenantsNavigationButtons[] = new NavigationButton("~/tenant/modify/" . $tenant->URL, $tenant->URL, null, null, null); } $this->HeaderButtons = array(); $this->SidebarButtons = array(new NavigationSeparator("Quick Start"), new NavigationButton("~/", "Dashboard", "dashboard"), new NavigationSeparator("Management"), new NavigationButton("~/tenant", "Tenants", "th-list", null, null, count($tenants), $tenantsNavigationButtons), new NavigationButton("~/modules", "Modules", "puzzle-piece", null, null, Module::Count()), new NavigationButton("~/data-centers", "Data Centers", "building-o", null, null, DataCenter::Count()), new NavigationButton("~/payment-plans", "Payment Plans", "money", null, null, PaymentPlan::Count()), new NavigationButton("~/organizations", "Organizations", "suitcase", null, null, Organization::Count()), new NavigationButton("~/users", "Users", "users", null, null, User::Count()), new NavigationButton("~/data-types", "Data Types", "sitemap", null, null, DataType::Count()), new NavigationButton("~/tenant-types", "Tenant Types", "tenant-types", null, null, TenantType::Count()), new NavigationSeparator("Help and Support"), new NavigationButton("~/support/documentation", "Documentation", "book"), new NavigationButton("~/support/bugspray", "Report a Bug", "bug"), new NavigationButton("~/system-log", "System Log", "file-text-o")); $this->RenderHeader = true; $this->RenderSidebar = true; }
/** * Creates a new Tenant object based on the given values from the database. * @param array $values * @return \PhoenixSNS\Objects\Tenant based on the values of the fields in the given associative array */ public static function GetByAssoc($values) { $item = new Tenant(); $item->ID = $values["tenant_ID"]; $item->URL = $values["tenant_URL"]; $item->Description = $values["tenant_Description"]; switch ($values["tenant_Status"]) { case 1: $item->Status = TenantStatus::Enabled; break; case 0: $item->Status = TenantStatus::Disabled; break; } $item->Type = TenantType::GetByID($values["tenant_TypeID"]); $item->PaymentPlan = PaymentPlan::GetByID($values["tenant_PaymentPlanID"]); $item->BeginTimestamp = $values["tenant_BeginTimestamp"]; $item->EndTimestamp = $values["tenant_EndTimestamp"]; // get the data centers associated with this tenant global $MySQL; $query = "SELECT " . System::$Configuration["Database.TablePrefix"] . "DataCenters.* FROM " . System::$Configuration["Database.TablePrefix"] . "DataCenters, " . System::$Configuration["Database.TablePrefix"] . "TenantDataCenters WHERE " . System::$Configuration["Database.TablePrefix"] . "TenantDataCenters.tdc_TenantID = " . $item->ID . " AND " . System::$Configuration["Database.TablePrefix"] . "TenantDataCenters.tdc_DataCenterID = " . System::$Configuration["Database.TablePrefix"] . "DataCenters.datacenter_ID"; $result = $MySQL->query($query); $count = $result->num_rows; $retval = array(); for ($i = 0; $i < $count; $i++) { $values = $result->fetch_assoc(); $retval[] = DataCenter::GetByAssoc($values); } $item->DataCenters->Items = $retval; return $item; }
/** * Retrieves a single DataCenter with the given ID. * @param int $id The ID of the DataCenter to return * @return NULL|\PhoenixSNS\Objects\DataCenter The DataCenter with the given ID, or null if no DataCenter with the given ID was found or the given ID was invalid */ public static function GetByID($id) { if (!is_numeric($id)) { return null; } global $MySQL; $query = "SELECT * FROM " . System::$Configuration["Database.TablePrefix"] . "DataCenters WHERE datacenter_ID = " . $id; $result = $MySQL->query($query); $count = $result->num_rows; if ($count == 0) { return null; } $values = $result->fetch_assoc(); return DataCenter::GetByAssoc($values); }
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 }
$page->Render(); } return true; }))), new ModulePage("tenant", array(new ModulePage("", function ($page, $path) { $page = new TenantMainPage(); $page->Render(); return true; }), new ModulePage("create", function ($page, $path) { if ($_SERVER["REQUEST_METHOD"] === "POST") { $tenant_URL = $_POST["tenant_URL"]; $tenant_Description = $_POST["tenant_Description"]; $tenant_DataCenters = array(); foreach ($_POST as $key => $value) { if (substr($key, 0, strlen("tenant_DataCenter_")) == "tenant_DataCenter_") { $id = substr($key, strlen("tenant_DataCenter_") + 1); $tenant_DataCenters[] = DataCenter::GetByID($id); } } $tenant_Status = $_POST["tenant_Status"] == "on" ? TenantStatus::Enabled : TenantStatus::Disabled; $tenant_Type = TenantType::GetByID($_POST["tenant_TypeID"]); $tenant_PaymentPlan = PaymentPlan::GetByID($_POST["tenant_PaymentPlanID"]); $tenant_BeginTimestamp = $_POST["tenant_BeginTimestampValid"] == "1" ? null : $_POST["tenant_BeginTimestamp"]; $tenant_EndTimestamp = $_POST["tenant_EndTimestampValid"] == "1" ? null : $_POST["tenant_EndTimestamp"]; $retval = Tenant::Create($tenant_URL, $tenant_Description, $tenant_Status, $tenant_Type, $tenant_PaymentPlan, $tenant_BeginTimestamp, $tenant_EndTimestamp, $tenant_DataCenters); if ($retval == null) { global $MySQL; echo $MySQL->error . " (" . $MySQL->errno . ")"; } else { System::Redirect("~/tenant"); } return true;