145 lines
4.1 KiB
JavaScript
145 lines
4.1 KiB
JavaScript
|
var SN_EXTENDED = SN_EXTENDED || {};
|
||
|
|
||
|
SN_EXTENDED.reorder = function (cls) {
|
||
|
|
||
|
var divs = $('div[class=' + cls + ']');
|
||
|
|
||
|
$(divs).each(function (i, div) {
|
||
|
$(div).find('a.add_row').hide();
|
||
|
$(div).find('a.remove_row').show();
|
||
|
SN_EXTENDED.replaceIndex(SN_EXTENDED.rowIndex(div), i);
|
||
|
});
|
||
|
|
||
|
var lastDiv = $(divs).last().closest('tr');
|
||
|
lastDiv.addClass('supersizeme');
|
||
|
|
||
|
$(divs).last().find('a.add_row').show();
|
||
|
|
||
|
if (divs.length == 1) {
|
||
|
$(divs).find('a.remove_row').fadeOut("slow");
|
||
|
}
|
||
|
};
|
||
|
|
||
|
SN_EXTENDED.rowIndex = function (div) {
|
||
|
var idstr = $(div).attr('id');
|
||
|
var id = idstr.match(/\d+/);
|
||
|
return id;
|
||
|
};
|
||
|
|
||
|
SN_EXTENDED.rowCount = function (cls) {
|
||
|
var divs = $.find('div[class=' + cls + ']');
|
||
|
return divs.length;
|
||
|
};
|
||
|
|
||
|
SN_EXTENDED.replaceIndex = function (elem, oldIndex, newIndex) {
|
||
|
$(elem).find('*').each(function () {
|
||
|
$.each(this.attributes, function (i, attrib) {
|
||
|
var regexp = /extprofile-.*-\d.*/;
|
||
|
var value = attrib.value;
|
||
|
var match = value.match(regexp);
|
||
|
if (match !== null) {
|
||
|
attrib.value = value.replace("-" + oldIndex, "-" + newIndex);
|
||
|
}
|
||
|
});
|
||
|
});
|
||
|
}
|
||
|
|
||
|
SN_EXTENDED.resetRow = function (elem) {
|
||
|
$(elem).find('input, textarea').attr('value', '');
|
||
|
$(elem).find('input').removeAttr('disabled');
|
||
|
$(elem).find("select option[value='office']").attr("selected", true);
|
||
|
$(elem).find("input:checkbox").attr('checked', false);
|
||
|
$(elem).find("input[name$=-start], input[name$=-end]").each(function () {
|
||
|
$(this).removeClass('hasDatepicker');
|
||
|
$(this).datepicker({ dateFormat: 'd M yy' });
|
||
|
});
|
||
|
};
|
||
|
|
||
|
SN_EXTENDED.addRow = function () {
|
||
|
var div = $(this).closest('div');
|
||
|
var id = div.attr('id');
|
||
|
var cls = div.attr('class');
|
||
|
var index = id.match(/\d+/);
|
||
|
var newIndex = parseInt(index) + 1;
|
||
|
var newtr = $(div).closest('tr').removeClass('supersizeme').clone();
|
||
|
SN_EXTENDED.replaceIndex(newtr, index, newIndex);
|
||
|
SN_EXTENDED.resetRow(newtr);
|
||
|
$(div).closest('tr').after(newtr);
|
||
|
SN_EXTENDED.reorder(cls);
|
||
|
};
|
||
|
|
||
|
SN_EXTENDED.removeRow = function () {
|
||
|
|
||
|
var div = $(this).closest('div');
|
||
|
var id = $(div).attr('id');
|
||
|
var cls = $(div).attr('class');
|
||
|
var that = this;
|
||
|
|
||
|
$("#confirm-dialog").dialog({
|
||
|
buttons : {
|
||
|
"Confirm" : function () {
|
||
|
$(this).dialog("close");
|
||
|
var target = $(that).closest('tr');
|
||
|
target.fadeOut("slow", function () {
|
||
|
$(target).remove();
|
||
|
SN_EXTENDED.reorder(cls);
|
||
|
});
|
||
|
},
|
||
|
"Cancel" : function () {
|
||
|
$(this).dialog("close");
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
|
||
|
var cnt = SN_EXTENDED.rowCount(cls);
|
||
|
|
||
|
if (cnt > 1) {
|
||
|
$("#confirm-dialog").dialog("open");
|
||
|
}
|
||
|
};
|
||
|
|
||
|
$(document).ready(function () {
|
||
|
|
||
|
$("#confirm-dialog").dialog({
|
||
|
autoOpen: false,
|
||
|
modal: true
|
||
|
});
|
||
|
|
||
|
$("input#extprofile-manager").autocomplete({
|
||
|
source: 'finduser',
|
||
|
minLength: 2 });
|
||
|
|
||
|
$("input[name$=-start], input[name$=-end], #extprofile-birthday").datepicker({ dateFormat: 'd M yy' });
|
||
|
|
||
|
var multifields = ["phone-item", "experience-item", "education-item", "im-item", 'website-item'];
|
||
|
|
||
|
for (f in multifields) {
|
||
|
SN_EXTENDED.reorder(multifields[f]);
|
||
|
}
|
||
|
|
||
|
$("input#extprofile-manager").autocomplete({
|
||
|
source: 'finduser',
|
||
|
minLength: 2 });
|
||
|
|
||
|
$(document).on('click', '.add_row', SN_EXTENDED.addRow);
|
||
|
$(document).on('click', '.remove_row', SN_EXTENDED.removeRow);
|
||
|
|
||
|
$('input:checkbox[name$=current]').each(function () {
|
||
|
var input = $(this).parent().siblings('input[id$=-end]');
|
||
|
if ($(this).is(':checked')) {
|
||
|
$(input).attr('disabled', 'true');
|
||
|
}
|
||
|
});
|
||
|
|
||
|
$(document).on('click', 'input:checkbox[name$=current]', function () {
|
||
|
var input = $(this).parent().siblings('input[id$=-end]');
|
||
|
if ($(this).is(':checked')) {
|
||
|
$(input).val('');
|
||
|
$(input).attr('disabled', 'true');
|
||
|
} else {
|
||
|
$(input).removeAttr('disabled');
|
||
|
}
|
||
|
});
|
||
|
|
||
|
});
|