- fixed broken eventHandlers for new added Systems, closed #622
This commit is contained in:
@@ -748,7 +748,7 @@ define([
|
||||
}
|
||||
}.bind(connection);
|
||||
|
||||
connectionCanvas.singleDoubleClick(single, () => {});
|
||||
Util.singleDoubleClick(connectionCanvas, single, () => {});
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -1505,7 +1505,7 @@ define([
|
||||
* @param systemData
|
||||
* @param connectedSystem
|
||||
*/
|
||||
let drawSystem = function(map, systemData, connectedSystem){
|
||||
let drawSystem = (map, systemData, connectedSystem) => {
|
||||
|
||||
// check if systemData is valid
|
||||
if(isValidSystem(systemData)){
|
||||
@@ -1551,7 +1551,7 @@ define([
|
||||
* @param requestData
|
||||
* @param context
|
||||
*/
|
||||
let saveSystem = function(requestData, context){
|
||||
let saveSystem = (requestData, context) => {
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: Init.path.saveSystem,
|
||||
@@ -2190,7 +2190,7 @@ define([
|
||||
* @param map
|
||||
* @param system
|
||||
*/
|
||||
let setSystemObserver = function(map, system){
|
||||
let setSystemObserver = (map, system) => {
|
||||
system = $(system);
|
||||
|
||||
// get map container
|
||||
@@ -2481,7 +2481,6 @@ define([
|
||||
};
|
||||
|
||||
let single = function(e){
|
||||
|
||||
// check if click was performed on "popover" (x-editable)
|
||||
let popoverClick = false;
|
||||
if( $(e.target).parents('.popover').length ){
|
||||
@@ -2510,7 +2509,7 @@ define([
|
||||
|
||||
};
|
||||
|
||||
system.singleDoubleClick(single, double);
|
||||
Util.singleDoubleClick(system, single, double);
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -744,38 +744,6 @@ define([
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* wrapper function for onClick() || onDblClick() events in order to distinguish between this two types of events
|
||||
* @param singleClickCallback
|
||||
* @param doubleClickCallback
|
||||
* @param timeout
|
||||
* @returns {any|JQuery|*}
|
||||
*/
|
||||
$.fn.singleDoubleClick = function(singleClickCallback, doubleClickCallback, timeout) {
|
||||
return this.each(function(){
|
||||
let clicks = 0, self = this;
|
||||
|
||||
// prevent default behaviour (e.g. open <a>-tag link)
|
||||
$(this).off('click').on('click', function(e){
|
||||
e.preventDefault();
|
||||
});
|
||||
|
||||
$(this).off('mouseup').on('mouseup', function(e){
|
||||
clicks++;
|
||||
if (clicks === 1) {
|
||||
setTimeout(function(){
|
||||
if(clicks === 1) {
|
||||
singleClickCallback.call(self, e);
|
||||
} else {
|
||||
doubleClickCallback.call(self, e);
|
||||
}
|
||||
clicks = 0;
|
||||
}, timeout || Init.timer.DBL_CLICK);
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* highlight jquery elements
|
||||
* add/remove css class for keyframe animation
|
||||
@@ -2378,6 +2346,68 @@ define([
|
||||
return dateString + ' ' + timeString;
|
||||
};
|
||||
|
||||
/**
|
||||
* check an element for attached event by name
|
||||
* -> e.g. eventName = 'click.myNamespace'
|
||||
* @param element
|
||||
* @param eventName
|
||||
* @returns {boolean}
|
||||
*/
|
||||
let hasEvent = (element, eventName) => {
|
||||
let exists = false;
|
||||
let parts = eventName.split('.');
|
||||
let name = parts[0];
|
||||
let namespace = parts.length === 2 ? parts[1] : false;
|
||||
let events = $._data( element[0], 'events')[name];
|
||||
if(events){
|
||||
if(namespace){
|
||||
// seach events by namespace
|
||||
for(let event of events){
|
||||
if(event.namespace === namespace){
|
||||
exists = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}else{
|
||||
// at least ONE event of the given name found
|
||||
exists = true;
|
||||
}
|
||||
}
|
||||
return exists;
|
||||
};
|
||||
|
||||
/**
|
||||
* wrapper function for onClick() || onDblClick() events in order to distinguish between this two types of events
|
||||
* @param element
|
||||
* @param singleClickCallback
|
||||
* @param doubleClickCallback
|
||||
* @param timeout
|
||||
*/
|
||||
let singleDoubleClick = (element, singleClickCallback, doubleClickCallback, timeout) => {
|
||||
let eventName = 'mouseup.singleDouble';
|
||||
if(!hasEvent(element, eventName)){
|
||||
let clicks = 0;
|
||||
// prevent default behaviour (e.g. open <a>-tag link)
|
||||
element.off('click').on('click', function(e){
|
||||
e.preventDefault();
|
||||
});
|
||||
|
||||
element.off(eventName).on(eventName, function(e){
|
||||
clicks++;
|
||||
if (clicks === 1) {
|
||||
setTimeout(element => {
|
||||
if(clicks === 1) {
|
||||
singleClickCallback.call(element, e);
|
||||
} else {
|
||||
doubleClickCallback.call(element, e);
|
||||
}
|
||||
clicks = 0;
|
||||
}, timeout || Init.timer.DBL_CLICK, this);
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* get deep json object value if exists
|
||||
* -> e.g. key = 'first.last.third' string
|
||||
@@ -2566,6 +2596,7 @@ define([
|
||||
getLocalStorage: getLocalStorage,
|
||||
clearSessionStorage: clearSessionStorage,
|
||||
getBrowserTabId: getBrowserTabId,
|
||||
singleDoubleClick: singleDoubleClick,
|
||||
getObjVal: getObjVal,
|
||||
redirect: redirect,
|
||||
logout: logout,
|
||||
|
||||
@@ -748,7 +748,7 @@ define([
|
||||
}
|
||||
}.bind(connection);
|
||||
|
||||
connectionCanvas.singleDoubleClick(single, () => {});
|
||||
Util.singleDoubleClick(connectionCanvas, single, () => {});
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -1505,7 +1505,7 @@ define([
|
||||
* @param systemData
|
||||
* @param connectedSystem
|
||||
*/
|
||||
let drawSystem = function(map, systemData, connectedSystem){
|
||||
let drawSystem = (map, systemData, connectedSystem) => {
|
||||
|
||||
// check if systemData is valid
|
||||
if(isValidSystem(systemData)){
|
||||
@@ -1551,7 +1551,7 @@ define([
|
||||
* @param requestData
|
||||
* @param context
|
||||
*/
|
||||
let saveSystem = function(requestData, context){
|
||||
let saveSystem = (requestData, context) => {
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: Init.path.saveSystem,
|
||||
@@ -2190,7 +2190,7 @@ define([
|
||||
* @param map
|
||||
* @param system
|
||||
*/
|
||||
let setSystemObserver = function(map, system){
|
||||
let setSystemObserver = (map, system) => {
|
||||
system = $(system);
|
||||
|
||||
// get map container
|
||||
@@ -2481,7 +2481,6 @@ define([
|
||||
};
|
||||
|
||||
let single = function(e){
|
||||
|
||||
// check if click was performed on "popover" (x-editable)
|
||||
let popoverClick = false;
|
||||
if( $(e.target).parents('.popover').length ){
|
||||
@@ -2510,7 +2509,7 @@ define([
|
||||
|
||||
};
|
||||
|
||||
system.singleDoubleClick(single, double);
|
||||
Util.singleDoubleClick(system, single, double);
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -744,38 +744,6 @@ define([
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* wrapper function for onClick() || onDblClick() events in order to distinguish between this two types of events
|
||||
* @param singleClickCallback
|
||||
* @param doubleClickCallback
|
||||
* @param timeout
|
||||
* @returns {any|JQuery|*}
|
||||
*/
|
||||
$.fn.singleDoubleClick = function(singleClickCallback, doubleClickCallback, timeout) {
|
||||
return this.each(function(){
|
||||
let clicks = 0, self = this;
|
||||
|
||||
// prevent default behaviour (e.g. open <a>-tag link)
|
||||
$(this).off('click').on('click', function(e){
|
||||
e.preventDefault();
|
||||
});
|
||||
|
||||
$(this).off('mouseup').on('mouseup', function(e){
|
||||
clicks++;
|
||||
if (clicks === 1) {
|
||||
setTimeout(function(){
|
||||
if(clicks === 1) {
|
||||
singleClickCallback.call(self, e);
|
||||
} else {
|
||||
doubleClickCallback.call(self, e);
|
||||
}
|
||||
clicks = 0;
|
||||
}, timeout || Init.timer.DBL_CLICK);
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* highlight jquery elements
|
||||
* add/remove css class for keyframe animation
|
||||
@@ -2378,6 +2346,68 @@ define([
|
||||
return dateString + ' ' + timeString;
|
||||
};
|
||||
|
||||
/**
|
||||
* check an element for attached event by name
|
||||
* -> e.g. eventName = 'click.myNamespace'
|
||||
* @param element
|
||||
* @param eventName
|
||||
* @returns {boolean}
|
||||
*/
|
||||
let hasEvent = (element, eventName) => {
|
||||
let exists = false;
|
||||
let parts = eventName.split('.');
|
||||
let name = parts[0];
|
||||
let namespace = parts.length === 2 ? parts[1] : false;
|
||||
let events = $._data( element[0], 'events')[name];
|
||||
if(events){
|
||||
if(namespace){
|
||||
// seach events by namespace
|
||||
for(let event of events){
|
||||
if(event.namespace === namespace){
|
||||
exists = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}else{
|
||||
// at least ONE event of the given name found
|
||||
exists = true;
|
||||
}
|
||||
}
|
||||
return exists;
|
||||
};
|
||||
|
||||
/**
|
||||
* wrapper function for onClick() || onDblClick() events in order to distinguish between this two types of events
|
||||
* @param element
|
||||
* @param singleClickCallback
|
||||
* @param doubleClickCallback
|
||||
* @param timeout
|
||||
*/
|
||||
let singleDoubleClick = (element, singleClickCallback, doubleClickCallback, timeout) => {
|
||||
let eventName = 'mouseup.singleDouble';
|
||||
if(!hasEvent(element, eventName)){
|
||||
let clicks = 0;
|
||||
// prevent default behaviour (e.g. open <a>-tag link)
|
||||
element.off('click').on('click', function(e){
|
||||
e.preventDefault();
|
||||
});
|
||||
|
||||
element.off(eventName).on(eventName, function(e){
|
||||
clicks++;
|
||||
if (clicks === 1) {
|
||||
setTimeout(element => {
|
||||
if(clicks === 1) {
|
||||
singleClickCallback.call(element, e);
|
||||
} else {
|
||||
doubleClickCallback.call(element, e);
|
||||
}
|
||||
clicks = 0;
|
||||
}, timeout || Init.timer.DBL_CLICK, this);
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* get deep json object value if exists
|
||||
* -> e.g. key = 'first.last.third' string
|
||||
@@ -2566,6 +2596,7 @@ define([
|
||||
getLocalStorage: getLocalStorage,
|
||||
clearSessionStorage: clearSessionStorage,
|
||||
getBrowserTabId: getBrowserTabId,
|
||||
singleDoubleClick: singleDoubleClick,
|
||||
getObjVal: getObjVal,
|
||||
redirect: redirect,
|
||||
logout: logout,
|
||||
|
||||
Reference in New Issue
Block a user