Skip to content

Commit 4f37a98

Browse files
committed
Fix attachments widget to work on Chrome. Fixes ietf-tools#368
- Legacy-Id: 2485
1 parent cbde116 commit 4f37a98

1 file changed

Lines changed: 29 additions & 14 deletions

File tree

static/js/liaisons.js

Lines changed: 29 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
required += '#' + $(field).html() + ',';
1717
});
1818
var fields = fieldset.find(required);
19-
config.fields = fields;
19+
config.basefields = fields;
2020
}
2121

2222
config.showOn = $('#' + fieldset.find('.showAttachsOn').html());
@@ -50,26 +50,22 @@
5050
}
5151
config.fields.each(function() {
5252
var field = $(this);
53-
var newcontainer= $(this).parents('.field').clone();
54-
var newfield = newcontainer.find('#' + field.attr('id'));
55-
newcontainer.hide();
56-
newfield.attr('name', newfield.attr('name') + '_' + count);
57-
newcontainer.attr('id', 'container_id_' + newfield.attr('name'));
58-
newcontainer.insertBefore(button.parents('.field'));
59-
if (newcontainer.find(':file').length) {
60-
html += ' (' + newfield.val() + ')';
53+
var container= $(this).parents('.field');
54+
if (container.find(':file').length) {
55+
html += ' (' + field.val() + ')';
6156
} else {
62-
html += ' ' + newfield.val();
57+
html += ' ' + field.val();
6358
}
6459
html += '<span style="display: none;" class="removeField">';
65-
html += newcontainer.attr('id');
60+
html += container.attr('id');
6661
html += '</span>';
62+
container.hide();
6763
});
6864
html += ' <a href="#" class="removeAttach">Remove</a>';
6965
html += '</div>';
7066
config.showOnDisplay.html(html);
71-
config.fields.val('');
7267
count += 1;
68+
initFileInput();
7369
};
7470

7571
var doAttach = function() {
@@ -93,14 +89,33 @@
9389
};
9490

9591
var initTriggers = function() {
96-
config.fields.change(setState);
97-
config.fields.keyup(setState);
9892
config.showOnDisplay.find('a.removeAttach').live('click', removeAttachment);
9993
button.click(doAttach);
10094
};
10195

96+
var initFileInput = function() {
97+
var fieldids = ''
98+
config.basefields.each(function(i) {
99+
var field = $(this);
100+
var oldcontainer= $(this).parents('.field');
101+
var newcontainer= oldcontainer.clone();
102+
var newfield = newcontainer.find('#' + field.attr('id'));
103+
newfield.attr('name', newfield.attr('name') + '_' + count);
104+
newfield.attr('id', newfield.attr('id') + '_' + count);
105+
newcontainer.attr('id', 'container_id_' + newfield.attr('name'));
106+
oldcontainer.after(newcontainer);
107+
oldcontainer.hide();
108+
newcontainer.show();
109+
fieldids += '#' + newfield.attr('id') + ','
110+
});
111+
config.fields = $(fieldids);
112+
config.fields.change(setState);
113+
config.fields.keyup(setState);
114+
};
115+
102116
var initWidget = function() {
103117
readConfig();
118+
initFileInput();
104119
initTriggers();
105120
setState();
106121
};

0 commit comments

Comments
 (0)