diff options
Diffstat (limited to 'modules-available/roomplanner')
-rw-r--r-- | modules-available/roomplanner/baseconfig/getconfig.inc.php | 8 | ||||
-rw-r--r-- | modules-available/roomplanner/install.inc.php | 15 | ||||
-rw-r--r-- | modules-available/roomplanner/js/init.js | 3 | ||||
-rw-r--r-- | modules-available/roomplanner/page.inc.php | 14 | ||||
-rw-r--r-- | modules-available/roomplanner/templates/page.html | 5 |
5 files changed, 34 insertions, 11 deletions
diff --git a/modules-available/roomplanner/baseconfig/getconfig.inc.php b/modules-available/roomplanner/baseconfig/getconfig.inc.php new file mode 100644 index 00000000..76cd399d --- /dev/null +++ b/modules-available/roomplanner/baseconfig/getconfig.inc.php @@ -0,0 +1,8 @@ +<?php + +$configVars["SLX_PVS_CONFIG_URL"] = 'http://' . $_SERVER['SERVER_ADDR'] . $_SERVER['SCRIPT_NAME'] . '?do=roomplanner'; + +$res = Database::queryFirst('SELECT dedicatedmgr FROM location_roomplan WHERE managerip = :ip LIMIT 1', ['ip' => $ip]); +if ($res !== false && (int)$res['dedicatedmgr'] !== 0) { + $configVars["SLX_PVS_DEDICATED"] = 'yes'; +}
\ No newline at end of file diff --git a/modules-available/roomplanner/install.inc.php b/modules-available/roomplanner/install.inc.php index 0a6c3729..a6d98384 100644 --- a/modules-available/roomplanner/install.inc.php +++ b/modules-available/roomplanner/install.inc.php @@ -6,19 +6,21 @@ $res = array(); $res[] = tableCreate('location_roomplan', " `locationid` INT(11) NOT NULL, `managerip` varchar(45) CHARACTER SET ascii DEFAULT '', + `dedicatedmgr` tinyint(1) NOT NULL DEFAULT 0, `tutoruuid` char(36) CHARACTER SET ascii DEFAULT NULL, `roomplan` BLOB DEFAULT NULL, PRIMARY KEY (`locationid`), - KEY `tutoruuid` (`tutoruuid`)"); + KEY `tutoruuid` (`tutoruuid`), + KEY `managerip` (`managerip`)"); if (!tableHasColumn('location_roomplan', 'managerip')) { - $ret = Database::exec("ALTER TABLE `location_roomplan` ADD COLUMN `managerip` varchar(45) CHARACTER SET ascii DEFAULT '' AFTER locationid") !== false; + $ret = Database::exec("ALTER TABLE `location_roomplan` ADD COLUMN `managerip` varchar(45) CHARACTER SET ascii DEFAULT '' AFTER locationid," + . " ADD KEY `managerip` (`managerip`)") !== false; if ($ret === false) { finalResponse(UPDATE_FAILED, 'Adding managerip to location_roomplan failed: ' . Database::lastError()); } $res[] = UPDATE_DONE; } - if (!tableHasColumn('location_roomplan', 'tutoruuid')) { $ret = Database::exec("ALTER TABLE `location_roomplan` ADD COLUMN `tutoruuid` char(36) CHARACTER SET ascii DEFAULT NULL AFTER managerip," . " ADD KEY `tutoruuid` (`tutoruuid`)") !== false; @@ -27,6 +29,13 @@ if (!tableHasColumn('location_roomplan', 'tutoruuid')) { } $res[] = UPDATE_DONE; } +if (!tableHasColumn('location_roomplan', 'dedicatedmgr')) { + $ret = Database::exec("ALTER TABLE `location_roomplan` ADD `dedicatedmgr` tinyint(1) NOT NULL DEFAULT 0 AFTER `managerip`") !== false; + if ($ret === false) { + finalResponse(UPDATE_FAILED, 'Adding dedicatedmgr to location_roomplan failed: ' . Database::lastError()); + } + $res[] = UPDATE_DONE; +} if (in_array(UPDATE_DONE, $res)) { Database::exec("ALTER TABLE `location_roomplan` diff --git a/modules-available/roomplanner/js/init.js b/modules-available/roomplanner/js/init.js index 39bfefce..454146d3 100644 --- a/modules-available/roomplanner/js/init.js +++ b/modules-available/roomplanner/js/init.js @@ -26,13 +26,14 @@ function initRoomplanner() { alert('Invalid IP address format'); return; } + var dediMgr = $('#dedi-mgr').prop('checked') ? 'on' : ''; $('#saveBtn').prop('disabled', true); $('#error-msg').hide(); $('#success-msg').hide(); $('#saving-msg').show(); var serializedCurrent = roomplanner.serialize(); $.post('?do=roomplanner&locationid=' + locationId, - { token: TOKEN, action: 'save', serializedRoom: serializedCurrent, managerip: managerip } + { token: TOKEN, action: 'save', serializedRoom: serializedCurrent, managerip: managerip, dedimgr: dediMgr } ).done(function ( data ) { if (data.indexOf('SUCCESS') !== -1) { window.close(); diff --git a/modules-available/roomplanner/page.inc.php b/modules-available/roomplanner/page.inc.php index ecbf9d1f..f2f4d963 100644 --- a/modules-available/roomplanner/page.inc.php +++ b/modules-available/roomplanner/page.inc.php @@ -58,11 +58,12 @@ class Page_Roomplanner extends Page if ($this->action === 'show') { /* do nothing */ Dashboard::disable(); - $config = Database::queryFirst('SELECT roomplan, managerip FROM location_roomplan WHERE locationid = :locationid', ['locationid' => $this->locationid]); + $config = Database::queryFirst('SELECT roomplan, managerip, dedicatedmgr FROM location_roomplan WHERE locationid = :locationid', ['locationid' => $this->locationid]); if ($config !== false) { $managerIp = $config['managerip']; + $dediMgr = $config['dedicatedmgr'] ? 'checked' : ''; } else { - $managerIp = ''; + $dediMgr = $managerIp = ''; } $furniture = $this->getFurniture($config); $subnetMachines = $this->getPotentialMachines(); @@ -71,6 +72,7 @@ class Page_Roomplanner extends Page Render::addTemplate('page', [ 'location' => $this->location, 'managerip' => $managerIp, + 'dediMgrChecked' => $dediMgr, 'subnetMachines' => json_encode($subnetMachines), 'locationid' => $this->locationid, 'roomConfiguration' => json_encode($roomConfig)]); @@ -189,12 +191,14 @@ class Page_Roomplanner extends Page protected function saveRoomConfig($furniture) { $obj = json_encode(['furniture' => $furniture]); - Database::exec('INSERT INTO location_roomplan (locationid, roomplan, managerip, tutoruuid)' - . ' VALUES (:locationid, :roomplan, :managerip, :tutoruuid)' - . ' ON DUPLICATE KEY UPDATE roomplan=VALUES(roomplan), managerip=VALUES(managerip), tutoruuid=VALUES(tutoruuid)', [ + Database::exec('INSERT INTO location_roomplan (locationid, roomplan, managerip, tutoruuid, dedicatedmgr)' + . ' VALUES (:locationid, :roomplan, :managerip, :tutoruuid, :dedicatedmgr)' + . ' ON DUPLICATE KEY UPDATE ' + . ' roomplan=VALUES(roomplan), managerip=VALUES(managerip), tutoruuid=VALUES(tutoruuid), dedicatedmgr=VALUES(dedicatedmgr)', [ 'locationid' => $this->locationid, 'roomplan' => $obj, 'managerip' => Request::post('managerip', '', 'string'), + 'dedicatedmgr' => (Request::post('dedimgr') === 'on' ? 1 : 0), 'tutoruuid' => null // TODO ]); } diff --git a/modules-available/roomplanner/templates/page.html b/modules-available/roomplanner/templates/page.html index ba720ada..52916aa9 100644 --- a/modules-available/roomplanner/templates/page.html +++ b/modules-available/roomplanner/templates/page.html @@ -311,9 +311,10 @@ </div> <div class="pull-left"> - <div class="input-group" style="width:300px"> + <div class="input-group" style="width:400px"> <div class="input-group-addon">{{lang_managerIp}}</div> - <input class="form-control" type="text" id="manager-ip" value="{{managerip}}" placeholder="1.2.3.4"> + <input class="form-control" type="text" id="manager-ip" value="{{managerip}}" placeholder="1.2.3.4" style="width:120px"> + <div class="input-group-addon checkbox"><input id="dedi-mgr" type="checkbox" {{dediMgrChecked}}> <label for="dedi-mgr">{{lang_dedicatedManager}}</label></div> </div> </div> <div class="pull-right"> |