47 lines
1.5 KiB
JavaScript
47 lines
1.5 KiB
JavaScript
module.exports = function ($timeout, dizquetv) {
|
|
return {
|
|
restrict: 'E',
|
|
templateUrl: 'templates/flex-config.html',
|
|
replace: true,
|
|
scope: {
|
|
title: "@offlineTitle",
|
|
program: "=program",
|
|
visible: "=visible",
|
|
onDone: "=onDone"
|
|
},
|
|
link: function (scope, element, attrs) {
|
|
let updateNext = true;
|
|
scope.$watch('program', () => {
|
|
try {
|
|
if ( (typeof(scope.program) === 'undefined') || (scope.program == null) ) {
|
|
updateNext = true;
|
|
return;
|
|
} else if (! updateNext) {
|
|
return;
|
|
}
|
|
updateNext = false;
|
|
scope.error = null;
|
|
} catch (err) {
|
|
console.error(err);
|
|
}
|
|
})
|
|
|
|
scope.finished = (prog) => {
|
|
scope.error = null;
|
|
if (isNaN(prog.durationSeconds) || prog.durationSeconds < 0 ) {
|
|
scope.error = { duration: 'Duration must be a positive integer' }
|
|
}
|
|
if (scope.error != null) {
|
|
$timeout(() => {
|
|
scope.error = null
|
|
}, 30000)
|
|
return
|
|
}
|
|
scope.onDone(JSON.parse(angular.toJson(prog)))
|
|
scope.program = null
|
|
}
|
|
|
|
}
|
|
};
|
|
}
|