diff --git a/bower.json b/bower.json index 35ebf77..afa3b82 100644 --- a/bower.json +++ b/bower.json @@ -1,35 +1,36 @@ { - "name": "ive", - "homepage": "https://github.com/sitcomlab/IVE", - "authors": [ - "Nicholas Schiestel " - ], - "description": "", - "main": "", - "license": "MIT", - "private": true, - "dependencies": { - "angular": "^1.6.4", - "jquery": "^3.1.0", - "angular-route": "^1.6.4", - "angular-translate": "^2.11.1", - "font-awesome": "^4.6.3", - "bootstrap": "v4.0.0-alpha.6", - "angular-socket-io": "^0.7.0", - "socket.io-client": "^1.5.0", - "angular-sanitize": "^1.6.4", - "videogular": "^1.4.4", - "videogular-themes-default": "^1.4.4", - "videogular-controls": "^1.4.4", - "underscore": "^1.8.3", - "angular-underscore-module": "^1.0.3", - "moment": "^2.17.1", - "angular-momentjs": "^0.2.2", - "three.js": "threejs#*", - "components-threejs": "^0.0.79" - }, - "resolutions": { - "angular": "1.6.4", - "bootstrap": "v4.0.0-alpha.6" - } + "name": "ive", + "homepage": "https://github.com/sitcomlab/IVE", + "authors": [ + "Nicholas Schiestel " + ], + "description": "", + "main": "", + "license": "MIT", + "private": true, + "dependencies": { + "angular": "^1.6.4", + "jquery": "^3.1.0", + "angular-route": "^1.6.4", + "angular-translate": "^2.11.1", + "font-awesome": "^4.6.3", + "bootstrap": "v4.0.0-alpha.6", + "angular-socket-io": "^0.7.0", + "socket.io-client": "^1.5.0", + "angular-sanitize": "^1.6.4", + "videogular": "^1.4.4", + "videogular-themes-default": "^1.4.4", + "videogular-controls": "^1.4.4", + "underscore": "^1.8.3", + "angular-underscore-module": "^1.0.3", + "moment": "^2.17.1", + "angular-momentjs": "^0.2.2", + "three.js": "threejs#*", + "components-threejs": "^0.0.79", + "ngclipboard": "^1.1.1" + }, + "resolutions": { + "angular": "1.6.4", + "bootstrap": "v4.0.0-alpha.6" + } } diff --git a/public/backend/css/styles.css b/public/backend/css/styles.css index 27bf948..eb08e9c 100644 --- a/public/backend/css/styles.css +++ b/public/backend/css/styles.css @@ -47,6 +47,9 @@ footer { border: 1px solid rgba(0, 0, 0, .125); } +.uuid { + cursor: pointer; +} .card-footer > .btn-block-xs-only, .btn-block-xs-only { margin-top: 1px; diff --git a/public/backend/index.html b/public/backend/index.html index 9acdf0d..4db9e04 100644 --- a/public/backend/index.html +++ b/public/backend/index.html @@ -48,6 +48,8 @@ + + diff --git a/public/backend/js/app.js b/public/backend/js/app.js index fe22ce1..0aa32c2 100644 --- a/public/backend/js/app.js +++ b/public/backend/js/app.js @@ -13,6 +13,7 @@ var app = angular.module("ive", [ "pascalprecht.translate", "angular-momentjs", "underscore", + "ngclipboard", "com.2fdevs.videogular", "com.2fdevs.videogular.plugins.controls", //"com.2fdevs.videogular.plugins.overlayplay", diff --git a/public/backend/js/controllers/relationship/create/embeddedInController.js b/public/backend/js/controllers/relationship/create/embeddedInController.js index 91355c2..7e540d3 100644 --- a/public/backend/js/controllers/relationship/create/embeddedInController.js +++ b/public/backend/js/controllers/relationship/create/embeddedInController.js @@ -1,7 +1,7 @@ var app = angular.module("ive"); // Relationship embedded_in create controller -app.controller("embeddedInCreateController", function($scope, $rootScope, $routeParams, $filter, $translate, $location, config, $window, $authenticationService, $relationshipService, $scenarioService, $videoService, $overlayService) { +app.controller("embeddedInCreateController", function($scope, $rootScope, $routeParams, $interval, $filter, $translate, $location, config, $window, $authenticationService, $relationshipService, $scenarioService, $videoService, $overlayService, _) { /************************************************* FUNCTIONS @@ -109,6 +109,7 @@ app.controller("embeddedInCreateController", function($scope, $rootScope, $route first_video = $scope.videos[0].video_id; } $scope.relationship.video_id = first_video; + $scope.findVideo(); // Update UI $scope.videoDropdown.status = false; @@ -128,6 +129,7 @@ app.controller("embeddedInCreateController", function($scope, $rootScope, $route first_video = $scope.videos[0].video_id; } $scope.relationship.video_id = first_video; + $scope.findVideo(); // Update UI $scope.videoDropdown.status = false; @@ -140,14 +142,73 @@ app.controller("embeddedInCreateController", function($scope, $rootScope, $route break; } } - }; + }; + + + /** + * [description] + * @return {[type]} [description] + */ + $scope.findVideo = function(){ + if($scope.relationship.video_id !== null){ + $scope.selectedVideo = _.findWhere($scope.videos, { video_id: $scope.relationship.video_id }); + $scope.selectedVideo.thumbnail = $filter('thumbnail')($scope.selectedVideo, 1); + } else { + $scope.selectedVideo; + } + }; + + + /** + * [startPreview description] + * @param {[type]} video [description] + * @return {[type]} [description] + */ + $scope.startPreview = function(video) { + // store the interval promise + $scope.currentPreview = 1; + $scope.maxPreview = video.thumbnails; + + // stops any running interval to avoid two intervals running at the same time + $interval.cancel(promise); + + // store the interval promise + promise = $interval(function() { + if($scope.selectedVideo.thumbnails > 1){ + if($scope.currentPreview >= $scope.maxPreview){ + $scope.currentPreview = 1; + } + $scope.selectedVideo.thumbnail = $filter('thumbnail')($scope.selectedVideo, $scope.currentPreview); + } + $scope.currentPreview++; + }, config.thumbnailSpeed); + }; + + /** + * [stopPreview description] + * @param {[type]} video [description] + * @return {[type]} [description] + */ + $scope.stopPreview = function(video) { + $interval.cancel(promise); + }; + + + /************************************************* + LISTENERS + *************************************************/ + $scope.$on('$destroy', function() { + $interval.cancel(promise); + }); /************************************************* INIT *************************************************/ $scope.relationship = $relationshipService.init('embedded_in'); + $scope.selectedVideo; $scope.$parent.loading = { status: false, message: "" }; + var promise; // Prepare dropdowns $scope.overlayDropdown = { diff --git a/public/backend/js/controllers/relationship/create/recordedAtController.js b/public/backend/js/controllers/relationship/create/recordedAtController.js index 10a7a4e..9d03a0a 100644 --- a/public/backend/js/controllers/relationship/create/recordedAtController.js +++ b/public/backend/js/controllers/relationship/create/recordedAtController.js @@ -1,7 +1,7 @@ var app = angular.module("ive"); // Relationship recorded_at create controller -app.controller("recordedAtCreateController", function($scope, $rootScope, $routeParams, $filter, $translate, $location, config, $window, $authenticationService, $relationshipService, $scenarioService, $locationService, $videoService) { +app.controller("recordedAtCreateController", function($scope, $rootScope, $routeParams, $interval, $filter, $translate, $location, config, $window, $authenticationService, $relationshipService, $scenarioService, $locationService, $videoService, _) { /************************************************* FUNCTIONS @@ -58,6 +58,7 @@ app.controller("recordedAtCreateController", function($scope, $rootScope, $route first_video = $scope.videos[0].video_id; } $scope.relationship.video_id = first_video; + $scope.findVideo(); // Update UI $scope.videoDropdown.status = false; @@ -77,6 +78,7 @@ app.controller("recordedAtCreateController", function($scope, $rootScope, $route first_video = $scope.videos[0].video_id; } $scope.relationship.video_id = first_video; + $scope.findVideo(); // Update UI $scope.videoDropdown.status = false; @@ -134,12 +136,70 @@ app.controller("recordedAtCreateController", function($scope, $rootScope, $route } }; + /** + * [description] + * @return {[type]} [description] + */ + $scope.findVideo = function(){ + if($scope.relationship.video_id !== null){ + $scope.selectedVideo = _.findWhere($scope.videos, { video_id: $scope.relationship.video_id }); + $scope.selectedVideo.thumbnail = $filter('thumbnail')($scope.selectedVideo, 1); + } else { + $scope.selectedVideo; + } + }; + + + /** + * [startPreview description] + * @param {[type]} video [description] + * @return {[type]} [description] + */ + $scope.startPreview = function(video) { + // store the interval promise + $scope.currentPreview = 1; + $scope.maxPreview = video.thumbnails; + + // stops any running interval to avoid two intervals running at the same time + $interval.cancel(promise); + + // store the interval promise + promise = $interval(function() { + if($scope.selectedVideo.thumbnails > 1){ + if($scope.currentPreview >= $scope.maxPreview){ + $scope.currentPreview = 1; + } + $scope.selectedVideo.thumbnail = $filter('thumbnail')($scope.selectedVideo, $scope.currentPreview); + } + $scope.currentPreview++; + }, config.thumbnailSpeed); + }; + + /** + * [stopPreview description] + * @param {[type]} video [description] + * @return {[type]} [description] + */ + $scope.stopPreview = function(video) { + $interval.cancel(promise); + }; + + + /************************************************* + LISTENERS + *************************************************/ + $scope.$on('$destroy', function() { + $interval.cancel(promise); + }); + /************************************************* INIT *************************************************/ $scope.relationship = $relationshipService.init('recorded_at'); + $scope.selectedVideo; $scope.$parent.loading = { status: false, message: "" }; + var promise; // Prepare dropdowns $scope.videoDropdown = { diff --git a/public/backend/js/controllers/relationship/detailsController.js b/public/backend/js/controllers/relationship/detailsController.js index da8548d..b540a07 100644 --- a/public/backend/js/controllers/relationship/detailsController.js +++ b/public/backend/js/controllers/relationship/detailsController.js @@ -1,7 +1,7 @@ var app = angular.module("ive"); // Relationship details controller -app.controller("relationshipDetailsController", function($scope, $rootScope, $routeParams, $filter, $translate, $location, config, $window, $authenticationService, $relationshipService) { +app.controller("relationshipDetailsController", function($scope, $rootScope, $routeParams, $interval, $filter, $translate, $location, config, $window, $authenticationService, $relationshipService) { /************************************************* FUNCTIONS @@ -17,12 +17,56 @@ app.controller("relationshipDetailsController", function($scope, $rootScope, $ro }; + /** + * [startPreview description] + * @param {[type]} video [description] + * @return {[type]} [description] + */ + $scope.startPreview = function(video) { + // store the interval promise + $scope.currentPreview = 1; + $scope.maxPreview = video.thumbnails; + + // stops any running interval to avoid two intervals running at the same time + $interval.cancel(promise); + + // store the interval promise + promise = $interval(function() { + if($scope.relationship.thumbnails > 1){ + if($scope.currentPreview >= $scope.maxPreview){ + $scope.currentPreview = 1; + } + $scope.relationship.thumbnail = $filter('thumbnail')($scope.relationship, $scope.currentPreview); + } + $scope.currentPreview++; + }, config.thumbnailSpeed); + }; + + /** + * [stopPreview description] + * @param {[type]} video [description] + * @return {[type]} [description] + */ + $scope.stopPreview = function(video) { + $interval.cancel(promise); + }; + + + /************************************************* + LISTENERS + *************************************************/ + $scope.$on('$destroy', function() { + $interval.cancel(promise); + }); + + /************************************************* INIT *************************************************/ $scope.$parent.loading = { status: true, message: $filter('translate')('LOADING_RELATIONSHIP') }; $scope.relationship_label = $routeParams.relationship_label; $scope.relationship_type = $routeParams.relationship_type || undefined; + var promise; $relationshipService.retrieve_by_id($scope.relationship_label, $routeParams.relationship_id, $scope.relationship_type) .then(function onSuccess(response) { @@ -33,4 +77,5 @@ app.controller("relationshipDetailsController", function($scope, $rootScope, $ro $window.alert(response.data); }); + }); diff --git a/public/backend/js/controllers/relationship/edit/embeddedInController.js b/public/backend/js/controllers/relationship/edit/embeddedInController.js index 2b99333..122cb10 100644 --- a/public/backend/js/controllers/relationship/edit/embeddedInController.js +++ b/public/backend/js/controllers/relationship/edit/embeddedInController.js @@ -1,7 +1,7 @@ var app = angular.module("ive"); // Relationship embedded_in edit controller -app.controller("embeddedInEditController", function($scope, $rootScope, $routeParams, $filter, $translate, $location, config, $window, $authenticationService, $relationshipService) { +app.controller("embeddedInEditController", function($scope, $rootScope, $routeParams, $interval, $filter, $translate, $location, config, $window, $authenticationService, $relationshipService) { /************************************************* FUNCTIONS @@ -49,11 +49,55 @@ app.controller("embeddedInEditController", function($scope, $rootScope, $routePa }; + /** + * [startPreview description] + * @param {[type]} video [description] + * @return {[type]} [description] + */ + $scope.startPreview = function(video) { + // store the interval promise + $scope.currentPreview = 1; + $scope.maxPreview = video.thumbnails; + + // stops any running interval to avoid two intervals running at the same time + $interval.cancel(promise); + + // store the interval promise + promise = $interval(function() { + if($scope.relationship.thumbnails > 1){ + if($scope.currentPreview >= $scope.maxPreview){ + $scope.currentPreview = 1; + } + $scope.relationship.thumbnail = $filter('thumbnail')($scope.relationship, $scope.currentPreview); + } + $scope.currentPreview++; + }, config.thumbnailSpeed); + }; + + /** + * [stopPreview description] + * @param {[type]} video [description] + * @return {[type]} [description] + */ + $scope.stopPreview = function(video) { + $interval.cancel(promise); + }; + + + /************************************************* + LISTENERS + *************************************************/ + $scope.$on('$destroy', function() { + $interval.cancel(promise); + }); + + /************************************************* INIT *************************************************/ $scope.$parent.loading = { status: true, message: $filter('translate')('LOADING_RELATIONSHIP') }; $scope.relationship_label = 'embedded_in'; + var promise; $relationshipService.retrieve_by_id($scope.relationship_label, $routeParams.relationship_id) .then(function onSuccess(response) { diff --git a/public/backend/js/controllers/relationship/edit/recordedAtController.js b/public/backend/js/controllers/relationship/edit/recordedAtController.js index eea797e..8308ca1 100644 --- a/public/backend/js/controllers/relationship/edit/recordedAtController.js +++ b/public/backend/js/controllers/relationship/edit/recordedAtController.js @@ -1,7 +1,7 @@ var app = angular.module("ive"); // Relationship recorded_at edit controller -app.controller("recordedAtEditController", function($scope, $rootScope, $routeParams, $filter, $translate, $location, config, $window, $authenticationService, $relationshipService) { +app.controller("recordedAtEditController", function($scope, $rootScope, $routeParams, $interval, $filter, $translate, $location, config, $window, $authenticationService, $relationshipService) { /************************************************* FUNCTIONS @@ -40,11 +40,55 @@ app.controller("recordedAtEditController", function($scope, $rootScope, $routePa }; + /** + * [startPreview description] + * @param {[type]} video [description] + * @return {[type]} [description] + */ + $scope.startPreview = function(video) { + // store the interval promise + $scope.currentPreview = 1; + $scope.maxPreview = video.thumbnails; + + // stops any running interval to avoid two intervals running at the same time + $interval.cancel(promise); + + // store the interval promise + promise = $interval(function() { + if($scope.relationship.thumbnails > 1){ + if($scope.currentPreview >= $scope.maxPreview){ + $scope.currentPreview = 1; + } + $scope.relationship.thumbnail = $filter('thumbnail')($scope.relationship, $scope.currentPreview); + } + $scope.currentPreview++; + }, config.thumbnailSpeed); + }; + + /** + * [stopPreview description] + * @param {[type]} video [description] + * @return {[type]} [description] + */ + $scope.stopPreview = function(video) { + $interval.cancel(promise); + }; + + + /************************************************* + LISTENERS + *************************************************/ + $scope.$on('$destroy', function() { + $interval.cancel(promise); + }); + + /************************************************* INIT *************************************************/ $scope.$parent.loading = { status: true, message: $filter('translate')('LOADING_RELATIONSHIP') }; $scope.relationship_label = 'recorded_at'; + var promise; $relationshipService.retrieve_by_id($scope.relationship_label, $routeParams.relationship_id) .then(function onSuccess(response) { diff --git a/public/backend/js/controllers/video/createController.js b/public/backend/js/controllers/video/createController.js index f29d58c..4633538 100644 --- a/public/backend/js/controllers/video/createController.js +++ b/public/backend/js/controllers/video/createController.js @@ -34,8 +34,9 @@ app.controller("videoCreateController", function($scope, $rootScope, $routeParam $videoService.create($scope.video) .then(function onSuccess(response) { - var new_video = response.data; - $scope.redirect("/videos/" + new_video.video_id); + $scope.video = response.data; + $window.prompt($filter('translate')('NEW_VIDEO_CREATED'), $scope.video.v_id); + $scope.redirect("/videos/" + $scope.video.video_id); }) .catch(function onError(response) { $window.alert(response.data); diff --git a/public/backend/js/services/locationService.js b/public/backend/js/services/locationService.js index e4aab6f..423a24c 100644 --- a/public/backend/js/services/locationService.js +++ b/public/backend/js/services/locationService.js @@ -23,7 +23,7 @@ app.factory('$locationService', function($http, config, $authenticationService) init: function() { return { name: "", - description: "", + description: null, location_type: "outdoor", lng: null, lat: null diff --git a/public/backend/js/services/overlayService.js b/public/backend/js/services/overlayService.js index ba1d9ef..10a1e5a 100644 --- a/public/backend/js/services/overlayService.js +++ b/public/backend/js/services/overlayService.js @@ -23,7 +23,7 @@ app.factory('$overlayService', function($http, config, $authenticationService) { init: function() { return { name: "", - description: "", + description: null, category: "website", url: "" }; diff --git a/public/backend/js/services/scenarioService.js b/public/backend/js/services/scenarioService.js index 4b7f2fd..10676b3 100644 --- a/public/backend/js/services/scenarioService.js +++ b/public/backend/js/services/scenarioService.js @@ -22,7 +22,7 @@ app.factory('$scenarioService', function($http, config, $authenticationService) init: function() { return { name: "", - description: "" + description: null }; }, getCount: function(){ diff --git a/public/backend/js/services/videoService.js b/public/backend/js/services/videoService.js index e63d84e..32bbc59 100644 --- a/public/backend/js/services/videoService.js +++ b/public/backend/js/services/videoService.js @@ -22,9 +22,9 @@ app.factory('$videoService', function($http, config, $authenticationService) { init: function() { return { name: "", - description: "", + description: null, url: "", - recorded: "", + recorded: null, thumbnails: 0 }; }, diff --git a/public/backend/templates/location/create.html b/public/backend/templates/location/create.html index e9f9339..8b4dcb5 100644 --- a/public/backend/templates/location/create.html +++ b/public/backend/templates/location/create.html @@ -7,7 +7,7 @@   {{ 'NEW_LOCATION' | translate }}
-
@@ -15,7 +15,7 @@
@@ -51,19 +51,24 @@
- +
+
+ +
+ +
{{ 'REQUIRED' | translate }} @@ -75,7 +80,7 @@
@@ -102,7 +107,7 @@
@@ -131,7 +136,7 @@
diff --git a/public/backend/templates/location/delete.html b/public/backend/templates/location/delete.html index b9924eb..59cce20 100644 --- a/public/backend/templates/location/delete.html +++ b/public/backend/templates/location/delete.html @@ -6,7 +6,7 @@   {{ 'DELETE' | translate }} {{location.name}}
-
@@ -29,7 +29,7 @@

diff --git a/public/backend/templates/location/details.html b/public/backend/templates/location/details.html index 55cc215..049f947 100644 --- a/public/backend/templates/location/details.html +++ b/public/backend/templates/location/details.html @@ -16,14 +16,14 @@
- -
-
@@ -40,15 +40,17 @@
{{ 'PROPERTIES' | translate }}
{{ 'ID' | translate }} - {{location.location_id}} + {{location.location_id}} - {{ 'EXPORT_ID' | translate }} + {{ 'UUID' | translate }} - {{location.l_id}} + + {{location.l_id}} + @@ -64,8 +66,8 @@
{{ 'PROPERTIES' | translate }}
{{ 'DESCRIPTION' | translate }} - {{location.description}} - - + {{location.description}} + - @@ -73,8 +75,8 @@
{{ 'PROPERTIES' | translate }}
{{ 'LONGITUDE' | translate }} - {{location.lng}} - - + {{location.lng}} + - @@ -82,8 +84,8 @@
{{ 'PROPERTIES' | translate }}
{{ 'LATITUDE' | translate }} - {{location.lat}} - - + {{location.lat}} + - diff --git a/public/backend/templates/location/edit.html b/public/backend/templates/location/edit.html index af4c20c..cd6bd38 100644 --- a/public/backend/templates/location/edit.html +++ b/public/backend/templates/location/edit.html @@ -7,7 +7,7 @@   {{ 'EDIT' | translate }} {{location.name}}
-
@@ -15,7 +15,7 @@
@@ -51,19 +51,24 @@
- +
+
+ +
+ +
{{ 'REQUIRED' | translate }} @@ -75,7 +80,7 @@
@@ -102,7 +107,7 @@
@@ -131,7 +136,7 @@
diff --git a/public/backend/templates/location/list.html b/public/backend/templates/location/list.html index b8e863f..c3a66a6 100644 --- a/public/backend/templates/location/list.html +++ b/public/backend/templates/location/list.html @@ -4,7 +4,7 @@
{{ '_LOCATIONS' | translate }}
-
@@ -36,9 +36,9 @@
{{ 'FILTER_BY' | translate }} diff --git a/public/backend/templates/login.html b/public/backend/templates/login.html index 4a2aad2..5762817 100644 --- a/public/backend/templates/login.html +++ b/public/backend/templates/login.html @@ -16,7 +16,7 @@

@@ -40,7 +40,7 @@

@@ -64,7 +64,7 @@

-
@@ -138,7 +138,7 @@

-
diff --git a/public/backend/templates/overlay/create.html b/public/backend/templates/overlay/create.html index 48775a1..5393202 100644 --- a/public/backend/templates/overlay/create.html +++ b/public/backend/templates/overlay/create.html @@ -7,7 +7,7 @@   {{ 'NEW_OVERLAY' | translate }}
-
@@ -15,7 +15,7 @@

@@ -50,19 +50,24 @@
- +
+
+ +
+ +
{{ 'REQUIRED' | translate }} @@ -72,18 +77,25 @@
- +
+
+ + + +
+ +
{{ 'REQUIRED' | translate }} @@ -93,7 +105,7 @@
diff --git a/public/backend/templates/overlay/delete.html b/public/backend/templates/overlay/delete.html index 40add5e..d284f90 100644 --- a/public/backend/templates/overlay/delete.html +++ b/public/backend/templates/overlay/delete.html @@ -6,7 +6,7 @@   {{ 'DELETE' | translate }} {{overlay.name}}
-
@@ -27,7 +27,7 @@

diff --git a/public/backend/templates/overlay/details.html b/public/backend/templates/overlay/details.html index 2d4e711..6268796 100644 --- a/public/backend/templates/overlay/details.html +++ b/public/backend/templates/overlay/details.html @@ -7,14 +7,14 @@
- -
-
@@ -29,15 +29,17 @@
{{ 'PROPERTIES' | translate }}
{{ 'ID' | translate }} - {{overlay.overlay_id}} + {{overlay.overlay_id}} - {{ 'EXPORT_ID' | translate }} + {{ 'UUID' | translate }} - {{overlay.o_id}} + + {{overlay.o_id}} + @@ -53,8 +55,8 @@
{{ 'PROPERTIES' | translate }}
{{ 'DESCRIPTION' | translate }} - {{overlay.description}} - - + {{overlay.description}} + - diff --git a/public/backend/templates/overlay/edit.html b/public/backend/templates/overlay/edit.html index 707ef5d..c2fbba5 100644 --- a/public/backend/templates/overlay/edit.html +++ b/public/backend/templates/overlay/edit.html @@ -7,7 +7,7 @@   {{ 'EDIT' | translate }} {{overlay.name}}
-
@@ -15,7 +15,7 @@
@@ -50,19 +50,24 @@
- +
+
+ +
+ +
{{ 'REQUIRED' | translate }} @@ -72,18 +77,25 @@
- +
+
+ + + +
+ +
{{ 'REQUIRED' | translate }} @@ -93,7 +105,7 @@
diff --git a/public/backend/templates/overlay/list.html b/public/backend/templates/overlay/list.html index 9c26d4c..631621d 100644 --- a/public/backend/templates/overlay/list.html +++ b/public/backend/templates/overlay/list.html @@ -4,7 +4,7 @@
{{ '_OVERLAYS' | translate }}
-
@@ -36,9 +36,9 @@
{{ 'FILTER_BY' | translate }} diff --git a/public/backend/templates/relationship/create.html b/public/backend/templates/relationship/create.html index 0757c82..564e570 100644 --- a/public/backend/templates/relationship/create.html +++ b/public/backend/templates/relationship/create.html @@ -6,7 +6,7 @@   {{ 'SELECT_AND_CREATE_NEW_RELATIONSHIP' | translate }}
-
@@ -105,7 +105,7 @@
-   {{ 'START_LOCATION' | translate }} +   {{ '_START_LOCATION' | translate }}
diff --git a/public/backend/templates/relationship/create/belongs_to.html b/public/backend/templates/relationship/create/belongs_to.html index a0501c0..905c817 100644 --- a/public/backend/templates/relationship/create/belongs_to.html +++ b/public/backend/templates/relationship/create/belongs_to.html @@ -6,10 +6,10 @@
-   {{ 'CREATE_NEW_RELATIONSHIP' | translate }} +   {{ 'NEW_RELATIONSHIP' | translate }}
-
@@ -21,7 +21,7 @@

@@ -49,7 +49,7 @@

@@ -72,7 +72,7 @@

@@ -101,7 +101,7 @@

@@ -125,7 +125,7 @@
diff --git a/public/backend/templates/relationship/create/connected_to.html b/public/backend/templates/relationship/create/connected_to.html index d0ce342..107de03 100644 --- a/public/backend/templates/relationship/create/connected_to.html +++ b/public/backend/templates/relationship/create/connected_to.html @@ -4,10 +4,10 @@
-   {{ 'CREATE_NEW_RELATIONSHIP' | translate }} +   {{ 'NEW_RELATIONSHIP' | translate }}
-
@@ -17,7 +17,7 @@

@@ -40,7 +40,7 @@

@@ -109,6 +110,22 @@
+
+ +

@@ -134,7 +151,7 @@
@@ -151,7 +168,7 @@
@@ -168,7 +185,7 @@
@@ -188,7 +205,7 @@
@@ -205,7 +222,7 @@
@@ -222,7 +239,7 @@
@@ -242,7 +259,7 @@
@@ -259,7 +276,7 @@
@@ -276,7 +293,7 @@
@@ -293,7 +310,7 @@
@@ -337,7 +354,7 @@
diff --git a/public/backend/templates/relationship/create/has_parent_location.html b/public/backend/templates/relationship/create/has_parent_location.html index 52a770a..736e5ac 100644 --- a/public/backend/templates/relationship/create/has_parent_location.html +++ b/public/backend/templates/relationship/create/has_parent_location.html @@ -4,10 +4,10 @@
-   {{ 'CREATE_NEW_RELATIONSHIP' | translate }} +   {{ 'NEW_RELATIONSHIP' | translate }}
-
@@ -17,7 +17,7 @@

@@ -62,7 +62,7 @@

@@ -96,7 +96,7 @@

@@ -125,7 +125,7 @@
diff --git a/public/backend/templates/relationship/create/recorded_at.html b/public/backend/templates/relationship/create/recorded_at.html index 454a29f..5af5fb0 100644 --- a/public/backend/templates/relationship/create/recorded_at.html +++ b/public/backend/templates/relationship/create/recorded_at.html @@ -4,10 +4,10 @@
-   {{ 'CREATE_NEW_RELATIONSHIP' | translate }} +   {{ 'NEW_RELATIONSHIP' | translate }}
-
@@ -17,7 +17,7 @@

@@ -60,7 +60,7 @@

@@ -71,6 +71,7 @@ ng-model="relationship.video_id" ng-disabled="videoDropdown.status" ng-options="video.video_id as video.name for video in videos | orderBy:['name']" + ng-change="findVideo()" required> @@ -79,6 +80,22 @@
+
+ +

@@ -90,7 +107,7 @@

@@ -135,7 +152,7 @@

@@ -177,7 +194,7 @@
diff --git a/public/backend/templates/relationship/delete.html b/public/backend/templates/relationship/delete.html index 903f8c6..8a0e86d 100644 --- a/public/backend/templates/relationship/delete.html +++ b/public/backend/templates/relationship/delete.html @@ -6,7 +6,7 @@   {{ 'DELETE_RELATIONSHIP' | translate }}
-
@@ -160,7 +160,7 @@

diff --git a/public/backend/templates/relationship/details.html b/public/backend/templates/relationship/details.html index aad1e7a..5df2c76 100644 --- a/public/backend/templates/relationship/details.html +++ b/public/backend/templates/relationship/details.html @@ -7,17 +7,17 @@
- -
-
@@ -107,7 +107,7 @@
-
+
  {{relationship.overlay_name}}
@@ -115,7 +115,7 @@ — EMBEDDED_IN —>
-
+
  {{relationship.video_name}}
{{ 'PROPERTIES' | translate }}

{{ 'ID' | translate }} - {{relationship.relationship_id}} + {{relationship.relationship_id}} diff --git a/public/backend/templates/relationship/edit/embedded_in.html b/public/backend/templates/relationship/edit/embedded_in.html index 3c8f0db..3ea95b3 100644 --- a/public/backend/templates/relationship/edit/embedded_in.html +++ b/public/backend/templates/relationship/edit/embedded_in.html @@ -10,7 +10,7 @@   {{ 'EDIT_IN_PREVIEW_MODE' | translate}}   -
@@ -18,19 +18,36 @@
-
-
-
+
+
+
  {{relationship.overlay_name}}
-
+
— EMBEDDED_IN —>
- +
  {{relationship.video_name}} - +
+
+ +
+
@@ -52,7 +69,7 @@
{{ 'PROPERTIES' | translate }}
{{ 'PROPERTIES' | translate }} ng-model="relationship.relationship_w" name="w" id="w" - placeholder="{{ 'WIDTH' | translate }}*" + placeholder="{{ 'WIDTH' | translate }}" aria-describedby="inputWidth" required>
@@ -69,7 +86,7 @@
{{ 'PROPERTIES' | translate }}
{{ 'PROPERTIES' | translate }}
{{ 'PROPERTIES' | translate }} ng-model="relationship.relationship_d" name="d" id="d" - placeholder="{{ 'D' | translate }}*" + placeholder="{{ 'D' | translate }}" aria-describedby="inputD" required>
@@ -106,7 +123,7 @@
{{ 'PROPERTIES' | translate }}
{{ 'PROPERTIES' | translate }} ng-model="relationship.relationship_x" name="x" id="x" - placeholder="{{ 'X' | translate }}*" + placeholder="{{ 'X' | translate }}" aria-describedby="inputX" required>
@@ -123,7 +140,7 @@
{{ 'PROPERTIES' | translate }}
{{ 'PROPERTIES' | translate }} ng-model="relationship.relationship_y" name="y" id="y" - placeholder="{{ 'Y' | translate }}*" + placeholder="{{ 'Y' | translate }}" aria-describedby="inputY" required>
@@ -140,7 +157,7 @@
{{ 'PROPERTIES' | translate }}
{{ 'PROPERTIES' | translate }} ng-model="relationship.relationship_z" name="z" id="z" - placeholder="{{ 'Z' | translate }}*" + placeholder="{{ 'Z' | translate }}" aria-describedby="inputZ" required>
@@ -160,7 +177,7 @@
{{ 'PROPERTIES' | translate }}
{{ 'PROPERTIES' | translate }} ng-model="relationship.relationship_rx" name="rx" id="rx" - placeholder="{{ 'RX' | translate }}*" + placeholder="{{ 'RX' | translate }}" aria-describedby="inputRX" required>
@@ -177,7 +194,7 @@
{{ 'PROPERTIES' | translate }}
{{ 'PROPERTIES' | translate }} ng-model="relationship.relationship_ry" name="ry" id="ry" - placeholder="{{ 'RY' | translate }}*" + placeholder="{{ 'RY' | translate }}" aria-describedby="inputRY" required>
@@ -194,7 +211,7 @@
{{ 'PROPERTIES' | translate }}
{{ 'PROPERTIES' | translate }} ng-model="relationship.relationship_rz" name="rz" id="rz" - placeholder="{{ 'RZ' | translate }}*" + placeholder="{{ 'RZ' | translate }}" aria-describedby="inputRZ" required>
@@ -211,7 +228,7 @@
{{ 'PROPERTIES' | translate }}
@@ -254,7 +271,7 @@
{{ 'PROPERTIES' | translate }}
diff --git a/public/backend/templates/relationship/edit/embedded_in_preview.html b/public/backend/templates/relationship/edit/embedded_in_preview.html index 6ae2bda..8627177 100644 --- a/public/backend/templates/relationship/edit/embedded_in_preview.html +++ b/public/backend/templates/relationship/edit/embedded_in_preview.html @@ -7,7 +7,7 @@   {{ 'EDIT_RELATIONSHIP' | translate }}
-
@@ -40,7 +40,7 @@
diff --git a/public/backend/templates/relationship/edit/recorded_at.html b/public/backend/templates/relationship/edit/recorded_at.html index 2809ceb..628acb2 100644 --- a/public/backend/templates/relationship/edit/recorded_at.html +++ b/public/backend/templates/relationship/edit/recorded_at.html @@ -7,7 +7,7 @@   {{ 'EDIT_RELATIONSHIP' | translate }}
-
@@ -19,6 +19,23 @@
  {{relationship.video_name}} +
+
+ +
@@ -54,7 +71,7 @@
{{ 'PROPERTIES' | translate }}

@@ -96,7 +113,7 @@
{{ 'PROPERTIES' | translate }}
diff --git a/public/backend/templates/relationship/list.html b/public/backend/templates/relationship/list.html index 14248d3..01d176a 100644 --- a/public/backend/templates/relationship/list.html +++ b/public/backend/templates/relationship/list.html @@ -8,10 +8,10 @@
- -
@@ -88,7 +88,7 @@
-
-
+
+
  {{relationship.overlay_name}}
-
+
— EMBEDDED_IN —>
-
+
  {{relationship.video_name}}
{{ '_RELATIONSHIPS' | translate }}
-
diff --git a/public/backend/templates/relationship/select_belongs_to.html b/public/backend/templates/relationship/select_belongs_to.html index 0538a2f..88b54c5 100644 --- a/public/backend/templates/relationship/select_belongs_to.html +++ b/public/backend/templates/relationship/select_belongs_to.html @@ -6,7 +6,7 @@   {{ 'SELECT_A_NEW_RELATIONSHIP' | translate }}
-
diff --git a/public/backend/templates/scenario/create.html b/public/backend/templates/scenario/create.html index f750dd2..7dfea01 100644 --- a/public/backend/templates/scenario/create.html +++ b/public/backend/templates/scenario/create.html @@ -7,7 +7,7 @@   {{ 'NEW_SCENARIO' | translate }}
-
@@ -15,7 +15,7 @@
@@ -50,7 +50,7 @@
diff --git a/public/backend/templates/scenario/delete.html b/public/backend/templates/scenario/delete.html index 960a9e9..f6345ba 100644 --- a/public/backend/templates/scenario/delete.html +++ b/public/backend/templates/scenario/delete.html @@ -6,7 +6,7 @@   {{ 'DELETE' | translate }} {{scenario.name}}
-
@@ -27,7 +27,7 @@

diff --git a/public/backend/templates/scenario/details.html b/public/backend/templates/scenario/details.html index 3e3870a..c80d30d 100644 --- a/public/backend/templates/scenario/details.html +++ b/public/backend/templates/scenario/details.html @@ -7,14 +7,14 @@
- -
-
@@ -29,15 +29,17 @@
{{ 'PROPERTIES' | translate }}
{{ 'ID' | translate }} - {{scenario.scenario_id}} + {{scenario.scenario_id}} - {{ 'EXPORT_ID' | translate }} + {{ 'UUID' | translate }} - {{scenario.s_id}} + + {{scenario.s_id}} + @@ -53,8 +55,8 @@
{{ 'PROPERTIES' | translate }}
{{ 'DESCRIPTION' | translate }} - {{scenario.description}} - - + {{scenario.description}} + - diff --git a/public/backend/templates/scenario/edit.html b/public/backend/templates/scenario/edit.html index 035e2a0..cdd2f8f 100644 --- a/public/backend/templates/scenario/edit.html +++ b/public/backend/templates/scenario/edit.html @@ -7,7 +7,7 @@   {{ 'EDIT' | translate }} {{scenario.name}}
-
@@ -15,7 +15,7 @@
@@ -49,7 +49,7 @@
diff --git a/public/backend/templates/scenario/list.html b/public/backend/templates/scenario/list.html index c1b492d..2ad45a2 100644 --- a/public/backend/templates/scenario/list.html +++ b/public/backend/templates/scenario/list.html @@ -4,7 +4,7 @@
{{ '_SCENARIOS' | translate }}
-
diff --git a/public/backend/templates/video/create.html b/public/backend/templates/video/create.html index 00e9bf5..10a2ced 100644 --- a/public/backend/templates/video/create.html +++ b/public/backend/templates/video/create.html @@ -7,7 +7,7 @@   {{ 'NEW_VIDEO' | translate }}
-
@@ -15,7 +15,7 @@
@@ -50,18 +50,26 @@
- +
+
+ +
+ +
+ .mp4 +
+
{{ 'REQUIRED' | translate }} @@ -70,24 +78,57 @@

+ +
+
+
+ +
+ +
+ + + {{ 'REQUIRED' | translate }} + + +
+
+
- +
+
+ +
+ +
diff --git a/public/backend/templates/video/delete.html b/public/backend/templates/video/delete.html index efed2c0..03665fd 100644 --- a/public/backend/templates/video/delete.html +++ b/public/backend/templates/video/delete.html @@ -6,7 +6,7 @@   {{ 'DELETE' | translate }} {{video.name}}
-
@@ -27,7 +27,7 @@

diff --git a/public/backend/templates/video/details.html b/public/backend/templates/video/details.html index 4e8fe9f..a686656 100644 --- a/public/backend/templates/video/details.html +++ b/public/backend/templates/video/details.html @@ -7,14 +7,14 @@
- -
-
@@ -36,15 +36,17 @@
{{ 'PROPERTIES' | translate }}
{{ 'ID' | translate }} - {{video.video_id}} + {{video.video_id}} - {{ 'EXPORT_ID' | translate }} + {{ 'UUID' | translate }} - {{video.v_id}} + + {{video.v_id}} + @@ -60,8 +62,8 @@
{{ 'PROPERTIES' | translate }}
{{ 'DESCRIPTION' | translate }} - {{video.description}} - - + {{video.description}} + - @@ -77,8 +79,8 @@
{{ 'PROPERTIES' | translate }}
{{ 'RECORDED' | translate }} - {{video.recorded}} - - + {{video.recorded}} + - diff --git a/public/backend/templates/video/edit.html b/public/backend/templates/video/edit.html index e421ae2..caf1eb9 100644 --- a/public/backend/templates/video/edit.html +++ b/public/backend/templates/video/edit.html @@ -7,7 +7,7 @@   {{ 'EDIT' | translate }} {{video.name}}
-
@@ -15,7 +15,7 @@
@@ -50,18 +50,26 @@
- +
+
+ +
+ +
+ .mp4 +
+
{{ 'REQUIRED' | translate }} @@ -70,24 +78,57 @@

+ +
+
+
+ +
+ +
+ + + {{ 'REQUIRED' | translate }} + + +
+
+
- +
+
+ +
+ +
diff --git a/public/backend/templates/video/list.html b/public/backend/templates/video/list.html index 2b21e5f..5f3e40d 100644 --- a/public/backend/templates/video/list.html +++ b/public/backend/templates/video/list.html @@ -4,7 +4,7 @@
{{ '_VIDEOS' | translate }}
-
diff --git a/public/index.html b/public/index.html index 98ad5c5..6b8dd43 100644 --- a/public/index.html +++ b/public/index.html @@ -144,7 +144,7 @@

DOCUMENTATION

- Description + Installation, data structure, architecture

diff --git a/public/translations/en_US.js b/public/translations/en_US.js index 0aa9613..65b0a45 100644 --- a/public/translations/en_US.js +++ b/public/translations/en_US.js @@ -4,6 +4,7 @@ var app = angular.module("en_US", []); // ENGLISH translations app.constant("en_US", { // BACKEND + _MAP: 'Map', SCENARIO: 'scenario', SCENARIOS: 'scenarios', _SCENARIO: 'Scenario', @@ -35,6 +36,7 @@ app.constant("en_US", { CANCEL: 'Cancel', CLOSE: 'Close', SEND: 'Send', + SAVE: 'Save', DEFAULT: 'Default', ALL: 'All', USERNAME: 'Username', @@ -49,21 +51,26 @@ app.constant("en_US", { SHOW: 'Show', HIDE: 'Hide', RELATED: 'related', - NO: 'No', CONNECTED: 'connected', ABSTRACT: 'abstract', + _ABSTRACT: 'Abstract', INDOOR: 'indoor', + _INDOOR: 'Indoor', OUTDOOR: 'outdoor', + _OUTDOOR: 'Outdoor', LONGITUDE: 'Longitude', LATITUDE: 'Latitude', LOCATION_TYPE: 'Location type', RECORDED: 'Recorded', + THUMBNAILS: 'Thumbnails', CATEGORY: 'Category', URL: 'URL', TYPE: 'Type', EXAMPLE: 'Example', WEBSITE: 'website', + _WEBSITE: 'Website', PICTURE: 'picture', + _PICTURE: 'Picture', WIDTH: 'Width', HEIGHT: 'Height', DISTORTION: 'Distortion', @@ -72,9 +79,8 @@ app.constant("en_US", { AXIS: 'Axix', DISPLAY: 'Display', PREFERRED: 'Preferred', - FILTER: 'Filter', - BY: 'by', - START_LOCATION: 'Start location', + START_LOCATION: 'start location', + _START_LOCATION: 'Start location', END_LOCATION: 'End location', CHILD_LOCATION: 'Child location', PARENT_LOCATION: 'Parent location', @@ -90,7 +96,6 @@ app.constant("en_US", { PLEASE_SELECT_A: 'Please select a', SCENARIO: 'Scenario', LOCATION: 'Location', - START_LOCATION: 'start location', NO_VIDEO_FOUND: 'No video found', // REMOTE @@ -110,5 +115,60 @@ app.constant("en_US", { NO_OVERLAYS_FOUND: 'No overlays found', CURRENTLY: 'currently', - NO: 'no' + YES: 'Yes', + NO: 'No', + PREVIEW: 'Preview', + + SHOW_CONNECTED_LOCATIONS: 'Show connected locations', + HIDE_CONNECTED_LOCATIONS: 'Hide connected locations', + SHOW_RELATED_LOCATIONS: 'Show related locations', + HIDE_RELATED_LOCATIONS: 'Hide related locations', + SHOW_RELATED_VIDEOS: 'Show related videos', + HIDE_RELATED_VIDEOS: 'Hide related videos', + SHOW_RELATED_OVERLAYS: 'Show related overlays', + HIDE_RELATED_OVERLAYS: 'Hide related overlays', + + SEARCH_FOR_NAMES: 'Search for names', + SORT_BY: 'Sort by', + FILTER_BY: 'Filter by', + FILTER_BY_RELATIONSHIP_TYPE: 'Filter by relationship type', + NO_FILTER: 'No filter', + + CREATED_ASC: 'Created ascending', + CREATED_DESC: 'Created descending', + UPDATED_ASC: 'Updated ascending', + UPDATED_DESC: 'Updated descending', + NAME_ASC: 'Name ascending', + NAME_DESC: 'Name descending', + SCENARIO_NAME_ASC: 'Scenario name ascending', + SCENARIO_NAME_DESC: 'Scenario name descending', + LOCATION_NAME_ASC: 'Location name ascending', + LOCATION_NAME_DESC: 'Location name descending', + START_LOCATION_NAME_ASC: 'Start location name ascending', + START_LOCATION_NAME_DESC: 'Start location name descending', + END_LOCATION_NAME_ASC: 'End location name ascending', + END_LOCATION_NAME_DESC: 'End location name descending', + PARENT_LOCATION_NAME_ASC: 'Parent location name ascending', + PARENT_LOCATION_NAME_DESC: 'Parent location name descending', + CHILD_LOCATION_NAME_ASC: 'Child location name ascending', + CHILD_LOCATION_NAME_DESC: 'Child location name descending', + VIDEO_NAME_ASC: 'Video name ascending', + VIDEO_NAME_DESC: 'Video name descending', + OVERLAY_NAME_ASC: 'Overlay name ascending', + OVERLAY_NAME_DESC: 'Overlay name descending', + + NEW_VIDEO_CREATED: 'New video has been created', + NEW_SCENARIO: 'New scenario', + NEW_LOCATION: 'New location', + NEW_VIDEO: 'New video', + NEW_OVERLAY: 'New overlay', + NEW_RELATIONSHIP: 'New relationship', + EDIT_RELATIONSHIP: 'Edit relationship', + SELECT_A_NEW_RELATIONSHIP: 'Select a new relationship', + SELECT_AND_CREATE_NEW_RELATIONSHIP: 'Select and create a new relationship', + + FILTER_LOCATIONS_BY_SCENARIO: 'Filter locations by scenario', + FILTER_VIDEOS_BY_SCENARIO: 'Filter videos by scenario', + FILTER_OVERLAYS_BY_SCENARIO: 'Filter overlays by scenario' + }); diff --git a/queries/videos/create.cypher b/queries/videos/create.cypher index b72324b..c09c2b1 100644 --- a/queries/videos/create.cypher +++ b/queries/videos/create.cypher @@ -15,6 +15,6 @@ CREATE (v:Videos { v.name AS name, v.description AS description, v.url AS url, - v.recorded AS recorded + v.recorded AS recorded, v.thumbnails AS thumbnails ;