Skip to content

Commit

Permalink
2.3.0 compatible release
Browse files Browse the repository at this point in the history
46f2de9 commit
  • Loading branch information
ravibail committed Jan 3, 2019
1 parent aef9f79 commit 329a8a8
Show file tree
Hide file tree
Showing 12 changed files with 123 additions and 125 deletions.
9 changes: 9 additions & 0 deletions RELEASE NOTES.md
Expand Up @@ -57,4 +57,13 @@
1. Snapshot orientation corrected for portrait modes
1. Remove spaces from zipfile names

**2.3.0**

1. Inline with pisignage.com release 2.3.0 (**46f2de9**)
1. Kiosk UI (either in-built or provide url/zip of your UI app) - under group settings
1. Gapless video play (BETA) - under group settings
1. Player-server communication interval under settings
1. Programmable delay for sending keystrokes to webpage link screen instead of fixed 10 seconds - under weblink



2 changes: 0 additions & 2 deletions app/controllers/players.js
Expand Up @@ -165,8 +165,6 @@ var sendConfig = function (player, group, periodic) {
retObj.emergencyMessage = group.emergencyMessage || {enable: false};
retObj.combineDefaultPlaylist = group.combineDefaultPlaylist || false;
retObj.playAllEligiblePlaylists = group.playAllEligiblePlaylists || false;
retObj.randomsort= group.randomsort || false;
retObj.alternatesort=group.alternatesort || false;
retObj.urlReloadDisable = group.urlReloadDisable || false;
retObj.loadPlaylistOnCompletion = group.loadPlaylistOnCompletion || false;
//if (!pipkgjson)
Expand Down
2 changes: 0 additions & 2 deletions app/models/group.js
Expand Up @@ -8,8 +8,6 @@ var GroupSchema = new Schema({
playlists: [],
combineDefaultPlaylist: {type: Boolean , default: false},
playAllEligiblePlaylists: {type: Boolean , default: false},
randomsort: {type: Boolean , default:false},
alternatesort: {type: Boolean , default: false},
timeToStopVideo: {type: Number , default: 0 },

assets: [],
Expand Down
15 changes: 0 additions & 15 deletions public/app/js/controllers/groups.js
Expand Up @@ -230,21 +230,6 @@ angular.module('piGroups.controllers', [])
});
})
}
$scope.combineOptions = [
{ title: "randomly", checked: false},
{ title: "alternately", checked:false },

];
$scope.updateSelection = function(position, combineOptions, title) {
angular.forEach(combineOptions, function(subscription, index) {
if (position != index)
subscription.checked = false;
$scope.selectedScheduled = title;
$scope.group.selectedGroup.randomsort=combineOptions[0].checked;
$scope.group.selectedGroup.alternatesort=combineOptions[1].checked;
}
);
}

$scope.add = function () {
if ($scope.group.selectedGroup.playlists.length >= 30) {
Expand Down
41 changes: 21 additions & 20 deletions public/app/partials/asset-details.html
Expand Up @@ -14,23 +14,23 @@
<iframe ng-if="filedetails.type==&quot;pdf&quot;" height="300px" width="100%" ng-src="{{filedetails.path}}"></iframe>
<form role="form" name="linkform" ng-show="fileType==&quot;link&quot;">
<div ng-if="urlLink.type != '.txt'" class="row">
<div class="col-xs-2 col-xs-offset-1">
<h4 class="text-muted">Address</h4>
<div class="col-sm-3 text-right">
<label class="control-label text-muted">Address</label>
</div>
<div class="col-xs-8">
<h4>{{urlLink.link}}<a ng-disabled="!urlLink.link" href="{{urlLink.link}}" target="_blank" class="btn btn-link"><i class="fa fa-external-link"></i></a></h4>
</div>
</div>
<div class="row">
<div class="col-xs-2 col-xs-offset-1">
<h4 class="text-muted">Type</h4>
<div class="col-sm-3 text-right">
<label class="control-label text-muted">Type</label>
</div>
<div class="col-xs-7">
<h4>{{urlLink.type == ".tv"?"You Tube":urlLink.type.slice(1)}}</h4>
</div>
</div>
<div ng-if="urlLink.type == '.mrss'" class="row">
<div class="col-xs-2 col-xs-offset-1">
<div class="col-sm-3 text-right">
<h4 class="text-muted">RSS Text</h4>
</div>
<div class="col-sm-9">
Expand Down Expand Up @@ -62,52 +62,53 @@ <h4 class="text-muted">RSS Text</h4>
</div>
</div>
<div ng-if="urlLink.type == '.mrss'" class="row">
<div class="col-xs-2 col-xs-offset-1">
<div class="col-sm-3 text-right">
<h4 class="text-muted">Item duration</h4>
</div>
<div class="col-sm-3">
<input type="number" name="duration" placeholder="{{&quot;Duration of each feed item&quot;}}" ng-model="urlLink.duration" class="form-control"/>
</div>
</div>
<div ng-if="urlLink.type == '.txt'" class="row">
<div class="col-sm-2 text-right">
<div class="col-sm-3 text-right">
<label class="control-label">Optional CSS</label>
</div>
<div class="col-sm-6">
<input type="text" name="style" placeholder="e.g. color:#eee; font-style:italic;" ng-model="urlLink.style" class="form-control"/>
</div>
</div>
<div ng-if="urlLink.type == '.txt'" class="row">
<div class="col-sm-2 text-right">
<div class="col-sm-3 text-right">
<label class="control-label">Message</label>
</div>
<div class="col-sm-6">
<textarea rows="4" cols="50" name="message" ng-model="urlLink.message" required="" class="form-control"></textarea>
</div>
</div>
</div><br/>
<div ng-if="urlLink.type == '.weblink'" class="row">
<div class="col-sm-2 text-right">
<label class="control-label">Zoom level</label>
<div class="col-sm-3 text-right">
<label class="control-label text-muted">Zoom level</label>
</div>
<div class="col-sm-2">
<div class="col-sm-6">
<input type="number" step="0.01" name="style" placeholder="e.g. 0.75(75%), 1.25(125%) or leave blank for no-zoom" ng-model="urlLink.zoom" class="form-control"/>
</div>
</div>
</div><br/>
<div ng-if="urlLink.type == '.weblink'" class="row">
<div class="col-sm-2 text-right">
<div class="col-sm-3 text-right">
<label class="control-label">Send Key strokes (optional)</label>
</div>
<div class="col-sm-4">
<input type="text" name="keystrokes" placeholder="e.g. tab,shift+h,e,l,l,o,shift+!,enter" ng-model="urlLink.keystrokes" class="form-control"/>
<div class="small">for key definitions refer http://robotjs.io/docs/syntax#key</div>
<div class="col-sm-5">
<input type="text" name="keystrokes" placeholder="e.g. tab,shift+h,e,l,l,o,shift+!,enter" ng-model="urlLink.keystrokes" class="form-control"/><small>for key definitions refer http://robotjs.io/docs/syntax#key</small>
</div>
<div class="col-sm-2">
<label class="control-label text-muted">after a delay of</label>
</div>
<label class="col-sm-2 col-sm-offset-2 control-label text-muted">After a delay of</label>
<div class="col-sm-2">
<input type="text" name="keydelay" placeholder="10 secs" ng-model="urlLink.keydelay" class="form-control"/>
</div>
</div>
</div><br/>
<div class="row">
<div class="col-sm-3 col-sm-offset-2">
<div class="col-sm-3 col-sm-offset-3">
<button ng-disabled="!(linkform.$dirty &amp;&amp; linkform.$valid)" ng-click="saveNewChanges()" class="btn btn-success">Update</button>
</div>
</div>
Expand Down
36 changes: 20 additions & 16 deletions public/app/partials/asset-details.jade
Expand Up @@ -11,19 +11,19 @@
iframe(ng-if='filedetails.type=="pdf"',height="300px",width="100%",ng-src='{{filedetails.path}}')
form(role="form",name="linkform",ng-show='fileType=="link"')
.row(ng-if="urlLink.type != '.txt'")
.col-xs-2.col-xs-offset-1
h4.text-muted Address
.col-sm-3.text-right
label.control-label.text-muted Address
.col-xs-8
h4 {{urlLink.link}}
a.btn.btn-link(ng-disabled='!urlLink.link',href="{{urlLink.link}}",target="_blank")
i.fa.fa-external-link
.row
.col-xs-2.col-xs-offset-1
h4.text-muted Type
.col-sm-3.text-right
label.control-label.text-muted Type
.col-xs-7
h4 {{urlLink.type == ".tv"?"You Tube":urlLink.type.slice(1)}}
.row(ng-if="urlLink.type == '.mrss'")
.col-xs-2.col-xs-offset-1
.col-sm-3.text-right
h4.text-muted RSS Text
.col-sm-9
.radio-inline
Expand All @@ -47,43 +47,47 @@
input(type='radio',name='radio_description_noimg', ng-model='urlLink.hideTitle', value="onlydescription")
small descr
.row(ng-if="urlLink.type == '.mrss'")
.col-xs-2.col-xs-offset-1
.col-sm-3.text-right
h4.text-muted Item duration
.col-sm-3
input.form-control(type='number',name='duration' ,placeholder='{{"Duration of each feed item"}}',
ng-model='urlLink.duration')

.row(ng-if="urlLink.type == '.txt'")
.col-sm-2.text-right
.col-sm-3.text-right
label.control-label Optional CSS
.col-sm-6
input.form-control(type='text',name='style' ,placeholder='e.g. color:#eee; font-style:italic;',
ng-model='urlLink.style')

.row(ng-if="urlLink.type == '.txt'")
.col-sm-2.text-right
.col-sm-3.text-right
label.control-label Message
.col-sm-6
textarea.form-control( rows="4",cols="50",name='message', ng-model='urlLink.message', required='')

br
.row(ng-if="urlLink.type == '.weblink'")
.col-sm-2.text-right
label.control-label Zoom level
.col-sm-2
.col-sm-3.text-right
label.control-label.text-muted Zoom level
.col-sm-6
input.form-control(type='number',step="0.01" ,name='style' ,placeholder='e.g. 0.75(75%), 1.25(125%) or leave blank for no-zoom',
ng-model='urlLink.zoom')

br
.row(ng-if="urlLink.type == '.weblink'")
.col-sm-2.text-right
.col-sm-3.text-right
label.control-label Send Key strokes (optional)
.col-sm-4
.col-sm-5
input.form-control(type="text",name="keystrokes",placeholder="e.g. tab,shift+h,e,l,l,o,shift+!,enter",ng-model="urlLink.keystrokes")
.small for key definitions refer http://robotjs.io/docs/syntax#key
label.col-sm-2.col-sm-offset-2.control-label.text-muted After a delay of
small for key definitions refer http://robotjs.io/docs/syntax#key
.col-sm-2
label.control-label.text-muted after a delay of
.col-sm-2
input.form-control(type="text", name="keydelay", placeholder="10 secs", ng-model="urlLink.keydelay")
br
.row
.col-sm-3.col-sm-offset-2
.col-sm-3.col-sm-offset-3
button.btn.btn-success(ng-disabled='!(linkform.$dirty && linkform.$valid)',ng-click="saveNewChanges()") Update


Expand Down
5 changes: 0 additions & 5 deletions public/app/partials/group-details.html
Expand Up @@ -48,11 +48,6 @@ <h5 class="col-sm-8">You can select additional Playlists for Scheduling/Advt pur
<input type="checkbox" title="Content from all the eligible playlists will be combined" ng-model="group.selectedGroup.playAllEligiblePlaylists"/><small>Combine content of all scheduled playlists</small>
</label>
</div>
<div class="checkbox col-sm-12">
<label ng-repeat="item in combineOptions">
<input type="checkbox" ng-show="group.selectedGroup.playAllEligiblePlaylists" ng-click="updateSelection($index, combineOptions,item.title)" title="Content from all the eligible playlists will be combined" ng-model="item.checked"/><small ng-show="group.selectedGroup.playAllEligiblePlaylists">play content {{item.title}} from all playlist</small>
</label>
</div>
</div>
</div>
<div ng-repeat="pl in group.selectedGroup.playlists" ng-if="$index &gt; 0" as-sortable-item="as-sortable-item" class="row form-group">
Expand Down
5 changes: 0 additions & 5 deletions public/app/partials/group-details.jade
Expand Up @@ -34,11 +34,6 @@
input(type="checkbox",title="Default playlist assets will be played along with selected playlist",
ng-model="group.selectedGroup.combineDefaultPlaylist")
small Play together with scheduled playlist (v1.7.0+)
.checkbox.col-sm-12
label(ng-repeat="item in combineOptions")
input(type="checkbox",ng-show="group.selectedGroup.playAllEligiblePlaylists",ng-click="updateSelection($index, combineOptions,item.title)",title="Content from all the eligible playlists will be combined",
ng-model="item.checked")
small(ng-show="group.selectedGroup.playAllEligiblePlaylists") play content {{item.title}} from all playlist
.row.form-group(ng-show="group.selectedGroup.playlists[0].name.length")
h5.col-sm-8 You can select additional Playlists for Scheduling/Advt purposes
//a.btn.btn-link(ng-click="collapsed = !collapsed;")
Expand Down
2 changes: 1 addition & 1 deletion public/app/partials/settings.html
Expand Up @@ -90,7 +90,7 @@ <h4>Installation Settings</h4>
<div class="form-group">
<label class="col-xs-4 control-label">Player reporting interval in minutes</label>
<div class="col-xs-2">
<input type="number" name="reportinterval" ng-model="settings.reportIntervalMinutes" placeholder="{{'default 5 minutes'}}" class="form-control"/>
<input type="number" name="reportinterval" ng-model="settings.reportIntervalMinutes" placeholder="default 5 minutes" class="form-control"/>
</div>
<div class="col-xs-2">
<button type="submit" ng-click="saveSettings()" class="btn btn-success">Save</button>
Expand Down
4 changes: 3 additions & 1 deletion public/app/partials/settings.jade
Expand Up @@ -76,7 +76,7 @@
.form-group
label.col-xs-4.control-label Player reporting interval in minutes
.col-xs-2
input.form-control(type="number", name="reportinterval", ng-model="settings.reportIntervalMinutes", placeholder="{{'default 5 minutes'}}")
input.form-control(type="number", name="reportinterval", ng-model="settings.reportIntervalMinutes", placeholder="default 5 minutes")
.col-xs-2
button.btn.btn-success(type="submit", ng-click="saveSettings()") Save
.form-group
Expand Down Expand Up @@ -119,3 +119,5 @@
.col-xs-4.col-xs-offset-4
p.text-danger {{loadMsg}}



71 changes: 40 additions & 31 deletions public/app/templates/display-set.html
Expand Up @@ -2,7 +2,7 @@
<div class="modal-header">
<h4>Select Display Orientation and Resolution</h4>
</div>
<div class="modal-body overflow-auto" >
<div class="modal-body overflow-auto">
<form role="form" name="formdisplay">
<div class="form-group row">
<div class="col-sm-4 text-right">
Expand Down Expand Up @@ -259,58 +259,67 @@ <h4>Select Display Orientation and Resolution</h4>
</div>
<hr/>
<div class="form-group row">
<div class="col-sm-4 text-right">
<div class="radio">
<small class="text-muted">Optional daily reboot</small>
</div>
<div class="col-sm-4 text-right">
<div class="radio">
<label class="text-muted"><small>Optional daily reboot</small></label>
</div>
</div>
<div class="col-sm-2">
<div class="checkbox">
<label>
<input type="checkbox" name="reboot_checkbox" ng-model="group.selectedGroup.reboot.enable"/><small >Enable</small>
</label>
<input type="checkbox" name="reboot_checkbox" ng-model="group.selectedGroup.reboot.enable"/><small>enable</small>
</label>
</div>
</div>
<div class="col-sm-2 text-right">
<div class="radio"><small class="text-muted" ng-show="group.selectedGroup.reboot.enable">At</small></div>
<div class="radio">
<label class="text-muted"><small ng-show="group.selectedGroup.reboot.enable" class="text-muted">at</small></label>
</div>
</div>
<div class="col-sm-4">
<div class="radio">
<input ng-show="group.selectedGroup.reboot.enable" type="time" ng-model="group.selectedGroup.reboot.time" class="input-sm form-control "/>
<div class="checkbox">
<label>
<input ng-show="group.selectedGroup.reboot.enable" type="time" ng-model="group.selectedGroup.reboot.time" class="input-sm form-control"/>
</label>
</div>
</div>
</div>
</div>
<hr/>
<div class="form-group row">
<div class="col-sm-4 text-right"><small>Kiosk Menu</small></div>
<div class="col-sm-8">
<div class="form-check form-check-inline">
<label class="form-check-label">
<input type="checkbox" name="kioskui_checkbox" ng-model="group.selectedGroup.kioskUi.enable" class="form-check-input"/><small class="text-muted pl-5">Enable</small>
<div class="col-sm-4 text-right">
<div class="radio">
<label class="text-muted"><small>Kiosk Menu</small></label>
</div>
</div>
<div class="col-sm-2">
<div class="checkbox">
<label>
<input type="checkbox" name="kioskui_checkbox" ng-model="group.selectedGroup.kioskUi.enable"/><small>Enable</small>
</label>
</div>
<div ng-show="group.selectedGroup.kioskUi.enable">
<div class="input-group">
<div class="input-group-addon"><small>URL</small></div>
<input type="text" placeholder="Leave blank for default" ng-model="group.selectedGroup.kioskUi.url" class="input-sm form-control"/>
</div>
<br>
</div>
<div ng-show="group.selectedGroup.kioskUi.enable" class="col-sm-6">
<div class="input-group input-group-sm"><small class="input-group-addon">URL</small>
<input type="text" placeholder="Leave blank for default" ng-model="group.selectedGroup.kioskUi.url" class="input-sm form-control"/>
</div>
</div>
<div ng-show="group.selectedGroup.kioskUi.enable" class="col-sm-5 col-sm-offset-4">
<div class="input-group">
<div class="input-group-addon"><small>Inactivitiy timeout</small></div>
<div ng-show="group.selectedGroup.kioskUi.enable" class="col-sm-5 col-sm-offset-6">
<div class="input-group input-group-sm"><small class="input-group-addon">Inactivitiy timeout</small>
<input type="number" placeholder="30 secs" ng-model="group.selectedGroup.kioskUi.timeout" class="input-sm form-control"/>
</div>
</div>
</div>
</div>
</div>
<hr/>
<div class="form-group row">
<div class="col-sm-4 text-right"><small>Video Play</small></div>
<div class="col-sm-4 text-right">
<div class="radio">
<label class="text-muted"><small>Video Play</small></label>
</div>
</div>
<div class="col-sm-8">
<div class="form-check form-check-inline">
<label class="form-check-label">
<input type="checkbox" name="ffmpeg" ng-model="group.selectedGroup.enableMpv" class="form-check-input"/><small class="text-muted pl-5">Avoid gap between videos (**BETA**, use only for short videos)</small>
<div class="checkbox">
<label>
<input type="checkbox" name="ffmpeg" ng-model="group.selectedGroup.enableMpv"/><small>Avoid gap between videos (**BETA**, use only for short videos)</small>
</label>
</div>
</div>
Expand Down

0 comments on commit 329a8a8

Please sign in to comment.