/** * @return void */ function listGlobalRoles() { $this->setHeaders(); $this->getOutput()->setPagetitle( wfMsg( 'openstackmanager-rolelist' ) ); $out = ''; $rolesOut = Html::element( 'th', array(), wfMsg( 'openstackmanager-rolename' ) ); $rolesOut .= Html::element( 'th', array(), wfMsg( 'openstackmanager-members' ) ); $rolesOut .= Html::element( 'th', array(), wfMsg( 'openstackmanager-actions' ) ); $roles = OpenStackNovaRole::getAllGlobalRoles(); if ( ! $roles ) { $rolesOut = ''; } foreach ( $roles as $role ) { $roleName = $role->getRoleName(); $roleOut = Html::element( 'td', array(), $roleName ); $roleMembers = $role->getMembers(); $memberOut = ''; foreach ( $roleMembers as $roleMember ) { $memberOut .= Html::element( 'li', array(), $roleMember ); } if ( $memberOut ) { $memberOut = Html::rawElement( 'ul', array(), $memberOut ); } $roleOut .= Html::rawElement( 'td', array(), $memberOut ); $link = Linker::link( $this->getTitle(), wfMsgHtml( 'openstackmanager-addrolemember' ), array(), array( 'action' => 'addmember', 'rolename' => $roleName, 'returnto' => 'Special:NovaRole' ) ); $actions = Html::rawElement( 'li', array(), $link ); $link = Linker::link( $this->getTitle(), wfMsgHtml( 'openstackmanager-removerolemember' ), array(), array( 'action' => 'deletemember', 'rolename' => $roleName, 'returnto' => 'Special:NovaRole' ) ); $actions .= Html::rawElement( 'li', array(), $link ); $actions = Html::rawElement( 'ul', array(), $actions ); $roleOut .= Html::rawElement( 'td', array(), $actions ); $rolesOut .= Html::rawElement( 'tr', array(), $roleOut ); } if ( $rolesOut ) { $out .= Html::rawElement( 'table', array( 'class' => 'wikitable sortable collapsible' ), $rolesOut ); } $this->getOutput()->addHTML( $out ); }