var s_img;
var s_title;
var s_url;
+ var href = this.attr('href');
for (site in goodies[type].sites) {
entry = goodies[type].sites[site];
s_alt = entry.alt || "";
s_img = entry.img;
s_title = entry.title || "";
- s_url = entry.url_prefix.length > 0 ? entry.url_prefix + escape(this.href) : this.href;
+ s_url = entry.url_prefix.length > 0 ? entry.url_prefix + escape(href) : href;
text += '<a href="' + s_url + '"><img src="' + s_img + '" title="' + s_title + '" alt="' + s_alt + '"></a><br />';
- }
+ }
text += '<a href="https://www.polytechnique.org/Xorg/Goodies">Plus de bonus</a> ...</div>';
return this.overlib({
}
if ((!href.contains(fqdn) && !this.className.contains('popup')) || node.hasClass('popup')) {
node.click(function () {
- window.open(href);
+ window.open($.plURL(this.href));
return false;
});
}
}
}
-function hashResponse(password1, password2, hasConfirmation) {
+function hashResponse(password1, password2, hasConfirmation, doAuth) {
var pw1 = $('[name=' + password1 + ']').val();
var pw2;
return false;
}
- alert("Le mot de passe que tu as rentré va être chiffré avant de nous parvenir par Internet ! Ainsi il ne circulera pas en clair.");
+ alert("Le mot de passe va être chiffré avant de nous parvenir par Internet ! Ainsi il ne circulera pas en clair.");
$('[name=' + password1 + ']').val('');
$('[name=pwhash]').val(hash_encrypt(pw1));
+
+ if (doAuth) {
+ $('[name=password]').val(pw1);
+ doChallengeResponse();
+ }
+
return true;
}
}
document.forms.loginsub.username.value = document.forms.login.username.value;
document.forms.loginsub.remember.value = document.forms.login.remember.checked;
- document.forms.loginsub.domain.value = document.forms.login.domain.value;
document.forms.login.password.value = "";
document.forms.loginsub.submit();
}
} else {
msg += " sur ton addresse.";
}
- $('#mail_sent').successMessage($url + '?token=' + token, msg);
+ $('#mail_sent').successMessage(url + '?token=' + token, msg);
return false;
}
popWin: function(w, h) {
return this.click(function() {
- window.open(this.href, '_blank',
+ window.open($.plURL(this.href), '_blank',
'toolbar=0,location=0,directories=0,status=0,'
+'menubar=0,scrollbars=1,resizable=1,'
+'width='+w+',height='+h);
}
// }}}
-// {{{ send test email
-
-function sendTestEmail(token, hruid)
-{
- var url = 'emails/test';
- var msg = "Un email a été envoyé avec succès";
- if (hruid != null) {
- url += '/' + hruid;
- msg += " sur l'adresse de " + hruid + ".";
- } else {
- msg += " sur ton addresse.";
+// {{{ updatepromofields
+
+function updatepromofields(egal1, egal2, promo2) {
+ var comparator = egal1.val();
+
+ if (comparator == '=') {
+ egal2.attr('disabled', 'disabled');
+ promo2.attr('disabled', 'disabled');
+ } else if (comparator == '<=' || comparator == '>=') {
+ egal2.removeAttr('disabled');
+ promo2.removeAttr('disabled');
+ if (comparator == '<=') {
+ egal2.val('>=');
+ } else {
+ egal2.val('<=');
+ }
}
- $('#mail_sent').successMessage($url + '?token=' + token, msg);
- return false;
}
// }}}
'<div class="identity">' +
'<div class="photo"><img src="photo/${hrpid}" alt="${directory_name}" /></div>' +
'<div class="nom">' +
- '{{if is_female}}•{{/if}}<a href="profile/${hrpid}">${directory_name}</a>' +
+ '{{if is_female}}•{{/if}}<a>${directory_name}</a>' +
'</div>' +
'<div class="edu">${promo}</div>' +
'</div>' +
function buildPopup(input, destination, linkBindFunction)
{
- var pos = findPos(input.get(0));
var $popup = destination;
var selected = null;
+ var hovered = 0;
function updateSelection()
{
function formatProfile(i, profile) {
var data = $.tmpl('quickMinifiche', profile)
+ .css('cursor', 'pointer')
.hover(function() {
selected = i;
updateSelection();
+ hovered++;
}, function() {
if (selected === i) {
selected = null;
updateSelection();
}
+ hovered--;
}).mouseup(function() {
- if (!($(this).find('a').is(':hover'))) {
- $(this).find('a').click();
+ var sel = $(this).find('a');
+ if (!sel.attr('hovered')) {
+ sel.click();
}
});
+ data.find('a').hover(function() { $(this).attr('hovered', true) },
+ function() { $(this).attr('hovered', false) });
return data;
}
position: 'absolute',
width: '300px',
top: input.css('bottom'),
- left: pos.x - 300 + input.width(),
clear: 'both',
'text-align': 'left'
});
return {
hide: function(ignoreIfHover) {
- if (ignoreIfHover && $popup.is(':hover')) {
+ if (ignoreIfHover && hovered !== 0) {
return true;
}
selected = null;
},
show: function() {
- $popup.show();
+ var pos = findPos(input.get(0));
+ $popup.css('left', pos.x - 300 + input.width()).show();
return true;
},
return true;
},
- updateContent: function(profiles) {
+ updateContent: function(profiles, extra) {
var profile;
+ var $this;
$popup.empty();
for (var i = 0, len = profiles.length; i < len; i++) {
- profile = formatProfile(i, profiles[i]);
- profile.find('a').each(linkBindFunction);
- profile.appendTo($popup);
+ (function(elt) {
+ var profile = formatProfile(i, elt);
+ profile.find('a').each(function() {
+ linkBindFunction.call(this, elt, $this, extra);
+ });
+ profile.appendTo($popup);
+ }(profiles[i]));
}
if (len === 1) {
selected = 0;
$.fn.extend({
quickSearch: function(options) {
- var $this = this;
- var $input = $this.get(0);
+ return this.each(function() {
+ var $this = $(this);
+ var $input = this;
var $popup;
var previous = null;
var pending = false;
var disabled = false;
var updatePopup;
- var loadingClass;
options = options || { };
options = $.extend({
queryParams: {
offset: 0,
count: 10,
+ allow_special: true
},
loadingClassLeft: 'ac_loading',
loadingClassRight: 'ac_loading_left',
- selectAction: function() {
- $(this).popWin(840, 600);
+ selectAction: function(profile, popup, extra) {
+ var type = extra.link_type || 'profile';
+ switch (type) {
+ case 'profile':
+ $(this).attr('href', 'profile/' + profile.hrpid)
+ .popWin(840, 600)
+ .click(function() { $popup.hide(); return false; });
+ break;
+ case 'admin':
+ $(this).attr('href', 'admin/user/' + profile.hrpid)
+ .click(function() { window.open($.plURL(this.href)); return false });
+ break;
+ }
}
}, options);
- console.log(options);
options.loadingClass = $this.css('text-align') === 'right' ? options.loadingClassRight
: options.loadingClassLeft;
$this.attr('autocomplete', 'off');
-
- $popup = buildPopup(this, options.destination, function() {
- options.selectAction.apply(this, arguments);
- $(this).click(function() {
- $popup.hide();
- });
- });
+ $popup = buildPopup($this, options.destination, options.selectAction);
function markPending() {
pending = true;
if (data.profile_count > options.queryParams.count || data.profile_count < 0) {
return $popup.hide();
}
- $popup.updateContent(data.profiles);
+ $popup.updateContent(data.profiles, data);
previous = quick;
}, function(data, text) {
if (text !== 'abort') {
updatePopup = doUpdatePopup;
- return this.keyup(function(e) {
+ return $this.keyup(function(e) {
if (e.keyCode !== 27 /* escape */ && e.keyCode !== 13 /* enter */
&& e.keyCode !== 9 /* tab */ && e.keyCode !== 38 /* up */
&& e.keyCode !== 40 /* down */) {
.blur(function() {
return $popup.hide(true);
})
- .focus(updatePopup);
+ .focus(updatePopup);});
}
});
}(jQuery));