blob: 89926ed68380e8ba1221d8fd87448e727cb07491 [file] [log] [blame]
<?php
/*
* Copyright (c) Eclipse Foundation and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*/
require_once dirname(__FILE__) . '/Project.class.php';
require_once dirname(__FILE__) . '/database.inc';
/**
* This is a simple representation of a working group
*/
class WorkingGroup {
var $data;
public static function getWorkingGroup($id) {
$wg = null;
$sql = "select id, name from WorkingGroup where id=':id:';";
query('dashboard', $sql, array(':id:' => $id), function($row) use (&$wg) {
$wg = new WorkingGroup($row);
});
return $wg;
}
public static function getAll() {
$wg = array();
$sql = "select id, name from WorkingGroup";
query('dashboard', $sql, array(), function($row) use (&$wg) {
$wg[] = new WorkingGroup($row);
});
return $wg;
}
public static function getAny() {
$wg = null;
$sql = "select id, name from WorkingGroup order by rand() limit 1";
query('dashboard', $sql, array(), function($row) use (&$wg) {
$wg = new WorkingGroup($row);
});
return $wg;
}
private function __construct($data) {
$this->data = $data;
}
public function getId() {
return $this->data['id'];
}
public function getName() {
return $this->data['name'];
}
public function projectsDo($callback) {
$sql = "
select
wgp.id,
p.id as project
from WorkingGroupProject as wgp
join Project as p on wgp.project=p.id
where wgp.id=':id:'";
query('dashboard', $sql, array(':id:' => $this->getId()), function($row) use (&$callback) {
if ($project = Project::getProject($row['project'])) {
call_user_func($callback, $project);
}
});
}
}