aowow/template/listviews/emote.tpl
Sarjuuk 226f521439 Template/Endpoints (Base)
* redo page render following the logic of:
      Response ─┬─> TextResponse ─> TextResponseImpl
                └─> TemplateResponse ─> TemplateResponseImpl
    * split up giant files, one per response path
    * caching becomes a trait, implemented where necessary
        * TextResponses (Ajax) can now be cached
    * make use of previously defined php classes for js objects
        * Tabs, Listview, Tooltip, Announcement, Markup, Book, ...
    * \Aowow\Template\PageTemplate is the new class to be cached
    * do not discard error messages generated after vars have been sent to template
      and store in session for display at a later time
    * implement tracking consent management
    * move logic out of template into their respective endpoints
2025-09-25 15:32:18 +02:00

72 lines
2.1 KiB
Smarty

Listview.templates.emote = {
sort: [1],
searchable: 1,
filtrable: 1,
columns: [
{
id: 'name',
name: LANG.name,
type: 'text',
align: 'left',
value: 'name',
compute: function(emote, td, tr) {
var wrapper = $WH.ce('div');
var a = $WH.ce('a');
a.style.fontFamily = 'Verdana, sans-serif';
a.href = this.getItemLink(emote);
$WH.ae(a, $WH.ct(emote.name));
$WH.ae(wrapper, a);
$WH.ae(td, wrapper);
},
sortFunc: function(a, b, col) {
return $WH.strcmp(a.name, b.name);
},
getVisibleText: function(emote) {
return emote.name;
}
},
{
id: 'preview',
name: LANG.preview,
type: 'text',
align: 'left',
value: 'name',
compute: function(emote, td, tr) {
var prev = '';
if (emote.preview) {
td.className = 's4';
prev = emote.preview.replace(/%\d?\$?s/g, '<' + LANG.name + '>');
$WH.ae(td, $WH.ct(prev));
}
else {
td.className = 'q0';
td.style.textAlign = 'right';
td.style.Align = 'right';
var
sm = $WH.ce('small'),
i = $WH.ce('i');
sm.style.paddingRight = '8px';
$WH.ae(i, $WH.ct(LANG.lvnodata));
$WH.ae(sm, i);
$WH.ae(td, sm);
}
},
sortFunc: function(a, b, col) {
return $WH.strcmp(a.preview.replace(/%\d?\$?s/g, ''), b.preview.replace(/%\d?\$?s/g, ''));
},
getVisibleText: function(emote) {
return emote.preview.replace(/%\d?\$?s/g, '');
}
}
],
getItemLink: function(emote) {
return '?emote=' + emote.id;
}
}