Skip to content
Snippets Groups Projects
Commit 52be8fad authored by André Noack's avatar André Noack
Browse files

change admin navigation

git-svn-id: https://server2.data-quest.de/svn/studip-plugins/TandemPlugin@2473 6a1f69d7-6018-4d13-bf90-b098e98c258d
parent f9652990
No related branches found
No related tags found
No related merge requests found
......@@ -22,22 +22,22 @@ require_once(__DIR__ . '/classes/TandemMatching.class.php');
class TandemPlugin extends StudIPPlugin implements SystemPlugin, PortalPlugin
{
public static function isGenderSearchEnabled()
{
return (bool)Config::get()->TANDEMPLUGIN_GENDER_SEARCH_ENABLED;
}
public function __construct()
{
parent::__construct();
global $perm;
//gettext translation domain binding:
bindtextdomain('TandemPlugin', __DIR__ . '/locale');
//add JavaScript file:
PageLayout::addHeadElement('script',
array(
......@@ -46,7 +46,7 @@ class TandemPlugin extends StudIPPlugin implements SystemPlugin, PortalPlugin
),
''
);
//add CSS file:
PageLayout::addHeadElement('link',
array(
......@@ -56,122 +56,122 @@ class TandemPlugin extends StudIPPlugin implements SystemPlugin, PortalPlugin
),
''
);
//navigation items:
if(Navigation::hasItem('/profile')) {
//we're on the user's profile page: add the navigation item.
$navigation = new Navigation(
dgettext('TandemPlugin', 'Meine Tandems'),
PluginEngine::getURL('tandemplugin/my_tandems/index')
);
/*
$sub_navigation = new Navigation(
dgettext('TandemPlugin', 'Übersicht'),
PluginEngine::getURL('tandemplugin/my_tandems/index')
);
$navigation->addSubNavigation('index',$sub_navigation);
$sub_navigation = new Navigation(
dgettext('TandemPlugin', 'Meine Tandem-Profile'),
PluginEngine::getURL('tandemplugin/my_tandems/profiles')
);
$navigation->addSubNavigation('profiles', $sub_navigation);
$sub_navigation = new Navigation(
dgettext('TandemPlugin', 'Meine Sprachtandems'),
PluginEngine::getURL('tandemplugin/my_tandems/pairs')
);
$navigation->addSubNavigation('pairs', $sub_navigation);
*/
Navigation::addItem('/profile/my_tandems', $navigation);
}
if(RolePersistence::isAssignedRole(User::findCurrent()->id, 'TandemAdmin')
if(RolePersistence::isAssignedRole(User::findCurrent()->id, 'TandemAdmin')
or $perm->have_perm('root')) {
$navigation = new Navigation(
dgettext('TandemPlugin', 'Tandem-Verwaltung'),
PluginEngine::getURL('tandemplugin/admin/pairs')
);
$top_navigation = clone $navigation;
$sub_navigation = new Navigation(
dgettext('TandemPlugin', 'Etablierte Tandems'),
PluginEngine::getURL('tandemplugin/admin/pairs')
);
$navigation->addSubNavigation('established', $sub_navigation);
$sub_navigation = new Navigation(
dgettext('TandemPlugin', 'Angefragte Tandems'),
PluginEngine::getURL('tandemplugin/admin/pairs', ['status' => '0'])
);
$navigation->addSubNavigation('requested', $sub_navigation);
$sub_navigation = new Navigation(
dgettext('TandemPlugin', 'Abgelehnte Tandems'),
PluginEngine::getURL('tandemplugin/admin/pairs', ['status' => '-1'])
);
$navigation->addSubNavigation('rejected', $sub_navigation);
$sub_navigation = new Navigation(
dgettext('TandemPlugin', 'Konfiguration'),
PluginEngine::getURL('tandemplugin/admin/config')
);
$navigation->addSubNavigation('config', $sub_navigation);
if(Navigation::hasItem('/admin')) {
//For admin and root users:
Navigation::addItem('/admin/tandems', $navigation);
} else {
//For other users that don't have the admin navigation path:
Navigation::addItem('/profile/tandem_administration', $navigation);
}
$top_navigation->setImage(
Icon::create("elmo", "navigation")
);
$top_navigation->addSubNavigation('admin', $navigation);
Navigation::addItem("/tandemplugin", $top_navigation);
}
}
public function getPluginName()
{
return dgettext('TandemPlugin', 'Sprachtandem');
}
public function getPortalTemplate()
{
$factory = new Flexi_TemplateFactory($this->getPluginPath() . '/templates');
$template = $factory->open('start.php');
$user_id = User::findCurrent()->id;
$profiles = TandemProfile::findBySql(
'user_id = :user_id',
[
'user_id' => $user_id
]
);
if(count($profiles) == 0) {
$template->set_attribute('never_used', true);
} else {
$matches_exist = TandemMatching::matchesExist($profiles);
$template->set_attribute('matches_exist', $matches_exist);
}
$template->set_attribute('title', dgettext('TandemPlugin', 'Sprachtandem'));
return $template;
}
public static function onEnable($plugin_id)
{
//Assign the TandemAdmin role to this plugin:
$roles = RolePersistence::getAllRoles();
foreach($roles as $role) {
if($role->rolename == 'TandemAdmin') {
//This is the only role we're interested in!
......@@ -179,6 +179,6 @@ class TandemPlugin extends StudIPPlugin implements SystemPlugin, PortalPlugin
break;
}
}
}
}
......@@ -19,119 +19,110 @@ require_once(__DIR__ . '/../models/TandemPair.class.php');
class AdminController extends PluginController
{
public function before_filter($action, $args)
{
parent::before_filter($action, $args);
global $perm;
//Only root and TandemAdmin users can access this area!
if(!RolePersistence::isAssignedRole(User::findCurrent()->id, 'TandemAdmin') and !$perm->have_perm('root')) {
throw new AccessDeniedException();
}
if(Navigation::hasItem('/admin/tandems')) {
Navigation::activateItem('/admin/tandems');
}
if(Navigation::hasItem('/profile/tandem_administration')) {
Navigation::activateItem('/profile/tandem_administration');
}
}
public function pairs_action()
{
$this->status = (int)Request::get('status', 1);
if(($this->status < -1) or ($this->status > 1)) {
$this->status = 1;
}
if($this->status == -1) {
if(Navigation::hasItem('/admin/tandems/rejected')) {
Navigation::activateItem('/admin/tandems/rejected');
if(Navigation::hasItem('/tandemplugin/admin/rejected')) {
Navigation::activateItem('/tandemplugin/admin/rejected');
}
if(Navigation::hasItem('/profile/tandem_administration/rejected')) {
Navigation::activateItem('/profile/tandem_administration/rejected');
}
} elseif($this->status == 0) {
if(Navigation::hasItem('/admin/tandems/requested')) {
Navigation::activateItem('/admin/tandems/requested');
if(Navigation::hasItem('/tandemplugin/admin/requested')) {
Navigation::activateItem('/tandemplugin/admin/requested');
}
if(Navigation::hasItem('/profile/tandem_administration/requested')) {
Navigation::activateItem('/profile/tandem_administration/requested');
}
} elseif($this->status == 1) {
if(Navigation::hasItem('/admin/tandems/established')) {
Navigation::activateItem('/admin/tandems/established');
if(Navigation::hasItem('/tandemplugin/admin/established')) {
Navigation::activateItem('/tandemplugin/admin/established');
}
if(Navigation::hasItem('/profile/tandem_administration/established')) {
Navigation::activateItem('/profile/tandem_administration/established');
}
}
$this->pairs = [];
$this->pairs = TandemPair::findBySql(
'status = :status',
['status' => $this->status]
);
}
public function config_action()
{
if(Navigation::hasItem('/admin/tandems/config')) {
Navigation::activateItem('/admin/tandems/config');
if(Navigation::hasItem('/tandemplugin/admin/config')) {
Navigation::activateItem('/tandemplugin/admin/config');
}
if(Navigation::hasItem('/profile/tandem_administration/config')) {
Navigation::activateItem('/profile/tandem_administration/config');
}
$config = Config::get();
if(Request::submitted('save')) {
$this->gender_search_enabled = (bool)Request::get('gender_search_enabled', false);
$this->delete_old_period = (int)Request::int('delete_old_period', 6);
if(($this->delete_old_period < 1) or ($this->delete_old_period > 24)) {
PageLayout::postError(
dgettext('TandemPlugin', 'Die Anzahl an Monaten, nach denen alte Gesuche entfernt werden sollen, muss zwischen 1 und 24 liegen!')
);
return;
}
//get the config entries and store them:
$gender_search_enabled = ConfigEntry::findByField('TANDEMPLUGIN_GENDER_SEARCH_ENABLED')[0];
if($gender_search_enabled) {
$gender_search_enabled->value = (int)$this->gender_search_enabled;
$gender_search_enabled->store();
}
$delete_old_period = ConfigEntry::findByField('TANDEMPLUGIN_DELETE_OLD_PERIOD')[0];
if($delete_old_period) {
$delete_old_period->value = $this->delete_old_period;
$delete_old_period->store();
}
PageLayout::postSuccess(
dgettext('TandemPlugin', 'Die Konfiguration wurde gespeichert!')
);
} else {
$this->gender_search_enabled = (bool)
($config->TANDEMPLUGIN_GENDER_SEARCH_ENABLED ?
($config->TANDEMPLUGIN_GENDER_SEARCH_ENABLED ?
$config->TANDEMPLUGIN_GENDER_SEARCH_ENABLED : false);
$this->delete_old_period = (int)
($config->TANDEMPLUGIN_DELETE_OLD_PERIOD ?
($config->TANDEMPLUGIN_DELETE_OLD_PERIOD ?
$config->TANDEMPLUGIN_DELETE_OLD_PERIOD : 6);
}
}
......
pluginname=TandemPlugin
pluginclassname=TandemPlugin
origin=data-quest
version=0.1
version=0.2
description=Dieses Plugin ermglicht es, Sprachtandems innerhalb der Stud.IP Platform zu bilden.
studipMinVersion=3.5
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment