-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathtinybox2.js
More file actions
67 lines (62 loc) · 2.65 KB
/
Copy pathtinybox2.js
File metadata and controls
67 lines (62 loc) · 2.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
/**
* Created by Vitaly Egorov <egorov@samsonos.com> on 15.01.14.
*/
/**
* Superpuper black backgrounded popup
*/
var sjstinybox = {
/**
* Bind link(html <a>) element click and tinybox popup showing
* with response from server
*
* @param respContainerName response html container name to render as popup content or options object
*/
tinyboxAjax : function(respContainerName){
var responseHandler = undefined;
var renderedHandler = undefined;
var beforeHandler = undefined;
var oneClickClose = true;
// Set background style
var darkBackground = true;
// If options object is passed
if(typeof respContainerName === 'object')
{
oneClickClose = respContainerName.oneClickClose;
responseHandler = respContainerName.responseHandler;
beforeHandler = respContainerName.beforeHandler;
renderedHandler = respContainerName.renderedHandler;
if (respContainerName.darkBackground !== undefined) {
darkBackground = respContainerName.darkBackground;
}
// Get html container name
respContainerName = respContainerName.html;
}
// Iterate all DOM elements in current selection
return this.each(function(elm)
{
// If no response container name is specified use 'html'
respContainerName = respContainerName ? respContainerName : 'html';
// Bind asynchronous request on element click
elm.ajaxClick(function(response, clickable){
// If we recieved html container
if (response[respContainerName] != undefined) {
// Call responseHandler if passed and save return value, default - true
var responseStatus = responseHandler != undefined ? responseHandler(response, elm) : true;
// If response handler succeded - show tiny box
if (responseStatus == true) {
// Create SamsonJS object
var form = s(response[respContainerName]);
// Append response to body
s(document.body).append(form);
// Show tinybox - on close delete as it is async
var tb = tinybox(form, oneClickClose, darkBackground, true);
// If render finish handler is passed - call it
if(renderedHandler) renderedHandler(form, tb);
}
}
}, beforeHandler);
});
}
};
// Add plugin to SamsonJS
SamsonJS.extend(sjstinybox);