From 6e36370716d89fdf584933e464da94987f1a63dc Mon Sep 17 00:00:00 2001 From: Martchus Date: Sun, 15 Nov 2015 18:46:42 +0100 Subject: [PATCH] fixed some bugs, added links for official repositories and AUR --- alpm/packagefinder.cpp | 11 +++++++++++ alpm/packagefinder.h | 20 ++++++++++++++++++++ web/index.html | 2 +- web/js/client.js | 10 +++++++++- web/js/packagemanagement.js | 18 ++++++++++++++++-- web/js/utils.js | 5 ++++- 6 files changed, 61 insertions(+), 5 deletions(-) create mode 100644 alpm/packagefinder.cpp create mode 100644 alpm/packagefinder.h diff --git a/alpm/packagefinder.cpp b/alpm/packagefinder.cpp new file mode 100644 index 0000000..005d347 --- /dev/null +++ b/alpm/packagefinder.cpp @@ -0,0 +1,11 @@ +#include "packagefinder.h" + +namespace RepoIndex { + +PackageFinder::PackageFinder(QObject *parent) : QObject(parent) +{ + +} + +} // namespace RepoIndex + diff --git a/alpm/packagefinder.h b/alpm/packagefinder.h new file mode 100644 index 0000000..f18eb89 --- /dev/null +++ b/alpm/packagefinder.h @@ -0,0 +1,20 @@ +#ifndef REPOINDEX_PACKAGEFINDER_H +#define REPOINDEX_PACKAGEFINDER_H + + +namespace RepoIndex { + +class PackageFinder : public QObject +{ + Q_OBJECT +public: + explicit PackageFinder(QObject *parent = 0); + +signals: + +public slots: +}; + +} // namespace RepoIndex + +#endif // REPOINDEX_PACKAGEFINDER_H diff --git a/web/index.html b/web/index.html index fee5b0a..436defb 100644 --- a/web/index.html +++ b/web/index.html @@ -128,7 +128,7 @@ - ArchRepoNameVersionDescriptionBuild dateFlag date + ArchRepoNameVersionDescriptionBuild dateFlag diff --git a/web/js/client.js b/web/js/client.js index 1f6c3a5..bcee79d 100644 --- a/web/js/client.js +++ b/web/js/client.js @@ -404,7 +404,15 @@ var pkgMgr = repoindex.pageManager.packageManager; for(var i2 = 0; i2 < suggestions.length; ++i2) { var packageName = suggestions[i2]; - if(!pkgMgr.entryByName(packageName)) { + var entryExists = false; + for(var i = 0, len = pkgMgr.entries.length; i < len; ++i) { + var pkgEntry = pkgMgr.entries[i]; + if(pkgEntry.name === packageName && pkgEntry.repoName === repoName) { + entryExists = true; + break; + } + } + if(!entryExists) { var packageInfo = this.getPackageInfo(repoName, packageName); pkgMgr.addEntry(repoEntry, packageName, packageInfo); } diff --git a/web/js/packagemanagement.js b/web/js/packagemanagement.js index 37276cb..a3548b3 100644 --- a/web/js/packagemanagement.js +++ b/web/js/packagemanagement.js @@ -101,7 +101,7 @@ return entry.info.repo === repo && entry.info.name === name; }); if(res.length > 0) { - repoindex.pageManager.packageManager.showPackageInfoForIndex(res[0].info.index); + repoindex.pageManager.packageManager.showPackageInfoForIndex(res[0].index); } else { repoindex.pageManager.packageManager.showPackageNotFound(repo, name); } @@ -127,7 +127,21 @@ var tb = document.getElementById("pkg_tbody"); tb.wipeChildren(); repoindex.addPackageNames(tb, "Name", [entry.name]); - repoindex.addField(tb, "Repository", repoindex.makeStr(entry.info.repo)); + switch(entry.info.repo) { + case "AUR": + repoindex.setLink(repoindex.addField(tb, "Repository"), "AUR", "https://aur.archlinux.org/packages/" + encodeURIComponent(entry.name), window.open, "open AUR page"); + break; + case "core": + case "extra": + case "multilib": + case "community": + if(basics.arch) { + repoindex.setLink(repoindex.addField(tb, "Repository"), entry.info.repo, "https://www.archlinux.org/packages/" + entry.info.repo + "/" + basics.arch + "/" + encodeURIComponent(entry.name), window.open, "open Arch Linux page"); + break; + } + default: + repoindex.addField(tb, "Repository", repoindex.makeStr(entry.info.repo)); + } repoindex.addField(tb, "Version", repoindex.makeStr(basics.ver)); repoindex.addField(tb, "Description", repoindex.makeStr(basics.desc)); if(basics.arch) { diff --git a/web/js/utils.js b/web/js/utils.js index 7db91d3..70e24f4 100644 --- a/web/js/utils.js +++ b/web/js/utils.js @@ -71,11 +71,14 @@ } }; - repoindex.setLink = function(id, text, href, action) { + repoindex.setLink = function(id, text, href, action, tooltip) { var element = typeof id === "string" ? document.getElementById(id) : id; element.wipeChildren(); var linkElement = document.createElement("a"); linkElement.href = href; + if(tooltip) { + linkElement.title = tooltip; + } if(action) { linkElement.onclick = function() { action(this.href);