From 97028f55f9972707216f6cf50abf50bfbabad63c Mon Sep 17 00:00:00 2001 From: Panu Date: Fri, 15 Feb 2019 21:53:25 +0100 Subject: [PATCH 1/4] tracks initially without layouts will get 'default_layout' --- frontend/app/controllers.js | 15 +++++++++------ frontend/server.html | 2 +- server.js | 28 +++++++++++++++++++++++++--- 3 files changed, 35 insertions(+), 10 deletions(-) diff --git a/frontend/app/controllers.js b/frontend/app/controllers.js index f223e6e..e00ee36 100644 --- a/frontend/app/controllers.js +++ b/frontend/app/controllers.js @@ -411,21 +411,24 @@ angular.module('acServerManager') $scope.trackChanged = function() { var track = findInArray($scope.tracks, {name: $scope.selectedTracks}) if (track !== null) { - if (track.configs && track.configs.length) { + + if (track.configs && track.configs.length && $scope.server.CONFIG_TRACK != 'Default_layout') { $scope.configs = track.configs; var index = $scope.configs.indexOf($scope.server.CONFIG_TRACK); var index = (index !== -1) ? index : 0; $scope.server.CONFIG_TRACK = $scope.configs[index]; - + TrackService.GetTrackDetails(track.name, $scope.server.CONFIG_TRACK, function(data) { $scope.trackDetails = data; }); - + $scope.trackImage = '/api/tracks/' + $scope.selectedTracks + '/' + $scope.server.CONFIG_TRACK + '/image'; } else { - $scope.configs = null; - $scope.server.CONFIG_TRACK = ''; - + if($scope.server.CONFIG_TRACK != 'Default_layout'){ + $scope.configs = null; + $scope.server.CONFIG_TRACK = ''; + } + TrackService.GetTrackDetails(track.name, null, function(data) { $scope.trackDetails = data; }); diff --git a/frontend/server.html b/frontend/server.html index 4fb9fed..a0e264e 100644 --- a/frontend/server.html +++ b/frontend/server.html @@ -184,7 +184,7 @@
- +
diff --git a/server.js b/server.js index 8a4b18c..716f90e 100644 --- a/server.js +++ b/server.js @@ -74,6 +74,18 @@ function getDirectories(srcpath) { } } +function isSingleLayout(srcpath){ + try { + return fs.readFileSync(srcpath+'/ui_track.json', 'utf8'); + + } catch (e) { + + return false; + } + + +} + function getDateTimeString() { try { var d = new Date(); @@ -536,7 +548,6 @@ app.post('/api/dynamictrack/:id', function (req, res) { app.get('/api/weather', function (req, res) { try { var weather = []; - Object.keys(config).forEach(function (key) { if (key.indexOf('WEATHER_') === 0) { weather.push(config[key]); @@ -589,6 +600,17 @@ app.get('/api/tracks', function (req, res) { try { var configs = getDirectories(contentPath + '/tracks/' + trackNames[trackName] + '/ui'); + console.log("1 "+configs); + + var singleLayout = isSingleLayout(contentPath + '/tracks/' + trackNames[trackName] + '/ui'); + + if(singleLayout && configs.length > 0){ + console.log("Adding empty for "+contentPath + '/tracks/' + trackNames[trackName] + '/ui'); + configs.push('Default_layout'); + } else { + console.log("ei ollut singlelayout"); + } + console.log("2 "+configs); track.configs = configs; } catch (e) { @@ -640,7 +662,7 @@ app.get('/api/tracks/:track/image', function (req, res) { app.get('/api/tracks/:track/:config', function (req, res) { try { contentPath = checkLocalContentPath(contentPath); - var trackDetails = fs.readFileSync(contentPath + '/tracks/' + req.params.track + '/ui/' + req.params.config + '/ui_track.json', 'utf-8'); + var trackDetails = fs.readFileSync(contentPath + '/tracks/' + req.params.track + '/ui/' + req.params.config.replace('Default_layout','') + '/ui_track.json', 'utf-8'); res.status(200); res.send(trackDetails); } catch (e) { @@ -654,7 +676,7 @@ app.get('/api/tracks/:track/:config', function (req, res) { app.get('/api/tracks/:track/:config/image', function (req, res) { try { contentPath = checkLocalContentPath(contentPath); - var image = fs.readFileSync(contentPath + '/tracks/' + req.params.track + '/ui/' + req.params.config + '/preview.png'); + var image = fs.readFileSync(contentPath + '/tracks/' + req.params.track + '/ui/' + req.params.config.replace('Default_layout','') + '/preview.png'); res.status(200); res.contentType('image/jpeg'); res.send(image); From 07500f597b1e1071180f190cf847387d6ff8de30 Mon Sep 17 00:00:00 2001 From: Nrde Date: Fri, 15 Feb 2019 22:00:39 +0100 Subject: [PATCH 2/4] tyre form fields moved to same column with cars selection - the space between between those fields was dependent on track selection columns height --- frontend/server.html | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/frontend/server.html b/frontend/server.html index a0e264e..c57d47d 100644 --- a/frontend/server.html +++ b/frontend/server.html @@ -168,6 +168,16 @@ + +
+ + +
+ +
+ +
+
@@ -208,18 +218,6 @@
-
-
-
- - -
- -
- -
-
-
From cd9b474610bdb90a019fda8a4a1f4dc69b86f91a Mon Sep 17 00:00:00 2001 From: Nrde Date: Fri, 15 Feb 2019 22:23:46 +0100 Subject: [PATCH 3/4] removes dummy logging --- server.js | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/server.js b/server.js index 716f90e..a61c263 100644 --- a/server.js +++ b/server.js @@ -600,17 +600,12 @@ app.get('/api/tracks', function (req, res) { try { var configs = getDirectories(contentPath + '/tracks/' + trackNames[trackName] + '/ui'); - console.log("1 "+configs); - var singleLayout = isSingleLayout(contentPath + '/tracks/' + trackNames[trackName] + '/ui'); if(singleLayout && configs.length > 0){ - console.log("Adding empty for "+contentPath + '/tracks/' + trackNames[trackName] + '/ui'); configs.push('Default_layout'); - } else { - console.log("ei ollut singlelayout"); } - console.log("2 "+configs); + track.configs = configs; } catch (e) { From 44759fb1f3006205ccedcbdef8a952a56975835f Mon Sep 17 00:00:00 2001 From: Nrde Date: Sat, 16 Feb 2019 01:32:01 +0100 Subject: [PATCH 4/4] fixes default layout handling in trackchanges - fixes wrong track_configs when changing tracks - fixes missing image when changing tracks when default_layout is chosen and track changes to one without default_layout - move the logic to service - only handle trackImage in controller --- frontend/app/controllers.js | 12 ++++++------ frontend/app/services.js | 5 ++++- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/frontend/app/controllers.js b/frontend/app/controllers.js index e00ee36..6215dfa 100644 --- a/frontend/app/controllers.js +++ b/frontend/app/controllers.js @@ -412,7 +412,8 @@ angular.module('acServerManager') var track = findInArray($scope.tracks, {name: $scope.selectedTracks}) if (track !== null) { - if (track.configs && track.configs.length && $scope.server.CONFIG_TRACK != 'Default_layout') { + //if (track.configs && track.configs.length && $scope.server.CONFIG_TRACK != 'Default_layout') { + if (track.configs && track.configs.length) { $scope.configs = track.configs; var index = $scope.configs.indexOf($scope.server.CONFIG_TRACK); var index = (index !== -1) ? index : 0; @@ -422,12 +423,11 @@ angular.module('acServerManager') $scope.trackDetails = data; }); - $scope.trackImage = '/api/tracks/' + $scope.selectedTracks + '/' + $scope.server.CONFIG_TRACK + '/image'; + var trackImagePath = '/api/tracks/' + $scope.selectedTracks + '/' + $scope.server.CONFIG_TRACK + '/image'; + $scope.trackImage = trackImagePath.replace("/Default_layout", ""); } else { - if($scope.server.CONFIG_TRACK != 'Default_layout'){ - $scope.configs = null; - $scope.server.CONFIG_TRACK = ''; - } + $scope.configs = null; + $scope.server.CONFIG_TRACK = ''; TrackService.GetTrackDetails(track.name, null, function(data) { $scope.trackDetails = data; diff --git a/frontend/app/services.js b/frontend/app/services.js index 60c54e3..9b0e308 100644 --- a/frontend/app/services.js +++ b/frontend/app/services.js @@ -26,7 +26,10 @@ angular.module('acServerManager.services', ['ngResource']). }); }, GetTrackDetails: function(track, config, callback) { - if (config) { + + // "default layout" loads the main track data + // Todo, make "Default_layout" configurable + if (config && config != "Default_layout") { var resource = $resource('/api/tracks/:track/:config'); var result = resource.get({track: track, config: config}, function() { callback(result);