Version Description
(Apr 16, 2019) = * [Feature] The drag engine is now much faster * [Feature] Added stretch to the row handler * [Feature] You can now drag on the Add Widget utility * [Feature] Image filter properties have been added * [Task] Progress Bars and Counters will be loaded when the widget becomes visible and not on pageload * [Bug-Fix] If a property was clicked which showed new widget properties in the left panel, then the active tab used to lose focus. This is fixed. * [Bug-Fix] The unit which was saved was not being shown in the properties. This is fixed. * [Bug-Fix] For Tabs widget the tab name was not updated in the properties when changed. This is fixed. * [Bug-Fix] For padding and linked values in the widget properties was not shown. This is fixed.
Release Info
Developer | pagelayer |
Plugin | Page Builder: PageLayer – Drag and Drop website builder |
Version | 0.9.2 |
Comparing to | |
See all releases |
Code changes from version 0.9.1 to 0.9.2
- css/pagelayer-admin.css +72 -0
- css/pagelayer-editor-frontend.css +40 -5
- css/pagelayer-editor.css +14 -1
- images/drag-ghost.png +0 -0
- init.php +21 -7
- js/givejs.php +0 -1
- js/pagelayer-admin.js +18 -1
- js/pagelayer-editor.js +566 -308
- js/pagelayer-frontend.js +76 -43
- js/properties.js +95 -11
- js/widgets.js +4 -4
- languages/en.json +1 -0
- main/functions.php +66 -1
- main/live.php +4 -1
- main/settings.php +28 -1
- main/shortcodes.php +39 -11
- pagelayer.php +1 -1
- readme.txt +12 -1
@@ -22,4 +22,76 @@ padding:10px;
|
|
22 |
.pagelayer-acc-wrapper .pagelayer-acc-panel{
|
23 |
padding:0px 20px;
|
24 |
display:none;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
}
|
22 |
.pagelayer-acc-wrapper .pagelayer-acc-panel{
|
23 |
padding:0px 20px;
|
24 |
display:none;
|
25 |
+
}
|
26 |
+
|
27 |
+
.pagelayer_promo_button {
|
28 |
+
background-color: #4CAF50; /* Green */
|
29 |
+
border: none;
|
30 |
+
color: white;
|
31 |
+
padding: 6px 10px;
|
32 |
+
text-align: center;
|
33 |
+
text-decoration: none;
|
34 |
+
display: inline-block;
|
35 |
+
font-size: 13px;
|
36 |
+
margin: 4px 2px;
|
37 |
+
-webkit-transition-duration: 0.4s; /* Safari */
|
38 |
+
transition-duration: 0.4s;
|
39 |
+
cursor: pointer;
|
40 |
+
}
|
41 |
+
|
42 |
+
.pagelayer_promo_button:focus{
|
43 |
+
border: none;
|
44 |
+
color: white;
|
45 |
+
}
|
46 |
+
|
47 |
+
.pagelayer_promo_button1 {
|
48 |
+
color: white;
|
49 |
+
background-color: #4CAF50;
|
50 |
+
border:3px solid #4CAF50;
|
51 |
+
}
|
52 |
+
|
53 |
+
.pagelayer_promo_button1:hover {
|
54 |
+
box-shadow: 0 6px 8px 0 rgba(0,0,0,0.24), 0 9px 25px 0 rgba(0,0,0,0.19);
|
55 |
+
color: white;
|
56 |
+
border:3px solid #4CAF50;
|
57 |
+
}
|
58 |
+
|
59 |
+
.pagelayer_promo_button2 {
|
60 |
+
color: white;
|
61 |
+
background-color: #0085ba;
|
62 |
+
}
|
63 |
+
|
64 |
+
.pagelayer_promo_button2:hover {
|
65 |
+
box-shadow: 0 6px 8px 0 rgba(0,0,0,0.24), 0 9px 25px 0 rgba(0,0,0,0.19);
|
66 |
+
color: white;
|
67 |
+
}
|
68 |
+
|
69 |
+
.pagelayer_promo_button3 {
|
70 |
+
color: white;
|
71 |
+
background-color: #365899;
|
72 |
+
}
|
73 |
+
|
74 |
+
.pagelayer_promo_button3:hover {
|
75 |
+
box-shadow: 0 6px 8px 0 rgba(0,0,0,0.24), 0 9px 25px 0 rgba(0,0,0,0.19);
|
76 |
+
color: white;
|
77 |
+
}
|
78 |
+
|
79 |
+
.pagelayer_promo_button4 {
|
80 |
+
color: white;
|
81 |
+
background-color: rgb(66, 184, 221);
|
82 |
+
}
|
83 |
+
|
84 |
+
.pagelayer_promo_button4:hover {
|
85 |
+
box-shadow: 0 6px 8px 0 rgba(0,0,0,0.24), 0 9px 25px 0 rgba(0,0,0,0.19);
|
86 |
+
color: white;
|
87 |
+
}
|
88 |
+
|
89 |
+
.pagelayer_promo-close{
|
90 |
+
float:right;
|
91 |
+
text-decoration:none;
|
92 |
+
margin: 5px 10px 0px 0px;
|
93 |
+
}
|
94 |
+
|
95 |
+
.pagelayer_promo-close:hover{
|
96 |
+
color: red;
|
97 |
}
|
@@ -39,7 +39,7 @@ z-index: 10;
|
|
39 |
pointer-events:none;
|
40 |
}
|
41 |
|
42 |
-
.pagelayer-ele-hover{
|
43 |
outline:1px solid blue;
|
44 |
}
|
45 |
|
@@ -74,13 +74,13 @@ pointer-events:auto;
|
|
74 |
display:inline-block !important;
|
75 |
font-size:13px !important;
|
76 |
padding:4px !important;
|
77 |
-
background: #3e8ef7
|
78 |
-
color:#fff
|
79 |
}
|
80 |
|
81 |
.pagelayer-eoi:hover{
|
82 |
-
background: #268ab7
|
83 |
-
cursor: pointer
|
84 |
}
|
85 |
|
86 |
.pagelayer-row-option{
|
@@ -198,3 +198,38 @@ color: #3e8ef7;
|
|
198 |
.pagelayer-add-widget-area p{
|
199 |
margin: 0px !important;
|
200 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
pointer-events:none;
|
40 |
}
|
41 |
|
42 |
+
.pagelayer-ele-hover, .pagelayer-drag-ele-hover{/* Both classes are same. but its just that during drag, we use the later */
|
43 |
outline:1px solid blue;
|
44 |
}
|
45 |
|
74 |
display:inline-block !important;
|
75 |
font-size:13px !important;
|
76 |
padding:4px !important;
|
77 |
+
background: #3e8ef7;
|
78 |
+
color:#fff ;
|
79 |
}
|
80 |
|
81 |
.pagelayer-eoi:hover{
|
82 |
+
background: #268ab7;
|
83 |
+
cursor: pointer;
|
84 |
}
|
85 |
|
86 |
.pagelayer-row-option{
|
198 |
.pagelayer-add-widget-area p{
|
199 |
margin: 0px !important;
|
200 |
}
|
201 |
+
|
202 |
+
.pagelayer-add-widget-drag{
|
203 |
+
border-color: #111111;
|
204 |
+
background: #c4d2de;
|
205 |
+
}
|
206 |
+
|
207 |
+
/* Pagelayer Drag stuff */
|
208 |
+
|
209 |
+
.pagelayer-is-dragging{
|
210 |
+
opacity: 0.33;
|
211 |
+
transition:0.1s;
|
212 |
+
}
|
213 |
+
|
214 |
+
.pagelayer-drag-show{
|
215 |
+
position:absolute;
|
216 |
+
top:0px;
|
217 |
+
left:0px;
|
218 |
+
display:none;
|
219 |
+
background: blue;
|
220 |
+
z-index:1000;
|
221 |
+
}
|
222 |
+
|
223 |
+
.pagelayer-drag-prospect{
|
224 |
+
height:1px;
|
225 |
+
background: blue;
|
226 |
+
z-index: 1000;
|
227 |
+
}
|
228 |
+
|
229 |
+
.pagelayer-drag-prospect-col{
|
230 |
+
position: absolute;
|
231 |
+
top: 0px;
|
232 |
+
width: 1px;
|
233 |
+
height: 100% !important;
|
234 |
+
}
|
235 |
+
|
@@ -1065,7 +1065,8 @@ line-height: 40px;
|
|
1065 |
}
|
1066 |
|
1067 |
.pagelayer-elp-shadow-div,
|
1068 |
-
.pagelayer-elp-typo-div
|
|
|
1069 |
padding: 10px 10px 0px;
|
1070 |
box-shadow: 0px 0px 2px rgba(0,0,0,.2);
|
1071 |
position: relative;
|
@@ -1134,6 +1135,18 @@ right: 0;
|
|
1134 |
width: 50%;
|
1135 |
}
|
1136 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1137 |
.pagelayer-elp-typo .pagelayer-elp-label{
|
1138 |
font-weight: 600;
|
1139 |
font-size: 11px;
|
1065 |
}
|
1066 |
|
1067 |
.pagelayer-elp-shadow-div,
|
1068 |
+
.pagelayer-elp-typo-div,
|
1069 |
+
.pagelayer-elp-filter-div{
|
1070 |
padding: 10px 10px 0px;
|
1071 |
box-shadow: 0px 0px 2px rgba(0,0,0,.2);
|
1072 |
position: relative;
|
1135 |
width: 50%;
|
1136 |
}
|
1137 |
|
1138 |
+
.pagelayer-elp-filter-div .pagelayer-elp-label{
|
1139 |
+
width:40%;
|
1140 |
+
text-transform: capitalize;
|
1141 |
+
}
|
1142 |
+
|
1143 |
+
.pagelayer-elp-filter-div .pagelayer-elp-filter-val{
|
1144 |
+
float:right;
|
1145 |
+
width:10%;
|
1146 |
+
font-size:13px;
|
1147 |
+
text-align: right;
|
1148 |
+
}
|
1149 |
+
|
1150 |
.pagelayer-elp-typo .pagelayer-elp-label{
|
1151 |
font-weight: 600;
|
1152 |
font-size: 11px;
|
Binary file
|
@@ -5,7 +5,7 @@ if (!defined('ABSPATH')) exit;
|
|
5 |
|
6 |
define('PAGELAYER_BASE', plugin_basename(__FILE__));
|
7 |
define('PAGELAYER_FILE', __FILE__);
|
8 |
-
define('PAGELAYER_VERSION', '0.9.
|
9 |
define('PAGELAYER_DIR', WP_PLUGIN_DIR.'/'.basename(dirname(PAGELAYER_FILE)));
|
10 |
define('PAGELAYER_SLUG', 'pagelayer');
|
11 |
define('PAGELAYER_URL', plugins_url('', PAGELAYER_FILE));
|
@@ -97,6 +97,18 @@ function pagelayer_load_plugin(){
|
|
97 |
|
98 |
// Load the language
|
99 |
load_plugin_textdomain('pagelayer', false, PAGELAYER_SLUG.'/languages/');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
100 |
|
101 |
}
|
102 |
|
@@ -221,6 +233,9 @@ function pagelayer_enqueue_frontend($force = false){
|
|
221 |
|
222 |
// Load the global styles
|
223 |
add_action('wp_head', 'pagelayer_global_styles', 5);
|
|
|
|
|
|
|
224 |
|
225 |
}
|
226 |
|
@@ -254,12 +269,11 @@ function pagelayer_enqueue_fonts(){
|
|
254 |
function pagelayer_global_styles(){
|
255 |
|
256 |
$styles = '<style id="pagelayer-global-styles" type="text/css">';
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
$styles .= '.pagelayer-row-holder{ margin-left: auto; margin-right: auto;}';
|
263 |
$styles .= '</style>';
|
264 |
|
265 |
echo $styles;
|
5 |
|
6 |
define('PAGELAYER_BASE', plugin_basename(__FILE__));
|
7 |
define('PAGELAYER_FILE', __FILE__);
|
8 |
+
define('PAGELAYER_VERSION', '0.9.2');
|
9 |
define('PAGELAYER_DIR', WP_PLUGIN_DIR.'/'.basename(dirname(PAGELAYER_FILE)));
|
10 |
define('PAGELAYER_SLUG', 'pagelayer');
|
11 |
define('PAGELAYER_URL', plugins_url('', PAGELAYER_FILE));
|
97 |
|
98 |
// Load the language
|
99 |
load_plugin_textdomain('pagelayer', false, PAGELAYER_SLUG.'/languages/');
|
100 |
+
|
101 |
+
// Show the promo
|
102 |
+
pagelayer_maybe_promo([
|
103 |
+
'after' => 1,// In days
|
104 |
+
'interval' => 30,// In days
|
105 |
+
//'pro_url' => 'https://pagelayer.com/themes/wordpress/corporate/Bizworx_Pro',
|
106 |
+
'rating' => 'https://wordpress.org/plugins/pagelayer/#reviews',
|
107 |
+
'twitter' => 'https://twitter.com/pagelayer?status='.rawurlencode('I love #PageLayer Site Builder by @pagelayer team for my #WordPress site - '.home_url()),
|
108 |
+
'facebook' => 'https://www.facebook.com/pagelayer',
|
109 |
+
'website' => '//pagelayer.com',
|
110 |
+
'image' => PAGELAYER_URL.'/images/pagelayer-logo-256.png'
|
111 |
+
]);
|
112 |
|
113 |
}
|
114 |
|
233 |
|
234 |
// Load the global styles
|
235 |
add_action('wp_head', 'pagelayer_global_styles', 5);
|
236 |
+
|
237 |
+
// Load custom widgets
|
238 |
+
do_action('pagelayer_custom_frontend_enqueue');
|
239 |
|
240 |
}
|
241 |
|
269 |
function pagelayer_global_styles(){
|
270 |
|
271 |
$styles = '<style id="pagelayer-global-styles" type="text/css">';
|
272 |
+
|
273 |
+
$width = get_option('pagelayer_content_width', '1170');
|
274 |
+
|
275 |
+
$styles .= '.pagelayer-row-stretch-auto .pagelayer-row-holder{ max-width: '.$width.'px; margin-left: auto; margin-right: auto;}';
|
276 |
+
|
|
|
277 |
$styles .= '</style>';
|
278 |
|
279 |
echo $styles;
|
@@ -28,7 +28,6 @@ $files = array(
|
|
28 |
'widgets.js',
|
29 |
'premium.js',
|
30 |
'properties.js',
|
31 |
-
'drag.js',
|
32 |
'base64.js',
|
33 |
'slimscroll.js',
|
34 |
'vanilla-picker.min.js',
|
28 |
'widgets.js',
|
29 |
'premium.js',
|
30 |
'properties.js',
|
|
|
31 |
'base64.js',
|
32 |
'slimscroll.js',
|
33 |
'vanilla-picker.min.js',
|
@@ -16,7 +16,7 @@ jQuery(document).ready(function(){
|
|
16 |
});
|
17 |
|
18 |
// Make setting nav-tab-active optional.
|
19 |
-
jQuery('.nav-tab-wrapper').each(function(){
|
20 |
|
21 |
var jEle = jQuery(this);
|
22 |
var hash = location.hash.slice(1);
|
@@ -66,7 +66,24 @@ jQuery(document).ready(function(){
|
|
66 |
});
|
67 |
}
|
68 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
69 |
pl_admin_tabs();
|
70 |
pl_admin_accourdion();
|
|
|
71 |
|
72 |
});
|
16 |
});
|
17 |
|
18 |
// Make setting nav-tab-active optional.
|
19 |
+
jQuery('.nav-tab-wrapper.pagelayer-wrapper').each(function(){
|
20 |
|
21 |
var jEle = jQuery(this);
|
22 |
var hash = location.hash.slice(1);
|
66 |
});
|
67 |
}
|
68 |
|
69 |
+
// Close promo notice
|
70 |
+
var pagelayer_promo = function(){
|
71 |
+
jQuery("#pagelayer_promo .pagelayer_promo-close").click(function(){
|
72 |
+
|
73 |
+
var data;
|
74 |
+
|
75 |
+
// Hide it
|
76 |
+
jQuery("#pagelayer_promo").hide();
|
77 |
+
|
78 |
+
// Save this preference
|
79 |
+
jQuery.post("'.admin_url('?pagelayer_promo=0').'", data, function(response) {
|
80 |
+
//alert(response);
|
81 |
+
});
|
82 |
+
});
|
83 |
+
}
|
84 |
+
|
85 |
pl_admin_tabs();
|
86 |
pl_admin_accourdion();
|
87 |
+
pagelayer_promo();
|
88 |
|
89 |
});
|
@@ -10,7 +10,8 @@ pagelayer = {
|
|
10 |
return jQuery(select, window.parent.document);
|
11 |
},
|
12 |
p : this,
|
13 |
-
copy_selected: ''
|
|
|
14 |
}
|
15 |
|
16 |
// Lets start
|
@@ -20,46 +21,7 @@ jQuery(document).ready(function(){
|
|
20 |
pagelayer_bottombar();
|
21 |
|
22 |
// Make the Leftbar
|
23 |
-
pagelayer_leftbar();
|
24 |
-
|
25 |
-
// The left bar drag
|
26 |
-
pagelayer.$$('.pagelayer-leftbar-group').each(function(){
|
27 |
-
|
28 |
-
var group = jQuery(this);
|
29 |
-
Sortable.create(group[0], {
|
30 |
-
animation: 150,
|
31 |
-
sort: false,
|
32 |
-
group: {
|
33 |
-
name: 'pagelayer-shortcodes',
|
34 |
-
pull: function(evt) {
|
35 |
-
var tmp = jQuery(evt.el).parents('.pagelayer-leftbar');
|
36 |
-
//console.log(tmp);
|
37 |
-
if(tmp.length > 0){
|
38 |
-
return false;
|
39 |
-
}
|
40 |
-
return 'clone';
|
41 |
-
}
|
42 |
-
},
|
43 |
-
draggable: '.pagelayer-shortcode-drag',
|
44 |
-
onEnd : function(evt) {
|
45 |
-
|
46 |
-
// Only if the parent is not the leftbar itself
|
47 |
-
var tmp = pagelayer.$$(evt.to).parents('.pagelayer-leftbar');
|
48 |
-
//console.log(tmp);
|
49 |
-
if(tmp.length > 0){
|
50 |
-
return;
|
51 |
-
}
|
52 |
-
|
53 |
-
// The parent must be entry-content
|
54 |
-
//if(!(jQuery(evt.to).hasClass('pagelayer-add-widget-area'))){
|
55 |
-
// Trigger clone
|
56 |
-
pagelayer_onadd(evt);
|
57 |
-
//}
|
58 |
-
|
59 |
-
}
|
60 |
-
});
|
61 |
-
});
|
62 |
-
|
63 |
|
64 |
// Add widget section
|
65 |
pagelayer_add_widget();
|
@@ -70,8 +32,11 @@ jQuery(document).ready(function(){
|
|
70 |
// Setup the properties of the elements
|
71 |
pagelayer_element_setup();
|
72 |
|
|
|
|
|
|
|
73 |
// Setup the grid drag
|
74 |
-
|
75 |
|
76 |
// Set to desktop
|
77 |
pagelayer_set_screen_mode('desktop');
|
@@ -79,128 +44,463 @@ jQuery(document).ready(function(){
|
|
79 |
// Set up right click
|
80 |
pagelayer_left_click();
|
81 |
pagelayer_right_click();
|
82 |
-
|
83 |
});
|
84 |
|
85 |
// The jQuery Object of the ELPD
|
86 |
var pagelayer_elpd;
|
87 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
88 |
// Make rows and cols draggable
|
89 |
-
function
|
90 |
-
|
91 |
-
//
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
//
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
//pagelayer_onadd(evt);
|
110 |
-
},
|
111 |
-
});
|
112 |
|
113 |
-
//
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
128 |
}
|
129 |
-
},
|
130 |
-
handle: '.pagelayer-col-option',
|
131 |
-
draggable: '.pagelayer-wrap-col',
|
132 |
-
onAdd: function(evt){
|
133 |
|
134 |
-
//
|
135 |
-
|
136 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
137 |
}
|
138 |
|
139 |
-
|
140 |
-
|
141 |
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
jQuery('.pagelayer-col-holder').each(function(){
|
152 |
-
Sortable.create(jQuery(this)[0], {
|
153 |
-
animation: 150,
|
154 |
-
scroll: true,
|
155 |
-
scrollSensitivity: 100,
|
156 |
-
scrollSpeed: 20,
|
157 |
-
//swapThreshold: 0.5,
|
158 |
-
//invertSwap: true,
|
159 |
-
//invertedSwapThreshold: 0.3,
|
160 |
-
//ghostClass: 'pagelayer-drag-ghost',
|
161 |
-
group : {
|
162 |
-
name: 'pagelayer-eles',
|
163 |
-
put: function(to, from, dragEl, evt){
|
164 |
-
return pagelayer_onput(to, from, dragEl, evt);
|
165 |
}
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
|
|
|
|
|
|
174 |
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
//
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
189 |
}
|
190 |
-
},
|
191 |
-
draggable: 'null',
|
192 |
-
onAdd: function(evt){
|
193 |
-
var sc = jQuery(evt.item);
|
194 |
-
//var sc = pagelayer_tag(item);
|
195 |
-
var jEle = jQuery(evt.to);
|
196 |
|
197 |
-
|
198 |
-
|
199 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
200 |
|
201 |
};
|
202 |
|
203 |
// Handle empty col
|
|
|
204 |
function pagelayer_empty_col(selector){
|
205 |
|
206 |
// Loop through
|
@@ -219,7 +519,6 @@ function pagelayer_empty_col(selector){
|
|
219 |
jEle.append('<div class="pagelayer-add-ele pagelayer-ele-wrap"><i class="fa fa-plus"><br>Empty column please add something</div>');
|
220 |
var h = jEle.parent().parent().children('.pagelayer-ele-overlay').height();
|
221 |
jEle.children('.pagelayer-add-ele').height(h);
|
222 |
-
pagelayer_setup_grid_drag();
|
223 |
|
224 |
// Any add ele sign with non-empty columns here ?
|
225 |
}else if(jEle.children('.pagelayer-add-ele').length > 0){
|
@@ -231,6 +530,7 @@ function pagelayer_empty_col(selector){
|
|
231 |
};
|
232 |
|
233 |
// Reset the column widths
|
|
|
234 |
function pagelayer_renumber_col(selector){
|
235 |
|
236 |
var pEle = jQuery(selector);
|
@@ -262,96 +562,37 @@ function pagelayer_renumber_col(selector){
|
|
262 |
});
|
263 |
}
|
264 |
|
265 |
-
// When an item is being dragged and finally being put
|
266 |
-
// This is called throughout the drag when the drag engine thinks it has found a target
|
267 |
-
// If this returns false, then the drag is cancelled
|
268 |
-
function pagelayer_onput(to, from, dragEl, evt){
|
269 |
-
|
270 |
-
var sc = pagelayer_tag(jQuery(dragEl));
|
271 |
-
var parent_tag = pagelayer_tag(jQuery(to.el));
|
272 |
-
//console.log(sc+' '+parent_tag);
|
273 |
-
//if(!parent_tag) console.log(jQuery(to.el));
|
274 |
-
// Verify the element being dragged
|
275 |
-
// Item is a col
|
276 |
-
if(sc == 'pl_col'){
|
277 |
-
|
278 |
-
// You can be within a row only
|
279 |
-
if(parent_tag != 'pl_row'){
|
280 |
-
return false;
|
281 |
-
}
|
282 |
-
|
283 |
-
// Item is a row
|
284 |
-
}else if(sc == 'pl_row'){
|
285 |
-
|
286 |
-
// Row cannot be within row
|
287 |
-
//if(parent_tag == 'pl_row' || parent_tag == 'pl_col' || jQuery(to.el).hasClass('pagelayer-add-widget-area')){
|
288 |
-
if(parent_tag == 'pl_row' || parent_tag == 'pl_col'){
|
289 |
-
return false;
|
290 |
-
}
|
291 |
-
|
292 |
-
// The parent must be entry-content
|
293 |
-
if(jQuery(to.el).hasClass('entry-content')){
|
294 |
-
return true;
|
295 |
-
}
|
296 |
-
|
297 |
-
// Regular elements
|
298 |
-
}else{
|
299 |
-
|
300 |
-
// The parent must be pagelayer-add-widget-area
|
301 |
-
//if(jQuery(to.el).hasClass('pagelayer-add-widget-area')){
|
302 |
-
// return true;
|
303 |
-
//}
|
304 |
-
|
305 |
-
// Row cannot be within row
|
306 |
-
if(parent_tag != 'pl_col'){
|
307 |
-
return false;
|
308 |
-
}
|
309 |
-
|
310 |
-
}
|
311 |
-
|
312 |
-
return true;
|
313 |
-
};
|
314 |
-
|
315 |
// Handle addition of elements from the left
|
316 |
// NOTE : At this point the addition is FINALIZED
|
317 |
// The add element cannot be prevented !
|
318 |
-
function pagelayer_onadd(
|
319 |
|
320 |
-
|
321 |
-
var to = jQuery(evt.to);
|
322 |
|
323 |
-
|
|
|
324 |
var jEle = jQuery("[pagelayer-id="+id+"]");
|
325 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
326 |
|
327 |
};
|
328 |
|
329 |
// Add an element into the POST
|
330 |
-
function pagelayer_element_added(jEle
|
331 |
|
332 |
var sc = jEle.attr('pagelayer-tag');
|
333 |
-
var parent_tag = to.attr('pagelayer-tag');
|
334 |
-
var create_parent = '';
|
335 |
var id, par_id;
|
336 |
|
337 |
-
/*// Is the target a row ?
|
338 |
-
if(parent_tag == 'pl_row' && sc != 'pl_col'){
|
339 |
-
create_parent = 'pl_col';
|
340 |
-
}*/
|
341 |
-
|
342 |
// Generate the HTML
|
343 |
-
html = pagelayer_create_sc(sc
|
344 |
id = pagelayer_assign_id(html);
|
345 |
par_id = id;
|
346 |
|
347 |
-
/*// We need to create a parent
|
348 |
-
if(create_parent.length > 0){
|
349 |
-
var pEle = pagelayer_create_sc(create_parent, to);
|
350 |
-
par_id = pagelayer_assign_id(pEle);
|
351 |
-
pEle.append(html);
|
352 |
-
html = pEle;
|
353 |
-
}*/
|
354 |
-
|
355 |
// Insert the HTML
|
356 |
jEle[0].outerHTML = html[0].outerHTML;
|
357 |
|
@@ -377,20 +618,13 @@ function pagelayer_element_added(jEle, to){
|
|
377 |
|
378 |
}
|
379 |
|
380 |
-
// Setup grid drag again
|
381 |
-
pagelayer_setup_grid_drag();
|
382 |
-
|
383 |
-
if(sc == 'pl_col'){
|
384 |
-
pagelayer_renumber_col(to);
|
385 |
-
}
|
386 |
-
|
387 |
return id;
|
388 |
|
389 |
};
|
390 |
|
391 |
// Add an element
|
392 |
function pagelayer_element_add_child(pEle, sc){
|
393 |
-
var child = pagelayer_create_sc(sc
|
394 |
var cid = pagelayer_assign_id(child);
|
395 |
pagelayer_set_parent(child, pagelayer_assign_id(pEle));
|
396 |
|
@@ -410,11 +644,30 @@ function pagelayer_element_add_child(pEle, sc){
|
|
410 |
return cid;
|
411 |
};
|
412 |
|
413 |
-
// Return an element by
|
414 |
function pagelayer_ele_by_id(id){
|
415 |
return jQuery('[pagelayer-id='+id+']');
|
416 |
};
|
417 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
418 |
// Assign the jQuery object an ID
|
419 |
function pagelayer_assign_id(jEle){
|
420 |
|
@@ -549,8 +802,10 @@ function pagelayer_element_setup(selector, render){
|
|
549 |
|
550 |
}else if(tag == 'pl_row'){
|
551 |
wrap.addClass('pagelayer-wrap-row');
|
|
|
|
|
552 |
}
|
553 |
-
|
554 |
// Create the overlay
|
555 |
wrap.prepend('<div class="pagelayer-ele-overlay"></div>');
|
556 |
|
@@ -601,6 +856,9 @@ function pagelayer_element_setup(selector, render){
|
|
601 |
return;
|
602 |
}
|
603 |
|
|
|
|
|
|
|
604 |
wrap.hover(function(){
|
605 |
|
606 |
// Is there an element option shower ?
|
@@ -761,53 +1019,6 @@ function pagelayer_get_screen_mode(){
|
|
761 |
}
|
762 |
}
|
763 |
|
764 |
-
// Makes any element draggable
|
765 |
-
function pagelayer_drag(prop){
|
766 |
-
|
767 |
-
var $ = jQuery;
|
768 |
-
var jEle = $(prop.ele);
|
769 |
-
var elmnt = jEle[0];
|
770 |
-
|
771 |
-
var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
|
772 |
-
// If present, the header is where you move the DIV from:*/
|
773 |
-
if ('handle' in prop) {
|
774 |
-
$(prop.handle)[0].onmousedown = dragMouseDown;
|
775 |
-
// otherwise, move the DIV from anywhere inside the DIV:*/
|
776 |
-
} else {
|
777 |
-
elmnt.onmousedown = dragMouseDown;
|
778 |
-
}
|
779 |
-
|
780 |
-
function dragMouseDown(e) {
|
781 |
-
e = e || window.event;
|
782 |
-
e.preventDefault();
|
783 |
-
// get the mouse cursor position at startup:
|
784 |
-
pos3 = e.clientX;
|
785 |
-
pos4 = e.clientY;
|
786 |
-
document.onmouseup = closeDragElement;
|
787 |
-
// call a function whenever the cursor moves:
|
788 |
-
document.onmousemove = elementDrag;
|
789 |
-
}
|
790 |
-
|
791 |
-
function elementDrag(e) {
|
792 |
-
e = e || window.event;
|
793 |
-
e.preventDefault();
|
794 |
-
// calculate the new cursor position:
|
795 |
-
pos1 = pos3 - e.clientX;
|
796 |
-
pos2 = pos4 - e.clientY;
|
797 |
-
pos3 = e.clientX;
|
798 |
-
pos4 = e.clientY;
|
799 |
-
// set the element's new position:
|
800 |
-
elmnt.style.top = (elmnt.offsetTop - pos2) + "px";
|
801 |
-
elmnt.style.left = (elmnt.offsetLeft - pos1) + "px";
|
802 |
-
}
|
803 |
-
|
804 |
-
function closeDragElement() {
|
805 |
-
/* stop moving when mouse button is released:*/
|
806 |
-
document.onmouseup = null;
|
807 |
-
document.onmousemove = null;
|
808 |
-
}
|
809 |
-
};
|
810 |
-
|
811 |
// Handle key press events
|
812 |
jQuery(document).keydown(function(event){
|
813 |
//alert(String.fromCharCode(event.which));
|
@@ -833,7 +1044,7 @@ function pagelayer_delete_element(selector){
|
|
833 |
|
834 |
var par = wrap.parent();
|
835 |
|
836 |
-
wrap.remove();
|
837 |
|
838 |
pagelayer_empty_col(par);
|
839 |
|
@@ -856,7 +1067,7 @@ function pagelayer_can_copy_to(to){
|
|
856 |
|
857 |
var eTag = pagelayer_tag(jEle);
|
858 |
var tTag = pagelayer_tag(tEle);
|
859 |
-
console.log(eTag+' - '+tTag);
|
860 |
// Final to
|
861 |
var fTo;
|
862 |
|
@@ -926,9 +1137,6 @@ function pagelayer_copy_element(selector, insertAfter){
|
|
926 |
|
927 |
pagelayer_element_setup('[pagelayer-id='+id+'], [pagelayer-id='+id+'] .pagelayer-ele', true);
|
928 |
|
929 |
-
// Setup grid drag
|
930 |
-
pagelayer_setup_grid_drag();
|
931 |
-
|
932 |
//If column then renumber columns
|
933 |
if(tag == 'pl_col'){
|
934 |
var row = src.parent().closest('.pagelayer-row');
|
@@ -967,7 +1175,7 @@ function pagelayer_sc(sc){
|
|
967 |
|
968 |
// Create a HTML dom element of the Short code
|
969 |
// Return the jEle
|
970 |
-
function pagelayer_create_sc(sc
|
971 |
|
972 |
var html;
|
973 |
var _sc = pagelayer_sc(sc);
|
@@ -975,7 +1183,7 @@ function pagelayer_create_sc(sc, pEle){
|
|
975 |
|
976 |
// Generate the HTML
|
977 |
if(typeof func == 'function'){
|
978 |
-
html = window['pagelayer_sc_'+sc](
|
979 |
}else{
|
980 |
html = '<div '+pagelayer_sc_atts('pagelayer-'+_sc)+'></div>';
|
981 |
}
|
@@ -1904,7 +2112,7 @@ function pagelayer_leftbar(){
|
|
1904 |
continue;
|
1905 |
}
|
1906 |
|
1907 |
-
html += '<div class="pagelayer-shortcode-drag" pagelayer-tag="'+sc+'">'+
|
1908 |
'<div class="pagelayer-sc">'+
|
1909 |
'<center class="pagelayer-shortcode-inner">'+
|
1910 |
'<div class="pagelayer-shortcode pagelayer-'+sc+'"></div>'+
|
@@ -2159,31 +2367,81 @@ function pagelayer_add_widget(){
|
|
2159 |
|
2160 |
jQuery('.entry-content').append(html);
|
2161 |
|
2162 |
-
jQuery('.pagelayer-add-widget-area')
|
2163 |
-
pagelayer_add_sc(jQuery(this));
|
2164 |
-
});
|
2165 |
-
}
|
2166 |
-
|
2167 |
-
// Add row and column
|
2168 |
-
function pagelayer_add_sc(jEle, sc){
|
2169 |
-
|
2170 |
-
// Add new row
|
2171 |
-
var new_row = pagelayer_create_sc('pl_row');
|
2172 |
-
jEle.closest('.pagelayer-add-widget-area').before(new_row);
|
2173 |
-
pagelayer_element_setup(new_row, true);
|
2174 |
-
|
2175 |
-
// Add column inside row
|
2176 |
-
var new_col = pagelayer_create_sc('pl_col');
|
2177 |
-
jQuery(new_row.find('.pagelayer-row-holder')).html(new_col);
|
2178 |
-
pagelayer_element_setup(new_col, true);
|
2179 |
|
2180 |
-
|
2181 |
-
|
2182 |
-
|
2183 |
-
|
2184 |
-
jQuery(
|
2185 |
-
|
2186 |
-
|
2187 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2188 |
}
|
2189 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
return jQuery(select, window.parent.document);
|
11 |
},
|
12 |
p : this,
|
13 |
+
copy_selected: '',
|
14 |
+
mouse: {x: -1, y: -1}
|
15 |
}
|
16 |
|
17 |
// Lets start
|
21 |
pagelayer_bottombar();
|
22 |
|
23 |
// Make the Leftbar
|
24 |
+
pagelayer_leftbar();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
|
26 |
// Add widget section
|
27 |
pagelayer_add_widget();
|
32 |
// Setup the properties of the elements
|
33 |
pagelayer_element_setup();
|
34 |
|
35 |
+
// An image to show for drag
|
36 |
+
jQuery('body').append('<img src="'+pagelayer_url+'/images/drag-ghost.png" class="pagelayer-drag-show" />');
|
37 |
+
|
38 |
// Setup the grid drag
|
39 |
+
pagelayer_setup_drag();
|
40 |
|
41 |
// Set to desktop
|
42 |
pagelayer_set_screen_mode('desktop');
|
44 |
// Set up right click
|
45 |
pagelayer_left_click();
|
46 |
pagelayer_right_click();
|
47 |
+
|
48 |
});
|
49 |
|
50 |
// The jQuery Object of the ELPD
|
51 |
var pagelayer_elpd;
|
52 |
|
53 |
+
function pagelayer_closest_corner(jEle){
|
54 |
+
var corners = [];
|
55 |
+
var w = jEle.outerWidth();
|
56 |
+
var h = jEle.outerHeight();
|
57 |
+
var topleft = jEle.offset();
|
58 |
+
|
59 |
+
// 0 - Top Left
|
60 |
+
corners.push(topleft);
|
61 |
+
|
62 |
+
// 1 - Top Right
|
63 |
+
corners.push({top: topleft.top, left: topleft.left+w});
|
64 |
+
|
65 |
+
// 2 - Bottom Right
|
66 |
+
corners.push({top: topleft.top+h, left: topleft.left+w});
|
67 |
+
|
68 |
+
// 3 - Bottom Left
|
69 |
+
corners.push({top: topleft.top+h, left: topleft.left});
|
70 |
+
|
71 |
+
//console.log(corners);
|
72 |
+
|
73 |
+
// Calculate the closest to the mouse
|
74 |
+
var distances = {};
|
75 |
+
for(var c in corners){
|
76 |
+
var dist = Math.hypot(pagelayer.mouse.x - corners[c].left, pagelayer.mouse.y - corners[c].top);
|
77 |
+
distances[c] = dist;
|
78 |
+
}
|
79 |
+
//console.log(distances);
|
80 |
+
|
81 |
+
var corner = Object.keys(distances).sort(function(a,b){return distances[a]-distances[b]})[0];
|
82 |
+
//console.log(corner);
|
83 |
+
|
84 |
+
return corner;
|
85 |
+
|
86 |
+
};
|
87 |
+
|
88 |
// Make rows and cols draggable
|
89 |
+
function pagelayer_setup_drag(){
|
90 |
+
|
91 |
+
// The object to show as drag
|
92 |
+
var shower = jQuery('.pagelayer-drag-show');
|
93 |
+
|
94 |
+
// Delete any prospect
|
95 |
+
var clear_prospect = function(){
|
96 |
+
jQuery('.pagelayer-drag-prospect').remove();
|
97 |
+
|
98 |
+
// Shows the wrap as active
|
99 |
+
jQuery('.pagelayer-drag-ele-hover').removeClass('pagelayer-drag-ele-hover');
|
100 |
+
}
|
101 |
+
|
102 |
+
// Reset the complete drag stuff
|
103 |
+
var reset_dragging = function(){
|
104 |
+
pagelayer.dragging = false;
|
105 |
+
pagelayer.drag_is_new = false;
|
106 |
+
pagelayer.drag_mouse = {x: 0, y: 0};
|
107 |
+
reset_on_drag();
|
108 |
+
}
|
|
|
|
|
|
|
109 |
|
110 |
+
// Reset the element on you were last
|
111 |
+
var reset_on_drag = function(){
|
112 |
+
pagelayer.drag_closest = false;
|
113 |
+
pagelayer.drag_closest_corner = null;
|
114 |
+
}
|
115 |
+
|
116 |
+
// Scroll by
|
117 |
+
var scrollPx = 7;
|
118 |
+
var scrollDist = 30;
|
119 |
+
|
120 |
+
// If we are too close too the window edge, then scroll
|
121 |
+
var handle_scroll = function(e){
|
122 |
+
|
123 |
+
var windowHeight = jQuery(window).height();
|
124 |
+
var windowWidth = jQuery(window).width();
|
125 |
+
|
126 |
+
// Are we to close to the top or bottom
|
127 |
+
if(e.clientY < scrollDist){
|
128 |
+
window.scrollBy(0, -scrollPx);
|
129 |
+
}else if((windowHeight - e.clientY) < scrollDist){
|
130 |
+
window.scrollBy(0, scrollPx);
|
131 |
+
}
|
132 |
+
|
133 |
+
// Are we to close to the top or bottom
|
134 |
+
if(e.clientX < scrollDist){
|
135 |
+
window.scrollBy(-scrollPx, 0);
|
136 |
+
}else if((windowWidth - e.clientX) < scrollDist){
|
137 |
+
window.scrollBy(scrollPx, 0);
|
138 |
+
}
|
139 |
+
|
140 |
+
}
|
141 |
+
|
142 |
+
// SET the values
|
143 |
+
reset_dragging();
|
144 |
+
|
145 |
+
var ondragover = function(e) {
|
146 |
+
//console.log(e);
|
147 |
+
|
148 |
+
pagelayer.mouse.x = parseInt(e.pageX);
|
149 |
+
pagelayer.mouse.y = parseInt(e.pageY);
|
150 |
+
//console.log(pagelayer.mouse);
|
151 |
+
|
152 |
+
// Are we dragging ?
|
153 |
+
if(pagelayer.dragging){
|
154 |
+
|
155 |
+
//console.log(e);
|
156 |
+
|
157 |
+
e.preventDefault();
|
158 |
+
//e.stopPropagation();
|
159 |
+
|
160 |
+
// The wrap of the element being dragged
|
161 |
+
var wrap = pagelayer.dragging;
|
162 |
+
|
163 |
+
// New addition
|
164 |
+
var is_new = pagelayer.drag_is_new;
|
165 |
+
var ele;
|
166 |
+
var tag = pagelayer_tag(wrap);
|
167 |
+
var id = pagelayer_id(wrap);
|
168 |
+
|
169 |
+
// If existing element then add we are dragging
|
170 |
+
if(!is_new){
|
171 |
+
|
172 |
+
// Start Dragging
|
173 |
+
if(!wrap.hasClass('pagelayer-is-dragging')){
|
174 |
+
wrap.addClass('pagelayer-is-dragging');
|
175 |
}
|
|
|
|
|
|
|
|
|
176 |
|
177 |
+
//shower.hide();
|
178 |
+
|
179 |
+
ele = document.elementFromPoint(e.clientX, e.clientY);
|
180 |
+
//console.log(ele);
|
181 |
+
|
182 |
+
// Drag the show object
|
183 |
+
//shower.show();
|
184 |
+
//var offset = {top: (e.pageY-10)+'px', left: (e.pageX-10)+'px'}
|
185 |
+
//shower.css(offset);
|
186 |
+
|
187 |
+
}else{
|
188 |
+
ele = document.elementFromPoint(e.clientX, e.clientY);
|
189 |
+
}
|
190 |
+
//console.log(e);
|
191 |
+
|
192 |
+
// Have we moved more than 5px;
|
193 |
+
var dist = Math.hypot(pagelayer.mouse.x - pagelayer.drag_mouse.x, pagelayer.mouse.y - pagelayer.drag_mouse.y);
|
194 |
+
//console.log(dist);
|
195 |
+
/*if(dist && dist < 5){
|
196 |
+
return false;
|
197 |
+
}*/
|
198 |
+
|
199 |
+
// Handle the scroll
|
200 |
+
handle_scroll(e);
|
201 |
+
|
202 |
+
// Find the closest wrap
|
203 |
+
var onWrap;
|
204 |
+
|
205 |
+
// If we are a column, we can be over another column or row
|
206 |
+
if(tag == 'pl_col'){
|
207 |
+
onWrap = jQuery(ele).closest('.pagelayer-wrap-col,.pagelayer-wrap-row');
|
208 |
+
//console.log(pagelayer_id(onWrap));
|
209 |
+
|
210 |
+
// If we are a row, we can be over another row or a column
|
211 |
+
}else if(tag == 'pl_row'){
|
212 |
+
onWrap = jQuery(ele).closest('.pagelayer-wrap-row');
|
213 |
+
//console.log(pagelayer_id(onWrap));
|
214 |
+
|
215 |
+
// For every other element, we can be over a col or ele
|
216 |
+
}else{
|
217 |
+
onWrap = jQuery(ele).closest('.pagelayer-wrap-ele,.pagelayer-wrap-col');
|
218 |
+
}
|
219 |
+
//console.log(onWrap);
|
220 |
+
|
221 |
+
// If we find nothing
|
222 |
+
if(onWrap.length < 1){
|
223 |
+
clear_prospect();// Clear existing prospects
|
224 |
+
reset_on_drag();// Also reset the last on item
|
225 |
+
return false;
|
226 |
+
}
|
227 |
+
|
228 |
+
// Get the ID
|
229 |
+
var onId = onWrap.attr('pagelayer-wrap-id');
|
230 |
+
var onEle = onWrap.children('.pagelayer-ele');
|
231 |
+
|
232 |
+
// Do we have a parent ?
|
233 |
+
var pOnId = pagelayer_get_parent(onEle);
|
234 |
+
|
235 |
+
if(pOnId){
|
236 |
+
onId = pOnId;
|
237 |
+
onEle = pagelayer_ele_by_id(onId);
|
238 |
+
onWrap = pagelayer_wrap_by_id(onId);
|
239 |
+
}
|
240 |
+
|
241 |
+
var changed = false;
|
242 |
+
|
243 |
+
// Was it the same ID like the one we were on before
|
244 |
+
if(pagelayer.drag_closest != onId){
|
245 |
+
pagelayer.drag_closest = onId;
|
246 |
+
changed = true;
|
247 |
+
}
|
248 |
+
//console.log(onId+' '+pagelayer.drag_closest)
|
249 |
+
|
250 |
+
var req_corners = {0: 'top', 1: 'top', 2: 'bottom', 3: 'bottom'};
|
251 |
+
|
252 |
+
// For columns we redefine the top and bottom
|
253 |
+
if(tag == 'pl_col'){
|
254 |
+
req_corners[1] = 'bottom';
|
255 |
+
req_corners[3] = 'top';
|
256 |
+
}
|
257 |
+
|
258 |
+
// Determine the previous and next
|
259 |
+
var next = wrap.next('.pagelayer-ele-wrap');
|
260 |
+
var prev = wrap.prev('.pagelayer-ele-wrap');
|
261 |
+
|
262 |
+
if(next.length == 1 && pagelayer_id(next) == onId){
|
263 |
+
req_corners = {0: 'bottom', 1: 'bottom', 2: 'bottom', 3: 'bottom'};
|
264 |
+
}
|
265 |
+
|
266 |
+
if(prev.length == 1 && pagelayer_id(prev) == onId){
|
267 |
+
req_corners = {0: 'top', 1: 'top', 2: 'top', 3: 'top'};
|
268 |
+
}
|
269 |
+
|
270 |
+
// Which corner are we closest to ?
|
271 |
+
var corner_num = pagelayer_closest_corner(onWrap);
|
272 |
+
var corner = req_corners[corner_num];
|
273 |
+
|
274 |
+
//console.log(corner+' != '+pagelayer.drag_closest_corner)
|
275 |
+
if(corner != pagelayer.drag_closest_corner){
|
276 |
+
pagelayer.drag_closest_corner = corner;
|
277 |
+
changed = true;
|
278 |
+
}
|
279 |
+
|
280 |
+
//console.log(changed);
|
281 |
+
|
282 |
+
// If we are on our self then clear return false
|
283 |
+
if(onId == id){
|
284 |
+
clear_prospect();// Clear existing prospects
|
285 |
+
reset_on_drag();// Also reset the last on item
|
286 |
+
return false;
|
287 |
+
}
|
288 |
+
|
289 |
+
// Then lets start showing
|
290 |
+
if(changed){
|
291 |
+
|
292 |
+
// Record the mouse points
|
293 |
+
pagelayer.drag_mouse.x = parseInt(e.pageX);
|
294 |
+
pagelayer.drag_mouse.y = parseInt(e.pageY);
|
295 |
+
|
296 |
+
// Clear any existing prospect
|
297 |
+
clear_prospect();
|
298 |
+
|
299 |
+
// Add new prospect
|
300 |
+
var prospect = '<div class="pagelayer-drag-prospect" pagelayer-corner="'+corner+'"></div>';
|
301 |
+
|
302 |
+
if(corner == 'bottom'){
|
303 |
+
onWrap.append(prospect);
|
304 |
+
}else if(corner == 'top'){
|
305 |
+
onWrap.prepend(prospect);
|
306 |
}
|
307 |
|
308 |
+
prospect = jQuery('.pagelayer-drag-prospect')
|
309 |
+
var animate_props = {height: '5px'};
|
310 |
|
311 |
+
// For column add a special class
|
312 |
+
if(tag == 'pl_col'){
|
313 |
+
prospect.addClass('pagelayer-drag-prospect-col');
|
314 |
+
animate_props['width'] = '5px';
|
315 |
+
|
316 |
+
// Adjust the left and right
|
317 |
+
var css = {};
|
318 |
+
css[(corner == 'bottom' ? 'right' : 'left')] = '0px';
|
319 |
+
prospect.css(css);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
320 |
}
|
321 |
+
|
322 |
+
// Animate the prospect
|
323 |
+
prospect.animate(animate_props, 200);
|
324 |
+
|
325 |
+
// Highlight the wrap via overlay
|
326 |
+
onWrap.children('.pagelayer-ele-overlay').addClass('pagelayer-drag-ele-hover');
|
327 |
+
|
328 |
+
}
|
329 |
+
|
330 |
+
}
|
331 |
+
}
|
332 |
|
333 |
+
// When mouse is pressed down
|
334 |
+
var ondragstart = function(e){
|
335 |
+
|
336 |
+
//console.log(e);
|
337 |
+
|
338 |
+
// Target
|
339 |
+
var tEle = jQuery(e.target);
|
340 |
+
var wrap = tEle.closest('.pagelayer-ele-wrap');
|
341 |
+
//console.log(jEle[0]);
|
342 |
+
|
343 |
+
// Is it an existing element ?
|
344 |
+
if(wrap.length < 1){
|
345 |
+
return false;
|
346 |
+
}
|
347 |
+
|
348 |
+
// Do we have a parent ?
|
349 |
+
var id = pagelayer_id(wrap);
|
350 |
+
var jEle = pagelayer_ele_by_id(id);
|
351 |
+
var pId = pagelayer_get_parent(jEle);
|
352 |
+
|
353 |
+
if(pId){
|
354 |
+
wrap = pagelayer_wrap_by_id(pId);
|
355 |
+
}
|
356 |
+
|
357 |
+
//e.preventDefault();
|
358 |
+
|
359 |
+
var tag = pagelayer_tag(wrap);
|
360 |
+
|
361 |
+
e.originalEvent.dataTransfer.setData('Text', 1);
|
362 |
+
var img = document.createElement('img');
|
363 |
+
img.src = shower.attr('src');
|
364 |
+
e.originalEvent.dataTransfer.setDragImage(img, 32, 32);
|
365 |
+
|
366 |
+
pagelayer.dragging = wrap;
|
367 |
+
|
368 |
+
}
|
369 |
+
|
370 |
+
// When mouse is pressed down
|
371 |
+
var ondrop = function(e){
|
372 |
+
|
373 |
+
//console.log(e);
|
374 |
+
|
375 |
+
// Stop dragging ?
|
376 |
+
if(pagelayer.dragging){
|
377 |
+
|
378 |
+
e.preventDefault();
|
379 |
+
|
380 |
+
var wrap = pagelayer.dragging;
|
381 |
+
var tag = pagelayer_tag(wrap);
|
382 |
+
var fromEl = wrap.parent();
|
383 |
+
var id;
|
384 |
+
wrap.removeClass('pagelayer-is-dragging');
|
385 |
+
|
386 |
+
// Find any prospect
|
387 |
+
var prospect = jQuery('.pagelayer-drag-prospect');
|
388 |
+
//console.log(prospect[0]);
|
389 |
+
|
390 |
+
// It should be exactly 1
|
391 |
+
if(prospect.length == 1){
|
392 |
+
|
393 |
+
var onWrap = prospect.parent();
|
394 |
+
var onId = pagelayer_id(onWrap);
|
395 |
+
var onTag = pagelayer_tag(onWrap);
|
396 |
+
var dropped;
|
397 |
+
var corner = prospect.attr('pagelayer-corner');
|
398 |
+
var method = (corner == 'top') ? 'before' : 'after';
|
399 |
+
|
400 |
+
// Create the element if it needs to be created
|
401 |
+
if(pagelayer.drag_is_new){
|
402 |
+
dropped = jQuery('<div pagelayer-tag="'+tag+'"></div>');
|
403 |
+
|
404 |
+
// Move the object
|
405 |
+
}else{
|
406 |
+
dropped = wrap;
|
407 |
+
dropped.detach();
|
408 |
+
}
|
409 |
+
|
410 |
+
// If I am a column or row, then I go only before or after my same type !
|
411 |
+
if((onTag == 'pl_col' || onTag == 'pl_row') && onTag == tag){
|
412 |
+
|
413 |
+
// If I am a column and I am on a row
|
414 |
+
// OR I am a normal element and I am on column
|
415 |
+
}else if((tag == 'pl_col' && onTag == 'pl_row') || onTag == 'pl_col'){
|
416 |
+
// We need to find the holder and add the prospect there
|
417 |
+
var holder = pagelayer_shortcodes[onTag]['holder'];
|
418 |
+
onWrap = onWrap.children('.pagelayer-ele').children(holder);
|
419 |
+
method = (corner == 'top') ? 'prepend' : 'append';
|
420 |
+
}
|
421 |
+
|
422 |
+
// Attach or shift the element
|
423 |
+
onWrap[method](dropped);
|
424 |
+
//console.log(dropped);
|
425 |
+
|
426 |
+
// Trigger the onadd
|
427 |
+
if(pagelayer.drag_is_new){
|
428 |
+
id = pagelayer_onadd(dropped);
|
429 |
+
|
430 |
+
// Existing elements
|
431 |
+
}else{
|
432 |
+
id = pagelayer_id(wrap);
|
433 |
+
}
|
434 |
+
|
435 |
+
// Defining the variables as needed
|
436 |
+
var jEle = pagelayer_ele_by_id(id);
|
437 |
+
wrap = pagelayer_wrap_by_id(id);
|
438 |
+
var toEl = wrap.parent();
|
439 |
+
|
440 |
+
// Column number handle
|
441 |
+
if(tag == 'pl_col'){
|
442 |
+
|
443 |
+
var row_holder = jEle.parent().closest('.pagelayer-row-holder');
|
444 |
+
|
445 |
+
// Renumber the col where you are going
|
446 |
+
pagelayer_renumber_col(row_holder);
|
447 |
+
|
448 |
+
// Renumber the old columns as well
|
449 |
+
if(!pagelayer.drag_is_new){
|
450 |
+
var from_row = fromEl.closest('.pagelayer-row-holder');
|
451 |
+
pagelayer_renumber_col(from_row);
|
452 |
+
}
|
453 |
+
}
|
454 |
+
|
455 |
+
// Handle the empty col
|
456 |
+
if(tag != 'pl_col'){
|
457 |
+
|
458 |
+
pagelayer_empty_col(toEl.closest('.pagelayer-col-holder'));
|
459 |
+
|
460 |
+
if(!pagelayer.drag_is_new){
|
461 |
+
pagelayer_empty_col(fromEl.closest('.pagelayer-col-holder'));
|
462 |
+
}
|
463 |
+
|
464 |
+
}
|
465 |
+
|
466 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
467 |
|
468 |
+
// Clear prospect
|
469 |
+
clear_prospect();
|
470 |
+
}
|
471 |
+
|
472 |
+
reset_dragging();
|
473 |
+
|
474 |
+
}
|
475 |
+
|
476 |
+
// Add the events for inner content - as we are using the drag API
|
477 |
+
jQuery(document).on('dragstart', ondragstart);
|
478 |
+
jQuery(document).on('dragover', ondragover);
|
479 |
+
jQuery(document).on('drop', ondrop);
|
480 |
+
|
481 |
+
// For addition of new elements
|
482 |
+
pagelayer.$$('[pagelayer-tag]').on('dragstart', function(e){
|
483 |
+
//console.log(e);
|
484 |
+
|
485 |
+
var tEle = jQuery(e.target);
|
486 |
+
var jEle = tEle.closest('.pagelayer-shortcode-drag');
|
487 |
+
|
488 |
+
// Is it an existing element ?
|
489 |
+
if(jEle.length < 1){
|
490 |
+
return false;
|
491 |
+
}
|
492 |
+
|
493 |
+
e.originalEvent.dataTransfer.setData('tag', pagelayer_tag(jEle));
|
494 |
+
|
495 |
+
pagelayer.dragging = jEle;
|
496 |
+
pagelayer.drag_is_new = true;
|
497 |
+
|
498 |
+
});
|
499 |
|
500 |
};
|
501 |
|
502 |
// Handle empty col
|
503 |
+
// selector should be col holder
|
504 |
function pagelayer_empty_col(selector){
|
505 |
|
506 |
// Loop through
|
519 |
jEle.append('<div class="pagelayer-add-ele pagelayer-ele-wrap"><i class="fa fa-plus"><br>Empty column please add something</div>');
|
520 |
var h = jEle.parent().parent().children('.pagelayer-ele-overlay').height();
|
521 |
jEle.children('.pagelayer-add-ele').height(h);
|
|
|
522 |
|
523 |
// Any add ele sign with non-empty columns here ?
|
524 |
}else if(jEle.children('.pagelayer-add-ele').length > 0){
|
530 |
};
|
531 |
|
532 |
// Reset the column widths
|
533 |
+
// The selector should be a ROW HOLDER
|
534 |
function pagelayer_renumber_col(selector){
|
535 |
|
536 |
var pEle = jQuery(selector);
|
562 |
});
|
563 |
}
|
564 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
565 |
// Handle addition of elements from the left
|
566 |
// NOTE : At this point the addition is FINALIZED
|
567 |
// The add element cannot be prevented !
|
568 |
+
function pagelayer_onadd(jEle, toClick){
|
569 |
|
570 |
+
toClick = arguments.length == 2 ? toClick : true;
|
|
|
571 |
|
572 |
+
//console.log(jEle);
|
573 |
+
var id = pagelayer_element_added(jEle);
|
574 |
var jEle = jQuery("[pagelayer-id="+id+"]");
|
575 |
+
|
576 |
+
if(toClick){
|
577 |
+
//console.log('here');
|
578 |
+
jEle.click();
|
579 |
+
}
|
580 |
+
|
581 |
+
return id;
|
582 |
|
583 |
};
|
584 |
|
585 |
// Add an element into the POST
|
586 |
+
function pagelayer_element_added(jEle){
|
587 |
|
588 |
var sc = jEle.attr('pagelayer-tag');
|
|
|
|
|
589 |
var id, par_id;
|
590 |
|
|
|
|
|
|
|
|
|
|
|
591 |
// Generate the HTML
|
592 |
+
html = pagelayer_create_sc(sc);
|
593 |
id = pagelayer_assign_id(html);
|
594 |
par_id = id;
|
595 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
596 |
// Insert the HTML
|
597 |
jEle[0].outerHTML = html[0].outerHTML;
|
598 |
|
618 |
|
619 |
}
|
620 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
621 |
return id;
|
622 |
|
623 |
};
|
624 |
|
625 |
// Add an element
|
626 |
function pagelayer_element_add_child(pEle, sc){
|
627 |
+
var child = pagelayer_create_sc(sc);
|
628 |
var cid = pagelayer_assign_id(child);
|
629 |
pagelayer_set_parent(child, pagelayer_assign_id(pEle));
|
630 |
|
644 |
return cid;
|
645 |
};
|
646 |
|
647 |
+
// Return an element by ID
|
648 |
function pagelayer_ele_by_id(id){
|
649 |
return jQuery('[pagelayer-id='+id+']');
|
650 |
};
|
651 |
|
652 |
+
// Return the wrap by ID
|
653 |
+
function pagelayer_wrap_by_id(id){
|
654 |
+
return jQuery('[pagelayer-wrap-id='+id+']');
|
655 |
+
};
|
656 |
+
|
657 |
+
// Give the Pagelayer ID
|
658 |
+
function pagelayer_id(jEle){
|
659 |
+
|
660 |
+
var id = jEle.attr('pagelayer-wrap-id');
|
661 |
+
if(id){
|
662 |
+
return id;
|
663 |
+
}
|
664 |
+
|
665 |
+
id = jEle.attr('pagelayer-id');
|
666 |
+
|
667 |
+
return id;
|
668 |
+
|
669 |
+
}
|
670 |
+
|
671 |
// Assign the jQuery object an ID
|
672 |
function pagelayer_assign_id(jEle){
|
673 |
|
802 |
|
803 |
}else if(tag == 'pl_row'){
|
804 |
wrap.addClass('pagelayer-wrap-row');
|
805 |
+
}else{
|
806 |
+
wrap.addClass('pagelayer-wrap-ele');
|
807 |
}
|
808 |
+
|
809 |
// Create the overlay
|
810 |
wrap.prepend('<div class="pagelayer-ele-overlay"></div>');
|
811 |
|
856 |
return;
|
857 |
}
|
858 |
|
859 |
+
// Make the wrap draggable, but only of independent or parent elements
|
860 |
+
wrap.attr('draggable', 'true');
|
861 |
+
|
862 |
wrap.hover(function(){
|
863 |
|
864 |
// Is there an element option shower ?
|
1019 |
}
|
1020 |
}
|
1021 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1022 |
// Handle key press events
|
1023 |
jQuery(document).keydown(function(event){
|
1024 |
//alert(String.fromCharCode(event.which));
|
1044 |
|
1045 |
var par = wrap.parent();
|
1046 |
|
1047 |
+
wrap.remove();
|
1048 |
|
1049 |
pagelayer_empty_col(par);
|
1050 |
|
1067 |
|
1068 |
var eTag = pagelayer_tag(jEle);
|
1069 |
var tTag = pagelayer_tag(tEle);
|
1070 |
+
//console.log(eTag+' - '+tTag);
|
1071 |
// Final to
|
1072 |
var fTo;
|
1073 |
|
1137 |
|
1138 |
pagelayer_element_setup('[pagelayer-id='+id+'], [pagelayer-id='+id+'] .pagelayer-ele', true);
|
1139 |
|
|
|
|
|
|
|
1140 |
//If column then renumber columns
|
1141 |
if(tag == 'pl_col'){
|
1142 |
var row = src.parent().closest('.pagelayer-row');
|
1175 |
|
1176 |
// Create a HTML dom element of the Short code
|
1177 |
// Return the jEle
|
1178 |
+
function pagelayer_create_sc(sc){
|
1179 |
|
1180 |
var html;
|
1181 |
var _sc = pagelayer_sc(sc);
|
1183 |
|
1184 |
// Generate the HTML
|
1185 |
if(typeof func == 'function'){
|
1186 |
+
html = window['pagelayer_sc_'+sc]();
|
1187 |
}else{
|
1188 |
html = '<div '+pagelayer_sc_atts('pagelayer-'+_sc)+'></div>';
|
1189 |
}
|
2112 |
continue;
|
2113 |
}
|
2114 |
|
2115 |
+
html += '<div class="pagelayer-shortcode-drag" draggable="true" pagelayer-tag="'+sc+'">'+
|
2116 |
'<div class="pagelayer-sc">'+
|
2117 |
'<center class="pagelayer-shortcode-inner">'+
|
2118 |
'<div class="pagelayer-shortcode pagelayer-'+sc+'"></div>'+
|
2367 |
|
2368 |
jQuery('.entry-content').append(html);
|
2369 |
|
2370 |
+
var add_area = jQuery('.pagelayer-add-widget-area');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2371 |
|
2372 |
+
// Add a code before this
|
2373 |
+
var add_sc = function(tag){
|
2374 |
+
|
2375 |
+
// Create Row
|
2376 |
+
var row = jQuery('<div pagelayer-tag="pl_row"></div>');
|
2377 |
+
add_area.before(row);
|
2378 |
+
var row_id = pagelayer_onadd(row, false);
|
2379 |
+
var rEle = pagelayer_ele_by_id(row_id);
|
2380 |
+
|
2381 |
+
if(tag == 'pl_row'){
|
2382 |
+
rEle.click();
|
2383 |
+
return row_id;
|
2384 |
+
}
|
2385 |
+
|
2386 |
+
// Create Column
|
2387 |
+
var col = jQuery('<div pagelayer-tag="pl_col"></div>');
|
2388 |
+
rEle.find('.pagelayer-row-holder').append(col);
|
2389 |
+
var col_id = pagelayer_onadd(col, false);
|
2390 |
+
var cEle = pagelayer_ele_by_id(col_id);
|
2391 |
+
|
2392 |
+
if(tag == 'pl_col'){
|
2393 |
+
cEle.click();
|
2394 |
+
return col_id;
|
2395 |
+
}
|
2396 |
+
|
2397 |
+
// Create element
|
2398 |
+
var ele = jQuery('<div pagelayer-tag="'+tag+'"></div>');
|
2399 |
+
cEle.find('.pagelayer-col-holder').append(ele);
|
2400 |
+
var id = pagelayer_onadd(ele);
|
2401 |
+
|
2402 |
+
// Ensure the column is not empty
|
2403 |
+
pagelayer_empty_col(cEle.find('.pagelayer-col-holder'));
|
2404 |
+
|
2405 |
+
return id;
|
2406 |
+
|
2407 |
}
|
2408 |
+
|
2409 |
+
// Handle Click
|
2410 |
+
add_area.on('click', function(){
|
2411 |
+
add_sc('pl_col');
|
2412 |
+
});
|
2413 |
+
|
2414 |
+
// Handle Drag over
|
2415 |
+
add_area.on('dragover', function(e){
|
2416 |
+
//console.log(e)
|
2417 |
+
add_area.addClass('pagelayer-add-widget-drag');
|
2418 |
+
});
|
2419 |
+
|
2420 |
+
// Handle Drag Leave
|
2421 |
+
add_area.on('dragleave', function(e){
|
2422 |
+
//console.log(e)
|
2423 |
+
add_area.removeClass('pagelayer-add-widget-drag');
|
2424 |
+
});
|
2425 |
+
|
2426 |
+
// Handle On Drop
|
2427 |
+
add_area.on('drop', function(e){
|
2428 |
+
|
2429 |
+
//console.log(e);
|
2430 |
+
//console.log(e.originalEvent.dataTransfer.getData('tag'));
|
2431 |
+
add_area.removeClass('pagelayer-add-widget-drag');
|
2432 |
+
jQuery('.pagelayer-is-dragging').removeClass('pagelayer-is-dragging');
|
2433 |
+
|
2434 |
+
var tag = e.originalEvent.dataTransfer.getData('tag');
|
2435 |
+
|
2436 |
+
// Is it an existing element ?
|
2437 |
+
if(tag.length < 1){
|
2438 |
+
return false;
|
2439 |
+
}
|
2440 |
+
|
2441 |
+
e.preventDefault();
|
2442 |
+
|
2443 |
+
//console.log(tag);
|
2444 |
+
|
2445 |
+
add_sc(tag);
|
2446 |
+
});
|
2447 |
+
}
|
@@ -50,11 +50,21 @@ jQuery(document).ready(function(){
|
|
50 |
|
51 |
jQuery('.pagelayer-parallax-window img').each(function(){
|
52 |
pagelayer_pl_row_parallax(jQuery(this));
|
53 |
-
})
|
54 |
-
|
55 |
-
pagelayer_counter();
|
56 |
-
pagelayer_progress();
|
57 |
pagelayer_stars();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
58 |
|
59 |
new WOW({boxClass:'pagelayer-wow'}).init();
|
60 |
});
|
@@ -84,6 +94,22 @@ jQuery(window).resize(function() {
|
|
84 |
|
85 |
});
|
86 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
87 |
// Row background video and parallax
|
88 |
function pagelayer_pl_row_video(jEle){
|
89 |
|
@@ -127,7 +153,7 @@ function pagelayer_pl_row_parallax(jEle){
|
|
127 |
function pagelayer_pl_row_full(jEle){
|
128 |
|
129 |
// Get current width
|
130 |
-
var vw = jQuery(
|
131 |
|
132 |
// Now give the row the width
|
133 |
jEle.css({'width': vw, 'max-width': '100vw'});
|
@@ -231,7 +257,7 @@ function pagelayer_pl_tabs(jEle) {
|
|
231 |
children.each(function(){
|
232 |
var tEle = jQuery(this);
|
233 |
var pl_id = tEle.attr('pagelayer-id');
|
234 |
-
var title = tEle.attr('pagelayer-tab-title');
|
235 |
var func = "pagelayer_tab_show(this, '"+pl_id+"')";
|
236 |
|
237 |
var icon = '';
|
@@ -395,53 +421,60 @@ function pagelayer_counter(){
|
|
395 |
|
396 |
var jEle = jQuery(this);
|
397 |
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
403 |
}
|
404 |
-
|
405 |
-
var options = {};
|
406 |
-
options['duration'] = jEle.children('.pagelayer-counter-display').attr('pagelayer-counter-animation-duration');
|
407 |
-
options['delimiter'] = jEle.children('.pagelayer-counter-display').attr('pagelayer-counter-seperator-type');
|
408 |
-
options['toValue'] = jEle.children('.pagelayer-counter-display').attr('pagelayer-counter-last-value');
|
409 |
-
jEle.children('.pagelayer-counter-display').numerator( options );
|
410 |
-
|
411 |
-
// Set that we have setup everything
|
412 |
-
jEle.attr('pagelayer-setup', 1);
|
413 |
-
|
414 |
});
|
415 |
}
|
416 |
|
417 |
function pagelayer_progress(){
|
418 |
jQuery('.pagelayer-progress-container').each(function(){
|
419 |
var jEle = jQuery(this);
|
420 |
-
|
421 |
-
var setup = jEle.attr('pagelayer-setup');
|
422 |
-
if(setup && setup.length > 0){
|
423 |
-
return true;
|
424 |
-
}
|
425 |
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
clearInterval(interval);
|
437 |
-
} else {
|
438 |
-
width++;
|
439 |
-
jEle.children('.pagelayer-progress-bar').css('width', width + '%');
|
440 |
-
jEle.find('.pagelayer-progress-percent').text(width * 1 + '%');
|
441 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
442 |
}
|
443 |
-
interval = setInterval(progress, 30);
|
444 |
-
jEle.attr('pagelayer-setup', 1);
|
445 |
});
|
446 |
}
|
447 |
|
50 |
|
51 |
jQuery('.pagelayer-parallax-window img').each(function(){
|
52 |
pagelayer_pl_row_parallax(jQuery(this));
|
53 |
+
});
|
|
|
|
|
|
|
54 |
pagelayer_stars();
|
55 |
+
|
56 |
+
// We need to call the is visible thing to show the widgets loading effect
|
57 |
+
if(jQuery('.pagelayer-counter-content,.pagelayer-progress-container').length > 0){
|
58 |
+
|
59 |
+
// First Call
|
60 |
+
pagelayer_counter();
|
61 |
+
pagelayer_progress();
|
62 |
+
|
63 |
+
jQuery(window).scroll(function() {
|
64 |
+
pagelayer_progress();
|
65 |
+
pagelayer_counter();
|
66 |
+
});
|
67 |
+
}
|
68 |
|
69 |
new WOW({boxClass:'pagelayer-wow'}).init();
|
70 |
});
|
94 |
|
95 |
});
|
96 |
|
97 |
+
// Check if element is visible
|
98 |
+
function pagelayer_isVisible(ele) {
|
99 |
+
|
100 |
+
var offset = jQuery(window).height();
|
101 |
+
var viewTop = window.pageYOffset;
|
102 |
+
var viewBottom = viewTop + offset - Math.min(ele.height(), ele.innerHeight());
|
103 |
+
var top = ele.offset().top;
|
104 |
+
var bottom = top + ele.innerHeight();
|
105 |
+
|
106 |
+
if(top <= viewBottom && bottom >= viewTop){
|
107 |
+
return true;
|
108 |
+
}
|
109 |
+
|
110 |
+
return false;
|
111 |
+
}
|
112 |
+
|
113 |
// Row background video and parallax
|
114 |
function pagelayer_pl_row_video(jEle){
|
115 |
|
153 |
function pagelayer_pl_row_full(jEle){
|
154 |
|
155 |
// Get current width
|
156 |
+
var vw = jQuery('html').width();
|
157 |
|
158 |
// Now give the row the width
|
159 |
jEle.css({'width': vw, 'max-width': '100vw'});
|
257 |
children.each(function(){
|
258 |
var tEle = jQuery(this);
|
259 |
var pl_id = tEle.attr('pagelayer-id');
|
260 |
+
var title = tEle.attr('pagelayer-tab-title') || 'Tab';
|
261 |
var func = "pagelayer_tab_show(this, '"+pl_id+"')";
|
262 |
|
263 |
var icon = '';
|
421 |
|
422 |
var jEle = jQuery(this);
|
423 |
|
424 |
+
if(pagelayer_isVisible(jEle)){
|
425 |
+
|
426 |
+
var setup = jEle.attr('pagelayer-setup');
|
427 |
+
|
428 |
+
// Already setup ?
|
429 |
+
if(setup && setup.length > 0){
|
430 |
+
return true;
|
431 |
+
}
|
432 |
+
|
433 |
+
var options = {};
|
434 |
+
options['duration'] = jEle.children('.pagelayer-counter-display').attr('pagelayer-counter-animation-duration');
|
435 |
+
options['delimiter'] = jEle.children('.pagelayer-counter-display').attr('pagelayer-counter-seperator-type');
|
436 |
+
options['toValue'] = jEle.children('.pagelayer-counter-display').attr('pagelayer-counter-last-value');
|
437 |
+
jEle.children('.pagelayer-counter-display').numerator( options );
|
438 |
+
|
439 |
+
// Set that we have setup everything
|
440 |
+
jEle.attr('pagelayer-setup', 1);
|
441 |
+
|
442 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
443 |
});
|
444 |
}
|
445 |
|
446 |
function pagelayer_progress(){
|
447 |
jQuery('.pagelayer-progress-container').each(function(){
|
448 |
var jEle = jQuery(this);
|
|
|
|
|
|
|
|
|
|
|
449 |
|
450 |
+
if(pagelayer_isVisible(jEle)){
|
451 |
+
|
452 |
+
var setup = jEle.attr('pagelayer-setup');
|
453 |
+
if(setup && setup.length > 0){
|
454 |
+
return true;
|
455 |
+
}
|
456 |
+
|
457 |
+
var progress_width = jEle.children('.pagelayer-progress-bar').attr('pagelayer-progress-width');
|
458 |
+
if(progress_width == undefined){
|
459 |
+
progress_width = "1";
|
|
|
|
|
|
|
|
|
|
|
460 |
}
|
461 |
+
|
462 |
+
var width = 0;
|
463 |
+
var interval;
|
464 |
+
|
465 |
+
var progress = function(){
|
466 |
+
if (width >= progress_width) {
|
467 |
+
clearInterval(interval);
|
468 |
+
} else {
|
469 |
+
width++;
|
470 |
+
jEle.children('.pagelayer-progress-bar').css('width', width + '%');
|
471 |
+
jEle.find('.pagelayer-progress-percent').text(width * 1 + '%');
|
472 |
+
}
|
473 |
+
}
|
474 |
+
interval = setInterval(progress, 30);
|
475 |
+
jEle.attr('pagelayer-setup', 1);
|
476 |
+
|
477 |
}
|
|
|
|
|
478 |
});
|
479 |
}
|
480 |
|
@@ -8,6 +8,9 @@ var pagelayer_icons = {};
|
|
8 |
// The inline editor
|
9 |
var pagelayer_editor = {};
|
10 |
|
|
|
|
|
|
|
11 |
// Loads the Data
|
12 |
function pagelayer_data(jEle, clean){
|
13 |
|
@@ -303,6 +306,9 @@ function pagelayer_elpd_generate(jEle, holder){
|
|
303 |
var _sec = jQuery(this);
|
304 |
var par = _sec.parent();
|
305 |
|
|
|
|
|
|
|
306 |
// Get the active tab
|
307 |
var active_tab = pagelayer_elpd.find('[pagelayer-elpd-active-tab]').attr('pagelayer-elpd-tab');
|
308 |
|
@@ -325,6 +331,10 @@ function pagelayer_elpd_generate(jEle, holder){
|
|
325 |
|
326 |
});
|
327 |
|
|
|
|
|
|
|
|
|
328 |
// Handle the showing of rows
|
329 |
pagelayer_elpd_show_rows();
|
330 |
|
@@ -753,10 +763,22 @@ function pagelayer_elp_label(row, prop){
|
|
753 |
// Do we have units ?
|
754 |
if('units' in prop){
|
755 |
|
756 |
-
var units = '';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
757 |
|
758 |
for(var i in prop['units']){
|
759 |
-
units += '<span '+(i ==
|
760 |
}
|
761 |
|
762 |
label.append('<div class="pagelayer-elp-units">'+units+'</div>');
|
@@ -830,12 +852,15 @@ function pagelayer_elp_select(row, prop){
|
|
830 |
row.append(div);
|
831 |
|
832 |
row.find('select').on('change', function(){
|
833 |
-
|
834 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
835 |
|
836 |
-
row.find('.pagelayer-elp-select[name="animation"]').change(function(){
|
837 |
-
var anim = jQuery(this).val();
|
838 |
-
_pagelayer_trigger_anim(row, anim);
|
839 |
});
|
840 |
|
841 |
}
|
@@ -1759,6 +1784,14 @@ function pagelayer_elp_group(row, prop){
|
|
1759 |
|
1760 |
pagelayer_elpd_generate(jEle, holder.find('.pagelayer-elp-group-item-body'));
|
1761 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1762 |
// Setup the toggle
|
1763 |
holder.find('.pagelayer-elp-group-item-title').on('click', function(){
|
1764 |
holder.find('.pagelayer-elp-group-item-body').toggle('slow');
|
@@ -1821,9 +1854,19 @@ function pagelayer_elp_padding(row, prop){
|
|
1821 |
|
1822 |
// Is the value linked ?
|
1823 |
var link = row.find('.pagelayer-elp-padding-div .fa');
|
1824 |
-
var isLinked =
|
1825 |
-
isLinked = isLinked == 2 ? false : true;
|
1826 |
//console.log(isLinked);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1827 |
|
1828 |
if(isLinked){
|
1829 |
link.addClass('pagelayer-elp-padding-linked');
|
@@ -1842,8 +1885,6 @@ function pagelayer_elp_padding(row, prop){
|
|
1842 |
link.addClass('pagelayer-elp-padding-linked');
|
1843 |
}
|
1844 |
|
1845 |
-
_pagelayer_set_tmp_atts(row, 'linked', (linked ? 2 : 1));
|
1846 |
-
|
1847 |
});
|
1848 |
|
1849 |
row.find('input').on('input', function(){
|
@@ -1938,6 +1979,49 @@ function pagelayer_elp_shadow(row, prop){
|
|
1938 |
|
1939 |
}
|
1940 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1941 |
// The gradient property
|
1942 |
function pagelayer_elp_gradient(row, prop){
|
1943 |
|
8 |
// The inline editor
|
9 |
var pagelayer_editor = {};
|
10 |
|
11 |
+
// The active pagelayer element
|
12 |
+
var pagelayer_active_tab = {};
|
13 |
+
|
14 |
// Loads the Data
|
15 |
function pagelayer_data(jEle, clean){
|
16 |
|
306 |
var _sec = jQuery(this);
|
307 |
var par = _sec.parent();
|
308 |
|
309 |
+
pagelayer_active_tab.id = el.id;
|
310 |
+
pagelayer_active_tab.section = par.attr('section');
|
311 |
+
|
312 |
// Get the active tab
|
313 |
var active_tab = pagelayer_elpd.find('[pagelayer-elpd-active-tab]').attr('pagelayer-elpd-tab');
|
314 |
|
331 |
|
332 |
});
|
333 |
|
334 |
+
if(!pagelayer_empty(pagelayer_active_tab) && pagelayer_active_tab.id == el.id){
|
335 |
+
holder.find('>[section='+pagelayer_active_tab.section+']>.pagelayer-elpd-section-name').click();
|
336 |
+
}
|
337 |
+
|
338 |
// Handle the showing of rows
|
339 |
pagelayer_elpd_show_rows();
|
340 |
|
763 |
// Do we have units ?
|
764 |
if('units' in prop){
|
765 |
|
766 |
+
var units = '';
|
767 |
+
var tmp_val = prop.c['val'];
|
768 |
+
var default_unit = 0;
|
769 |
+
|
770 |
+
// Get unit from value
|
771 |
+
if(!(pagelayer_empty(tmp_val))){
|
772 |
+
|
773 |
+
for(var i in prop['units']){
|
774 |
+
if(tmp_val.search(prop['units'][i]) != -1){
|
775 |
+
default_unit = i;
|
776 |
+
}
|
777 |
+
}
|
778 |
+
}
|
779 |
|
780 |
for(var i in prop['units']){
|
781 |
+
units += '<span '+(i == default_unit ? 'selected' : '')+'>'+prop['units'][i]+'</span>';
|
782 |
}
|
783 |
|
784 |
label.append('<div class="pagelayer-elp-units">'+units+'</div>');
|
852 |
row.append(div);
|
853 |
|
854 |
row.find('select').on('change', function(){
|
855 |
+
|
856 |
+
var sEle = jQuery(this);
|
857 |
+
|
858 |
+
if(sEle.attr('name') == "animation"){
|
859 |
+
_pagelayer_trigger_anim(row, sEle.val());
|
860 |
+
}
|
861 |
+
|
862 |
+
_pagelayer_set_atts(row, sEle.val());// Save and Render
|
863 |
|
|
|
|
|
|
|
864 |
});
|
865 |
|
866 |
}
|
1784 |
|
1785 |
pagelayer_elpd_generate(jEle, holder.find('.pagelayer-elp-group-item-body'));
|
1786 |
|
1787 |
+
// Change the group item title
|
1788 |
+
var tmp_title = holder.find('[pagelayer-elp-name='+label_param+'] [name='+label_param+']')
|
1789 |
+
if(tmp_title.length > 0){
|
1790 |
+
jQuery(tmp_title).on('input', function(){
|
1791 |
+
holder.find('.pagelayer-elp-group-item-title').html(tmp_title.val());
|
1792 |
+
});
|
1793 |
+
}
|
1794 |
+
|
1795 |
// Setup the toggle
|
1796 |
holder.find('.pagelayer-elp-group-item-title').on('click', function(){
|
1797 |
holder.find('.pagelayer-elp-group-item-body').toggle('slow');
|
1854 |
|
1855 |
// Is the value linked ?
|
1856 |
var link = row.find('.pagelayer-elp-padding-div .fa');
|
1857 |
+
var isLinked = 1;
|
1858 |
+
//isLinked = isLinked == 2 ? false : true;
|
1859 |
//console.log(isLinked);
|
1860 |
+
var tmp_val = val[0];
|
1861 |
+
|
1862 |
+
for(var p_val in val){
|
1863 |
+
|
1864 |
+
// Check if unlinked
|
1865 |
+
if(tmp_val != val[p_val] ){
|
1866 |
+
isLinked = 0;
|
1867 |
+
}
|
1868 |
+
tmp_val = val[p_val];
|
1869 |
+
}
|
1870 |
|
1871 |
if(isLinked){
|
1872 |
link.addClass('pagelayer-elp-padding-linked');
|
1885 |
link.addClass('pagelayer-elp-padding-linked');
|
1886 |
}
|
1887 |
|
|
|
|
|
1888 |
});
|
1889 |
|
1890 |
row.find('input').on('input', function(){
|
1979 |
|
1980 |
}
|
1981 |
|
1982 |
+
// The filter property
|
1983 |
+
function pagelayer_elp_filter(row, prop){
|
1984 |
+
|
1985 |
+
var val =['','','','','','',''];
|
1986 |
+
|
1987 |
+
// Do we have a val ?
|
1988 |
+
if(!pagelayer_empty(prop.c['val'])){
|
1989 |
+
val = prop.c['val'].split(',');
|
1990 |
+
}
|
1991 |
+
|
1992 |
+
var filters = [['blur','10','0.1'],['brightness','200','1'],['contrast','200','1'],['grayscale','200','1'],['hue','360','1'],['opacity','100','1'],['saturate','200','1']];
|
1993 |
+
|
1994 |
+
var div = '<span class="pagelayer-prop-edit"><i class="fa fa-pencil"></i></span>'+
|
1995 |
+
'<div class="pagelayer-elp-filter-div">';
|
1996 |
+
|
1997 |
+
jQuery.each(val,function(key, value){
|
1998 |
+
div += '<div class="pagelayer-elp-prop-grp pagelayer-elp-filter-'+filters[key][0]+'">'+
|
1999 |
+
'<label class="pagelayer-elp-label">'+filters[key][0]+'</label>'+
|
2000 |
+
'<input class="pagelayer-elp-slider pagelayer-elp-filter-input" type="range" max="'+filters[key][1]+'" min="0" step="'+filters[key][2]+'" class="pagelayer-elp-filter-'+filters[key][0]+'" value="'+value+'"></input>'+
|
2001 |
+
'<span class="pagelayer-elp-filter-val">'+value+'</span>'+
|
2002 |
+
'</div>';
|
2003 |
+
});
|
2004 |
+
|
2005 |
+
div += '</div>';
|
2006 |
+
|
2007 |
+
row.append(div);
|
2008 |
+
|
2009 |
+
row.find('.pagelayer-prop-edit').on('click', function(){
|
2010 |
+
row.find('.pagelayer-elp-filter-div').toggleClass('pagelayer-prop-show');
|
2011 |
+
});
|
2012 |
+
|
2013 |
+
row.find('input').on('input', function(){
|
2014 |
+
var val = [];
|
2015 |
+
jQuery(this).parent().find('span').html(this.value);
|
2016 |
+
row.find('.pagelayer-elp-filter-input').each(function(){
|
2017 |
+
var value = jQuery(this).val();
|
2018 |
+
val.push(value ? value : 'none');
|
2019 |
+
});
|
2020 |
+
_pagelayer_set_atts(row, val);
|
2021 |
+
});
|
2022 |
+
|
2023 |
+
}
|
2024 |
+
|
2025 |
// The gradient property
|
2026 |
function pagelayer_elp_gradient(row, prop){
|
2027 |
|
@@ -150,10 +150,10 @@ function pagelayer_render_end_pl_row(el){
|
|
150 |
|
151 |
// Set Row parent width
|
152 |
function pagelayer_pl_row_parent_full(par){
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
}
|
158 |
|
159 |
// Row shape render
|
150 |
|
151 |
// Set Row parent width
|
152 |
function pagelayer_pl_row_parent_full(par){
|
153 |
+
var vw = jQuery('html').width();
|
154 |
+
par.css({'width': vw,'max-width': '100vw'});
|
155 |
+
par.offset({left: 0});
|
156 |
+
par.children('.pagelayer-row').css({left: 0});
|
157 |
}
|
158 |
|
159 |
// Row shape render
|
@@ -579,6 +579,7 @@
|
|
579 |
"typography": "Typography",
|
580 |
"heading_styles": "Heading Styles",
|
581 |
"text_shadow": "Text Shadow",
|
|
|
582 |
"quote": "Quote",
|
583 |
"quotes_content_label": "Content",
|
584 |
"quotation": "Quotation",
|
579 |
"typography": "Typography",
|
580 |
"heading_styles": "Heading Styles",
|
581 |
"text_shadow": "Text Shadow",
|
582 |
+
"filter": "CSS Filters",
|
583 |
"quote": "Quote",
|
584 |
"quotes_content_label": "Content",
|
585 |
"quotation": "Quotation",
|
@@ -487,6 +487,9 @@ function pagelayer_load_shortcodes(){
|
|
487 |
include_once(PAGELAYER_DIR.'/lib/pquery/gan_selector_html.php');
|
488 |
include_once(PAGELAYER_DIR.'/lib/pquery/gan_xml2array.php');
|
489 |
include_once(PAGELAYER_DIR.'/lib/pquery/pQuery.php');
|
|
|
|
|
|
|
490 |
|
491 |
}
|
492 |
|
@@ -745,4 +748,66 @@ function pagelayer_unescapeHTML($str){
|
|
745 |
$str = str_replace('&'.$k.';', $v, $str);
|
746 |
}
|
747 |
return $str;
|
748 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
487 |
include_once(PAGELAYER_DIR.'/lib/pquery/gan_selector_html.php');
|
488 |
include_once(PAGELAYER_DIR.'/lib/pquery/gan_xml2array.php');
|
489 |
include_once(PAGELAYER_DIR.'/lib/pquery/pQuery.php');
|
490 |
+
|
491 |
+
// Apply filter to load custom widgets
|
492 |
+
do_action('pagelayer_load_custom_widgets');
|
493 |
|
494 |
}
|
495 |
|
748 |
$str = str_replace('&'.$k.';', $v, $str);
|
749 |
}
|
750 |
return $str;
|
751 |
+
}
|
752 |
+
|
753 |
+
// Show promo notice on dashboard
|
754 |
+
function pagelayer_show_promo(){
|
755 |
+
|
756 |
+
global $pagelayer_promo_opts;
|
757 |
+
$opts = $pagelayer_promo_opts;
|
758 |
+
|
759 |
+
echo '
|
760 |
+
<div class="notice notice-success" id="pagelayer_promo" style="min-height:90px">
|
761 |
+
<a class="pagelayer_promo-close" href="javascript:" aria-label="Dismiss this Notice">
|
762 |
+
<span class="dashicons dashicons-dismiss"></span> Dismiss
|
763 |
+
</a>';
|
764 |
+
|
765 |
+
if(!empty($opts['image'])){
|
766 |
+
echo '<a href="'.$opts['website'].'"><img src="'.$opts['image'].'" style="float:left; margin:10px 20px 10px 10px" width="67" /></a>';
|
767 |
+
}
|
768 |
+
|
769 |
+
echo '
|
770 |
+
<p style="font-size:13px">We are glad you like <a href="'.$opts['website'].'"><b>PageLayer</b></a> and have been using it since the past few days. It is time to take the next step !</p>
|
771 |
+
<p>
|
772 |
+
'.(empty($opts['rating']) ? '' : '<a class="pagelayer_promo_button pagelayer_promo_button2" target="_blank" href="'.$opts['rating'].'">Rate it 5★\'s</a>').'
|
773 |
+
'.(empty($opts['facebook']) ? '' : '<a class="pagelayer_promo_button pagelayer_promo_button3" target="_blank" href="'.$opts['facebook'].'"><span class="dashicons dashicons-thumbs-up"></span> Facebook</a>').'
|
774 |
+
'.(empty($opts['twitter']) ? '' : '<a class="pagelayer_promo_button pagelayer_promo_button4" target="_blank" href="'.$opts['twitter'].'"><span class="dashicons dashicons-twitter"></span> Tweet</a>').'
|
775 |
+
'.(empty($opts['website']) ? '' : '<a class="pagelayer_promo_button pagelayer_promo_button4" target="_blank" href="'.$opts['website'].'">Visit our website</a>').'
|
776 |
+
</p>
|
777 |
+
</div>';
|
778 |
+
|
779 |
+
}
|
780 |
+
|
781 |
+
// Are we to show a promo ?
|
782 |
+
function pagelayer_maybe_promo($opts){
|
783 |
+
|
784 |
+
global $pagelayer_promo_opts;
|
785 |
+
|
786 |
+
// There must be an interval
|
787 |
+
if(empty($opts['interval'])){
|
788 |
+
return false;
|
789 |
+
}
|
790 |
+
|
791 |
+
// Are we to show a promo
|
792 |
+
$opt_name = 'pagelayer_promo_time';
|
793 |
+
$promo_time = get_option($opt_name);
|
794 |
+
|
795 |
+
// First time access
|
796 |
+
if(empty($promo_time)){
|
797 |
+
update_option($opt_name, time() + (!empty($opts['after']) ? $opts['after'] * 86400 : 0));
|
798 |
+
$promo_time = get_option($opt_name);
|
799 |
+
}
|
800 |
+
|
801 |
+
// Is there interval elapsed
|
802 |
+
if(time() > $promo_time){
|
803 |
+
$pagelayer_promo_opts = $opts;
|
804 |
+
add_action('admin_notices', 'pagelayer_show_promo');
|
805 |
+
}
|
806 |
+
|
807 |
+
// Are we to disable the promo
|
808 |
+
if(isset($_GET['pagelayer_promo']) && (int)$_GET['pagelayer_promo'] == 0){
|
809 |
+
update_option($opt_name, time() + ($opts['interval'] * 86400));
|
810 |
+
die('DONE');
|
811 |
+
}
|
812 |
+
|
813 |
+
}
|
@@ -48,7 +48,7 @@ class PageLayer_LiveEditor{
|
|
48 |
add_filter('the_content', array($this, 'the_content'));
|
49 |
|
50 |
// Enqueue our Editor's JS
|
51 |
-
wp_register_script('pagelayer-editor', PAGELAYER_JS.'/givejs.php?give=pagelayer-editor.js,widgets.js,'.(defined('PAGELAYER_PREMIUM') ? 'premium.js,' : '').'properties.js,
|
52 |
wp_enqueue_script('pagelayer-editor');
|
53 |
|
54 |
// Enqueue the Editor's CSS
|
@@ -69,6 +69,9 @@ class PageLayer_LiveEditor{
|
|
69 |
|
70 |
// Hide Admin Bar
|
71 |
show_admin_bar(false);
|
|
|
|
|
|
|
72 |
|
73 |
// Add the footer scripts
|
74 |
add_action('wp_footer', array($this, 'wp_footer'), 1);
|
48 |
add_filter('the_content', array($this, 'the_content'));
|
49 |
|
50 |
// Enqueue our Editor's JS
|
51 |
+
wp_register_script('pagelayer-editor', PAGELAYER_JS.'/givejs.php?give=pagelayer-editor.js,widgets.js,'.(defined('PAGELAYER_PREMIUM') ? 'premium.js,' : '').'properties.js,base64.js,slimscroll.js,vanilla-picker.min.js,trumbowyg.js,trumbowyg-pagelayer.js,pen.js', array('jquery'), PAGELAYER_VERSION);
|
52 |
wp_enqueue_script('pagelayer-editor');
|
53 |
|
54 |
// Enqueue the Editor's CSS
|
69 |
|
70 |
// Hide Admin Bar
|
71 |
show_admin_bar(false);
|
72 |
+
|
73 |
+
// Load custom widgets
|
74 |
+
do_action('pagelayer_custom_editor_enqueue');
|
75 |
|
76 |
// Add the footer scripts
|
77 |
add_action('wp_footer', array($this, 'wp_footer'), 1);
|
@@ -82,6 +82,24 @@ if(!defined('PAGELAYER_VERSION')) {
|
|
82 |
}
|
83 |
}
|
84 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
85 |
$post_type = array('post', 'page', 'product');
|
86 |
|
87 |
$support_ept = get_option( 'pl_support_ept', ['post', 'page']);
|
@@ -93,7 +111,7 @@ if(!defined('PAGELAYER_VERSION')) {
|
|
93 |
<h1>PageLayer Editor</h1>
|
94 |
<p>Welcome To PageLayer</p>
|
95 |
<div class="tabs-wrapper">
|
96 |
-
<h2 class="nav-tab-wrapper">
|
97 |
<a href="#general" class="nav-tab">General</a>
|
98 |
<a href="#settings" class="nav-tab ">Settings</a>
|
99 |
<a href="#support" class="nav-tab ">Support</a>
|
@@ -127,6 +145,15 @@ if(!defined('PAGELAYER_VERSION')) {
|
|
127 |
<p>Set the custom width of the content area. The default width set is 1170px</p>
|
128 |
</td>
|
129 |
<tr>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
130 |
</table>
|
131 |
</div>
|
132 |
<div class="pagelayer-tab-panel" id="support">
|
82 |
}
|
83 |
}
|
84 |
|
85 |
+
if(isset($_REQUEST['pagelayer_between_widgets'])){
|
86 |
+
|
87 |
+
$space_widgets = $_REQUEST['pagelayer_between_widgets'];
|
88 |
+
|
89 |
+
if ( get_option( 'pagelayer_between_widgets' ) !== false ) {
|
90 |
+
|
91 |
+
// The option already exists, so we just update it.
|
92 |
+
update_option( 'pagelayer_between_widgets', $space_widgets );
|
93 |
+
|
94 |
+
} else {
|
95 |
+
|
96 |
+
// The option hasn't been added yet. We'll add it with $autoload set to 'no'.
|
97 |
+
$deprecated = null;
|
98 |
+
$autoload = 'no';
|
99 |
+
add_option( 'pagelayer_between_widgets', $space_widgets, $deprecated, $autoload );
|
100 |
+
}
|
101 |
+
}
|
102 |
+
|
103 |
$post_type = array('post', 'page', 'product');
|
104 |
|
105 |
$support_ept = get_option( 'pl_support_ept', ['post', 'page']);
|
111 |
<h1>PageLayer Editor</h1>
|
112 |
<p>Welcome To PageLayer</p>
|
113 |
<div class="tabs-wrapper">
|
114 |
+
<h2 class="nav-tab-wrapper pagelayer-wrapper">
|
115 |
<a href="#general" class="nav-tab">General</a>
|
116 |
<a href="#settings" class="nav-tab ">Settings</a>
|
117 |
<a href="#support" class="nav-tab ">Support</a>
|
145 |
<p>Set the custom width of the content area. The default width set is 1170px</p>
|
146 |
</td>
|
147 |
<tr>
|
148 |
+
<tr>
|
149 |
+
<th>Space Between Widgets</th>
|
150 |
+
<td>
|
151 |
+
<input name="pagelayer_between_widgets" type="number" step="1" min="0" max="500" placeholder="15" <?php if(get_option('pagelayer_between_widgets')){
|
152 |
+
echo 'value="'.get_option('pagelayer_between_widgets').'"';
|
153 |
+
}?>>
|
154 |
+
<p>Set the Space Between Widgets. The default Space set is 15px</p>
|
155 |
+
</td>
|
156 |
+
<tr>
|
157 |
</table>
|
158 |
</div>
|
159 |
<div class="pagelayer-tab-panel" id="support">
|
@@ -352,6 +352,11 @@ $pagelayer->styles['ele_styles'] = [
|
|
352 |
'label' => __pl('z-index'),
|
353 |
'css' => 'z-index: {{val}}',
|
354 |
],
|
|
|
|
|
|
|
|
|
|
|
355 |
];
|
356 |
|
357 |
$pagelayer->styles['border_styles'] = [
|
@@ -411,6 +416,12 @@ $pagelayer->styles['border_styles'] = [
|
|
411 |
'show' => ['border_hover' => ''],
|
412 |
'css' => 'border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}}; -webkit-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};-moz-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};',
|
413 |
],
|
|
|
|
|
|
|
|
|
|
|
|
|
414 |
'border_type_hover' => [
|
415 |
'type' => 'select',
|
416 |
'label' => __pl('border_type'),
|
@@ -455,6 +466,12 @@ $pagelayer->styles['border_styles'] = [
|
|
455 |
'show' => ['border_hover' => 'hover'],
|
456 |
'css' => ['{{element}}:hover' => 'border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}}; -webkit-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};-moz-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};'],
|
457 |
],
|
|
|
|
|
|
|
|
|
|
|
|
|
458 |
];
|
459 |
|
460 |
$pagelayer->styles['animation_styles'] = [
|
@@ -570,11 +587,13 @@ $pagelayer->styles['custom_styles'] = [
|
|
570 |
'type' => 'text',
|
571 |
'label' => __pl('ele_id'),
|
572 |
'desc' => __pl('ele_id_desc'),
|
|
|
573 |
],
|
574 |
'ele_classes' => [
|
575 |
'type' => 'text',
|
576 |
'label' => __pl('ele_classes'),
|
577 |
'desc' => __pl('ele_classes_desc'),
|
|
|
578 |
],
|
579 |
];
|
580 |
|
@@ -605,8 +624,9 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_row', array(
|
|
605 |
'stretch' => array(
|
606 |
'type' => 'select',
|
607 |
'label' => __pl('con_width'),
|
|
|
608 |
'list' => array(
|
609 |
-
'' => __pl('auto'),
|
610 |
'full' => __pl('full_width'),
|
611 |
'fixed' => __pl('fixed_width')
|
612 |
),
|
@@ -681,12 +701,13 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_row', array(
|
|
681 |
'type' => 'select',
|
682 |
'label' => __pl('column_pos'),
|
683 |
'default' => 'default',
|
684 |
-
'css' => '-webkit-box-align: {{val}}; -webkit-align-items: {{val}}; -ms-flex-align: {{val}}; align-items: {{val}};',
|
685 |
'list' => array(
|
686 |
'' => __pl('default'),
|
687 |
-
'
|
688 |
'center' => __pl('center'),
|
689 |
-
'end' => __pl('bottom')
|
|
|
690 |
),
|
691 |
),
|
692 |
'content_pos' => array(
|
@@ -698,7 +719,8 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_row', array(
|
|
698 |
'' => __pl('default'),
|
699 |
'baseline' => __pl('top'),
|
700 |
'center' => __pl('center'),
|
701 |
-
'end' => __pl('bottom')
|
|
|
702 |
),
|
703 |
),
|
704 |
),
|
@@ -956,7 +978,6 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_row', array(
|
|
956 |
'overlay_transperancy_hover' => array(
|
957 |
'type' => 'slider',
|
958 |
'label' => __pl('overlay_transperancy_hover'),
|
959 |
-
'default' => 0.5,
|
960 |
'min' => 0,
|
961 |
'max' => 1,
|
962 |
'step' => 0.1,
|
@@ -1109,7 +1130,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_col', array(
|
|
1109 |
<img src="{{{parallax_img-url}}}">
|
1110 |
</div>
|
1111 |
<div if="{{overlay_type}}" class="pagelayer-background-overlay"></div>
|
1112 |
-
<div class="pagelayer-col-holder"></div>',
|
1113 |
'holder' => '.pagelayer-col-holder',
|
1114 |
'params' => array(
|
1115 |
'content_pos' => array(
|
@@ -1120,15 +1141,15 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_col', array(
|
|
1120 |
'{{element}} .pagelayer-col-holder' => 'width:100%'],
|
1121 |
'list' => array(
|
1122 |
'' => __pl('default'),
|
1123 |
-
'
|
1124 |
'center' => __pl('center'),
|
1125 |
-
'end' => __pl('bottom')
|
1126 |
)
|
1127 |
),
|
1128 |
'widget_space' => array(
|
1129 |
'type' => 'spinner',
|
1130 |
'label' => __pl('widget_space'),
|
1131 |
-
'default' => 15,
|
1132 |
'min' => -1000,
|
1133 |
'step' => 1,
|
1134 |
'max' => 1000,
|
@@ -2732,6 +2753,12 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_image', array(
|
|
2732 |
'min' => 0,
|
2733 |
'max' => 100,
|
2734 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
2735 |
'img_shadow' => array(
|
2736 |
'type' => 'shadow',
|
2737 |
'label' => __pl('shadow'),
|
@@ -5338,6 +5365,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_shortcodes', array(
|
|
5338 |
'group' => 'other',
|
5339 |
'func' => 'pagelayer_sc_shortcodes',
|
5340 |
'innerHTML' => 'data',
|
|
|
5341 |
'html' => '<div class="pagelayer-shortcodes-container">{{{shortcode}}}</div>',
|
5342 |
'params' => array(
|
5343 |
'data' => array(
|
@@ -5395,7 +5423,7 @@ pagelayer_add_shortcode(PAGELAYER_SC_PREFIX.'_testimonial', array(
|
|
5395 |
'name' => __pl('testimonial'),
|
5396 |
'group' => 'other',
|
5397 |
'func' => 'pagelayer_sc_testimonial',
|
5398 |
-
'innerHTML' => '
|
5399 |
'html' => '<div if="{{quote_content}}" class="pagelayer-testimonial-content">{{quote_content}}</div>
|
5400 |
<div class="pagelayer-testimonial-author-details">
|
5401 |
<div class="pagelayer-{{image_position}}">
|
352 |
'label' => __pl('z-index'),
|
353 |
'css' => 'z-index: {{val}}',
|
354 |
],
|
355 |
+
'ele_shadow' => [
|
356 |
+
'type' => 'shadow',
|
357 |
+
'label' => __pl('shadow'),
|
358 |
+
'css' => 'box-shadow: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}} !important;',
|
359 |
+
]
|
360 |
];
|
361 |
|
362 |
$pagelayer->styles['border_styles'] = [
|
416 |
'show' => ['border_hover' => ''],
|
417 |
'css' => 'border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}}; -webkit-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};-moz-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};',
|
418 |
],
|
419 |
+
'border_shadow' => [
|
420 |
+
'type' => 'shadow',
|
421 |
+
'label' => __pl('text_shadow'),
|
422 |
+
'css' => ['{{element}}' => 'box-shadow: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}} !important;'],
|
423 |
+
'show' => ['border_hover' => ''],
|
424 |
+
],
|
425 |
'border_type_hover' => [
|
426 |
'type' => 'select',
|
427 |
'label' => __pl('border_type'),
|
466 |
'show' => ['border_hover' => 'hover'],
|
467 |
'css' => ['{{element}}:hover' => 'border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}}; -webkit-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};-moz-border-radius: {{val[0]}} {{val[1]}} {{val[2]}} {{val[3]}};'],
|
468 |
],
|
469 |
+
'border_shadow_hover' => [
|
470 |
+
'type' => 'shadow',
|
471 |
+
'label' => __pl('text_shadow'),
|
472 |
+
'css' => ['{{element}}:hover' => 'box-shadow: {{val[0]}}px {{val[1]}}px {{val[2]}}px {{val[3]}} !important;'],
|
473 |
+
'show' => ['border_hover' => 'hover'],
|
474 |
+
],
|
475 |
];
|
476 |
|
477 |
$pagelayer->styles['animation_styles'] = [
|
587 |
'type' => 'text',
|
588 |
'label' => __pl('ele_id'),
|
589 |
'desc' => __pl('ele_id_desc'),
|
590 |
+
'addAttr' => 'id="{{ele_id}}"',
|
591 |
],
|
592 |
'ele_classes' => [
|
593 |
'type' => 'text',
|
594 |
'label' => __pl('ele_classes'),
|
595 |
'desc' => __pl('ele_classes_desc'),
|
596 |
+
'addClass' => '{{val}}',
|
597 |
],
|
598 |
];
|
599 |
|
624 |
'stretch' => array(
|
625 |
'type' => 'select',
|
626 |
'label' => __pl('con_width'),
|
627 |
+
'default' => 'auto',
|
628 |
'list' => array(
|
629 |
+
'auto' => __pl('auto'),
|
630 |
'full' => __pl('full_width'),
|
631 |
'fixed' => __pl('fixed_width')
|
632 |
),
|
701 |
'type' => 'select',
|
702 |
'label' => __pl('column_pos'),
|
703 |
'default' => 'default',
|
704 |
+
'css' => ['{{element}}' => '-webkit-box-align: {{val}}; -webkit-align-items: {{val}}; -ms-flex-align: {{val}}; align-items: {{val}};'],
|
705 |
'list' => array(
|
706 |
'' => __pl('default'),
|
707 |
+
'flex-start' => __pl('top'),
|
708 |
'center' => __pl('center'),
|
709 |
+
'flex-end' => __pl('bottom'),
|
710 |
+
'stretch' => __pl('Stretch')
|
711 |
),
|
712 |
),
|
713 |
'content_pos' => array(
|
719 |
'' => __pl('default'),
|
720 |
'baseline' => __pl('top'),
|
721 |
'center' => __pl('center'),
|
722 |
+
'end' => __pl('bottom'),
|
723 |
+
'stretch' => __pl('Stretch')
|
724 |
),
|
725 |
),
|
726 |
),
|
978 |
'overlay_transperancy_hover' => array(
|
979 |
'type' => 'slider',
|
980 |
'label' => __pl('overlay_transperancy_hover'),
|
|
|
981 |
'min' => 0,
|
982 |
'max' => 1,
|
983 |
'step' => 0.1,
|
1130 |
<img src="{{{parallax_img-url}}}">
|
1131 |
</div>
|
1132 |
<div if="{{overlay_type}}" class="pagelayer-background-overlay"></div>
|
1133 |
+
<div class="pagelayer-col-holder"></div>',
|
1134 |
'holder' => '.pagelayer-col-holder',
|
1135 |
'params' => array(
|
1136 |
'content_pos' => array(
|
1141 |
'{{element}} .pagelayer-col-holder' => 'width:100%'],
|
1142 |
'list' => array(
|
1143 |
'' => __pl('default'),
|
1144 |
+
'flex-start' => __pl('top'),
|
1145 |
'center' => __pl('center'),
|
1146 |
+
'flex-end' => __pl('bottom')
|
1147 |
)
|
1148 |
),
|
1149 |
'widget_space' => array(
|
1150 |
'type' => 'spinner',
|
1151 |
'label' => __pl('widget_space'),
|
1152 |
+
'default' => get_option('pagelayer_between_widgets', 15),
|
1153 |
'min' => -1000,
|
1154 |
'step' => 1,
|
1155 |
'max' => 1000,
|
2753 |
'min' => 0,
|
2754 |
'max' => 100,
|
2755 |
),
|
2756 |
+
'img_filter' => array(
|
2757 |
+
'type' => 'filter',
|
2758 |
+
'label' => __pl('filter'),
|
2759 |
+
'default' => '0,100,100,0,0,100,100',
|
2760 |
+
'css' => ['{{element}} img' => 'filter: blur({{val[0]}}px) brightness({{val[1]}}%) contrast({{val[2]}}%) grayscale({{val[3]}}%) hue-rotate({{val[4]}}deg) opacity({{val[5]}}%) saturate({{val[6]}}%)'],
|
2761 |
+
),
|
2762 |
'img_shadow' => array(
|
2763 |
'type' => 'shadow',
|
2764 |
'label' => __pl('shadow'),
|
5365 |
'group' => 'other',
|
5366 |
'func' => 'pagelayer_sc_shortcodes',
|
5367 |
'innerHTML' => 'data',
|
5368 |
+
'holder' => '.pagelayer-shortcodes-container',
|
5369 |
'html' => '<div class="pagelayer-shortcodes-container">{{{shortcode}}}</div>',
|
5370 |
'params' => array(
|
5371 |
'data' => array(
|
5423 |
'name' => __pl('testimonial'),
|
5424 |
'group' => 'other',
|
5425 |
'func' => 'pagelayer_sc_testimonial',
|
5426 |
+
'innerHTML' => 'quote_content',
|
5427 |
'html' => '<div if="{{quote_content}}" class="pagelayer-testimonial-content">{{quote_content}}</div>
|
5428 |
<div class="pagelayer-testimonial-author-details">
|
5429 |
<div class="pagelayer-{{image_position}}">
|
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: PageLayer
|
4 |
Plugin URI: http://wordpress.org/plugins/pagelayer/
|
5 |
Description: PageLayer is a WordPress page builder plugin. Its very easy to use and very light on the browser.
|
6 |
-
Version: 0.9.
|
7 |
Author: Pagelayer Team
|
8 |
Author URI: https://pagelayer.com/
|
9 |
License: LGPL v2.1
|
3 |
Plugin Name: PageLayer
|
4 |
Plugin URI: http://wordpress.org/plugins/pagelayer/
|
5 |
Description: PageLayer is a WordPress page builder plugin. Its very easy to use and very light on the browser.
|
6 |
+
Version: 0.9.2
|
7 |
Author: Pagelayer Team
|
8 |
Author URI: https://pagelayer.com/
|
9 |
License: LGPL v2.1
|
@@ -3,7 +3,7 @@ Contributors: pagelayer
|
|
3 |
Tags: page builder, editor, landing page, drag-and-drop, pagelayer, softaculous, visual editor, wysiwyg, design, maintenance mode, coming soon, under construction, website builder, landing page builder, front-end builder
|
4 |
Requires at least: 4.7
|
5 |
Tested up to: 5.1
|
6 |
-
Stable tag: 0.9.
|
7 |
License: LGPL v2.1
|
8 |
License URI: http://www.gnu.org/licenses/lgpl-2.1.html
|
9 |
|
@@ -112,6 +112,17 @@ Do you have questions related to PageLayer ? Use the following links :
|
|
112 |
|
113 |
== Changelog ==
|
114 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
115 |
= 0.9.1 (Apr 8, 2019) =
|
116 |
* Fixed the hover option icon size
|
117 |
* Fixed the video overlay issue
|
3 |
Tags: page builder, editor, landing page, drag-and-drop, pagelayer, softaculous, visual editor, wysiwyg, design, maintenance mode, coming soon, under construction, website builder, landing page builder, front-end builder
|
4 |
Requires at least: 4.7
|
5 |
Tested up to: 5.1
|
6 |
+
Stable tag: 0.9.2
|
7 |
License: LGPL v2.1
|
8 |
License URI: http://www.gnu.org/licenses/lgpl-2.1.html
|
9 |
|
112 |
|
113 |
== Changelog ==
|
114 |
|
115 |
+
= 0.9.2 (Apr 16, 2019) =
|
116 |
+
* [Feature] The drag engine is now much faster
|
117 |
+
* [Feature] Added stretch to the row handler
|
118 |
+
* [Feature] You can now drag on the Add Widget utility
|
119 |
+
* [Feature] Image filter properties have been added
|
120 |
+
* [Task] Progress Bars and Counters will be loaded when the widget becomes visible and not on pageload
|
121 |
+
* [Bug-Fix] If a property was clicked which showed new widget properties in the left panel, then the active tab used to lose focus. This is fixed.
|
122 |
+
* [Bug-Fix] The unit which was saved was not being shown in the properties. This is fixed.
|
123 |
+
* [Bug-Fix] For Tabs widget the tab name was not updated in the properties when changed. This is fixed.
|
124 |
+
* [Bug-Fix] For padding and linked values in the widget properties was not shown. This is fixed.
|
125 |
+
|
126 |
= 0.9.1 (Apr 8, 2019) =
|
127 |
* Fixed the hover option icon size
|
128 |
* Fixed the video overlay issue
|