diff options
author | V.Krishn <vkrishn4@gmail.com> | 2016-07-08 17:29:50 +0530 |
---|---|---|
committer | V.Krishn <vkrishn4@gmail.com> | 2016-07-08 17:29:50 +0530 |
commit | 8ea5ad9a4b173a55924aa38bf9a11467954ea16a (patch) | |
tree | bea0c849d227f740226d1b63a4cc31bcf7671f47 | |
parent | 5621d578b3c3516270359410ac5da45eaa091099 (diff) | |
download | aports-ui-8ea5ad9a4b173a55924aa38bf9a11467954ea16a.tar.bz2 |
add contents.html list+search
-rw-r--r-- | contents.html | 56 | ||||
-rw-r--r-- | package.html | 18 | ||||
-rw-r--r-- | packages.html | 19 | ||||
-rw-r--r-- | public/js/aports.api.js | 6 | ||||
-rw-r--r-- | public/js/aports.contents.js | 151 | ||||
-rw-r--r-- | public/js/aports.package.js | 5 | ||||
-rw-r--r-- | public/js/aports.packages.js | 6 |
7 files changed, 237 insertions, 24 deletions
diff --git a/contents.html b/contents.html index e69de29..785fc06 100644 --- a/contents.html +++ b/contents.html @@ -0,0 +1,56 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags --> + <title>Alpine Linux aports viewer</title> + <link rel="stylesheet" href="/aports-ui/public/lib/bootstrap/3.3.5/css/bootstrap.min.css"> + <link rel="stylesheet" href="/aports-ui/public/css/aports.api.css"> + </head> + <body> + <div class="container"> + <div class="page-header"><h3><a href='/aports-ui/contents.html'>Search for contents</a></h3></div> + + <div class="panel-body"> + <form class="form-inline" role="form" id="search"> + + <div class="form-group"> + <div class="input-group"> + <input type="text" class="form-control" id="file" name="file" value="" placeholder="File" autofocus> + <span data-toggle="tooltip" class="input-group-addon cursor-pointer" title="Use _ as wildcards">?</span> + </div> + </div> + <div class="form-group"> + <div class="input-group"> + <input type="text" class="form-control" id="path" name="path" value="" placeholder="Path"> + <span data-toggle="tooltip" class="input-group-addon cursor-pointer" title="Use _ as wildcards">?</span> + </div> + </div> + <div class="form-group"> + <div class="input-group"> + <input type="text" class="form-control" id="name" name="name" value="" placeholder="Package"> + <span data-toggle="tooltip" class="input-group-addon cursor-pointer" title="Use _ as wildcards">?</span> + </div> + </div> + + + </form> + </div> + </div> + + <!-- jQuery (necessary for Bootstrap's JavaScript plugins) --> + <script src="/aports-ui/public/lib/jquery/1.11.3/jquery.min.js"></script> + <!-- Latest compiled and minified JavaScript --> + <script src="/aports-ui/public/lib/bootstrap/3.3.5/js/bootstrap.min.js"></script> + + <script src="/aports-ui/public/lib/util/urlparser.js"></script> + <script src="/aports-ui/public/lib/util/dt/date.format.js"></script> + <script src="/aports-ui/public/lib/twbs-pagination/1.2.5/jquery.twbsPagination.min.js"></script> + + <script src="/aports-ui/public/js/aports.api.js"></script> + <script src="/aports-ui/public/js/aports.contents.js"></script> + + </body> +</html> diff --git a/package.html b/package.html index 1d68173..c2220f1 100644 --- a/package.html +++ b/package.html @@ -6,8 +6,8 @@ <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags --> <title>Alpine Linux aports viewer</title> - <link rel="stylesheet" href="/public/lib/bootstrap/3.3.5/css/bootstrap.min.css"> - <link rel="stylesheet" href="/public/css/aports.api.css"> + <link rel="stylesheet" href="/aports-ui/public/lib/bootstrap/3.3.5/css/bootstrap.min.css"> + <link rel="stylesheet" href="/aports-ui/public/css/aports.api.css"> </head> <body> <div class="container"> @@ -18,16 +18,16 @@ </div> <!-- jQuery (necessary for Bootstrap's JavaScript plugins) --> - <script src="/public/lib/jquery/1.11.3/jquery.min.js"></script> + <script src="/aports-ui/public/lib/jquery/1.11.3/jquery.min.js"></script> <!-- Latest compiled and minified JavaScript --> - <script src="/public/lib/bootstrap/3.3.5/js/bootstrap.min.js"></script> + <script src="/aports-ui/public/lib/bootstrap/3.3.5/js/bootstrap.min.js"></script> - <script src="/public/lib/util/urlparser.js"></script> - <script src="/public/lib/util/dt/date.format.js"></script> - <script src="/public/lib/twbs-pagination/1.2.5/jquery.twbsPagination.min.js"></script> + <script src="/aports-ui/public/lib/util/urlparser.js"></script> + <script src="/aports-ui/public/lib/util/dt/date.format.js"></script> + <script src="/aports-ui/public/lib/twbs-pagination/1.2.5/jquery.twbsPagination.min.js"></script> - <script src="/public/js/aports.api.js"></script> - <script src="/public/js/aports.package.js"></script> + <script src="/aports-ui/public/js/aports.api.js"></script> + <script src="/aports-ui/public/js/aports.package.js"></script> </body> </html> diff --git a/packages.html b/packages.html index d1368d3..3d2c899 100644 --- a/packages.html +++ b/packages.html @@ -6,12 +6,12 @@ <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags --> <title>Alpine Linux aports viewer</title> - <link rel="stylesheet" href="/public/lib/bootstrap/3.3.5/css/bootstrap.min.css"> - <link rel="stylesheet" href="/public/css/aports.api.css"> + <link rel="stylesheet" href="/aports-ui/public/lib/bootstrap/3.3.5/css/bootstrap.min.css"> + <link rel="stylesheet" href="/aports-ui/public/css/aports.api.css"> </head> <body> <div class="container"> - <div class="page-header"><h3><a href='/packages.html'>Search for packages</a></h3></div> + <div class="page-header"><h3><a href='/aports-ui/packages.html'>Search for packages</a></h3></div> <div class="panel-body"> <form class="form-inline" role="form" id="search"> @@ -27,15 +27,16 @@ </div> <!-- jQuery (necessary for Bootstrap's JavaScript plugins) --> - <script src="/public/lib/jquery/1.11.3/jquery.min.js"></script> + <script src="/aports-ui/public/lib/jquery/1.11.3/jquery.min.js"></script> <!-- Latest compiled and minified JavaScript --> - <script src="/public/lib/bootstrap/3.3.5/js/bootstrap.min.js"></script> + <script src="/aports-ui/public/lib/bootstrap/3.3.5/js/bootstrap.min.js"></script> - <script src="/public/lib/util/dt/date.format.js"></script> - <script src="/public/lib/twbs-pagination/1.2.5/jquery.twbsPagination.min.js"></script> + <script src="/aports-ui/public/lib/util/urlparser.js"></script> + <script src="/aports-ui/public/lib/util/dt/date.format.js"></script> + <script src="/aports-ui/public/lib/twbs-pagination/1.2.5/jquery.twbsPagination.min.js"></script> - <script src="/public/js/aports.api.js"></script> - <script src="/public/js/aports.packages.js"></script> + <script src="/aports-ui/public/js/aports.api.js"></script> + <script src="/aports-ui/public/js/aports.packages.js"></script> </body> </html> diff --git a/public/js/aports.api.js b/public/js/aports.api.js index bb2a8c2..4709f5f 100644 --- a/public/js/aports.api.js +++ b/public/js/aports.api.js @@ -22,6 +22,10 @@ packages.fields = ['name', 'version', 'url', 'license', 'branch', 'repo', 'arch', 'maintainer', 'build_time']; packages.class = 'packages'; +contents = {}; +contents.tblHdrs = ['File', 'Package', 'Branch', 'Repository', 'Architecture']; +contents.fields = ['file', 'package', 'branch', 'repo', 'arch']; +contents.class = 'contents'; flagged = {}; meta = {}; @@ -104,7 +108,7 @@ temp = {} makePgn = function(data) { var links = data.links; var pgs = parseInt((/[\d]+$/i).exec(links.last)); - currPg = parseInt((/[\d]+$/i).exec(app.query)); + currPg = parseInt((/[\=\/]{1}([\d]+)$/i).exec(app.query)[1]); app.query = (app.query).split(/\&page.*/)[0]; var pgr = $('#api-active-pager'); setTimeout(function() { diff --git a/public/js/aports.contents.js b/public/js/aports.contents.js new file mode 100644 index 0000000..b600ede --- /dev/null +++ b/public/js/aports.contents.js @@ -0,0 +1,151 @@ +/*<![CDATA[*/ + +/** + * Copyright (c) 2016 V.Krishn (vkrishn@insteps.net) + * + * This file is part of "Aports UI"; + * ---- + * + * + */ + + + fmtData = function(data, field, type) { + if(data[field] == null) return ''; + if('data' == type) { + if('file' == field) { + return data['path']+'/'+data[field]; + } + } + return data[field]; + }; + + set_contents = function(data) { + //----- data.data ----- + var items = []; var ln = ''; + var p = new Poly9.URLParser(window.location); + var q = p.getQueryarray(); + + var h = makeTblRow('', contents.tblHdrs, 'data', 'th', 'tr'); + $.each( data.data, function( key, val ) { + + var d_ = val['attributes']; + var r = data.meta.search; + var qName = q['name'] ? q['name'] : ''; + ln = 'http://pkgstest.alpinelinux.org/'+'/'+q['name']; + var pk = (makeElm('a', d_['name'], { + 'title': '', + 'href': '' + })); + d_['package'] = pk; + //d_['branch'] = r['branch']; + //d_['repo'] = r['repo']; + //d_['arch'] = r['arch']; + + items.push(makeTblRow(val['attributes'], contents.fields, 'data', 'td', 'tr')); + }); + + var tbl = "\n" + h + "\n" + items.join( "\n" ); + $( "<table/>", { + "id": "contents", + "class": "packages contents sortable", + //"class": "table table-striped table-bordered table-condensed", + html: tbl + }).appendTo( "body .container" ); + //setTimeout(function() { sortables_init(); }, 1600); + contents_ = document.getElementById('contents'); + + //----- data.links ----- + var links = []; + links.push( makeTblRow(data.links, link.fields, 'links', 'td', 'tr') ); + var tbl = links.join( "\n" ); + $( "<div/>", { + "id": "api-active-pager", + "class": "contents page-pager", + html: "\n" + }).appendTo( "body .container" ); + makePgn(data); + + //----- data.meta ----- + var stats = []; + var h = makeTblRow('', meta.stats, 'meta', 'th', 'tr'); + stats.push( makeTblRow(data.meta, meta.stats, 'meta', 'td', 'tr') ); + var tbl = "\n" + h + "\n" + stats.join( "\n" ); + $( "<table/>", { + "class": "packages contents meta", + html: tbl + }).appendTo( "body .container" ); + + //----- data.meta.search ----- + var stats = []; var f = []; + for (a in data.meta.search) f.push(a); + var h = makeTblRow('', f, 'meta', 'th', 'tr'); + stats.push( makeTblRow(data.meta.search, f, 'meta', 'td', 'tr') ); + var tbl = "\n" + h + "\n" + stats.join( "\n" ); + $( "<table/>", { + "class": "packages contents meta-search", + html: tbl + }).appendTo( "body .container" ); + + }; + + set_categories = function(data) { + //----- data.data ----- + var items = []; + items.push(makeElm('option', '', {}) ); + $.each( data.data.branch, function( key, val ) { + items.push(makeElm('option', val, {}) ); + }); + var opt1 = (makeElm('select', items.join( "\n" ), { + 'name':'branch', 'data-placeholder':'Branch', + 'class':'form-control chosen-select', 'id':'branch' + })); + var items = []; + items.push(makeElm('option', '', {}) ); + $.each( data.data.repo, function( key, val ) { + items.push(makeElm('option', val, {}) ); + }); + var opt2 = (makeElm('select', items.join( "\n" ), { + 'name':'repo', 'data-placeholder':'Repository', + 'class':'form-control chosen-select', 'id':'repo' + })); + var items = []; + items.push(makeElm('option', '', {}) ); + $.each( data.data.arch, function( key, val ) { + items.push(makeElm('option', val, {}) ); + }); + var opt3 = (makeElm('select', items.join( "\n" ), { + 'name':'arch', 'data-placeholder':'Arch', + 'class':'form-control chosen-select', 'id':'arch' + })); + attr = {'class': 'form-group'}; + var btn = get_btn_search(); + var html = '<br style="clear: both;"/>'+"\n"+(makeElm('div', opt1, attr)) + +"\n"+(makeElm('div', opt2, attr)) + +"\n"+(makeElm('div', opt3, attr))+btn; + $( html ).appendTo( "body #search" ); + }; + + get_btn_search = function() { + var btn = (makeElm('button', 'Search', { + 'type':'submit', 'class':'btn btn-primary' + })); + return "\n"+btn; + }; + + var p = new Poly9.URLParser(window.location); + var q = p.getQueryarray(); + query = (app.query) ? '&'+app.query : '' + var qName = q['name'] ? q['name'] : ''; + //url = config.api.baseurl+''+'/packages/'+'17912'+'/relationships/contents'+''+query; + url = config.api.baseurl+''+'/search/contents/'+qName+''+query; + //alert(url); + asyncReq(url, 'callback', set_contents); + + url=config.api.baseurl+'/categories'; + asyncReq(url, 'callback', set_categories); + + +/*]]>*/ + + diff --git a/public/js/aports.package.js b/public/js/aports.package.js index c28c7db..4ce2431 100644 --- a/public/js/aports.package.js +++ b/public/js/aports.package.js @@ -63,9 +63,10 @@ })); d_['build_log'] = bl; - ln = 'http://pkgs.alpinelinux.org/contents'; + //ln = 'http://pkgs.alpinelinux.org/contents'; + ln = app.baseurl.replace(/package/, 'contents'); var ct = (makeElm('a', 'Contents of package', { - 'href': ln+'?branch='+branch+'&name='+name+'&arch='+arch+'&repo='+repo+'' + 'href': ln+'?name='+name+'&branch='+branch+'&repo='+repo+'&arch='+arch+'' })); d_['contents'] = ct; diff --git a/public/js/aports.packages.js b/public/js/aports.packages.js index 3c7008f..8414677 100644 --- a/public/js/aports.packages.js +++ b/public/js/aports.packages.js @@ -135,12 +135,12 @@ var btn = (makeElm('button', 'Search', { 'type':'submit', 'class':'btn btn-primary' })); - attr = {'class': 'form-group'} - var html = "\n"+(makeElm('div', opt4, attr))+"\n"+btn + attr = {'class': 'form-group'}; + var html = "\n"+(makeElm('div', opt4, attr))+"\n"+btn; $( html ).appendTo( "body #search" ); }; - query = (app.query) ? '&'+app.query : '' + query = (app.query) ? '&'+app.query : ''; url = config.api.baseurl+''+app.resource+''+query; asyncReq(url, 'callback', set_packages); |