blob: e1cc25db31c50d92e96d5d54b32f3ea437c20392 [file] [log] [blame]
<link rel="import" href="../polymer/polymer.html">
<link rel="import" href="chops-bug-mixin.html">
<dom-module id="chops-bug-link">
<template>
<style>
:host {
display: block;
}
p {
display: inline;
}
</style>
<a href$="https://bugs.chromium.org/p/[[_bugProject]]/issues/detail?id=[[_bugId]]">
[[bugProject]]:[[bugId]]</a>
<template is="dom-if" if="[[status]]">
<p>([[status]])</p>
</template>
<template is="dom-if" if="[[pri]]">
<p>(Pri-[[pri]])</p>
</template>
<template is="dom-if" if="[[!short]]">
<p>[[description]]</p>
</template>
</template>
<script>
'use strict';
/**
* `<chops-bug-link>` displays a link to a chromium bug.
*
* All properties except for `bug` are optional. Set short to true
* when the description should not be shown.
*
* @customElement
* @polymer
* @demo /demo/chops-bug-link_demo.html
*/
class ChopsBugLink extends ChopsBugMixin(Polymer.Element) {
static get is() { return 'chops-bug-link'; }
static get properties() {
return {
/** A bug id, bug url, or a bug in the form of 'projectName:bugId' . Required. */
bug: String,
/** The bug id. */
bugId: {
type: String,
computed: '_computeBugId(bug)',
},
/** The bug's project name. */
bugProject: {
type: String,
computed: '_computeBugProject(bug)',
},
/** The status of the bug, eg. 'Untriaged', 'Available'. Optional. */
status: String,
/** The priority number of the bug. Optional. */
pri: {
type: String,
},
/** The bug's description. Optional. */
description: String,
/** Set to true if you don't want the bug's description to be displayed. */
short: {
type: Boolean,
value: false,
}
}
}
}
customElements.define(ChopsBugLink.is, ChopsBugLink);
</script>
<dom-module>