yacy_search_server/htroot/yacy/ui/yacyui-search.html

146 lines
5.1 KiB
HTML
Raw Normal View History

<script type="text/javascript">
//<![CDATA[
$(document).ready(function() {
$("#side1").accordion("activate", 0);
$("#side2").accordion("activate", 0);
var height=document.documentElement.clientHeight - 240;
$(tabid+" .yresult").flexigrid({
url: '/yacysearch.json',
dataType: 'json',
method: 'GET',
query: $(tabid).attr('search'),
colModel: [
{display: 'Hash', name : 'hash', width : 50, sortable : false, align: 'center', hide: true},
{display: 'Public', name : 'public', width : 25, sortable : true, align: 'center'},
{display: 'Title', name : 'title', width : 450, sortable : true, align: 'left'},
{display: 'Tags', name : 'tags', width : 240, sortable : false, align: 'left'},
{display: 'Folders', name : 'folders', width : 240, sortable : false, align: 'left', hide: true},
{display: 'Date', name : 'date', width : 100, sortable : true, align: 'left'}
],
buttons: [
{name: 'Crawl', bclass: 'crawl', onpress: yaction},
{name: 'Open', bclass: 'pictures', onpress: yaction},
{separator: true},
{name: 'Bookmark', bclass: 'bookmark', onpress: yaction},
{name: 'Blacklist', bclass: 'blacklist', onpress: yaction},
{separator: true},
{name: 'Help', bclass: 'help', onpress:yaction},
],
useRp: true,
rp: 10,
usepager: true,
striped: true,
nowrap: false,
height: height,
autoload: true,
onSuccess: function() {
$("a.favicon").faviconize({
position: "before",
defaultImage: "img-2/article.png",
className: "favicon"
});
},
preProcess: function(data) {
var total = data.channels[0].totalResults.replace(/[,.]/,"");
var page = (data.channels[0].startIndex / data.channels[0].itemsPerPage) + 1;
var rows = {};
$.each (
data.channels[0].items,
function(i,item) {
if (item) {
var html = "<h3 class='linktitle'>"+item.title+"</h3><p class='desc'>"+item.description+"</p><p class='url'><a href='"+item.link+"'>"+item.link+"</a>"
var fav = "<a class='favicon' href='"+item.link+"'></a>";
rows[i] = {id: item.guid, cell: [item.guid, fav, html, "Tags", "Folders", item.pubDate]};
}
}
);
var pdata = {
page: page,
total: total,
rows: rows
};
return pdata;
},
onSubmit: function() {
var p = this;
var g = $(tabid+" .yresult");
$('.pPageStat',this.pDiv).html(p.procmsg);
$('.pReload',this.pDiv).addClass('loading');
if (g.bDiv) $(g.block).css({top:g.bDiv.offsetTop});
if (p.hideOnSubmit) $(this.gDiv).prepend(g.block); //$(t).hide();
if ($.browser.opera) $(t).css('visibility','hidden');
if (!p.newp) p.newp = 1;
if (p.page>p.pages) p.page = p.pages;
var offset = p.newp * p.rp -p.rp;
var param = [
{ name : 'startRecord', value : offset }
,{ name : 'maximumRecords', value : p.rp }
,{ name : 'resource', value : $(tabid).attr('resource')}
,{ name : 'verify', value : "true" }
,{ name : 'search', value : p.query}
,{ name : 'urlmaskfilter', value : $(tabid).attr('urlmaskfilter')}
,{ name : 'prefermaskfilter', value : $(tabid).attr('prefermaskfilter')}
,{ name : 'contentdom', value : $(tabid).attr('contentdom')}
,{ name : 'constraint', value : $(tabid).attr('constraint')}
,{ name : 'language', value : $(tabid).attr('language')}
];
if (p.params) {
for (var pi = 0; pi < p.params.length; pi++) param[param.length] = p.params[pi];
}
$.ajax({
type: p.method,
url: p.url,
data: param,
dataType: p.dataType,
success: function(data){
/* yacy limits itemsPerPage for unauthenticated users */
p.rp = parseInt(data.channels[0].itemsPerPage);
g.flexAddData(data);
},
error: function(data) {
try { if (p.onError) p.onError(data); } catch (e) {}
}
});
}
});
});
function yaction(com, grid) {
if (com == 'Bookmark') {
confirm('Add ' + $('.trSelected',grid).length + ' search results to bookmark(s)?')
$('.trSelected',grid).each(function(){
var url = $(this).find('.url').text();
var title = $(this).find('.linktitle').text();
var desc = $(this).find('.desc').text();
var tags = $(tabid).attr('search');
var path = "/searchResults";
var pub = "private";
var query = "&url="+url+"&title="+title+"&description="+desc+"&tags="+tags+"&path="+path+"&public="+pub+"&add=create";
$.ajax({
type: "POST",
url: "/xml/bookmarks/posts/add_p.xml?login="+query,
dataType: "xml",
success: function(xml) {
alert("Debug: posted bookmark for: "+url);
}
});
});
} else if (com =='Open') {
$('.trSelected',grid).each(function(){
var url = $(this).find('.url').text();
window.open(url);
});
} else {
alert("Test!");
}
}
//]]>
</script>
<table class="yresult">
<tbody></tbody>
</table>