--- /dev/null
+/* newslash-util.js */
+
+(function () {
+ var nsUtil = {};
+ Newslash.prototype.util = nsUtil;
+
+ nsUtil.formatToLocalISOString = function formatToLocalISOString(dt) {
+ function pad(number) {
+ return (number < 10) ? ('0' + number) : number;
+ }
+ return dt.getFullYear() +
+ '-' + pad(dt.getMonth() + 1) +
+ '-' + pad(dt.getDate()) +
+ 'T' + pad(dt.getHours()) +
+ ':' + pad(dt.getMinutes()) +
+ ':' + pad(dt.getSeconds());
+ };
+
+ nsUtil.formatToLocalDateTime = function formatToLocalDateTime(dt) {
+ function pad(number) {
+ return (number < 10) ? ('0' + number) : number;
+ }
+ return dt.getFullYear() +
+ '年' + (dt.getMonth() + 1) +
+ '月' + (dt.getDate()) +
+ '日' + (dt.getHours()) +
+ '時' + pad(dt.getMinutes()) +
+ '分';
+ };
+
+ nsUtil.decodeMySQLDateTime = function decodeMySQLDateTime(mysqlDateTime) {
+ var rex = /^(\d{4}-\d{2}-\d{2})\s+(\d{2}:\d{2}:\d{2})$/;
+ var m = rex.exec(mysqlDateTime);
+ if (!m) return undefined;
+
+ var date = m[1];
+ var time = m[2];
+
+ var utcString = date + "T" + time + "+00:00";
+ return new Date(utcString);
+ };
+
+ nsUtil.encodeMySQLDateTime = function encodeMySQLDateTime(dt) {
+ function pad(number) {
+ return (number < 10) ? ('0' + number) : number;
+ }
+ return dt.getUTCFullYear() +
+ '/' + pad(dt.getUTCMonth() + 1) +
+ '/' + pad(dt.getUTCDate()) +
+ ' ' + pad(dt.getUTCHours()) +
+ ':' + pad(dt.getUTCMinutes()) +
+ ':' + pad(dt.getUTCSecondes());
+ };
+
+ nsUtil.topicIconURL = function topicIconURL(keyword) {
+ var topics = siteConfig.topics;
+ if (keyword && topics[keyword] && topics[keyword].image) {
+ return siteConfig.siteInfo.topic_icon_base_url + "/" + topics[keyword].image;
+ }
+ return "";
+ };
+
+ nsUtil.quoteHtml = function quoteHtml(html, allowedTags) {
+ var escaped = eh.escape(allowedTags, html);
+ var quoted = eh.blank_line_to_paragraph(escaped);
+ var parsed = $.parseHTML(quoted, null);
+ var result = [];
+ parsed.forEach((i) => {
+ i.normalize();
+ result.push(i.outerHTML);
+ });
+ return result.join('\n');
+ };
+
+ nsUtil.quoteTitle = function quoteTitle(html, allowedTags) {
+ var escaped = '<div>' + eh.escape(allowedTags, html) + '</div>';
+ var parsed = $.parseHTML(escaped, null);
+ var result = [];
+ parsed.forEach((i) => {
+ i.normalize();
+ var t = i.innerHTML || i.wholeText;
+ result.push(t);
+ });
+ return result.join('');
+ };
+
+}).apply();
+
if (value.length == 0) {
return false;
}
- nsUtil.getCsrfToken("vote", function (result) {
- if (!result || result.error) {
- if(statusBar) {
- statusBar.error(result.message);
+ newslash.getCsrfToken("vote").then(
+ resp => {
+ var csrfToken = resp.token;
+ if(!csrfToken) {
+ if(statusBar) {
+ statusBar.error("invalid token");
+ }
+ return;
}
+ $("#vote_token_" + qid).val(csrfToken);
+ formElement.submit();
return;
- }
- var csrfToken = result.token;
- if(!csrfToken) {
+ },
+ fail => {
if(statusBar) {
- statusBar.error("invalid token");
+ statusBar.error("failed");
}
- return;
}
- $("#vote_token_" + qid).val(csrfToken);
- formElement.submit();
- return;
- });
+ );
return false;
});