function mapTwitterApiListToListViewerList(twitterListResponse){
        //twitterListResponse

        var tweets = [];
        for (var key in twitterListResponse) {
            
            if (twitterListResponse.hasOwnProperty(key)) {
                // console.log(key + " -> " + twitterListResponse[key]);

                //first get top level values like text
                try {
                    // console.log("***************");
                    // console.log("twitter status text before linkify: " + twitterListResponse[key].text);
                    // console.log("twitter status text after linkify: " + linkifyHtml(twitterListResponse[key].text));
                    // console.log("***************");

                    var tweet = {"text":linkifyHtml(twitterListResponse[key].text, {defaultProtocol: 'https'})};
                    // var tweet = {"text":"\"Yes to Humphries but I prefer Brate of pass catchers. But of WR, yes, increase for Adam. He'd be my pick of the WR. \"<a href=\"https://t.co/k85QEO1gL0\" target=\"_blank\">https://t.co/k85QEO1gL0</a>"}
                    // var tweet = {"text":twitterListResponse[key].text};
                    //now get user-level info
                    tweet.name=twitterListResponse[key]["user"].name;
                    tweet.screen_name=twitterListResponse[key]["user"].screen_name;
                    tweet.profile_image_url=twitterListResponse[key]["user"].profile_image_url;
                    tweets.push(tweet);
                } catch(e) {
                    console.log("error mapping tweet to model" + e);
                }           
            }
        }
        return tweets;
    }
Ejemplo n.º 2
0
    socket.on('chat message', function(msg) {


        var linkifiedMsg = linkifyHtml(msg, {
            defaultProtocol: 'https'
        });
        io.emit('chat message', socket.nickname + " : " + linkifiedMsg);
    });
Ejemplo n.º 3
0
 self.content.subscribe(function(newContent) {
     self.contentDisplay(linkifyHtml(markdown.full.render(newContent), linkifyOpts));
 });
Ejemplo n.º 4
0
var CommentModel = function(data, $parent, $root) {

    BaseComment.prototype.constructor.call(this);

    var self = this;

    self.$parent = $parent;
    self.$root = $root;

    self.id = ko.observable(data.id);
    self.content = ko.observable(data.attributes.content || '');
    self.page = ko.observable(data.attributes.page);
    self.dateCreated = ko.observable(data.attributes.date_created);
    self.dateModified = ko.observable(data.attributes.date_modified);
    self.isDeleted = ko.observable(data.attributes.deleted);
    self.modified = ko.observable(data.attributes.modified);
    self.isAbuse = ko.observable(data.attributes.is_abuse);
    self.canEdit = ko.observable(data.attributes.can_edit);
    self.hasChildren = ko.observable(data.attributes.has_children);
    self.hasReport = ko.observable(data.attributes.has_report);
    self.isHam = ko.observable(data.attributes.is_ham);

    self.isDeletedAbuse = ko.pureComputed(function() {
        return self.isDeleted() && self.isAbuse();
    });
    self.isDeletedNotAbuse = ko.pureComputed(function() {
        return self.isDeleted() && !self.isAbuse();
    });
    self.isAbuseNotDeleted = ko.pureComputed(function() {
        return !self.isDeleted() && self.isAbuse();
    });

    if (window.contextVars.node.anonymous) {
        self.author = {
            'id': null,
            'urls': {'profile': ''},
            'fullname': 'A User',
            'gravatarUrl': ''
        };
    } else if ('embeds' in data && 'user' in data.embeds && 'data' in data.embeds.user) {
        var userData = data.embeds.user.data;
        self.author = {
            'id': userData.id,
            'urls': {'profile': userData.links.html},
            'fullname': userData.attributes.full_name,
            'gravatarUrl': userData.links.profile_image
        };
    } else if ('embeds' in data && 'user' in data.embeds && 'errors' in data.embeds.user) {
        var errors = data.embeds.user.errors;
        for (var e in data.embeds.user.errors) {
            if ('meta' in errors[e] && 'full_name' in errors[e].meta) {
                self.author = {
                    'id': null,
                    'urls': {'profile': ''},
                    'fullname': errors[e].meta.full_name,
                    'gravatarUrl': ''
                };
                break;
            }
        }
    } else {
        self.author = self.$root.author;
    }

    var linkifyOpts = { target: function (href, type) { return type === 'url' ? '_top' : null; } };
    self.contentDisplay = ko.observable(linkifyHtml(markdown.full.render(self.content()), linkifyOpts));

    // Update contentDisplay with rendered markdown whenever content changes
    self.content.subscribe(function(newContent) {
        self.contentDisplay(linkifyHtml(markdown.full.render(newContent), linkifyOpts));
    });

    self.prettyDateCreated = ko.computed(function() {
        return relativeDate(self.dateCreated());
    });
    self.prettyDateModified = ko.pureComputed(function() {
        return 'Modified ' + relativeDate(self.dateModified());
    });

    self.loading = ko.observable(true);
    self.showChildren = ko.observable(false);

    self.reporting = ko.observable(false);
    self.deleting = ko.observable(false);

    self.abuseCategory = ko.observable('spam');
    self.abuseText = ko.observable('');

    self.editing = ko.observable(false);

    exclusifyGroup(
        self.editing, self.replying, self.reporting, self.deleting
    );

    self.isVisible = ko.pureComputed(function() {
        return !self.isDeleted() && !self.isAbuse();
    });

    self.editNotEmpty = ko.pureComputed(function() {
        return notEmpty(self.content());
    });

    self.toggleIcon = ko.computed(function() {
        return self.showChildren() ? 'fa fa-minus' : 'fa fa-plus';
    });

    self.canReport = ko.pureComputed(function() {
        return self.$root.canComment() && !self.canEdit();
    });

    self.nodeUrl = '/' + self.$root.nodeId() + '/';

};
Ejemplo n.º 5
0
 // Get the display message with URLs linkified
 getDisplayMessage() {
   return linkify(escapeHtml(this.message()));
 }
Ejemplo n.º 6
0
 getHtml: function(req) {
     var parent = this,
         html = '';
     switch (parent.type) {
         case 'list-radio':
         case 'list-radio-other':
             return this.checkGetAnswers().then(
                 function(answers){
                     var html = '<div class="main-question" id="question-' + parent.question_order + '">\n';
                     switch (parent.type) {
                         case 'list-radio':
                         case 'list-radio-other':
                             var otherAnswer = null;
                             html += '<h2>' + escape(parent.question) + '</h2>\n';
                             if (answers.length > 2) {
                                 html += '<div class="listbtns row">\n';
                                 // If we have more than two answers, we display them in a vertical list
                                 for (var i = 0, iLen = answers.length; i < iLen; i++) {
                                     if (answers[i].sortorder === -1) {
                                         otherAnswer = answers[i];
                                         continue;
                                     }
                                     html += generateExclusiveBtnAnswerHtml(answers[i], answerLayout.list, parent);
                                 }
                             } else {
                                 html += '<div class="rowbtns row">\n';
                                 // If we have only two answers, we display them in as VS in a sole row
                                 for (var j = 0, jLen = answers.length; j < jLen; j++) {
                                     html += generateExclusiveBtnAnswerHtml(answers[j], answerLayout.row, parent);
                                 }
                             }
                             if (otherAnswer !== null) {
                                 html += generateExclusiveBtnAnswerHtml(otherAnswer, answerLayout.listOther, parent);
                             }
                             html += '</div>\n';
                             break;
                         default:
                             return new Error("Question type not contemplated.");
                     }
                     return html + '</div>';
                 }
             );
         case 'text-answer':
             html += generateTextInputQuestionHtml(parent, 'emapic.utils.checkInputNotVoid', req);
             break;
         case 'image-upload':
             html += generateImageInputQuestionHtml(parent, 'emapic.utils.checkImageNotVoid', req);
             break;
         case 'image-url':
             html += generateTextInputQuestionHtml(parent, 'emapic.utils.checkInputUrlIsImage', req);
             break;
         case 'explanatory-text':
             html += '<div class="col-xs-12 text-center"><div id="q' + parent.question_order + '-other"' +
                 '  class="col-xs-12 col-md-6 col-md-offset-3 survey-answer explanatory-text"><p id="q' + parent.question_order +
                 '">' + Utils.transformNewlinesToHtml(linkifyHtml(escape(parent.question))) + '</p><br/><button id="q' + parent.question_order +
                 '-ok" class="btn btn-primary" onclick="emapic.modules.survey.advanceSurvey()">OK</button></div></div>';
             break;
         default:
             return new Error("Question type not contemplated.");
     }
     return '<div class="main-question" id="question-' + parent.question_order + '">\n' + html + '\n</div>';
 },
Ejemplo n.º 7
0
/**
 * Utility function to render links in plain text to HTML a tags
 * @param content {string} text to be converted
 * @returns {string} linkified text
 */
function linkifyText(content) {
    var linkifyOpts = { target: function (href, type) { return type === 'url' ? '_top' : null; } };
    return linkify(content);
}