admin page v1

This commit is contained in:
2019-03-31 22:07:21 +02:00
parent cf91719dba
commit ecf47b1a7e
10 changed files with 180 additions and 15 deletions

View File

@@ -29,6 +29,10 @@ class Project extends PhpObject {
$this->oDb = &$oDb;
}
public function getProjectId() {
return $this->iProjectId;
}
public function setProjectId($iProjectId=0) {
if($iProjectId > 0) {
$this->iProjectId = $iProjectId;
@@ -53,25 +57,47 @@ class Project extends PhpObject {
return $this->sMode;
}
public function getProjectId() {
return $this->iProjectId;
}
public function getProjectCodeName() {
return $this->sCodeName;
}
public function setProjectCodeName($sCodeName) {
return $this->updateField('codename', $sCodeName);
}
public function getActivePeriod($sFromTo='') {
return ($sFromTo=='')?$this->asActive:$this->asActive[$sFromTo];
}
public function setActivePeriod($oValue, $sFromTo='') {
if($sFromTo=='') {
$this->updateField('active_from', $oValue['from']);
return $this->updateField('active_to', $oValue['to']);
}
else {
return $this->updateField('active_'.$sFromTo, $oValue);
}
}
public function getTimeZone() {
return $this->asGeo['timezone'];
}
public function setTimeZone($sTimeZone) {
return $this->updateField('timezone', $sTimeZone);
}
public function getGeoFile() {
return $this->asGeo['file'];
}
public function getFeedIds() {
return $this->oDb->selectColumn(
Feed::FEED_TABLE,
Db::getId(Feed::FEED_TABLE),
array(Db::getId(self::PROJ_TABLE) => $this->getProjectId())
);
}
public function getProjects($iProjectId=0) {
$bSpecificProj = ($iProjectId > 0);
@@ -109,17 +135,13 @@ class Project extends PhpObject {
return $bSpecificProj?$asProject:$asProjects;
}
public function getFeedIds() {
return $this->oDb->selectColumn(
Feed::FEED_TABLE,
Db::getId(Feed::FEED_TABLE),
array(Db::getId(self::PROJ_TABLE) => $this->getProjectId())
);
public function getProject() {
return $this->getProjects($this->getProjectId());
}
private function setProjectInfo() {
if($this->getProjectId() > 0) {
$asProject = $this->getProjects($this->getProjectId());
$asProject = $this->getProject();
$this->sMode = $asProject['mode'];
$this->asActive = array('from'=>$asProject['active_from'], 'to'=>$asProject['active_to']);
@@ -129,4 +151,11 @@ class Project extends PhpObject {
}
else $this->addError('Error while setting project: no project ID');
}
private function updateField($sField, $oValue) {
$bResult = ($this->oDb->updateRow(self::PROJ_TABLE, $this->getProjectId(), array($sField=>$oValue)) > 0);
$this->setProjectInfo();
return $bResult;
}
}

View File

@@ -327,6 +327,31 @@ class Spot extends Main
return self::getJsonResult(true, '');
}
public function getAdminSettings() {
return self::getJsonResult(true, '', array('projects'=>$this->oProject->getProjects()));
}
public function setAdminSettings($sField, $sValue) {
$bSuccess = false;
$sDesc = '';
switch($sField) {
case 'codename':
$bSuccess = $this->oProject->setProjectCodeName($sValue);
break;
case 'active_from':
case 'active_to':
$bSuccess = $this->oProject->setActivePeriod($sValue, mb_substr($sField, 7));
break;
case 'timezone':
$bSuccess = $this->oProject->setTimeZone($sValue);
break;
}
if(!$bSuccess) $sDesc = 'Issue committing to DB';
return self::getJsonResult($bSuccess, $sDesc, array('values'=>$this->oProject->getProject()));
}
public static function DecToDMS($dValue, $sType='lat') {
if($sType=='lat') $sDirection = ($dValue >= 0)?'N':'S';
else $sDirection = ($dValue >= 0)?'E':'W';