summaryrefslogtreecommitdiff
path: root/public/js/util.js
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2014-07-09 20:26:04 -0400
committerJules Laplace <jules@okfoc.us>2014-07-09 20:26:04 -0400
commit4bd53b79465d6bdc653d7857752732cc93b4ad27 (patch)
tree9550dfc0068f71047fb1fe1a510352706a459dc5 /public/js/util.js
parente687ae58246b67cc909d8f7b695f30c069f51ede (diff)
loading users; login; logout
Diffstat (limited to 'public/js/util.js')
-rw-r--r--public/js/util.js137
1 files changed, 137 insertions, 0 deletions
diff --git a/public/js/util.js b/public/js/util.js
new file mode 100644
index 0000000..7b2520e
--- /dev/null
+++ b/public/js/util.js
@@ -0,0 +1,137 @@
+var URLregexp = /^(https?:\/\/)(www.)?([-A-Z0-9.]+)(\/)?([-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])*/ig;
+var months = { Jan: 0, Feb: 1, Mar: 2, Apr: 3, May: 4, Jun: 5, Jul: 6, Aug: 7, Sep: 8, Oct: 9, Nov: 10, Dec: 11 }
+function isScrolledIntoView (elem)
+ {
+ return true;
+ var docViewTop = $(window).scrollTop();
+ var docViewBottom = docViewTop + $(window).height();
+ var elemTop = $(elem).offset().top;
+ var elemBottom = elemTop + $(elem).height();
+ return ((elemBottom >= docViewTop) && (elemTop <= docViewBottom));
+ }
+function scrollToTop (div)
+ { $(div).scrollTop( 0 ) }
+function scrollToBottom (div)
+ { $(div).scrollTop( $(div)[0].scrollHeight ) }
+function warn(s)
+ {
+// return
+ console.log(s)
+ var h = document.getElementById('msg').innerHTML
+ h = s + '<br/>' + h
+ document.getElementById('msg').innerHTML = h
+ }
+var image_extensions = ["jpg","gif","png","jpeg","JPEG","JPG","GIF","PNG"]
+function is_image(s)
+ {
+ for (i in image_extensions)
+ {
+ if (s.indexOf(image_extensions[i]) !== -1)
+ return true
+ }
+ return false
+ }
+var domain_extensions = [".com",".net",".org",".uk",".fr",".de",".ch",".info",".nu",".mu",".io","facebook.com","twitter.com"]
+function has_domain(s)
+ {
+ for (var i in domain_extensions)
+ {
+ if (s.indexOf(domain_extensions[i]) !== -1)
+ return true
+ }
+ return false
+ }
+function parse_blurb(s)
+ {
+ // s = linkify(s+"\n")
+ var parsed_lines = []
+ var lines = s.split("\n")
+ for (i in lines)
+ {
+ var parsed_words = []
+ var words = lines[i].split(" ")
+ for (j in words)
+ {
+ if (words[j].indexOf("http") !== -1)
+ {
+ if (is_image(words[j]))
+ parsed_words.push('<img src="'+words[j]+'"/>')
+ else
+ parsed_words.push(linkify(words[j]))
+ }
+ else if (words[j].indexOf("www") === 0 || has_domain(words[j]))
+ {
+ parsed_words.push(linkify("http://"+words[j]))
+ }
+ else
+ parsed_words.push(words[j])
+ }
+ parsed_lines.push( parsed_words.join(" ") )
+ }
+ // return s.replace(/\n/g, '<br/>')
+ return parsed_lines.join("<br/>")
+ }
+function linkify(s)
+ {
+ var link = '';
+ var punctuation = '';
+ var end = s.length-1;
+
+ // strip the terminal punctuation mark if it's a period or comma
+ if (s.indexOf(".", end) === end || s.indexOf(",", end) === end)
+ {
+ punctuation = s.substr(end, 1);
+ s = s.substr(0, end);
+ }
+ if (s.indexOf("twitter.com") !== -1)
+ {
+ var partz = s.split("/");
+ var uname = '';
+ if (partz[partz.length-1].length)
+ uname = partz[partz.length-1];
+ else if (parts[-2].length)
+ uname = partz[partz.length-2];
+ link = '<a href="https://twitter.com/' + uname + '" target="_blank">@' + uname + '</a>';
+ }
+ else
+ {
+ // link = s.replace(URLregexp,"<a href='$1$2$3$4$5' target='_blank'>[$3]</a>");
+ var match = URLregexp.exec(s);
+ if (match && match.length == 6)
+ {
+ var url = match[0] || "";
+ var http = match[1] || "";
+ var www = match[2] || "";
+ var domain = match[3] || "";
+ var slash = match[4] || "";
+ var uri = match[5] ? match[5].replace(/\/?index.html$/, "") : "";
+ link = '<a href="' + url + '" target="_blank">[' + domain + ']</a>';
+ }
+ else
+ {
+ link = s.replace(URLregexp,"<a href='$1$2$3$4$5' target='_blank'>[$3]</a>");
+ }
+ }
+ return link + punctuation;
+ }
+var URL =
+ {
+ auth:
+ {
+ login: "/login",
+ logout: "/logout",
+ },
+ party:
+ {
+ list: "/api/party/list",
+ view: "/api/party/view",
+ edit: "/api/party/edit",
+ },
+ user:
+ {
+ all: "/api/user/all",
+ view: "/api/user/view",
+ edit: "/api/user/edit",
+ destroy: "/api/user/destroy",
+ },
+ };