diff --git a/app/views/box_organizer/_link_list_block.html.erb b/app/views/box_organizer/_link_list_block.html.erb
index cf4a996..27fec5d 100644
--- a/app/views/box_organizer/_link_list_block.html.erb
+++ b/app/views/box_organizer/_link_list_block.html.erb
@@ -10,40 +10,15 @@
<% for link in @block.links do %>
- -
-
- -
- <%= icon_selector(link['icon']) %>
-
- -
- <%= text_field_tag 'block[links][][name]', link[:name], :class => 'link-name', :maxlength => 20 %>
-
- -
- <%= text_field_tag 'block[links][][address]', link[:address], :class => 'link-address' %>
-
- -
- <%= select_tag('block[links][][target]', options_for_select(LinkListBlock::TARGET_OPTIONS, link[:target])) %>
-
- -
- <%= button_without_text(:delete, _('Delete'), "#" , :class=>"delete-link-list-row") %>
-
-
-
+ <%= render :partial => 'link_list_item', :locals => {:link => link} %>
<% end %>
+
+
+ <% template_link = {'icon' => 'ok'} %>
+ <%= render :partial => 'link_list_item', :locals => {:link => template_link} %>
+
-<%= link_to_function(_('New link'), nil, :class => 'button icon-add with-text') do |page|
- page.insert_html :bottom, 'dropable-link-list', content_tag('li',
- content_tag('ul',
- content_tag('li', icon_selector('ok')) +
- content_tag('li', text_field_tag('block[links][][name]', '', :maxlength => 20)) +
- content_tag('li', text_field_tag('block[links][][address]', nil, :class => 'link-address')) +
- content_tag('li', select_tag('block[links][][target]',
- options_for_select(LinkListBlock::TARGET_OPTIONS, '_self'))) +
- content_tag('li', button_without_text(:delete, _('Delete'), "#" , :class=>"delete-link-list-row")),
- :class=>"link-list-row new_link_row")
- ) +
- javascript_tag("new_link_action()")
-end %>
+<%= link_to_function(_('New link'), 'add_new_link();', :class => 'button icon-add with-text') %>
diff --git a/app/views/box_organizer/_link_list_item.html.erb b/app/views/box_organizer/_link_list_item.html.erb
new file mode 100644
index 0000000..273ca87
--- /dev/null
+++ b/app/views/box_organizer/_link_list_item.html.erb
@@ -0,0 +1,19 @@
+
+
+ -
+ <%= icon_selector(link['icon']) %>
+
+ -
+ <%= text_field_tag 'block[links][][name]', link[:name], :class => 'link-name', :maxlength => 20 %>
+
+ -
+ <%= text_field_tag 'block[links][][address]', link[:address], :class => 'link-address' %>
+
+ -
+ <%= select_tag('block[links][][target]', options_for_select(LinkListBlock::TARGET_OPTIONS, link[:target])) %>
+
+ -
+ <%= button_without_text(:delete, _('Delete'), "#" , :class=>"delete-link-list-row") %>
+
+
+
diff --git a/public/javascripts/edit-link-list.js b/public/javascripts/edit-link-list.js
index 18e6760..0a43d8c 100644
--- a/public/javascripts/edit-link-list.js
+++ b/public/javascripts/edit-link-list.js
@@ -29,6 +29,13 @@ function new_link_action(){
jQuery(document).scrollTop(jQuery('#dropable-link-list').scrollTop());
}
+function add_new_link() {
+ var new_link = jQuery('#edit-link-list-block #new-template>li').clone();
+ new_link.show();
+ jQuery('#dropable-link-list').append(new_link);
+ new_link_action();
+}
+
jQuery(document).ready(function(){
new_link_action();
@@ -36,4 +43,4 @@ jQuery(document).ready(function(){
revert: true,
axis: "y"
});
-});
\ No newline at end of file
+});
diff --git a/public/stylesheets/application.css b/public/stylesheets/application.css
index e41dc01..1a84d34 100644
--- a/public/stylesheets/application.css
+++ b/public/stylesheets/application.css
@@ -1864,6 +1864,9 @@ a.button.disabled, input.disabled {
position: relative;
left: -24px;
}
+#edit-link-list-block #new-template {
+ display: none;
+}
.link-list-header {
width: 98%;
height: 25px;
--
libgit2 0.21.2