Skip to content

Commit 240a289

Browse files
authored
Merge pull request #7 from cassandre/dev
v2.1
2 parents 569e41b + ac80f40 commit 240a289

File tree

7 files changed

+59
-64
lines changed

7 files changed

+59
-64
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# eveeno WordPress Plugin
22

3-
[![Aktuelle Version](https://img.shields.io/badge/Version-2.0-brightgreen)](https://github.com/cassandre/eveeno-wp)
3+
[![Aktuelle Version](https://img.shields.io/badge/Version-2.1-brightgreen)](https://github.com/cassandre/eveeno-wp)
44
[![Release Version](https://img.shields.io/github/v/release/cassandre/eveeno-wp?label=Release+Version)](https://github.com/cassandre/eveeno-wp/releases/)
55
[![GitHub License](https://img.shields.io/github/license/cassandre/eveeno-wp)](https://github.com/cassandre/eveeno-wp)
66
[![GitHub issues](https://img.shields.io/github/issues/cassandre/eveeno-wp)](https://github.com/cassandre/eveeno-wp/issues)

assets/js/embed.js

+46-37
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
* uses the iframeResizer tool to adapt iframe size to the content
44
* and to communicate between iframe parent and child
55
*
6-
* last change: 2024-12-22
6+
* last change: 2025-01-15
77
*/
88

9-
var SCRIPT_VERSION = '1.1';
9+
var SCRIPT_VERSION = '1.2';
1010

1111

1212
/*! iFrame Resizer (iframeSizer.min.js ) - v4.3.9 - 2023-11-10
@@ -23,7 +23,7 @@ var SCRIPT_VERSION = '1.1';
2323
*/
2424

2525
window.onload = function() {
26-
//logconsole.log('script version ' + SCRIPT_VERSION);
26+
//console.log('script version ' + SCRIPT_VERSION);
2727
evInitializeWidgets();
2828
};
2929

@@ -43,35 +43,38 @@ function evCreateWidget(widget, i) {
4343
//console.log('evCreateWidget', i, widget);
4444

4545
// read parameters
46-
46+
4747
var data = widget.dataset;
4848

4949
var apikey = data.apikey;
5050
var event = data.event;
5151
var lang = data.lang;
52+
var notterm = data.notterm;
53+
var period = data.period;
5254
var scope = data.scope;
5355
var server = data.server;
5456
var style = data.style;
57+
var term = data.term;
5558
var type = data.type;
5659
var user = data.user;
5760
var version = data.version || 'none';
58-
var wp_plugin_version = data.wp_plugin_version || 'none';
59-
61+
var wppluginversion = data.wppluginversion || 'none';
62+
6063
// overwrite some by fallbacks for WP plugin version < 1.8
61-
64+
6265
if (data.show) {
6366
if (data.show == 'form') {
6467
type = 'booking';
6568
}
6669
else if (data.show == 'grid' || data.show == 'table' || data.show == 'list') {
67-
type = 'booking'; style = data.show;
70+
type = 'calendar'; style = data.show;
6871
}
6972
}
7073
if (data.eventid) event = data.eventid;
7174
if (data.userid) user = data.userid;
72-
75+
7376
// build widget url
74-
77+
7578
switch (server) {
7679
case 'dev': var serverurl = 'http://localhost'; break;
7780
case 'tst': var serverurl = 'https://tst.eveeno.com'; break;
@@ -80,10 +83,10 @@ function evCreateWidget(widget, i) {
8083
}
8184

8285
switch (type) {
83-
86+
8487
case 'booking':
85-
86-
if (!event) {
88+
89+
if (!event) {
8790
evWidgetShowError(widget, "Für das widget 'booking' ist der parameter 'event' Pflicht");
8891
return;
8992
}
@@ -92,13 +95,13 @@ function evCreateWidget(widget, i) {
9295

9396
case 'calendar':
9497

95-
if (!user) {
98+
if (!user) {
9699
evWidgetShowError(widget, "Für das widget 'calendar' ist der parameter 'user' Pflicht");
97100
return;
98101
}
99102
var url = new URL(serverurl + '/de/event-cal/' + user);
100103
break;
101-
104+
102105
default:
103106

104107
evWidgetShowError(widget, "Der Widget-Typ 'type' fehlt oder ist falsch");
@@ -110,21 +113,23 @@ function evCreateWidget(widget, i) {
110113
if (apikey) url.searchParams.append('apikey', apikey);
111114
if (event) url.searchParams.append('eventid', event);
112115
if (lang) url.searchParams.append('lang', lang);
116+
if (notterm) url.searchParams.append('notterm', notterm);
117+
if (period) url.searchParams.append('period', period);
113118
if (scope) url.searchParams.append('scope', scope);
114119
if (style) url.searchParams.append('style', style);
120+
if (term) url.searchParams.append('term', term);
115121
if (user) url.searchParams.append('userid', user);
116-
if (apikey) url.searchParams.append('apikey', apikey);
117122

118123
url.searchParams.append('format', 'embedded');
119124
url.searchParams.append('version', SCRIPT_VERSION);
120-
url.searchParams.append('wp_plugin_version', wp_plugin_version);
125+
url.searchParams.append('wppluginversion', wppluginversion);
121126

122127

123128
// create iframe
124-
125-
let widgetId = 'evFrame'+i;
129+
130+
let widgetId = 'evFrame'+i;
126131
const iframe = document.createElement('iframe');
127-
132+
128133
iframe.setAttribute('id', widgetId);
129134
iframe.setAttribute('src', url.href);
130135
iframe.setAttribute('width', '100%');
@@ -135,46 +140,50 @@ function evCreateWidget(widget, i) {
135140
widget.replaceWith(iframe);
136141

137142
// create resizer for the iframe
138-
143+
139144
iFrameResize({
140-
145+
141146
log: false,
142147
checkOrigin: false,
143148
heightCalculationMethod: 'taggedElement',
144149

145150
onMessage: function(data){
146151

147152
//console.log('Message received', data);
148-
153+
149154
// receive commands from the iframed page
150-
155+
151156
if (!data.message.cmd) return;
152157

153158
switch(data.message.cmd) {
154-
155-
case 'forceReload':
159+
160+
case 'forceReload':
161+
156162
location.reload(true);
157163
break;
158-
164+
159165
case 'scrollTo':
166+
160167
if (data.message.pos) {
168+
169+
// window.pageYOffset => whole page's scroll offset ( page is at 500px scrolled down )
170+
// document.getElementById(widgetId).getBoundingClientRect().top => current element's top relative to viewport
171+
// ( form's top is hidden as currently you are watching bottom part of form : top is at -200px relative to viewport )
172+
// above 1 + 2 => 500 + -200 => 300 => top position of iframe in given page
173+
// ( top of iframe is at 300px relative to whole page )
174+
175+
// add to this : given field's pos from data.message.pos and it'll scroll to `iframe + given field`
176+
161177
window.scrollTo({
162-
top: document.getElementById(widgetId).offsetTop + data.message.pos - 10,
178+
top: ( window.pageYOffset + document.getElementById(widgetId).getBoundingClientRect().top ) + data.message.pos - 10,
163179
left: 0,
164180
behavior: "smooth",
165181
});
166182
}
167-
/*
168-
if (data.message.msg) {
169-
setTimeout(function() {
170-
alert(data.message.msg);
171-
}, 10); // TBD: replace setTimeout with a better solution
172-
}
173-
*/
174183
break;
175184
}
176185
},
177-
186+
178187
},'#'+widgetId);
179188
}
180189

@@ -183,5 +192,5 @@ function evWidgetShowError(widget, msg) {
183192
html += '<br><br>';
184193
html += msg;
185194
widget.innerHTML = html;
186-
widget.setAttribute('style', 'background-color:#FAEAE9; color: #D9534F; text-align: center; padding: 20px;');
195+
widget.setAttribute('style', 'background-color:#FAEAE9; color: #D9534F; text-align: center; padding: 20px;');
187196
}

0 commit comments

Comments
 (0)