diff --git a/frontend/app/controllers.js b/frontend/app/controllers.js index f223e6e..6215dfa 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 && $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; $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'; + + var trackImagePath = '/api/tracks/' + $scope.selectedTracks + '/' + $scope.server.CONFIG_TRACK + '/image'; + $scope.trackImage = trackImagePath.replace("/Default_layout", ""); } else { $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); diff --git a/frontend/server.html b/frontend/server.html index 4fb9fed..c57d47d 100644 --- a/frontend/server.html +++ b/frontend/server.html @@ -168,6 +168,16 @@ + +
+ + +
+ +
+ +
+
@@ -184,7 +194,7 @@
- +
@@ -208,18 +218,6 @@ -
-
-
- - -
- -
- -
-
-
diff --git a/server.js b/server.js index 8a4b18c..a61c263 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,12 @@ app.get('/api/tracks', function (req, res) { try { var configs = getDirectories(contentPath + '/tracks/' + trackNames[trackName] + '/ui'); + var singleLayout = isSingleLayout(contentPath + '/tracks/' + trackNames[trackName] + '/ui'); + + if(singleLayout && configs.length > 0){ + configs.push('Default_layout'); + } + track.configs = configs; } catch (e) { @@ -640,7 +657,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 +671,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);