blob: 3a863db1d67dc8c4b1967de7e611deeaabe8514e [file] [log] [blame]
<!-- The <purge-sk> custom element declaration.
A custom element that allows to clear or purge individual digests.
For example:
<purge-sk digest="[[digest]]></purge-sk>
Will display a element that can be opened to show two buttons, one to clear
the digest from server side caches and the other to purge the digest from GS.
Attributes:
digest - The digest to be purged.
Events:
None
Methods:
None
-->
<link rel="import" href="/res/imp/bower_components/iron-icons/iron-icons.html">
<link rel="import" href="/res/imp/bower_components/paper-button/paper-button.html">
<link rel="import" href="/res/imp/bower_components/iron-flex-layout/iron-flex-layout.html">
<link rel="import" href="activity-sk.html">
<dom-module id="purge-sk">
<template>
<style>
.openCloseIcon {
padding-left: 0;
padding-right: 0;
color:#aaaaaa;
}
</style>
<div class="layout horizontal">
<div hidden$="[[_open]]">
<paper-button class="openCloseIcon" on-tap="_toggleOpen">
<iron-icon icon="icons:add-circle-outline"> </iron-icon>
</paper-button>
</div>
<div hidden$="[[!_open]]">
<paper-button class="openCloseIcon" on-tap="_toggleOpen">
<iron-icon icon="icons:clear"> </iron-icon>
</paper-button>
<paper-button on-tap="_handleClear" id="clearButton" raised="">
Clear
</paper-button>
<paper-button on-tap="_handlePurge" id="purgeButton" raised="">
Purge
</paper-button>
</div>
<activity-sk id="activityPurge"></activity-sk>
</div>
</template>
<script>
Polymer({
is: 'purge-sk',
properties: {
digest: {
type: String,
value: "",
notify: true
},
_open: {
type: Boolean,
value: false,
}
},
_toggleOpen: function() {
this._open = !this._open;
},
_handleClear: function() {
this._clearPurge(this.digest, false);
},
_handlePurge: function() {
this._clearPurge(this.digest, true);
},
_clearPurge: function(digest, purge) {
var url = '/json/cleardigests' + ((purge) ? '?purge=true':'');
this.$.activityPurge.startSpinner("Clearing/purging ...");
sk.post(url, JSON.stringify([digest])).then(JSON.parse).then(function(json){
this.$.activityPurge.stopSpinner();
this.set("_open", false);
}.bind(this)).catch(function(err) {
this.$.activityPurge.stopSpinner();
this.set("_open", false);
sk.errorMessage(err);
}.bind(this));
}
});
</script>
</dom-module>