forked from GNUsocial/gnu-social
Extended profile - fix issue with JavaScript not executing in Firefox
This commit is contained in:
parent
b11a2faf54
commit
bde85a6685
@ -430,7 +430,7 @@ class ExtendedProfileWidget extends Form
|
|||||||
array(
|
array(
|
||||||
'class' => 'remove_row',
|
'class' => 'remove_row',
|
||||||
'href' => 'javascript://',
|
'href' => 'javascript://',
|
||||||
'style' => 'display: none; '
|
'style' => 'display: none;'
|
||||||
),
|
),
|
||||||
'-'
|
'-'
|
||||||
);
|
);
|
||||||
@ -440,7 +440,7 @@ class ExtendedProfileWidget extends Form
|
|||||||
array(
|
array(
|
||||||
'class' => 'add_row',
|
'class' => 'add_row',
|
||||||
'href' => 'javascript://',
|
'href' => 'javascript://',
|
||||||
'style' => 'display: none; '
|
'style' => 'display: none;'
|
||||||
),
|
),
|
||||||
'+'
|
'+'
|
||||||
);
|
);
|
||||||
|
@ -1,39 +1,32 @@
|
|||||||
var SN_EXTENDED = SN_EXTENDED || {};
|
var SN_EXTENDED = SN_EXTENDED || {};
|
||||||
|
|
||||||
SN_EXTENDED.reorder = function(class) {
|
SN_EXTENDED.reorder = function(cls) {
|
||||||
console.log("QQQ Enter reorder");
|
|
||||||
|
|
||||||
var divs = $.find('div[class=' + class + ']');
|
var divs = $('div[class=' + cls + ']');
|
||||||
console.log('divs length = ' + divs.length);
|
|
||||||
|
|
||||||
$(divs).find('a').hide();
|
|
||||||
|
|
||||||
$(divs).each(function(i, div) {
|
$(divs).each(function(i, div) {
|
||||||
console.log("ROW " + i);
|
|
||||||
$(div).find('a.remove_row').show();
|
$(div).find('a.remove_row').show();
|
||||||
SN_EXTENDED.replaceIndex(SN_EXTENDED.rowIndex(div), i);
|
SN_EXTENDED.replaceIndex(SN_EXTENDED.rowIndex(div), i);
|
||||||
});
|
});
|
||||||
|
|
||||||
$this = $(divs).last().closest('tr');
|
var lastDiv = $(divs).last().closest('tr');
|
||||||
$this.addClass('supersizeme');
|
lastDiv.addClass('supersizeme');
|
||||||
|
|
||||||
$(divs).last().find('a.add_row').show();
|
$(divs).last().find('a.add_row').show();
|
||||||
|
|
||||||
if (divs.length == 1) {
|
if (divs.length == 1) {
|
||||||
$(divs).find('a.remove_row').hide();
|
$(divs).find('a.remove_row').hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
SN_EXTENDED.rowIndex = function(div) {
|
SN_EXTENDED.rowIndex = function(div) {
|
||||||
var idstr = $(div).attr('id');
|
var idstr = $(div).attr('id');
|
||||||
var id = idstr.match(/\d+/);
|
var id = idstr.match(/\d+/);
|
||||||
console.log("id = " + id);
|
|
||||||
return id;
|
return id;
|
||||||
};
|
};
|
||||||
|
|
||||||
SN_EXTENDED.rowCount = function(class) {
|
SN_EXTENDED.rowCount = function(cls) {
|
||||||
var divs = $.find('div[class=' + class + ']');
|
var divs = $.find('div[class=' + cls + ']');
|
||||||
return divs.length;
|
return divs.length;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -45,7 +38,6 @@ SN_EXTENDED.replaceIndex = function(elem, oldIndex, newIndex) {
|
|||||||
var match = value.match(regexp);
|
var match = value.match(regexp);
|
||||||
if (match !== null) {
|
if (match !== null) {
|
||||||
attrib.value = value.replace("-" + oldIndex, "-" + newIndex);
|
attrib.value = value.replace("-" + oldIndex, "-" + newIndex);
|
||||||
console.log('match: oldIndex = ' + oldIndex + ' newIndex = ' + newIndex + ' name = ' + attrib.name + ' value = ' + attrib.value);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -54,41 +46,40 @@ SN_EXTENDED.replaceIndex = function(elem, oldIndex, newIndex) {
|
|||||||
SN_EXTENDED.resetRow = function(elem) {
|
SN_EXTENDED.resetRow = function(elem) {
|
||||||
$(elem).find('input').attr('value', '');
|
$(elem).find('input').attr('value', '');
|
||||||
$(elem).find("select option[value='office']").attr("selected", true);
|
$(elem).find("select option[value='office']").attr("selected", true);
|
||||||
}
|
};
|
||||||
|
|
||||||
SN_EXTENDED.addRow = function() {
|
SN_EXTENDED.addRow = function() {
|
||||||
var div = $(this).closest('div');
|
var div = $(this).closest('div');
|
||||||
var id = $(div).attr('id');
|
var id = div.attr('id');
|
||||||
var class = $(div).attr('class');
|
var cls = div.attr('class');
|
||||||
var index = id.match(/\d+/);
|
var index = id.match(/\d+/);
|
||||||
console.log("Current row = " + index + ', class = ' + class);
|
|
||||||
var trold = $(this).closest('tr');
|
|
||||||
var tr = $(trold).removeClass('supersizeme');
|
|
||||||
var newtr = $(tr).clone();
|
|
||||||
var newIndex = parseInt(index) + 1;
|
var newIndex = parseInt(index) + 1;
|
||||||
|
var newtr = $(div).closest('tr').clone();
|
||||||
SN_EXTENDED.replaceIndex(newtr, index, newIndex);
|
SN_EXTENDED.replaceIndex(newtr, index, newIndex);
|
||||||
|
$(newtr).removeClass('supersizeme');
|
||||||
SN_EXTENDED.resetRow(newtr);
|
SN_EXTENDED.resetRow(newtr);
|
||||||
$(tr).after(newtr);
|
$(div).closest('tr').after(newtr);
|
||||||
SN_EXTENDED.reorder(class);
|
SN_EXTENDED.reorder(cls);
|
||||||
};
|
};
|
||||||
|
|
||||||
SN_EXTENDED.removeRow = function() {
|
SN_EXTENDED.removeRow = function() {
|
||||||
var div = $(this).closest('div');
|
var div = $(this).closest('div');
|
||||||
var id = $(div).attr('id');
|
var id = $(div).attr('id');
|
||||||
var class = $(div).attr('class');
|
var cls = $(div).attr('class');
|
||||||
|
|
||||||
cnt = SN_EXTENDED.rowCount(class);
|
var cnt = SN_EXTENDED.rowCount(cls);
|
||||||
console.debug("removeRow - cnt = " + cnt);
|
|
||||||
if (cnt > 1) {
|
if (cnt > 1) {
|
||||||
var target = $(this).closest('tr');
|
var target = $(this).closest('tr');
|
||||||
target.remove();
|
target.remove();
|
||||||
SN_EXTENDED.reorder(class);
|
SN_EXTENDED.reorder(cls);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
$(document).ready(
|
$(document).ready(function() {
|
||||||
|
|
||||||
function() {
|
$("input#extprofile-manager").autocomplete({
|
||||||
|
source: 'finduser',
|
||||||
|
minLength: 2 });
|
||||||
|
|
||||||
var multifields = ["phone-item", "experience-item", "education-item", "im-item"];
|
var multifields = ["phone-item", "experience-item", "education-item", "im-item"];
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user