From c8a649ce479e76b7bf2d0eb930d5cf8a8ee450b7 Mon Sep 17 00:00:00 2001 From: Byrne Reese Date: Mon, 7 Feb 2011 09:44:48 -0800 Subject: [PATCH] [#738 state:resolved] Improved handling of link group field type (adding focus to the label element when the "Add Link" button is pressed) and removed dependency upon the jquery JSON plugin because it was allegedly conflicting with TypeCore's JSON library. In a future release we should replaced TypeCore's JSON library with a jquery library, reversing this implementation. --- .../lib/ConfigAssistant/Plugin.pm | 7 +++---- addons/ConfigAssistant.pack/static/js/options.js | 12 +++++++----- addons/ConfigAssistant.pack/tmpl/theme_options.mtml | 3 +-- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/addons/ConfigAssistant.pack/lib/ConfigAssistant/Plugin.pm b/addons/ConfigAssistant.pack/lib/ConfigAssistant/Plugin.pm index 52986994b..d8b34f132 100644 --- a/addons/ConfigAssistant.pack/lib/ConfigAssistant/Plugin.pm +++ b/addons/ConfigAssistant.pack/lib/ConfigAssistant/Plugin.pm @@ -504,7 +504,7 @@ sub type_link_group { my ( $ctx, $field_id, $field, $value ) = @_; my $static = $app->static_path; $value = '"[]"' if ( !$value || $value eq '' ); - eval "\$value = $value"; + eval "\$value = \"$value\""; if ($@) { $value = '"[]"'; } my $list; eval { $list = JSON::from_json($value) }; @@ -542,7 +542,7 @@ sub type_link_group { var l = \$(this).html(); struct.push( { 'url': u, 'label': l } ); }); - var json = \$.toJSON(struct); + var json = struct.toJSON().escapeJS(); \$('#'+'$field_id').val( json ); }); \$('#'+'$field_id-link-group ul li a.remove').click( handle_delete_click ); @@ -1067,7 +1067,7 @@ sub _hdlr_field_link_group { my $field = $ctx->stash('field') or return _no_field($ctx); my $value = _get_field_value($ctx); $value = '"[]"' if ( !$value || $value eq '' ); - eval "\$value = $value"; + eval "\$value = \"$value\""; if ($@) { $value = '[]'; } my $list = JSON::from_json($value); @@ -1468,7 +1468,6 @@ END_TMPL - END_TMPL diff --git a/addons/ConfigAssistant.pack/static/js/options.js b/addons/ConfigAssistant.pack/static/js/options.js index 53b4ae0e0..a0d033f80 100644 --- a/addons/ConfigAssistant.pack/static/js/options.js +++ b/addons/ConfigAssistant.pack/static/js/options.js @@ -1,12 +1,14 @@ // Utility Functions function handle_edit_click() { - var link = $(this).parent().find('a.link'); + var p = $(this).parent(); + var link = p.find('a.link'); if (link.length > 0) { - $(this).parent().replaceWith( render_link_form( link.html(), link.attr('href') ) ); + p.replaceWith( render_link_form( link.html(), link.attr('href') ) ); } else { - $(this).parent().before( render_link_form( '','' ) ); - $(this).parent().hide(); + p.before( render_link_form( '','' ) ); + p.hide(); } + p.parent().find('input.label').focus(); return false; }; function render_link(label,url) { @@ -42,7 +44,7 @@ function render_link_form(label,url) { e.find('button').trigger('click'); return false; } - }); + }); }).blur( function() { $(this).unbind('keypress'); }); diff --git a/addons/ConfigAssistant.pack/tmpl/theme_options.mtml b/addons/ConfigAssistant.pack/tmpl/theme_options.mtml index a72844eb2..0aab4d63d 100644 --- a/addons/ConfigAssistant.pack/tmpl/theme_options.mtml +++ b/addons/ConfigAssistant.pack/tmpl/theme_options.mtml @@ -43,13 +43,12 @@ css/app.css" type="text/css" /> colorpicker/css/colorpicker.css" type="text/css" /> - + -