Skip to content

Commit

Permalink
Merge branch 'master' of github.com:ZoneMinder/zoneminder
Browse files Browse the repository at this point in the history
  • Loading branch information
Isaac Connor committed Sep 18, 2024
2 parents 331390e + 18b1d0a commit 2ed6ca0
Show file tree
Hide file tree
Showing 4 changed files with 61 additions and 18 deletions.
2 changes: 1 addition & 1 deletion .cirrus.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ task:
- image_family: freebsd-13-3

prepare_script:
- pkg install -yq git cmake pkgconf jpeg-turbo mysql80-client ffmpeg libvncserver libjwt catch p5-DBI p5-DBD-mysql p5-Date-Manip p5-Test-LWP-UserAgent p5-Sys-Mmap v4l_compat
- pkg install -yq git cmake pkgconf jpeg-turbo mysql80-client ffmpeg libvncserver libjwt catch2 p5-DBI p5-DBD-mysql p5-Date-Manip p5-Test-LWP-UserAgent p5-Sys-Mmap v4l_compat

configure_script:
- git submodule update --init --recursive
Expand Down
2 changes: 1 addition & 1 deletion web/includes/Monitor.php
Original file line number Diff line number Diff line change
Expand Up @@ -466,7 +466,7 @@ public function Monitor_Status() {
if (!property_exists($this, 'Monitor_Status')) {
$sql = 'SELECT * FROM `Monitor_Status` WHERE `MonitorId`=?';
$row = $this->{'Monitor_Status'} = dbFetchOne($sql, NULL, array($this->{'Id'}));
if (!$row) Warning('Unable to load Monitor status record for Id='.$this->{'Id'}.' using '.$sql);
if (!$row) Debug('Unable to load Monitor status record for Id='.$this->{'Id'}.' using '.$sql);
}
return $this->{'Monitor_Status'};
}
Expand Down
47 changes: 40 additions & 7 deletions web/skins/classic/js/skin.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ var icons = {

var panZoomEnabled = true; //Add it to settings in the future
var expiredTap; //Time between touch screen clicks. Used to analyze double clicks
var shifted = ctrled = alted = false;

function checkSize() {
if ( 0 ) {
Expand Down Expand Up @@ -1202,20 +1203,45 @@ function loadFontFaceObserver() {
});
}

function thisClickOnStreamObject(clickObj) {
if (clickObj.id) {
if (clickObj.id.indexOf('evtStream') != -1 || clickObj.id.indexOf('liveStream') != -1) {
return true;
} else if (clickObj.id.indexOf('monitorStatus') != -1) {
return document.getElementById('monitor'+stringToNumber(clickObj.id));
//return clickObj;
} else if (clickObj.id.indexOf('videoobj') != -1) {
return document.getElementById('eventVideo');
} else return false;
} else return false;
}

var doubleTouchExecute = function(event, touchEvent) {
// if (touchEvent.target.id &&
// (touchEvent.target.id.indexOf('evtStream') != -1 || touchEvent.target.id.indexOf('liveStream') != -1 || touchEvent.target.id.indexOf('monitorStatus') != -1)) {
if (thisClickOnStreamObject(touchEvent.target)) {
doubleClickOnStream(event, touchEvent);
} else if (thisClickOnTimeline(touchEvent.target)) {
doubleTouchOnTimeline(event, touchEvent);
}
};

var doubleClickOnStream = function(event, touchEvent) {
let target = null;
if (event.target) {// Click NOT on touch screen, use THIS
//Process only double clicks directly on the image, excluding clicks,
//for example, on zoom buttons and other elements located in the image area.
if (event.target.id &&
(event.target.id.indexOf('evtStream') != -1 || event.target.id.indexOf('liveStream') != -1)) {
const fullScreenObject = thisClickOnStreamObject(event.target);
if (fullScreenObject === true) {
target = this;
} else if (fullScreenObject !== false) {
target = fullScreenObject;
}
} else {// Click on touch screen, use EVENT
if (touchEvent.target.id &&
(touchEvent.target.id.indexOf('evtStream') != -1 || touchEvent.target.id.indexOf('liveStream') != -1)) {
target = event;
}
//if (touchEvent.target.id &&
// (touchEvent.target.id.indexOf('evtStream') != -1 || touchEvent.target.id.indexOf('liveStream') != -1)) {
target = event;
//}
}

if (target) {
Expand All @@ -1240,7 +1266,8 @@ var doubleTouch = function(e) {
} else if (e.timeStamp <= expiredTap) {
// remove the default of this event ( Zoom )
e.preventDefault();
doubleClickOnStream(this, e);
//doubleClickOnStream(this, e);
doubleTouchExecute(this, e);
// then reset the variable for other "double Touches" event
expiredTap = null;
} else {
Expand Down Expand Up @@ -1274,4 +1301,10 @@ function setButtonSizeOnStream() {
});
}

$j(document).on('keyup.global keydown.global', function(e) {
shifted = e.shiftKey ? e.shiftKey : e.shift;
ctrled = e.ctrlKey;
alted = e.altKey;
});

loadFontFaceObserver();
28 changes: 19 additions & 9 deletions web/skins/classic/views/js/event.js
Original file line number Diff line number Diff line change
Expand Up @@ -960,16 +960,20 @@ function drawProgressBar() {

// Shows current stream progress.
function updateProgressBar() {
if (!(eventData && streamStatus)) {
return;
} // end if ! eventData && streamStatus
let curWidth = (streamStatus.progress / parseFloat(eventData.Length)) * 100;
if (vid) {
if (!eventData) return;
var currentTime = vid.currentTime();
var progressDate = new Date(currentTime);
} else {
if (!(eventData && streamStatus)) return;
var currentTime = streamStatus.progress;
var progressDate = new Date(eventData.StartDateTime);
progressDate.setTime(progressDate.getTime() + (streamStatus.progress*1000));
}
const progressBox = $j("#progressBox");
let curWidth = (currentTime / parseFloat(eventData.Length)) * 100;
if (curWidth > 100) curWidth = 100;

const progressDate = new Date(eventData.StartDateTime);
progressDate.setTime(progressDate.getTime() + (streamStatus.progress*1000));

const progressBox = $j("#progressBox");
progressBox.css('width', curWidth + '%');
progressBox.attr('title', progressDate.toLocaleTimeString());
} // end function updateProgressBar()
Expand Down Expand Up @@ -1645,7 +1649,7 @@ function initPage() {

// Event listener for double click
//var elStream = document.querySelectorAll('[id ^= "liveStream"], [id ^= "evtStream"]');
var elStream = document.querySelectorAll('[id = "wrapperEventVideo"]');
var elStream = document.querySelectorAll("[id = 'wrapperEventVideo'], [id = 'videoobj']");
Array.prototype.forEach.call(elStream, (el) => {
el.addEventListener('touchstart', doubleTouch);
el.addEventListener('dblclick', doubleClickOnStream);
Expand Down Expand Up @@ -1709,6 +1713,12 @@ function initPage() {
updateScale = false;
}
}, 500);

if (vid) {
setInterval(() => {
updateProgressBar();
}, streamTimeout);
}
} // end initPage

function addOrCreateTag(tagValue) {
Expand Down

0 comments on commit 2ed6ca0

Please sign in to comment.