NAME
Quiq::JQuery::ContextMenu::Ajax - Erzeuge Code für ein jQuery Kontext-Menü
BASE CLASS
DESCRIPTION
Die Klasse erzeugt Code für ein Kontext-Menü, welches durch das jQuery-Plugin jQuery contextmenu realisiert wird. Der Inhalt des Menüs wird durch einen AJAX-Aufruf beschafft.
Der Perl-Code
my
$js
= Quiq::JQuery::ContextMenu::Ajax->html(
className
=>
'contextMenu'
,
selector
=>
'.popup'
,
trigger
=>
'left'
,
);
liefert
$.contextMenu({
className:
'contextMenu'
,
selector:
'.popup'
,
trigger:
'left'
,
build: function(ej,ev) {
var options;
$.ajax({
type:
'GET'
,
url: ej.attr(
'href'
),
async: false,
beforeSend: function () {
$(
'body'
).css(
'cursor'
,
'wait'
);
},
complete: function () {
$(
'body'
).css(
'cursor'
,
'default'
);
},
success: function (data,textStatus,jqXHR) {
// Wir bekommen
die
Items in einem Array geliefert,
// damit
die
Reihenfolge wohldefiniert ist. Hier
// wandeln wir das Array in ein Objekt, wie
// das ContexMenu-Plugin es erwartet.
var items = {};
for
(var i = 0; i < data.
length
; i += 2) {
items[data[i]] = data[i+1];
}
options = {
items: items,
callback: function(key,options) {
var item = items[key];
if
(item.target)
window.
open
(item.url,item.target);
else
document.location = item.url;
},
};
},
error: function () {
alert(
'ERROR: AJAX Request failed'
);
},
});
return
options;
},
});
Das JavaScript-Array data
, das vom Server geliefert wird, hat den Aufbau
[
<key>: {
name:
'<name>'
,
url:
'<url>'
,
target:
'<target>'
,
}
...
]
Der serverseitige Perl-Code, der eine Menü-Definition liefert (Beispiel):
return
[
sql
=> {
name
=>
'SQL'
,
url
=>
'sqlFromLog?'
.Quiq::Url->queryEncode(
system
=>
$system
,
path
=>
$logfile
,
),
},
...
];
SEE ALSO
METHODS
Klassenmethoden
new() - Konstruktor
Synopsis
$obj
=
$class
->new(
@keyVal
);
Attributes
- className => $name
-
Name der CSS-Klasse des Menüs. Kann explizit angegeben werden, wenn das Menü customized werden soll. Beispiel ($name ist 'contextMenu'):
.contextMenu {
width: 85px !important;
min-width: 50px !important;
}
- selector => $selector
-
Der jQuery-Selektor, der die Elemente identifiziert, auf die das Kontext-Menü gelegt wird. Siehe Plugin-Doku: selector.
- trigger => $event
-
Das Ereignis, durch das das Kontext-Menü angesprochen wird. Siehe Plugin-Doku: tigger.
Description
Instantiiere ein Objekt der Klasse und liefere eine Referenz auf dieses Objekt zurück.
Objektmethoden
js() - Generiere JavaScript-Code
Synopsis
$js
=
$obj
->
%METHOD
;
$js
=
$obj
->
%METHOD
(
@keyVal
);
Description
Generiere den JavaScript-Code eines Kontext-Menüs und liefere diesen zurück.
VERSION
1.222
AUTHOR
Frank Seitz, http://fseitz.de/
COPYRIGHT
Copyright (C) 2024 Frank Seitz
LICENSE
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.