Changeset 24643

Show
Ignore:
Timestamp:
11/22/08 19:18:02 (5 years ago)
Author:
teramako
Message:
  • follow 2.0pre
  • fix: livedoorclip
Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/javascript/vimperator-plugins/trunk/sbmcommentsviewer.js

    r22654 r24643  
    6666        )); 
    6767    }, 
    68     toHTMLString: function(format, countOnly){ 
    69         var label = (this.faviconURL ? '<img src="' + this.faviconURL + '" width="16" height="16"/>' : '') + 
    70                     manager.type[this.type] + ' ' + this.count + '(' + this.entries.length + ')' + 
    71                     (this.pageURL ? ' <a href="' + this.pageURL + '">' + this.pageURL + '</a>' : ''); 
     68    toHTML: function(format, countOnly){ 
     69        var label = <> 
     70            {this.faviconURL ? <img src={this.faviconURL} width="16" height="16"/> : <></>} 
     71            {manager.type[this.type] + ' ' + this.count + '(' + this.entries.length + ')'} 
     72            {this.pageURL ? <a href="#">{this.pageURL}</a> : <></>} 
     73        </>; 
    7274        if (countOnly){ 
    7375            return label; 
    7476        } else { 
    75             let str = [ 
    76                 '<table id="liberator-sbmcommentsviewer"><caption style="text-align:left;" class="hl-Title">' + label + '</caption><tr>' 
    77             ]; 
    78             format.forEach(function(colum){ 
    79                 let name = manager.format[colum] || '-'; 
    80                 str.push('<th>' + name + '</th>'); 
    81             }); 
    82             str.push('</tr>'); 
    83             this.entries.forEach(function(e){ 
    84                 str.push(e.toHTMLString(format)); 
    85             }); 
    86             str.push('</table>'); 
    87             return str.join(''); 
     77            let xml = <table id="liberator-sbmcommentsviewer"> 
     78                <caption style="text-align:left" class="hl-Title">{label}</caption> 
     79                <tr/> 
     80            </table>; 
     81            let self = this; 
     82            xml.*[xml.*.length()-1].* += (function(){ 
     83                var thead = <tr/>; 
     84                format.forEach(function(colum){ thead.* += <th>{manager.format[colum] || '-'}</th>; }); 
     85                var tbody = <></>; 
     86                self.entries.forEach(function(e){ tbody += e.toHTML(format); }); 
     87                return thead + tbody; 
     88            })(); 
     89            return xml; 
    8890        } 
    8991    } 
     
    113115} //}}} 
    114116SBMEntry.prototype = { //{{{ 
    115     toHTMLString: function(format){ 
    116     // E4X で書く手もあるけど、liberator.echoを使って出力すると 
    117     // toString後に"\n"が<br/>に変換されてしまうのでStringで 
    118         var str = ['<tr>']; 
     117    toHTML: function(format){ 
     118        var xml = <tr/>; 
    119119        var self = this; 
    120120        format.forEach(function(colum){ 
    121121            switch(colum){ 
    122122                case 'id': 
    123                     str.push('<td class="liberator-sbmcommentsviewer-id">' + (self.userIcon ? '<p style="display:table-cell;vertical-align:middle;padding-right:3px;"><img src="'+self.userIcon +'" width="16" height="16"/></p>' : '') + 
    124                              '<p style="display:table-cell;vertical-align:middle;">' + self.id + '</p></td>'); 
     123                    xml.* += <td class="liberator-sbmcommentsviewer-id"> 
     124                                {self.userIcon ? <><img src={self.userIcon} width="16" height="16"/> {self.id}</> : <span>{self.id}</span>} 
     125                             </td>; 
    125126                    break; 
    126127                case 'timestamp': 
    127                     str.push('<td class="liberator-sbmcommentsviewer-timestamp">' + self.formatDate() + '</td>'); break; 
     128                    xml.* += <td class="liberator-sbmcommentsviewer-timestamp">{self.formatDate()}</td>; break; 
    128129                case 'tags': 
    129                     str.push('<td class="liberator-sbmcommentsviewer-tags">' + self.tags.join(',') + '</td>'); break; 
     130                    xml.* += <td class="liberator-sbmcommentsviewer-tags">{self.tags.join(',')}</td>; break; 
    130131                case 'comment': 
    131                     str.push('<td class="liberator-sbmcommentsviewer-comment" style="white-space:normal;">' + self.comment + '</td>'); break; 
     132                    xml.* += <td class="liberator-sbmcommentsviewer-comment" style="white-space:normal;">{self.comment}</td>; break; 
    132133                case 'tagsAndComment': 
    133                     tagString = self.tags.length ? '[' + self.tags.join('][') + ']':''; 
    134                     str.push('<td class="liberator-sbmcommentsviewer-tagsAndComment" style="white-space:normal;">' + tagString + ' ' + self.comment + '</td>'); break; 
     134                    var tagString = self.tags.length ? '[' + self.tags.join('][') + ']':''; 
     135                    xml.* += <td class="liberator-sbmcommentsviewer-tagsAndComment" style="white-space:normal;">{tagString + ' '+self.comment}</td>; 
     136                    break; 
    135137                default: 
    136                     str.push('<td>-</td>'); 
     138                    xml.* += <td>-</td>; 
    137139            } 
    138140        }); 
    139         str.push('</tr>'); 
    140         return str.join(''); 
     141        return xml; 
    141142    }, 
    142143    formatDate: function(){ 
     
    181182                cacheManager.add(sbmContainer, url, type); 
    182183                if (openToBrowser) 
    183                     manager.open(sbmContainer.toHTMLString(format,false)); 
     184                    manager.open(sbmContainer.toHTML(format,false)); 
    184185                else 
    185                     liberator.echo(sbmContainer.toHTMLString(format,countOnly), true); 
     186                    liberator.echo(sbmContainer.toHTML(format,countOnly), true); 
    186187            } else { 
    187188                liberator.echoerr(sbmURL + ' ' + xhr.status, true); 
     
    238239            } 
    239240            var c = new SBMContainer('d', items.length, { 
    240                 faviconURL: 'http://del.icio.us/favicon.ico', 
     241                faviconURL: 'http://delicious.com/favicon.ico', 
    241242                pageURL:    pageURL 
    242243            }); 
     
    274275                       decode(xhr.responseText); 
    275276        */ 
    276             var json = jsonDecode(xhr.reponseText); 
     277            var json = jsonDecode(xhr.responseText); 
    277278            if (json && json.isSuccess){ 
    278279                let c = new SBMContainer('l', json.total_clip_count, { 
     
    282283                json.Comments.forEach(function(clip){ 
    283284                    c.add( clip.livedoor_id, new Date(clip.created_on * 1000), 
    284                            clip.notes ? clip.notes.replace(/</g,'&lt;').replace(/>/g,'&gt;') : '', 
     285                           clip.notes ? clip.notes : '', 
    285286                           clip.tags, 
    286287                           { 
     
    472473                    if (openToBrowser) 
    473474                        // TODO 
    474                         manager.open(cacheManager.get(url,type).toHTMLString(format,false), liberator.forceNewTab); 
     475                        manager.open(cacheManager.get(url,type).toHTML(format,false), liberator.forceNewTab); 
    475476                    else 
    476                         liberator.echo(cacheManager.get(url, type).toHTMLString(format,countOnly), true); 
     477                        liberator.echo(cacheManager.get(url, type).toHTML(format,countOnly), true); 
    477478                } else { 
    478479                    try {