diff --git a/src/scripts/http.js b/src/scripts/http.js
index 0f485ac..3f0ecb1 100644
--- a/src/scripts/http.js
+++ b/src/scripts/http.js
@@ -17,6 +17,7 @@
function Http() {
this.oReq = new XMLHttpRequest();
this._events = {};
+ this._headers = {};
}
Http.prototype.addEventListener = function(e, f) {
@@ -31,6 +32,9 @@ Http.prototype.addEventListener = function(e, f) {
for (key in this.http._events) {
req.addEventListener(key, this.http._events[key]);
}
+ for (key in this.http._headers) {
+ req.setRequestHeader(key, this.http._headers[key]);
+ }
req.withCredentials = true;
req.open(this.http._method, this.http._url);
req.send();
@@ -50,6 +54,11 @@ Http.prototype.addEventListener = function(e, f) {
}
};
+Http.prototype.setRequestHeader = function(header, value) {
+ this.oReq.setRequestHeader(header, value);
+ this._headers[header] = value;
+};
+
Http.prototype.open = function(m, u) {
this._method = m;
this._url = u;
diff --git a/src/tags/taglist.tag b/src/tags/taglist.tag
index 59801cb..6c93af4 100644
--- a/src/tags/taglist.tag
+++ b/src/tags/taglist.tag
@@ -36,6 +36,11 @@
{ registryUI.taglist.name } |
{ item } |
+
+
+ delete
+
+ |
@@ -110,6 +115,35 @@
registryUI.taglist.back = function () {
rg.router.go('home');
};
+ registryUI.taglist.remove = function (name, tag) {
+ var oReq = new Http();
+ oReq.addEventListener('load', function () {
+ if (this.status == 200) {
+ var digest = JSON.parse(this.responseText).config.digest;
+ var oReq = new Http();
+ oReq.addEventListener('load', function () {
+ if (this.status == 200) {
+ registryUI.taglist.instance.update();
+ } else if (this.status == 404) {
+ registryUI.taglist.createSnackbar('Server not found');
+ } else {
+ registryUI.taglist.createSnackbar(this.responseText);
+ }
+ });
+ oReq.open('DELETE', registryUI.url() + '/v2/' + name + '/manifests/' + digest);
+ oReq.setRequestHeader('Accept', 'application/vnd.docker.distribution.manifest.v2+json');
+ oReq.send();
+ } else if (this.status == 404) {
+ registryUI.taglist.createSnackbar('Server not found');
+ } else {
+ registryUI.taglist.createSnackbar(this.responseText);
+ }
+ });
+ console.log(name, tag);
+ oReq.open('GET', registryUI.url() + '/v2/' + name + '/manifests/' + tag);
+ oReq.setRequestHeader('Accept', 'application/vnd.docker.distribution.manifest.v2+json');
+ oReq.send();
+ };
\ No newline at end of file