on master help sign in
Ajax loading + Tweaks of CSS
commite181041f11f612937299d440ccb090d3a78cf740 authorCqoicebordel <Cqoicebordel@users.noreply.github.com> dateTue 17 Feb 2015, 01:07 (12 years ago) parentd740e73
10 files changed+138−46
searx/static/themes/pix-art/css/style.css+1−1 searx/static/themes/pix-art/img/searx-pixel-small.png searx/static/themes/pix-art/img/spinner.gif searx/static/themes/pix-art/js/searx.js+94 searx/static/themes/pix-art/less/search.less+3−3 searx/static/themes/pix-art/less/style.less+18−7 searx/templates/pix-art/base.html+6 searx/templates/pix-art/result_templates/default.html+1−8 searx/templates/pix-art/results.html+14−26 searx/templates/pix-art/search.html+1−1
searx/static/themes/pix-art/css/style.css+1−1
@@ -1 +1 @@
1−html{font-family:sans-serif;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:#444;padding:0;margin:0}body,#container{padding:0;margin:0}canvas{image-rendering:optimizeSpeed;image-rendering:-moz-crisp-edges;image-rendering:-webkit-optimize-contrast;image-rendering:optimize-contrast;image-rendering:pixelated;-ms-interpolation-mode:nearest-neighbor;width:32px;height:32px}#container{width:100%;position:absolute;top:0}.search{padding:0;margin:0}#search_wrapper{position:relative;width:50em;padding:10px}.center #search_wrapper{margin-left:auto;margin-right:auto}.q{background:none repeat scroll 0 0 #fff;border:1px solid #3498db;color:#222;font-size:16px;height:28px;margin:0;outline:medium none;padding:2px;padding-left:8px;padding-right:0 !important;width:100%;z-index:2}#search_submit{position:absolute;top:13px;right:1px;padding:0;border:0;background:url('../img/search-icon-pixel2.png') no-repeat;background-size:24px 24px;opacity:.8;width:24px;height:30px;font-size:0}@media screen and (max-width:50em){#search_wrapper{width:90%;clear:both;overflow:hidden}}.row{max-width:800px;margin:20px auto;text-align:justify}.row h1{font-size:3em;margin-top:50px}.row p{padding:0 10px;max-width:700px}.row h3,.row ul{margin:4px 8px}.hmarg{margin:0 20px;border:1px solid #3498db;padding:4px 10px}a:link.hmarg{color:#3498db}a:visited.hmarg{color:#3498db}a:active.hmarg{color:#3498db}a:hover.hmarg{color:#3498db}.top_margin{margin-top:60px}.center{text-align:center}h1{font-size:5em}div.title{background:url('../img/searx-pixel.png') no-repeat;width:100%;min-height:80px;background-position:center}div.title h1{visibility:hidden}input[type="submit"]{padding:2px 6px;margin:2px 4px;display:inline-block;background:#3498db;color:#fff;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:0;cursor:pointer}input[type="checkbox"]{visibility:hidden}fieldset{margin:8px;border:1px solid #3498db}#categories{margin:0 10px;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.checkbox_container{display:inline-block;position:relative;margin:0 3px;padding:0}.checkbox_container input{display:none}.checkbox_container label,.engine_checkbox label{cursor:pointer;padding:4px 10px;margin:0;display:block;text-transform:capitalize;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.checkbox_container input[type="checkbox"]:checked+label{background:#3498db;color:#fff}.engine_checkbox{padding:4px}label.allow{background:#e74c3c;padding:4px 8px;color:#fff;display:none}label.deny{background:#2ecc71;padding:4px 8px;color:#444;display:inline}.engine_checkbox input[type="checkbox"]:checked+label:nth-child(2)+label{display:none}.engine_checkbox input[type="checkbox"]:checked+label.allow{display:inline}a{text-decoration:none;color:#1a11be}a:visited{color:#8e44ad}.engines{color:#888}.small_font{font-size:.8em}.small p{margin:2px 0}.right{float:right}.invisible{display:none}.left{float:left}.highlight{color:#094089}.content .highlight{color:#000}.percentage{position:relative;width:300px}.percentage div{background:#444}table{width:100%}td{padding:0 4px}tr:hover{background:#ddd}#results{margin:auto;padding:0;width:50em;margin-bottom:20px}#search_url{margin-top:8px}#search_url input{border:1px solid #888;padding:4px;color:#444;width:14em;display:block;margin:4px;font-size:.8em}#preferences{top:10px;padding:0;border:0;background:url('../img/preference-icon-pixel.png') no-repeat;background-size:28px 28px;opacity:.8;width:28px;height:30px;display:block}#preferences *{display:none}#pagination{clear:both}#pagination br{clear:both}#apis{margin-top:8px;clear:both}#categories_container{position:relative}@media screen and (max-width:50em){#results{margin:auto;padding:0;width:90%}.checkbox_container{display:block;width:90%}.checkbox_container label{border-bottom:0}.preferences_container{display:none;postion:fixed !important;top:100px;right:0}}@media screen and (max-width:75em){div.title h1{font-size:1em}html.touch #categories{width:95%;height:30px;text-align:left;overflow-x:scroll;overflow-y:hidden;-webkit-overflow-scrolling:touch}html.touch #categories #categories_container{width:1000px;width:-moz-max-content;width:-webkit-max-content;width:max-content}html.touch #categories #categories_container .checkbox_container{display:inline-block;width:auto}#categories{font-size:90%;clear:both}#categories .checkbox_container{margin-top:2px;margin:auto}#categories{font-size:90%;clear:both}#categories .checkbox_container{margin-top:2px;margin:auto}#apis{display:none}#search_url{display:none}}.favicon{float:left;margin-right:4px;margin-top:2px}.preferences_back{background:none repeat scroll 0 0 #3498db;border:0 none;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;cursor:pointer;display:inline-block;margin:2px 4px;padding:4px 6px}.preferences_back a{color:#fff}.hidden{opacity:0;overflow:hidden;font-size:.8em;position:absolute;bottom:-20px;width:100%;text-position:center;background:white;transition:opacity 1s ease}#categories_container:hover .hidden{transition:opacity 1s ease;opacity:.8}
1+html{font-family:sans-serif;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:#444;padding:0;margin:0}body,#container{padding:0;margin:0}canvas{image-rendering:optimizeSpeed;image-rendering:-moz-crisp-edges;image-rendering:-webkit-optimize-contrast;image-rendering:optimize-contrast;image-rendering:pixelated;-ms-interpolation-mode:nearest-neighbor;width:32px;height:32px}#container{width:100%;position:absolute;top:0}.search{padding:0;margin:0}#search_wrapper{position:relative;width:50em;padding:10px}.center #search_wrapper{margin-left:auto;margin-right:auto}.q{background:none repeat scroll 0 0 #fff;border:1px solid #3498db;color:#222;font-size:16px;height:28px;margin:0;outline:medium none;padding:2px;padding-left:8px;padding-right:0 !important;width:100%;z-index:2}#search_submit{position:absolute;top:15px;right:5px;padding:0;border:0;background:url('../img/search-icon-pixel.png') no-repeat;background-size:24px 24px;opacity:.8;width:24px;height:24px;font-size:0}@media screen and (max-width:50em){#search_wrapper{width:90%;clear:both;overflow:hidden}}.row{max-width:800px;margin:20px auto;text-align:justify}.row h1{font-size:3em;margin-top:50px}.row p{padding:0 10px;max-width:700px}.row h3,.row ul{margin:4px 8px}.hmarg{margin:0 20px;border:1px solid #3498db;padding:4px 10px}a:link.hmarg{color:#3498db}a:visited.hmarg{color:#3498db}a:active.hmarg{color:#3498db}a:hover.hmarg{color:#3498db}.top_margin{margin-top:60px}.center{text-align:center}h1{font-size:5em}div.title{background:url('../img/searx-pixel.png') no-repeat;width:100%;min-height:80px;background-position:center}div.title h1{visibility:hidden}input[type="button"]{padding:4px 12px;margin:2px 4px;display:inline-block;background:#3498db;color:#fff;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:0;cursor:pointer}input[type="button"]:disabled{cursor:progress}input[type="checkbox"]{visibility:hidden}fieldset{margin:8px;border:1px solid #3498db}#logo{position:absolute;top:13px;left:10px}#categories{margin:0 10px;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.checkbox_container{display:inline-block;position:relative;margin:0 3px;padding:0}.checkbox_container input{display:none}.checkbox_container label,.engine_checkbox label{cursor:pointer;padding:4px 10px;margin:0;display:block;text-transform:capitalize;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.checkbox_container input[type="checkbox"]:checked+label{background:#3498db;color:#fff}.engine_checkbox{padding:4px}label.allow{background:#e74c3c;padding:4px 8px;color:#fff;display:none}label.deny{background:#2ecc71;padding:4px 8px;color:#444;display:inline}.engine_checkbox input[type="checkbox"]:checked+label:nth-child(2)+label{display:none}.engine_checkbox input[type="checkbox"]:checked+label.allow{display:inline}a{text-decoration:none;color:#1a11be}a:visited{color:#8e44ad}.engines{color:#888}.small_font{font-size:.8em}.small p{margin:2px 0}.right{float:right}.invisible{display:none}.left{float:left}.highlight{color:#094089}.content .highlight{color:#000}.percentage{position:relative;width:300px}.percentage div{background:#444}table{width:100%}td{padding:0 4px}tr:hover{background:#ddd}#results{margin:auto;padding:0;width:50em;margin-bottom:20px}#search_url{margin-top:8px}#search_url input{border:1px solid #888;padding:4px;color:#444;width:14em;display:block;margin:4px;font-size:.8em}#preferences{top:10px;padding:0;border:0;background:url('../img/preference-icon-pixel.png') no-repeat;background-size:28px 28px;opacity:.8;width:28px;height:30px;display:block}#preferences *{display:none}#pagination{clear:both;text-align:center}#pagination br{clear:both}#apis{margin-top:8px;clear:both}#categories_container{position:relative}@media screen and (max-width:50em){#results{margin:auto;padding:0;width:90%}.checkbox_container{display:block;width:90%}.checkbox_container label{border-bottom:0}.preferences_container{display:none;postion:fixed !important;top:100px;right:0}}@media screen and (max-width:75em){div.title h1{font-size:1em}html.touch #categories{width:95%;height:30px;text-align:left;overflow-x:scroll;overflow-y:hidden;-webkit-overflow-scrolling:touch}html.touch #categories #categories_container{width:1000px;width:-moz-max-content;width:-webkit-max-content;width:max-content}html.touch #categories #categories_container .checkbox_container{display:inline-block;width:auto}#categories{font-size:90%;clear:both}#categories .checkbox_container{margin-top:2px;margin:auto}#categories{font-size:90%;clear:both}#categories .checkbox_container{margin-top:2px;margin:auto}#apis{display:none}#search_url{display:none}#logo{display:none}}.favicon{float:left;margin-right:4px;margin-top:2px}.preferences_back{background:none repeat scroll 0 0 #3498db;border:0 none;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;cursor:pointer;display:inline-block;margin:2px 4px;padding:4px 6px}.preferences_back a{color:#fff}.hidden{opacity:0;overflow:hidden;font-size:.8em;position:absolute;bottom:-20px;width:100%;text-position:center;background:white;transition:opacity 1s ease}#categories_container:hover .hidden{transition:opacity 1s ease;opacity:.8}
searx/static/themes/pix-art/img/searx-pixel-small.pngnew file

Binary file not shown.

searx/static/themes/pix-art/img/spinner.gifnew file

Binary file not shown.

searx/static/themes/pix-art/js/searx.js+94
@@ -47,3 +47,97 @@ if(searx.autocompleter) {
4747
4848})(window, document);
4949
50+var xmlHttp
51+
52+function GetXmlHttpObject(){
53+
54+ var xmlHttp = null;
55+
56+ try {
57+ // Firefox, Opera 8.0+, Safari
58+ xmlHttp = new XMLHttpRequest();
59+ }
60+ catch (e) {
61+ // Internet Explorer
62+ try {
63+ xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
64+ }
65+ catch (e){
66+ xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
67+ }
68+ }
69+ return xmlHttp;
70+}
71+
72+var timer;
73+
74+// Calculate the rating
75+function load_more(query,page){
76+
77+ xmlHttp = GetXmlHttpObject();
78+ clearTimeout(timer);
79+
80+ if(xmlHttp == null){
81+ alert ("Your browser does not support AJAX!");
82+ return;
83+ }
84+
85+ favicons[page] = [];
86+
87+ xmlHttp.onreadystatechange = function(){
88+
89+ var loader = document.getElementById('load_more');
90+
91+ if (xmlHttp.readyState == 4){
92+
93+ //loader.style.display = 'none';
94+ var res = xmlHttp.responseText;
95+
96+ //loader.style.display = 'block';
97+ //loader.innerHTML = '<div class="voted">Vote pris en compte</div>';
98+ clearTimeout(timer);
99+ timer = setTimeout(function(){},6000);
100+
101+ var results = document.getElementById('results_list');
102+ //results_list.innerHTML += res;
103+ var newNode = document.createElement('span');
104+ newNode.innerHTML = res;
105+ results_list.appendChild(newNode);
106+
107+ var scripts = newNode.getElementsByTagName('script');
108+ for (var ix = 0; ix < scripts.length; ix++) {
109+ eval(scripts[ix].text);
110+ }
111+
112+ load_images(page);
113+ document.getElementById("load_more").onclick = function() { load_more(query, (page+1)); }
114+ loader.removeAttribute("disabled");
115+
116+ } else {
117+ //loader.innerHTML = '<img src="images/rating_loading.gif" alt="loading" />';
118+ loader.disabled = 'disabled';
119+ }
120+ }
121+ var url = "/";
122+ var params = "q="+query+"&pageno="+page+"&category_general=1&category_files=1&category_images=1&category_it=1&category_map=1&category_music=1&category_news=1&category_social+media=1&category_videos=1";
123+ xmlHttp.open("POST",url,true);
124+ xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
125+ xmlHttp.setRequestHeader("Content-length", params.length);
126+ xmlHttp.setRequestHeader("Connection", "close");
127+ xmlHttp.send(params);
128+}
129+
130+function load_images(page){
131+ var arrayLength = favicons[page].length;
132+ for (var i = 1; i < arrayLength+1; i++) {
133+ var img = new Image();
134+ img.setAttribute("i",i)
135+ img.onload = function () {
136+ var id = 'canvas-'+page+'-'+this.getAttribute("i");
137+ var can = document.getElementById(id);
138+ var ctx = can.getContext("2d");
139+ ctx.drawImage(this, 0, 0, 16, 16);
140+ };
141+ img.src = favicons[page][i];
142+ }
143+}
searx/static/themes/pix-art/less/search.less+3−3
@@ -35,15 +35,15 @@
3535
3636#search_submit {
3737 position: absolute;
38− top: 13px;
39− right: 1px;
38+ top: 15px;
39+ right: 5px;
4040 padding: 0;
4141 border: 0;
4242 background: url('../img/search-icon-pixel.png') no-repeat;
4343 background-size: 24px 24px;
4444 opacity: 0.8;
4545 width: 24px;
46− height: 30px;
46+ height: 24px;
4747 font-size: 0;
4848}
4949
searx/static/themes/pix-art/less/style.less+18−7
@@ -46,9 +46,6 @@ canvas {
4646
4747@import "search.less";
4848
49−// Autocompleter
50−
51−
5249.row {
5350 max-width: 800px;
5451 margin: 20px auto;
@@ -116,8 +113,8 @@ div.title {
116113 }
117114}
118115
119−input[type="submit"] {
120− padding: 2px 6px;
116+input[type="button"] {
117+ padding: 4px 12px;
121118 margin: 2px 4px;
122119 display: inline-block;
123120 background: @color-download-button-background;
@@ -127,6 +124,10 @@ input[type="submit"] {
127124 cursor: pointer;
128125}
129126
127+input[type="button"]:disabled {
128+ cursor: progress;
129+}
130+
130131input[type="checkbox"] {
131132 visibility: hidden;
132133}
@@ -136,6 +137,12 @@ fieldset {
136137 border: 1px solid @color-settings-fieldset;
137138}
138139
140+#logo {
141+ position: absolute;
142+ top: 13px;
143+ left: 10px;
144+}
145+
139146#categories {
140147 margin: 0 10px;
141148 .user-select;
@@ -299,7 +306,7 @@ tr {
299306
300307#pagination {
301308 clear: both;
302−
309+ text-align: center;
303310 br {
304311 clear: both;
305312 }
@@ -346,7 +353,7 @@ tr {
346353 div.title {
347354
348355 h1 {
349− font-size: 1em;
356+ font-size: 1em;
350357 }
351358 }
352359
@@ -398,6 +405,10 @@ tr {
398405 #search_url {
399406 display: none;
400407 }
408+
409+ #logo {
410+ display: none;
411+ }
401412}
402413
403414.favicon {
searx/templates/pix-art/base.html+6
@@ -14,6 +14,9 @@
1414 {% block meta %}{% endblock %}
1515 {% block head %}
1616 {% endblock %}
17+ <script type="text/javascript">
18+ var favicons = [[]];
19+ </script>
1720 </head>
1821 <body>
1922 <div id="container">
@@ -23,6 +26,9 @@
2326 searx = {};
2427 </script>
2528 <script src="{{ url_for('static', filename='js/searx.js') }}" ></script>
29+ <script type="text/javascript">
30+ load_images(1);
31+ </script>
2632 </div>
2733 </body>
2834</html>
searx/templates/pix-art/result_templates/default.html+1−8
@@ -2,12 +2,5 @@
22 <canvas id="canvas-{{ pageno }}-{{ index }}" class="icon" width="16" height="16"></canvas>
33</a>
44<script type="text/javascript">
5−var img{{ pageno }}_{{ index }} = new Image();
6−img{{ pageno }}_{{ index }}.src = 'http://{{ result.url | extract_domain }}/favicon.ico';
7−
8−img{{ pageno }}_{{ index }}.onload = function () {
9− var can{{ pageno }}_{{ index }} = document.getElementById('canvas-{{ pageno }}-{{ index }}');
10− var ctx = can{{ pageno }}_{{ index }}.getContext("2d");
11− ctx.drawImage(img{{ pageno }}_{{ index }}, 0, 0, 16, 16);
12−};
5+favicons[{{ pageno }}][{{ index }}] = 'http://{{ result.url | extract_domain }}/favicon.ico';
136</script>
searx/templates/pix-art/results.html+14−26
@@ -1,44 +1,32 @@
1+{% if pageno > 1 %}
2+ {% for result in results %}
3+ {% set index = loop.index %}
4+ {% include 'pix-art/result_templates/default.html' %}
5+ {% endfor %}
6+{% else %}
17{% extends "pix-art/base.html" %}
28{% block title %}{{ q }} - {% endblock %}
39{% block meta %}{% endblock %}
410{% block content %}
11+<div id="logo"><a href="./"><img src="{{ url_for('static', filename='img/searx-pixel-small.png') }}" alt="Searx Logo"/></a></div>
512<div class="preferences_container right"><a href="{{ url_for('preferences') }}" id="preferences"><span>preferences</span></a></div>
613<div class="small search center">
714 {% include 'pix-art/search.html' %}
815</div>
16+<script type="text/javascript">
17+ favicons[{{ pageno }}] = [];
18+</script>
919<div id="results">
20+ <span id="results_list">
1021 {% for result in results %}
1122 {% set index = loop.index %}
1223 {% include 'pix-art/result_templates/default.html' %}
1324 {% endfor %}
14−
15− {% if paging %}
25+ </span>
1626 <div id="pagination">
17− {% if pageno > 1 %}
18− <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}">
19− <div class="{% if rtl %}right{% else %}left{% endif %}">
20− <input type="hidden" name="q" value="{{ q }}" />
21− {% for category in selected_categories %}
22− <input type="hidden" name="category_{{ category }}" value="1"/>
23− {% endfor %}
24− <input type="hidden" name="pageno" value="{{ pageno-1 }}" />
25− <input type="submit" value="<< {{ _('previous page') }}" />
26− </div>
27− </form>
28− {% endif %}
29− <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}">
30− <div class="{% if rtl %}left{% else %}right{% endif %}">
31− {% for category in selected_categories %}
32− <input type="hidden" name="category_{{ category }}" value="1"/>
33− {% endfor %}
34− <input type="hidden" name="q" value="{{ q }}" />
35− <input type="hidden" name="pageno" value="{{ pageno+1 }}" />
36− <input type="submit" value="{{ _('next page') }} >>" />
37− </div>
38− </form>
39−
4027 <br />
28+ <input type="button" onclick="load_more('{{ q }}', {{ pageno+1 }})" id="load_more" value="{{ _('Load more...') }}" />
4129 </div>
42− {% endif %}
4330</div>
4431{% endblock %}
32+{% endif %}
searx/templates/pix-art/search.html+1−1
@@ -1,7 +1,7 @@
11<form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" id="search_form">
22 <div id="search_wrapper">
33 <input type="text" placeholder="{{ _('Search for...') }}" id="q" class="q" name="q" tabindex="1" size="100" {% if q %}value="{{ q }}"{% endif %}/>
4− <input type="submit" value="search" id="search_submit" />
4+ <input type="submit" value="" id="search_submit" />
55 {% for category in categories %}
66 <input type="hidden" name="category_{{ category }}" value="1"/>
77 {% endfor %}