diff options
Diffstat (limited to 'share/frontend/gallery-static/js/main.js')
| -rw-r--r-- | share/frontend/gallery-static/js/main.js | 38 |
1 files changed, 26 insertions, 12 deletions
diff --git a/share/frontend/gallery-static/js/main.js b/share/frontend/gallery-static/js/main.js index aadc7e1..b72ee6c 100644 --- a/share/frontend/gallery-static/js/main.js +++ b/share/frontend/gallery-static/js/main.js @@ -82,22 +82,35 @@ var Dump = { } } -function applyTag(tagname){ - tag_regex = /&tag=[^&]*/; - if (document.URL.match(tag_regex)){ - return document.URL.replace(tag_regex, "&tag="+tagname); - }else if(document.URL.match(/\/$/)){ - return document.URL.replace(/\/$/, "?tag="+tagname); - } - else{ - return document.URL+"&tag="+tagname; - } +function applyTag(tagname) { + var qs = $.QueryString + qs.tag = tagname + return serializeQS(qs) +} +function serializeQS (obj) { + let str = []; + for (let p in obj) + if (obj.hasOwnProperty(p)) { + str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p])); + } + return str.join("&"); } var Main = { editing: false, kp: function (event) { + if (document.activeElement && document.activeElement.getAttribute('id') === 'search-q') + { + if (event.keyCode === 13) + { + var qs = $.QueryString + qs.text = document.activeElement.value + delete qs.start + window.location.search = serializeQS(qs) + } + return + } switch (event.keyCode) { // BS @@ -163,9 +176,10 @@ var Main = $("#help").click(function(){ $("#keys").slideToggle() }) $("#actions b").click(function(){ $("#sorting-optionsContainer").slideToggle() }) $("#tags b").click(function(){ $("#tag-optionsContainer").slideToggle() }) - $(".tag-options").click(function(){document.location.href= applyTag(this.id)}); - $(".tag-clear").click(function(){ document.location.href = document.URL.replace(/&?tag=[^&]*/ ,"").replace(/\?$/,"")}); + $(".tag-options").click(function(){document.location.search = applyTag(this.id)}); + $(".tag-clear").click(function(){ document.location.search = '' }); $("div img").live("click", Dump.pick) + $("#search-q").val($.QueryString.text || "") Dump.load_rebus() // Dump.clear() } |
