Added inputhistory

This commit is contained in:
Mattias Erming 2014-06-13 00:41:23 +02:00
parent 9213774ad4
commit 2e511378ad
2 changed files with 66 additions and 1 deletions

View file

@ -65,7 +65,8 @@ $(function() {
.sticky() .sticky()
.end() .end()
.find(".input") .find(".input")
.tabcomplete(commands, {hint: false}); .tabcomplete(commands, {hint: false})
.history();
$("#network-" + data.id) $("#network-" + data.id)
.append(render("channels", {channels: [data.chan]})) .append(render("channels", {channels: [data.chan]}))
@ -97,6 +98,7 @@ $(function() {
chat.html(render("windows", {windows: channels})) chat.html(render("windows", {windows: channels}))
.find(".input") .find(".input")
.tabcomplete(commands, {hint: false}) .tabcomplete(commands, {hint: false})
.history()
.end() .end()
.find(".hidden") .find(".hidden")
.prev(".show-more") .prev(".show-more")

View file

@ -351,6 +351,69 @@
} }
})(jQuery); })(jQuery);
/*!
* inputhistory
* https://github.com/erming/inputhistory
* v0.2.1
*/
(function($) {
$.fn.history = // Alias
$.fn.inputhistory = function(options) {
var settings = $.extend({
history: [],
submit: true,
}, options);
var self = this;
if (self.size() > 1) {
return self.each(function() {
$(this).history(options);
});
}
self.data('history', settings.history.concat(['']));
var i = 0;
self.on('keydown', function(e) {
var history = self.data('history');
var key = e.which;
switch (key) {
case 13: // Enter
if (self.val() != '') {
i = history.length;
history[i - 1] = self.val();
history.push('');
}
if (settings.submit) {
self.parents('form').eq(0).submit();
}
self.val('');
break;
case 38: // Up
case 40: // Down
history[i] = self.val();
if (key == 38 && i != 0) {
i--;
} else if (key == 40 && i < history.length - 1) {
i++;
}
self.val(history[i]);
break;
default:
return;
}
return false;
});
return this;
}
})(jQuery);
/*! /*!
* jQuery Cookie Plugin v1.4.0 * jQuery Cookie Plugin v1.4.0
* https://github.com/carhartl/jquery-cookie * https://github.com/carhartl/jquery-cookie