summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorV.Krishn <vkrishn4@gmail.com>2016-07-08 17:29:50 +0530
committerV.Krishn <vkrishn4@gmail.com>2016-07-08 17:29:50 +0530
commit8ea5ad9a4b173a55924aa38bf9a11467954ea16a (patch)
treebea0c849d227f740226d1b63a4cc31bcf7671f47
parent5621d578b3c3516270359410ac5da45eaa091099 (diff)
downloadaports-ui-8ea5ad9a4b173a55924aa38bf9a11467954ea16a.tar.bz2
add contents.html list+search
-rw-r--r--contents.html56
-rw-r--r--package.html18
-rw-r--r--packages.html19
-rw-r--r--public/js/aports.api.js6
-rw-r--r--public/js/aports.contents.js151
-rw-r--r--public/js/aports.package.js5
-rw-r--r--public/js/aports.packages.js6
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);