Version Description
- Fixed #742, #731, #728, #726, Shortcodes#29
- Fixed:
addable-popup
option type wasn't saved in Customizer
Download this release
Release Info
Developer | Unyson |
Plugin | Unyson |
Version | 2.4.1 |
Comparing to | |
See all releases |
Code changes from version 2.4.0 to 2.4.1
- framework/core/components/backend.php +1 -0
- framework/core/components/extensions/manager/views/extension.php +1 -1
- framework/helpers/general.php +20 -4
- framework/includes/customizer/class--fw-customizer-setting-option.php +1 -1
- framework/includes/option-types/addable-box/class-fw-option-type-addable-box.php +1 -1
- framework/includes/option-types/addable-box/static/css/styles.css +24 -5
- framework/includes/option-types/addable-popup/class-fw-option-type-addable-popup.php +1 -1
- framework/includes/option-types/addable-popup/views/view.php +1 -1
- framework/includes/option-types/multi-select/static/js/scripts.js +60 -51
- framework/includes/option-types/range-slider/class-fw-option-type-range-slider.php +1 -1
- framework/includes/option-types/slider/class-fw-option-type-slider.php +1 -1
- framework/manifest.php +1 -1
- framework/static/css/backend-options.css +4 -0
- framework/static/js/fw.js +66 -8
- readme.txt +6 -2
- unyson.php +1 -1
framework/core/components/backend.php
CHANGED
@@ -328,6 +328,7 @@ final class _FW_Component_Backend {
|
|
328 |
'done' => __( 'Done', 'fw' ),
|
329 |
'ah_sorry' => __( 'Ah, Sorry', 'fw' ),
|
330 |
'save' => __( 'Save', 'fw' ),
|
|
|
331 |
),
|
332 |
) );
|
333 |
}
|
328 |
'done' => __( 'Done', 'fw' ),
|
329 |
'ah_sorry' => __( 'Ah, Sorry', 'fw' ),
|
330 |
'save' => __( 'Save', 'fw' ),
|
331 |
+
'reset' => __( 'Reset', 'fw' ),
|
332 |
),
|
333 |
) );
|
334 |
}
|
framework/core/components/extensions/manager/views/extension.php
CHANGED
@@ -60,7 +60,7 @@ if (!$installed_data && !$is_compatible) {
|
|
60 |
<img height="128" src="<?php echo esc_attr($thumbnail) ?>" class="fw-extensions-list-item-thumbnail" alt="Thumbnail"/>
|
61 |
</div>
|
62 |
<div class="fw-extension-list-item-table-cell cell-2">
|
63 |
-
<h3 class="fw-extensions-list-item-title"
|
64 |
if ($is_active && ($extension_link = fw()->extensions->get($name)->_get_link())) {
|
65 |
echo fw_html_tag('a', array('href' => $extension_link), $title);
|
66 |
} else {
|
60 |
<img height="128" src="<?php echo esc_attr($thumbnail) ?>" class="fw-extensions-list-item-thumbnail" alt="Thumbnail"/>
|
61 |
</div>
|
62 |
<div class="fw-extension-list-item-table-cell cell-2">
|
63 |
+
<h3 class="fw-extensions-list-item-title"<?php if ($is_active): ?> title="v<?php echo esc_attr(fw()->extensions->get($name)->manifest->get_version()) ?>"<?php endif; ?>><?php
|
64 |
if ($is_active && ($extension_link = fw()->extensions->get($name)->_get_link())) {
|
65 |
echo fw_html_tag('a', array('href' => $extension_link), $title);
|
66 |
} else {
|
framework/helpers/general.php
CHANGED
@@ -919,11 +919,27 @@ function fw_get_options_values_from_input(array $options, $input_array = null) {
|
|
919 |
}
|
920 |
|
921 |
/**
|
922 |
-
*
|
923 |
-
*
|
|
|
924 |
*/
|
925 |
-
function fw_html_attr_name_to_array_multi_key($attr_name) {
|
926 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
927 |
$attr_name = str_replace('][', '/', $attr_name);
|
928 |
$attr_name = str_replace('[', '/', $attr_name);
|
929 |
$attr_name = str_replace(']', '', $attr_name);
|
919 |
}
|
920 |
|
921 |
/**
|
922 |
+
* @param $attr_name
|
923 |
+
* @param bool $set_mode
|
924 |
+
* @return mixed
|
925 |
*/
|
926 |
+
function fw_html_attr_name_to_array_multi_key($attr_name, $set_mode = false) {
|
927 |
+
if ($set_mode) {
|
928 |
+
/**
|
929 |
+
* The key will be used to set value in array
|
930 |
+
* 'hello[world][]' -> 'hello/world/'
|
931 |
+
* $array['hello']['world'][] = $value;
|
932 |
+
*/
|
933 |
+
$attr_name = str_replace('[]', '/', $attr_name);
|
934 |
+
} else {
|
935 |
+
/**
|
936 |
+
* The key will be used to get value from array
|
937 |
+
* 'hello[world][]' -> 'hello/world'
|
938 |
+
* $value = $array['hello']['world'];
|
939 |
+
*/
|
940 |
+
$attr_name = str_replace('[]', '', $attr_name);
|
941 |
+
}
|
942 |
+
|
943 |
$attr_name = str_replace('][', '/', $attr_name);
|
944 |
$attr_name = str_replace('[', '/', $attr_name);
|
945 |
$attr_name = str_replace(']', '', $attr_name);
|
framework/includes/customizer/class--fw-customizer-setting-option.php
CHANGED
@@ -22,7 +22,7 @@ class _FW_Customizer_Setting_Option extends WP_Customize_Setting {
|
|
22 |
|
23 |
foreach ($value as $var) {
|
24 |
fw_aks(
|
25 |
-
fw_html_attr_name_to_array_multi_key($var['name']),
|
26 |
$var['value'],
|
27 |
$POST
|
28 |
);
|
22 |
|
23 |
foreach ($value as $var) {
|
24 |
fw_aks(
|
25 |
+
fw_html_attr_name_to_array_multi_key($var['name'], true),
|
26 |
$var['value'],
|
27 |
$POST
|
28 |
);
|
framework/includes/option-types/addable-box/class-fw-option-type-addable-box.php
CHANGED
@@ -94,7 +94,7 @@ class FW_Option_Type_Addable_Box extends FW_Option_Type
|
|
94 |
{
|
95 |
$box_options = array();
|
96 |
|
97 |
-
fw_collect_options( $box_options, $options, array(
|
98 |
'limit_option_types' => false,
|
99 |
'limit_container_types' => array('group'), // Use only groups and options
|
100 |
'limit_level' => 1,
|
94 |
{
|
95 |
$box_options = array();
|
96 |
|
97 |
+
fw_collect_options( $box_options, $option['box-options'], array(
|
98 |
'limit_option_types' => false,
|
99 |
'limit_container_types' => array('group'), // Use only groups and options
|
100 |
'limit_level' => 1,
|
framework/includes/option-types/addable-box/static/css/styles.css
CHANGED
@@ -5,6 +5,14 @@
|
|
5 |
.fw-option-type-addable-box > .fw-option-boxes.ui-sortable > .fw-option-box > .fw-postbox > h3.hndle {
|
6 |
cursor: move !important; /* to rewrite .fw-postbox h3.hndle */
|
7 |
word-break: break-all; /* if box text is too long, do not move controls outside box */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
}
|
9 |
|
10 |
#wpbody-content .fw-option-type-addable-box .metabox-holder {
|
@@ -24,20 +32,31 @@
|
|
24 |
vertical-align: middle;
|
25 |
}
|
26 |
|
|
|
|
|
|
|
|
|
27 |
|
28 |
/* Controls */
|
29 |
|
|
|
30 |
.fw-option-type-addable-box > .fw-option-boxes > .fw-option-box h3.hndle .fw-html-after-title {
|
31 |
-
|
32 |
-
|
33 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
}
|
35 |
|
36 |
-
.fw-option-type-addable-box > .fw-option-boxes > .fw-option-box h3.hndle .fw-option-box-controls .fw-option-box-control {
|
37 |
text-decoration: none;
|
38 |
}
|
39 |
|
40 |
-
.fw-option-type-addable-box > .fw-option-boxes > .fw-option-box h3.hndle .fw-option-box-controls .fw-option-box-control-wrapper {
|
41 |
color: #cccccc;
|
42 |
}
|
43 |
|
5 |
.fw-option-type-addable-box > .fw-option-boxes.ui-sortable > .fw-option-box > .fw-postbox > h3.hndle {
|
6 |
cursor: move !important; /* to rewrite .fw-postbox h3.hndle */
|
7 |
word-break: break-all; /* if box text is too long, do not move controls outside box */
|
8 |
+
position: relative;
|
9 |
+
}
|
10 |
+
|
11 |
+
.fw-option-type-addable-box > .fw-option-boxes.ui-sortable > .fw-option-box > .fw-postbox > h3.hndle > span {
|
12 |
+
overflow: hidden;
|
13 |
+
white-space: nowrap;
|
14 |
+
max-width: 100%;
|
15 |
+
display: block;
|
16 |
}
|
17 |
|
18 |
#wpbody-content .fw-option-type-addable-box .metabox-holder {
|
32 |
vertical-align: middle;
|
33 |
}
|
34 |
|
35 |
+
.fw-option-type-addable-box .fw-backend-option-design-customizer {
|
36 |
+
padding: 15px;
|
37 |
+
}
|
38 |
+
|
39 |
|
40 |
/* Controls */
|
41 |
|
42 |
+
|
43 |
.fw-option-type-addable-box > .fw-option-boxes > .fw-option-box h3.hndle .fw-html-after-title {
|
44 |
+
position: absolute;
|
45 |
+
top: 0;
|
46 |
+
right: 27px;
|
47 |
+
display: block;
|
48 |
+
height: 100%;
|
49 |
+
background-color: #FFF;
|
50 |
+
box-sizing: border-box;
|
51 |
+
padding: 0 3px;
|
52 |
+
padding-top: inherit;
|
53 |
}
|
54 |
|
55 |
+
.fw-option-type-addable-box > .fw-option-boxes > .fw-option-box h3.hndle .fw-html-after-title .fw-option-box-controls .fw-option-box-control {
|
56 |
text-decoration: none;
|
57 |
}
|
58 |
|
59 |
+
.fw-option-type-addable-box > .fw-option-boxes > .fw-option-box h3.hndle .fw-html-after-title .fw-option-box-controls .fw-option-box-control-wrapper {
|
60 |
color: #cccccc;
|
61 |
}
|
62 |
|
framework/includes/option-types/addable-popup/class-fw-option-type-addable-popup.php
CHANGED
@@ -110,7 +110,7 @@ class FW_Option_Type_Addable_Popup extends FW_Option_Type
|
|
110 |
|
111 |
$values = array_map('json_decode', $input_value, array_fill(0, count($input_value), true));
|
112 |
|
113 |
-
if($option['limit']){
|
114 |
$values= array_slice($values, 0 , $option['limit']);
|
115 |
}
|
116 |
|
110 |
|
111 |
$values = array_map('json_decode', $input_value, array_fill(0, count($input_value), true));
|
112 |
|
113 |
+
if ($option['limit']) {
|
114 |
$values= array_slice($values, 0 , $option['limit']);
|
115 |
}
|
116 |
|
framework/includes/option-types/addable-popup/views/view.php
CHANGED
@@ -21,7 +21,7 @@ $increment_placeholder = '###-addable-popup-increment-'. fw_rand_md5() .'-###';
|
|
21 |
<div class="item default">
|
22 |
<div class="input-wrapper">
|
23 |
<?php echo fw()->backend->option_type('hidden')->render('', array('value' => '[]'), array(
|
24 |
-
'id_prefix' => $data['id_prefix'] . $id . '-' . $increment_placeholder
|
25 |
'name_prefix' => $data['name_prefix'] . '[' . $id . ']',
|
26 |
));?>
|
27 |
</div>
|
21 |
<div class="item default">
|
22 |
<div class="input-wrapper">
|
23 |
<?php echo fw()->backend->option_type('hidden')->render('', array('value' => '[]'), array(
|
24 |
+
'id_prefix' => $data['id_prefix'] . $id . '-' . $increment_placeholder,
|
25 |
'name_prefix' => $data['name_prefix'] . '[' . $id . ']',
|
26 |
));?>
|
27 |
</div>
|
framework/includes/option-types/multi-select/static/js/scripts.js
CHANGED
@@ -1,60 +1,69 @@
|
|
1 |
-
function
|
2 |
-
var
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
item.selectize({
|
8 |
-
maxItems: ( limit > 0 ) ? limit : null,
|
9 |
-
delimiter: '/*/',
|
10 |
-
valueField: 'val',
|
11 |
-
labelField: 'title',
|
12 |
-
searchField: 'title',
|
13 |
-
options: JSON.parse(item.attr('data-options')),
|
14 |
-
create: false,
|
15 |
-
onType: function (value) {
|
16 |
-
if (population == 'array') {
|
17 |
-
return;
|
18 |
-
}
|
19 |
|
20 |
-
|
21 |
-
|
22 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
var data = {
|
28 |
-
action: 'admin_action_get_ajax_response',
|
29 |
-
data: {
|
30 |
-
string: value,
|
31 |
-
type: population,
|
32 |
-
names: source
|
33 |
-
}
|
34 |
-
};
|
35 |
-
|
36 |
-
xhr = jQuery.post(
|
37 |
-
ajaxurl,
|
38 |
-
data,
|
39 |
-
function (response) {
|
40 |
-
callback(response.data)
|
41 |
-
}
|
42 |
-
)
|
43 |
-
});
|
44 |
|
45 |
-
|
46 |
-
|
47 |
-
}
|
48 |
|
49 |
-
|
50 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
51 |
|
52 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
|
54 |
-
|
55 |
-
fw_option_multi_select_initialize(jQuery(this));
|
56 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
57 |
|
58 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
59 |
});
|
60 |
-
});
|
1 |
+
(function ($) {
|
2 |
+
var fw_option_multi_select_initialize = function(item) {
|
3 |
+
var population = item.attr('data-population');
|
4 |
+
var source = item.attr('data-source');
|
5 |
+
var limit = parseInt(item.attr('data-limit'));
|
6 |
+
var xhr;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
|
8 |
+
item.selectize({
|
9 |
+
maxItems: ( limit > 0 ) ? limit : null,
|
10 |
+
delimiter: '/*/',
|
11 |
+
valueField: 'val',
|
12 |
+
labelField: 'title',
|
13 |
+
searchField: 'title',
|
14 |
+
options: JSON.parse(item.attr('data-options')),
|
15 |
+
create: false,
|
16 |
+
onType: function (value) {
|
17 |
+
if (population == 'array') {
|
18 |
+
return;
|
19 |
+
}
|
20 |
|
21 |
+
if (value.length < 2) {
|
22 |
+
return;
|
23 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
|
25 |
+
this.load(function (callback) {
|
26 |
+
xhr && xhr.abort();
|
|
|
27 |
|
28 |
+
var data = {
|
29 |
+
action: 'admin_action_get_ajax_response',
|
30 |
+
data: {
|
31 |
+
string: value,
|
32 |
+
type: population,
|
33 |
+
names: source
|
34 |
+
}
|
35 |
+
};
|
36 |
|
37 |
+
xhr = $.post(
|
38 |
+
ajaxurl,
|
39 |
+
data,
|
40 |
+
function (response) {
|
41 |
+
callback(response.data)
|
42 |
+
}
|
43 |
+
)
|
44 |
+
});
|
45 |
|
46 |
+
}
|
|
|
47 |
});
|
48 |
+
};
|
49 |
+
|
50 |
+
fwEvents.on('fw:options:init', function (data) {
|
51 |
+
data.$elements
|
52 |
+
.find('.fw-option-type-multi-select:not(.initialized)')
|
53 |
+
.each(function () {
|
54 |
+
fw_option_multi_select_initialize($(this));
|
55 |
+
});
|
56 |
|
57 |
+
/*
|
58 |
+
* WARNING:
|
59 |
+
*
|
60 |
+
* data.$elements.find is intentionally looked up twice instead of cached
|
61 |
+
* this is done because when fw_option_multi_select_initialize is called
|
62 |
+
* the selectize plugin inserts an element which copies the
|
63 |
+
* `fw-option-type-multi-select` class, thus making the cache invalid.
|
64 |
+
*/
|
65 |
+
data.$elements
|
66 |
+
.find('.fw-option-type-multi-select:not(.initialized)')
|
67 |
+
.addClass('initialized');
|
68 |
});
|
69 |
+
})(jQuery);
|
framework/includes/option-types/range-slider/class-fw-option-type-range-slider.php
CHANGED
@@ -107,7 +107,7 @@ class FW_Option_Type_Range_Slider extends FW_Option_Type {
|
|
107 |
return $option['value'];
|
108 |
} else {
|
109 |
$input_values = ( isset( $option['properties']['values'] ) && is_array( $option['properties']['values'] ) ) ? explode( ';',
|
110 |
-
$input_value ) : array_map( '
|
111 |
|
112 |
return array(
|
113 |
'from' => $input_values[0],
|
107 |
return $option['value'];
|
108 |
} else {
|
109 |
$input_values = ( isset( $option['properties']['values'] ) && is_array( $option['properties']['values'] ) ) ? explode( ';',
|
110 |
+
$input_value ) : array_map( 'floatval', explode( ';', $input_value ) );
|
111 |
|
112 |
return array(
|
113 |
'from' => $input_values[0],
|
framework/includes/option-types/slider/class-fw-option-type-slider.php
CHANGED
@@ -94,7 +94,7 @@ class FW_Option_Type_Slider extends FW_Option_Type {
|
|
94 |
if (is_null($input_value)) {
|
95 |
return $option['value'];
|
96 |
} else {
|
97 |
-
return
|
98 |
}
|
99 |
}
|
100 |
|
94 |
if (is_null($input_value)) {
|
95 |
return $option['value'];
|
96 |
} else {
|
97 |
+
return floatval($input_value);
|
98 |
}
|
99 |
}
|
100 |
|
framework/manifest.php
CHANGED
@@ -4,4 +4,4 @@ $manifest = array();
|
|
4 |
|
5 |
$manifest['name'] = __('Unyson', 'fw');
|
6 |
|
7 |
-
$manifest['version'] = '2.4.
|
4 |
|
5 |
$manifest['name'] = __('Unyson', 'fw');
|
6 |
|
7 |
+
$manifest['version'] = '2.4.1';
|
framework/static/css/backend-options.css
CHANGED
@@ -838,6 +838,10 @@ body.rtl .fw-backend-option-design-default > .fw-backend-option-desc > .fw-inner
|
|
838 |
}
|
839 |
|
840 |
|
|
|
|
|
|
|
|
|
841 |
.fw-backend-option-design-customizer > .fw-backend-option-desc {
|
842 |
padding-bottom: 6px;
|
843 |
}
|
838 |
}
|
839 |
|
840 |
|
841 |
+
.fw-backend-option-design-customizer {
|
842 |
+
padding: 5px 0 10px;
|
843 |
+
}
|
844 |
+
|
845 |
.fw-backend-option-design-customizer > .fw-backend-option-desc {
|
846 |
padding-bottom: 6px;
|
847 |
}
|
framework/static/js/fw.js
CHANGED
@@ -914,7 +914,9 @@ fw.getQueryString = function(name) {
|
|
914 |
onSubmit: function(e) {
|
915 |
e.preventDefault();
|
916 |
|
917 |
-
|
|
|
|
|
918 |
|
919 |
jQuery.ajax({
|
920 |
url: ajaxurl,
|
@@ -927,7 +929,7 @@ fw.getQueryString = function(name) {
|
|
927 |
].join('&'),
|
928 |
dataType: 'json',
|
929 |
success: _.bind(function (response, status, xhr) {
|
930 |
-
fw.loading.hide(
|
931 |
|
932 |
if (!response.success) {
|
933 |
/**
|
@@ -945,7 +947,55 @@ fw.getQueryString = function(name) {
|
|
945 |
this.model.frame.modal.$el.find('.media-modal-close').trigger('click');
|
946 |
}, this),
|
947 |
error: function (xhr, status, error) {
|
948 |
-
fw.loading.hide(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
949 |
|
950 |
/**
|
951 |
* do not replace html here
|
@@ -984,12 +1034,12 @@ fw.getQueryString = function(name) {
|
|
984 |
initializeFrame: function() {
|
985 |
fw.Modal.prototype.initializeFrame.call(this);
|
986 |
|
987 |
-
|
|
|
|
|
|
|
988 |
|
989 |
-
|
990 |
-
modal.frame.$el.removeClass('hide-toolbar');
|
991 |
-
modal.frame.modal.$el.addClass('fw-options-modal');
|
992 |
-
});
|
993 |
|
994 |
this.frame.on('content:create:main', function () {
|
995 |
modal.frame.toolbar.set(
|
@@ -1008,6 +1058,14 @@ fw.getQueryString = function(name) {
|
|
1008 |
*/
|
1009 |
modal.content.$el.find('input[type="submit"].hidden-submit').trigger('click');
|
1010 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1011 |
}
|
1012 |
]
|
1013 |
})
|
914 |
onSubmit: function(e) {
|
915 |
e.preventDefault();
|
916 |
|
917 |
+
var loadingId = fwLoadingId +':submit';
|
918 |
+
|
919 |
+
fw.loading.show(loadingId);
|
920 |
|
921 |
jQuery.ajax({
|
922 |
url: ajaxurl,
|
929 |
].join('&'),
|
930 |
dataType: 'json',
|
931 |
success: _.bind(function (response, status, xhr) {
|
932 |
+
fw.loading.hide(loadingId);
|
933 |
|
934 |
if (!response.success) {
|
935 |
/**
|
947 |
this.model.frame.modal.$el.find('.media-modal-close').trigger('click');
|
948 |
}, this),
|
949 |
error: function (xhr, status, error) {
|
950 |
+
fw.loading.hide(loadingId);
|
951 |
+
|
952 |
+
/**
|
953 |
+
* do not replace html here
|
954 |
+
* user completed the form with data and wants to submit data
|
955 |
+
* do not delete all his work
|
956 |
+
*/
|
957 |
+
alert(status +': '+ error.message);
|
958 |
+
}
|
959 |
+
});
|
960 |
+
},
|
961 |
+
resetValues: function() {
|
962 |
+
var loadingId = fwLoadingId +':reset';
|
963 |
+
|
964 |
+
fw.loading.show(loadingId);
|
965 |
+
|
966 |
+
jQuery.ajax({
|
967 |
+
url: ajaxurl,
|
968 |
+
type: 'POST',
|
969 |
+
data: [
|
970 |
+
'action=fw_backend_options_get_values',
|
971 |
+
'options='+ encodeURIComponent(JSON.stringify(this.model.get('options'))),
|
972 |
+
'name_prefix=fw_edit_options_modal'
|
973 |
+
].join('&'),
|
974 |
+
dataType: 'json',
|
975 |
+
success: _.bind(function (response, status, xhr) {
|
976 |
+
fw.loading.hide(loadingId);
|
977 |
+
|
978 |
+
if (!response.success) {
|
979 |
+
/**
|
980 |
+
* do not replace html here
|
981 |
+
* user completed the form with data and wants to submit data
|
982 |
+
* do not delete all his work
|
983 |
+
*/
|
984 |
+
alert('Error: '+ response.data.message);
|
985 |
+
return;
|
986 |
+
}
|
987 |
+
|
988 |
+
this.model.set('values', response.data.values);
|
989 |
+
|
990 |
+
// make sure on the above open, the html 'change' will be fired
|
991 |
+
this.model.set('html', '', {
|
992 |
+
silent: true // right now we don't need modal reRender, only when the open above
|
993 |
+
});
|
994 |
+
|
995 |
+
this.model.open();
|
996 |
+
}, this),
|
997 |
+
error: function (xhr, status, error) {
|
998 |
+
fw.loading.hide(loadingId);
|
999 |
|
1000 |
/**
|
1001 |
* do not replace html here
|
1034 |
initializeFrame: function() {
|
1035 |
fw.Modal.prototype.initializeFrame.call(this);
|
1036 |
|
1037 |
+
this.frame.once('ready', _.bind(function() {
|
1038 |
+
this.frame.$el.removeClass('hide-toolbar');
|
1039 |
+
this.frame.modal.$el.addClass('fw-options-modal');
|
1040 |
+
}, this));
|
1041 |
|
1042 |
+
var modal = this;
|
|
|
|
|
|
|
1043 |
|
1044 |
this.frame.on('content:create:main', function () {
|
1045 |
modal.frame.toolbar.set(
|
1058 |
*/
|
1059 |
modal.content.$el.find('input[type="submit"].hidden-submit').trigger('click');
|
1060 |
}
|
1061 |
+
},
|
1062 |
+
{
|
1063 |
+
style: '',
|
1064 |
+
text: _fw_localized.l10n.reset,
|
1065 |
+
priority: -1,
|
1066 |
+
click: function () {
|
1067 |
+
modal.content.resetValues();
|
1068 |
+
}
|
1069 |
}
|
1070 |
]
|
1071 |
})
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: unyson, themefusecom
|
|
3 |
Tags: page builder, cms, grid, layout, responsive, back up, backup, db backup, dump, migrate, schedule, search engine optimization, seo, media, slideshow, shortcode, slide, slideshare, slideshow, google sitemaps, sitemaps, analytics, google analytics, calendar, event, events, google maps, learning, lessons, sidebars, breadcrumbs, review, portfolio, framework
|
4 |
Requires at least: 4.0.0
|
5 |
Tested up to: 4.2
|
6 |
-
Stable tag: 2.4.
|
7 |
License: GPLv2 or later
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
@@ -82,9 +82,13 @@ Yes; Unyson will work with any theme.
|
|
82 |
|
83 |
== Changelog ==
|
84 |
|
|
|
|
|
|
|
|
|
85 |
= 2.4.0 =
|
86 |
* Created "Container Types" and container type `popup` [#615](https://github.com/ThemeFuse/Unyson/issues/615)
|
87 |
-
* Created the `fw_collect_options()` function
|
88 |
* Added Unycon font icon. Demo `http://{your-host}/wp-content/plugins/unyson/framework/static/libs/unycon/demo/`
|
89 |
* Minor fixes
|
90 |
|
3 |
Tags: page builder, cms, grid, layout, responsive, back up, backup, db backup, dump, migrate, schedule, search engine optimization, seo, media, slideshow, shortcode, slide, slideshare, slideshow, google sitemaps, sitemaps, analytics, google analytics, calendar, event, events, google maps, learning, lessons, sidebars, breadcrumbs, review, portfolio, framework
|
4 |
Requires at least: 4.0.0
|
5 |
Tested up to: 4.2
|
6 |
+
Stable tag: 2.4.1
|
7 |
License: GPLv2 or later
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
82 |
|
83 |
== Changelog ==
|
84 |
|
85 |
+
= 2.4.1 =
|
86 |
+
* Fixed [#742](https://github.com/ThemeFuse/Unyson/issues/742), [#731](https://github.com/ThemeFuse/Unyson/issues/731), [#728](https://github.com/ThemeFuse/Unyson/issues/728), [#726](https://github.com/ThemeFuse/Unyson/issues/726), [Shortcodes#29](https://github.com/ThemeFuse/Unyson-Shortcodes-Extension/issues/29)
|
87 |
+
* Fixed: `addable-popup` option type wasn't saved in Customizer
|
88 |
+
|
89 |
= 2.4.0 =
|
90 |
* Created "Container Types" and container type `popup` [#615](https://github.com/ThemeFuse/Unyson/issues/615)
|
91 |
+
* Created the `fw_collect_options()` function [#740](https://github.com/ThemeFuse/Unyson/issues/740)
|
92 |
* Added Unycon font icon. Demo `http://{your-host}/wp-content/plugins/unyson/framework/static/libs/unycon/demo/`
|
93 |
* Minor fixes
|
94 |
|
unyson.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Plugin Name: Unyson
|
4 |
* Plugin URI: http://unyson.themefuse.com/
|
5 |
* Description: A free drag & drop framework that comes with a bunch of built in extensions that will help you develop premium themes fast & easy.
|
6 |
-
* Version: 2.4.
|
7 |
* Author: ThemeFuse
|
8 |
* Author URI: http://themefuse.com
|
9 |
* License: GPL2+
|
3 |
* Plugin Name: Unyson
|
4 |
* Plugin URI: http://unyson.themefuse.com/
|
5 |
* Description: A free drag & drop framework that comes with a bunch of built in extensions that will help you develop premium themes fast & easy.
|
6 |
+
* Version: 2.4.1
|
7 |
* Author: ThemeFuse
|
8 |
* Author URI: http://themefuse.com
|
9 |
* License: GPL2+
|