topUrl = $this->path("admin.top"); $this->leftUrl = $this->path("admin.dbs"); $this->rightUrl = $this->path("server.index"); $this->display(); } /** top frame **/ public function doTop() { $this->logoutUrl = $this->path("logout.index"); $this->admin = $this->_admin->username(); $this->servers = $this->_admin->servers(); $this->serverIndex = $this->_admin->hostIndex(); $isMasterRet = null; try { $isMasterRet = $this->_mongo->selectDB($this->_admin->defaultDb())->command(array( "isMaster" => 1 )); if ($isMasterRet["ok"]) { $this->isMaster = $isMasterRet["ismaster"]; } else { $this->isMaster = true; } } catch (MongoCursorException $e) { $this->isMaster = null; } $this->display(); } /** show dbs in left frame **/ public function doDbs() { $dbs = $this->_server->listDbs(); $this->dbs = array_values(rock_array_sort($dbs["databases"], "name")); $this->baseUrl = $this->path("admin.dbs"); $this->tableUrl = $this->path("collection.index"); $this->showDbSelector = false; //add collection count foreach ($this->dbs as $index => $db) { $collectionCount = count(MDb::listCollections($this->_mongo->selectDB($db["name"]))); $db["collectionCount"] = $collectionCount; if (isset($db["sizeOnDisk"])) { $db["size"] = round($db["sizeOnDisk"]/1024/1024, 2);//M } $this->dbs[$index] = $db; } //current db $db = x("db"); $this->tables = array(); if ($db) { $mongodb = $this->_mongo->selectDB($db); $tables = MDb::listCollections($mongodb); foreach ($tables as $table) { $this->tables[$table->getName()] = $table->count(); } } $this->display(); } /** about project and us **/ public function doAbout() { $this->display(); } /** change current host **/ public function doChangeHost() { $index = xi("index"); MUser::userInSession()->changeHost($index); $this->redirect("admin.index", array( "host" => $index )); } /** * change language of UI interface * */ public function doChangeLang() { setcookie("ROCK_LANG", x("lang"), time() + 365 * 86400); header("location:index.php"); } } ?>