mirror of
https://github.com/grafana/grafana.git
synced 2025-02-16 18:34:52 -06:00
fix(table): remove html for htmlencoding option
This commit is contained in:
parent
5775c0a341
commit
7d89cf228c
@ -103,11 +103,6 @@
|
||||
<metric-segment-model property="style.dateFormat" options="editor.dateFormats" on-change="editor.render()" custom="true"></metric-segment-model>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="tight-form-list" ng-if="style.type === 'string'">
|
||||
<li class="tight-form-item">
|
||||
<editor-checkbox text="escape html" model="style.escapeHtml" change="editor.render()"></editor-checkbox>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
<div class="tight-form" ng-if="style.type === 'number'">
|
||||
@ -163,7 +158,6 @@
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -112,7 +112,6 @@ export class TablePanelEditorCtrl {
|
||||
pattern: '/.*/',
|
||||
dateFormat: 'YYYY-MM-DD HH:mm:ss',
|
||||
thresholds: [],
|
||||
escapeHtml: true
|
||||
};
|
||||
|
||||
this.panel.styles.push(angular.copy(columnStyleDefaults));
|
||||
|
@ -24,16 +24,16 @@ export class TableRenderer {
|
||||
return _.first(style.colors);
|
||||
}
|
||||
|
||||
defaultCellFormater(value) {
|
||||
if (value === null || value === void 0 || value === undefined) {
|
||||
defaultCellFormater(v) {
|
||||
if (v === null || v === void 0 || v === undefined) {
|
||||
return '';
|
||||
}
|
||||
|
||||
if (_.isArray(value)) {
|
||||
value = value.join(', ');
|
||||
if (_.isArray(v)) {
|
||||
v = v.join(', ');
|
||||
}
|
||||
|
||||
return value;
|
||||
return v;
|
||||
}
|
||||
|
||||
createColumnFormater(style) {
|
||||
@ -96,7 +96,7 @@ export class TableRenderer {
|
||||
|
||||
renderCell(columnIndex, value, addWidthHack = false) {
|
||||
value = this.formatColumnValue(columnIndex, value);
|
||||
value = encodeHtml(value);
|
||||
value = this.encodeHtml(value);
|
||||
var style = '';
|
||||
if (this.colorState.cell) {
|
||||
style = ' style="background-color:' + this.colorState.cell + ';color: white"';
|
||||
@ -141,16 +141,16 @@ export class TableRenderer {
|
||||
|
||||
return html;
|
||||
}
|
||||
}
|
||||
|
||||
function encodeHtml(unsafe) {
|
||||
return unsafe.replace(/[&<>"']/g, function(m) {
|
||||
return ({
|
||||
'&': '&',
|
||||
'<': '<',
|
||||
'>': '>',
|
||||
'"': '"',
|
||||
'\'': '''
|
||||
})[m];
|
||||
});
|
||||
encodeHtml(unsafe) {
|
||||
return unsafe.replace(/[&<>"']/g, function(m) {
|
||||
return ({
|
||||
'&': '&',
|
||||
'<': '<',
|
||||
'>': '>',
|
||||
'"': '"',
|
||||
'\'': '''
|
||||
})[m];
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -11,8 +11,7 @@ describe('when rendering table', () => {
|
||||
{text: 'Value'},
|
||||
{text: 'Colored'},
|
||||
{text: 'Undefined'},
|
||||
{text: 'String'},
|
||||
{text: 'UnescapedString' }
|
||||
{text: 'String'}
|
||||
];
|
||||
|
||||
var panel = {
|
||||
@ -41,10 +40,6 @@ describe('when rendering table', () => {
|
||||
{
|
||||
pattern: 'String',
|
||||
type: 'string',
|
||||
},
|
||||
{
|
||||
pattern: 'UnescapedString',
|
||||
type: 'string'
|
||||
}
|
||||
]
|
||||
};
|
||||
@ -92,7 +87,7 @@ describe('when rendering table', () => {
|
||||
});
|
||||
|
||||
it('undefined formater should return escaped html', () => {
|
||||
var html = renderer.renderCell(4, "&breaking <br /> the <br /> row");
|
||||
var html = renderer.renderCell(3, "&breaking <br /> the <br /> row");
|
||||
expect(html).to.be('<td>&breaking <br /> the <br /> row</td>');
|
||||
});
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user