diff --git a/dashboard-ui/thirdparty/social-share-kit-1.0.4/.gitignore b/dashboard-ui/thirdparty/social-share-kit-1.0.4/.gitignore deleted file mode 100644 index b3d3416a6c..0000000000 --- a/dashboard-ui/thirdparty/social-share-kit-1.0.4/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -*~ -._* -.cache -.DS_Store -Thumbs.db -.idea diff --git a/dashboard-ui/thirdparty/social-share-kit-1.0.4/dist/css/social-share-kit.css b/dashboard-ui/thirdparty/social-share-kit-1.0.4/dist/css/social-share-kit.css new file mode 100644 index 0000000000..dfa18d9b8e --- /dev/null +++ b/dashboard-ui/thirdparty/social-share-kit-1.0.4/dist/css/social-share-kit.css @@ -0,0 +1,7 @@ +/*! + * Social Share Kit v1.0.3 (http://socialsharekit.com) + * Copyright 2015 Social Share Kit / Kaspars Sprogis. + * Licensed under Creative Commons Attribution-NonCommercial 3.0 license: + * https://github.com/darklow/social-share-kit/blob/master/LICENSE + * --- + */@font-face{font-family:'social-share-kit';src:url('../fonts/social-share-kit.eot');src:url('../fonts/social-share-kit.eot?#iefix') format('embedded-opentype'),url('../fonts/social-share-kit.woff') format('woff'),url('../fonts/social-share-kit.ttf') format('truetype'),url('../fonts/social-share-kit.svg#social-share-kit') format('svg');font-weight:normal;font-style:normal}.ssk:before{display:inline-block;font-family:"social-share-kit" !important;font-style:normal !important;font-weight:normal !important;font-variant:normal !important;text-transform:none !important;speak:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ssk-facebook:before{content:"a";text-indent:4px;margin-right:-4px}.ssk-twitter:before{content:"b"}.ssk-google-plus:before{content:"c"}.ssk-email:before{content:"d";top:-1px;position:relative}.ssk-pinterest:before{content:"e"}.ssk-tumblr:before{content:"f"}.ssk-linkedin:before{content:"g"}.ssk-github:before{content:"h"}.ssk-vk:before{content:"i"}.ssk-instagram:before{content:"j"}.ssk-amazon:before{content:"k"}.ssk-skype:before{content:"s"}.ssk-youtube:before{content:"x"}.ssk-vimeo:before{content:"u"}.ssk-ebay:before{content:"p"}.ssk-apple:before{content:"l"}.ssk-behance:before{content:"q"}.ssk-dribble:before{content:"n"}.ssk-android:before{content:"o"}.ssk-whatsapp:before{content:"m"}.ssk-reddit:before{content:"r"}.ssk-reddit2:before{content:"t"}.ssk{background-color:#757575;color:white;display:inline-block;font-size:22px;line-height:1px;margin-right:2px;margin-bottom:2px;padding:7px;text-align:center;text-decoration:none;transition:background-color .1s;-webkit-transition:background-color .1s;-moz-transition:background-color .1s;-ms-transition:background-color .1s;-o-transition:background-color .1s}.ssk:before,.ssk .glyphicon,.ssk .fa{position:relative;font-size:22px;top:0;vertical-align:middle}.ssk.ssk-xs,.ssk-xs>.ssk{padding:4px}.ssk.ssk-xs:before,.ssk-xs>.ssk:before,.ssk.ssk-xs .glyphicon,.ssk-xs>.ssk .glyphicon,.ssk.ssk-xs .fa,.ssk-xs>.ssk .fa{font-size:15px}.ssk.ssk-sm,.ssk-sm>.ssk{padding:5px}.ssk.ssk-sm:before,.ssk-sm>.ssk:before,.ssk.ssk-sm .glyphicon,.ssk-sm>.ssk .glyphicon,.ssk.ssk-sm .fa,.ssk-sm>.ssk .fa{font-size:20px}.ssk.ssk-lg,.ssk-lg>.ssk{padding:9px}.ssk.ssk-lg:before,.ssk-lg>.ssk:before,.ssk.ssk-lg .glyphicon,.ssk-lg>.ssk .glyphicon,.ssk.ssk-lg .fa,.ssk-lg>.ssk .fa{font-size:28px}.ssk:last-child{margin-right:0}.ssk:hover{background-color:#424242}.ssk:hover,.ssk:focus{color:#fff;text-decoration:none}.ssk.ssk-round,.ssk-round .ssk{border-radius:50%}.ssk.ssk-round:before,.ssk-round .ssk:before{text-indent:0;margin-right:0}.ssk.ssk-rounded,.ssk-rounded .ssk{border-radius:15%}.ssk.ssk-icon{color:#757575;padding:2px;font-size:24px}.ssk.ssk-icon,.ssk.ssk-icon:hover{background-color:transparent}.ssk.ssk-icon:hover{color:#424242}.ssk.ssk-icon.ssk-xs,.ssk-xs>.ssk.ssk-icon{font-size:16px}.ssk.ssk-icon.ssk-sm,.ssk-sm>.ssk.ssk-icon{font-size:20px}.ssk.ssk-icon.ssk-lg,.ssk-lg>.ssk.ssk-icon{font-size:28px}.ssk.ssk-text{overflow:hidden;font-size:17px;line-height:normal;padding-right:10px}.ssk.ssk-text:before,.ssk.ssk-text .glyphicon,.ssk.ssk-text .fa{margin:-7px 10px -7px -7px;padding:7px;background-color:rgba(0,0,0,0.15);vertical-align:bottom;text-indent:0}.ssk-block .ssk.ssk-text{display:block;margin-right:0;text-align:left}.ssk.ssk-text.ssk-xs,.ssk-xs>.ssk.ssk-text{font-size:12px;padding-right:6px}.ssk.ssk-text.ssk-xs:before,.ssk-xs>.ssk.ssk-text:before,.ssk.ssk-text.ssk-xs .glyphicon,.ssk-xs>.ssk.ssk-text .glyphicon,.ssk.ssk-text.ssk-xs .fa,.ssk-xs>.ssk.ssk-text .fa{margin:-4px 6px -4px -4px;padding:4px}.ssk.ssk-text.ssk-sm,.ssk-sm>.ssk.ssk-text{font-size:16px;padding-right:7px}.ssk.ssk-text.ssk-sm:before,.ssk-sm>.ssk.ssk-text:before,.ssk.ssk-text.ssk-sm .glyphicon,.ssk-sm>.ssk.ssk-text .glyphicon,.ssk.ssk-text.ssk-sm .fa,.ssk-sm>.ssk.ssk-text .fa{margin:-5px 7px -5px -5px;padding:5px}.ssk.ssk-text.ssk-lg,.ssk-lg>.ssk.ssk-text{font-size:22px;padding-right:13px}.ssk.ssk-text.ssk-lg:before,.ssk-lg>.ssk.ssk-text:before,.ssk.ssk-text.ssk-lg .glyphicon,.ssk-lg>.ssk.ssk-text .glyphicon,.ssk.ssk-text.ssk-lg .fa,.ssk-lg>.ssk.ssk-text .fa{margin:-9px 13px -9px -9px;padding:9px}.ssk-group,.ssk-sticky{font-size:0}.ssk-sticky{top:0;position:fixed;z-index:2000}.ssk-sticky .ssk{transition:padding .1s ease-out;-webkit-transition:padding .1s ease-out;-moz-transition:padding .1s ease-out;-ms-transition:padding .1s ease-out;-o-transition:padding .1s ease-out;margin:0}.ssk-sticky.ssk-left .ssk,.ssk-sticky.ssk-right .ssk{display:block;clear:both}.ssk-sticky.ssk-left.ssk-center,.ssk-sticky.ssk-right.ssk-center{top:50%;transform:translateY(-50%);-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-ms-transform:translateY(-50%);-o-transform:translateY(-50%)}.ssk-sticky.ssk-left{left:0}.ssk-sticky.ssk-left .ssk{float:left}.ssk-sticky.ssk-left .ssk:hover{padding-left:15px}.ssk-sticky.ssk-right{right:0}.ssk-sticky.ssk-right .ssk{float:right}.ssk-sticky.ssk-right .ssk:hover{padding-right:15px}.ssk-sticky.ssk-bottom{font-size:0;top:auto;bottom:0}.ssk-sticky.ssk-bottom.ssk-center{left:50%;right:auto;transform:translateX(-50%);-webkit-transform:translateX(-50%);-moz-transform:translateX(-50%);-ms-transform:translateX(-50%);-o-transform:translateX(-50%)}.ssk-sticky.ssk-bottom .ssk{vertical-align:bottom}.ssk-sticky.ssk-bottom .ssk:hover{padding-bottom:15px}.ssk-sticky.ssk-round.ssk-xs .ssk:hover{padding:8px}.ssk-sticky.ssk-round.ssk-sm .ssk:hover{padding:9px}.ssk-sticky.ssk-round .ssk:hover{padding:11px}.ssk-sticky.ssk-round.ssk-lg .ssk:hover{padding:13px}@media (max-width:767px){.ssk-sticky{display:none}}.ssk-count{padding-top:20px}.ssk-count .ssk{position:relative}.ssk-count .ssk-num{border-radius:4px;color:#8f8f8f;background-color:rgba(50,50,50,0.03);display:block;font-size:12px;left:0;line-height:20px;position:absolute;right:0;text-align:center;top:-20px}.ssk-count.ssk-sticky{padding-top:0}.ssk-count.ssk-sticky.ssk-left .ssk-num,.ssk-count.ssk-sticky.ssk-right .ssk-num{top:20%;background-color:transparent}.ssk-count.ssk-sticky.ssk-left .ssk-num{left:100%;margin-left:5px}.ssk-count.ssk-sticky.ssk-right .ssk-num{right:115%;margin-left:-100%;text-align:right}.ssk-facebook{background-color:#255c95}.ssk-grayscale>.ssk-facebook{background-color:#757575}.ssk-facebook:hover{background-color:#1b436c}.ssk-facebook:hover{background-color:#1b436c}.ssk-grayscale>.ssk-facebook:hover{background-color:#255c95}.ssk-facebook.ssk-icon{color:#255c95}.ssk-facebook.ssk-icon:hover{color:#1b436c}.ssk-facebook.ssk-icon:before{text-indent:0;margin-right:0}.ssk-twitter{background-color:#00b4e0}.ssk-grayscale>.ssk-twitter{background-color:#757575}.ssk-twitter:hover{background-color:#008bad}.ssk-twitter:hover{background-color:#008bad}.ssk-grayscale>.ssk-twitter:hover{background-color:#00b4e0}.ssk-twitter.ssk-icon{color:#00b4e0}.ssk-twitter.ssk-icon:hover{color:#008bad}.ssk-google-plus{background-color:#f1403a}.ssk-grayscale>.ssk-google-plus{background-color:#757575}.ssk-google-plus:hover{background-color:#e81810}.ssk-google-plus:hover{background-color:#e81810}.ssk-grayscale>.ssk-google-plus:hover{background-color:#f1403a}.ssk-google-plus.ssk-icon{color:#f1403a}.ssk-google-plus.ssk-icon:hover{color:#e81810}.ssk-pinterest{background-color:#cb2027}.ssk-grayscale>.ssk-pinterest{background-color:#757575}.ssk-pinterest:hover{background-color:#9f191f}.ssk-pinterest:hover{background-color:#9f191f}.ssk-grayscale>.ssk-pinterest:hover{background-color:#cb2027}.ssk-pinterest.ssk-icon{color:#cb2027}.ssk-pinterest.ssk-icon:hover{color:#9f191f}.ssk-tumblr{background-color:#395773}.ssk-grayscale>.ssk-tumblr{background-color:#757575}.ssk-tumblr:hover{background-color:#283d51}.ssk-tumblr:hover{background-color:#283d51}.ssk-grayscale>.ssk-tumblr:hover{background-color:#395773}.ssk-tumblr.ssk-icon{color:#395773}.ssk-tumblr.ssk-icon:hover{color:#283d51}.ssk-email{background-color:#757575}.ssk-grayscale>.ssk-email{background-color:#757575}.ssk-email:hover{background-color:#5b5b5b}.ssk-email:hover{background-color:#5b5b5b}.ssk-grayscale>.ssk-email:hover{background-color:#757575}.ssk-grayscale>.ssk-email:hover{background-color:#5b5b5b}.ssk-email.ssk-icon{color:#757575}.ssk-email.ssk-icon:hover{color:#5b5b5b}.ssk-vk{background-color:#54769a}.ssk-grayscale>.ssk-vk{background-color:#757575}.ssk-vk:hover{background-color:#425d79}.ssk-vk:hover{background-color:#425d79}.ssk-grayscale>.ssk-vk:hover{background-color:#54769a}.ssk-vk.ssk-icon{color:#54769a}.ssk-vk.ssk-icon:hover{color:#425d79}.ssk-linkedin{background-color:#1c87bd}.ssk-grayscale>.ssk-linkedin{background-color:#757575}.ssk-linkedin:hover{background-color:#156791}.ssk-linkedin:hover{background-color:#156791}.ssk-grayscale>.ssk-linkedin:hover{background-color:#1c87bd}.ssk-linkedin.ssk-icon{color:#1c87bd}.ssk-linkedin.ssk-icon:hover{color:#156791}.ssk-whatsapp{background-color:#34af23}.ssk-grayscale>.ssk-whatsapp{background-color:#757575}.ssk-whatsapp:hover{background-color:#27851a}.ssk-whatsapp:hover{background-color:#27851a}.ssk-grayscale>.ssk-whatsapp:hover{background-color:#34af23}.ssk-whatsapp.ssk-icon{color:#34af23}.ssk-whatsapp.ssk-icon:hover{color:#27851a}.ssk-reddit{background-color:#5f99cf}.ssk-grayscale>.ssk-reddit{background-color:#757575}.ssk-reddit:hover{background-color:#3a80c1}.ssk-reddit:hover{background-color:#3a80c1}.ssk-grayscale>.ssk-reddit:hover{background-color:#5f99cf}.ssk-reddit.ssk-icon{color:#5f99cf}.ssk-reddit.ssk-icon:hover{color:#3a80c1}.ssk-reddit2{background-color:#5f99cf}.ssk-grayscale>.ssk-reddit2{background-color:#757575}.ssk-reddit2:hover{background-color:#3a80c1}.ssk-reddit2:hover{background-color:#3a80c1}.ssk-grayscale>.ssk-reddit2:hover{background-color:#5f99cf}.ssk-reddit2.ssk-icon{color:#5f99cf}.ssk-reddit2.ssk-icon:hover{color:#3a80c1}.ssk-turquoise{background-color:#1abc9c}.ssk-turquoise:hover{background-color:#148f77}.ssk-emerald{background-color:#2ecc71}.ssk-emerald:hover{background-color:#25a25a}.ssk-peter-river{background-color:#3498db}.ssk-peter-river:hover{background-color:#217dbb}.ssk-belize-hole{background-color:#2980b9}.ssk-belize-hole:hover{background-color:#20638f}.ssk-amethyst{background-color:#9b59b6}.ssk-amethyst:hover{background-color:#804399}.ssk-wisteria{background-color:#8e44ad}.ssk-wisteria:hover{background-color:#703688}.ssk-wet-asphalt{background-color:#34495e}.ssk-wet-asphalt:hover{background-color:#222f3d}.ssk-midnight-blue{background-color:#2c3e50}.ssk-midnight-blue:hover{background-color:#1a242f}.ssk-green-sea{background-color:#16a085}.ssk-green-sea:hover{background-color:#107360}.ssk-nephritis{background-color:#27ae60}.ssk-nephritis:hover{background-color:#1e8449}.ssk-sunflower{background-color:#f1c40f}.ssk-sunflower:hover{background-color:#c29d0b}.ssk-orange{background-color:#f39c12}.ssk-orange:hover{background-color:#c87f0a}.ssk-carrot{background-color:#e67e22}.ssk-carrot:hover{background-color:#bf6516}.ssk-pumpkin{background-color:#d35400}.ssk-pumpkin:hover{background-color:#a04000}.ssk-alizarin{background-color:#e74c3c}.ssk-alizarin:hover{background-color:#d62c1a}.ssk-pomegranate{background-color:#c0392b}.ssk-pomegranate:hover{background-color:#962d22}.ssk-clouds{background-color:#cfd9db}.ssk-clouds:hover{background-color:#b1c2c6}.ssk-concrete{background-color:#95a5a6}.ssk-concrete:hover{background-color:#798d8f}.ssk-silver{background-color:#bdc3c7}.ssk-silver:hover{background-color:#a1aab0}.ssk-asbestos{background-color:#7f8c8d}.ssk-asbestos:hover{background-color:#667273}.ssk-dark-gray{background-color:#555}.ssk-dark-gray:hover{background-color:#3b3b3b}.ssk-black{background-color:#333}.ssk-black:hover{background-color:#1a1a1a} \ No newline at end of file diff --git a/dashboard-ui/thirdparty/social-share-kit-1.0.4/dist/fonts/social-share-kit.eot b/dashboard-ui/thirdparty/social-share-kit-1.0.4/dist/fonts/social-share-kit.eot new file mode 100644 index 0000000000..0adc052065 Binary files /dev/null and b/dashboard-ui/thirdparty/social-share-kit-1.0.4/dist/fonts/social-share-kit.eot differ diff --git a/dashboard-ui/thirdparty/social-share-kit-1.0.4/dist/fonts/social-share-kit.svg b/dashboard-ui/thirdparty/social-share-kit-1.0.4/dist/fonts/social-share-kit.svg new file mode 100644 index 0000000000..910cdcad41 --- /dev/null +++ b/dashboard-ui/thirdparty/social-share-kit-1.0.4/dist/fonts/social-share-kit.svg @@ -0,0 +1,32 @@ + + + +Generated by Fontastic.me + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dashboard-ui/thirdparty/social-share-kit-1.0.4/dist/fonts/social-share-kit.ttf b/dashboard-ui/thirdparty/social-share-kit-1.0.4/dist/fonts/social-share-kit.ttf new file mode 100644 index 0000000000..d3547e18e5 Binary files /dev/null and b/dashboard-ui/thirdparty/social-share-kit-1.0.4/dist/fonts/social-share-kit.ttf differ diff --git a/dashboard-ui/thirdparty/social-share-kit-1.0.4/dist/fonts/social-share-kit.woff b/dashboard-ui/thirdparty/social-share-kit-1.0.4/dist/fonts/social-share-kit.woff new file mode 100644 index 0000000000..12cc6b542f Binary files /dev/null and b/dashboard-ui/thirdparty/social-share-kit-1.0.4/dist/fonts/social-share-kit.woff differ diff --git a/dashboard-ui/thirdparty/social-share-kit-1.0.4/dist/js/social-share-kit.js b/dashboard-ui/thirdparty/social-share-kit-1.0.4/dist/js/social-share-kit.js new file mode 100644 index 0000000000..3f605b157e --- /dev/null +++ b/dashboard-ui/thirdparty/social-share-kit-1.0.4/dist/js/social-share-kit.js @@ -0,0 +1,338 @@ +/*! + * Social Share Kit v1.0.3 (http://socialsharekit.com) + * Copyright 2015 Social Share Kit / Kaspars Sprogis. + * Licensed under Creative Commons Attribution-NonCommercial 3.0 license: + * https://github.com/darklow/social-share-kit/blob/master/LICENSE + * --- + */ +var SocialShareKit = (function () { + var els, options, supportsShare, urlsToCount = {}, sep = '*|*'; + + function init(opts) { + options = opts || {}; + supportsShare = /(twitter|facebook|google-plus|pinterest|tumblr|vk|linkedin|email)/; + ready(function () { + els = $(options.selector || '.ssk'); + if (!els.length) + return; + + each(els, function (el) { + var network = elSupportsShare(el), uniqueKey; + if (!network) { + return; + } + removeEventListener(el, 'click', onClick); + addEventListener(el, 'click', onClick); + + // Gather icons with share counts + if (el.parentNode.className.indexOf('ssk-count') !== -1) { + //networksToCount.push(network); + network = network[0]; + uniqueKey = network + sep + getShareUrl(network, el); + if (!(uniqueKey in urlsToCount)) { + urlsToCount[uniqueKey] = []; + } + urlsToCount[uniqueKey].push(el); + } + }); + + processShareCount(); + }); + } + + function ready(fn) { + if (document.readyState != 'loading') { + fn(); + } else if (document.addEventListener) { + document.addEventListener('DOMContentLoaded', fn); + } else { + document.attachEvent('onreadystatechange', function () { + if (document.readyState != 'loading') + fn(); + }); + } + } + + function $(selector) { + return document.querySelectorAll(selector); + } + + function each(elements, fn) { + for (var i = 0; i < elements.length; i++) + fn(elements[i], i); + } + + function addEventListener(el, eventName, handler) { + if (el.addEventListener) { + el.addEventListener(eventName, handler); + } else { + el.attachEvent('on' + eventName, function () { + handler.call(el); + }); + } + } + + function removeEventListener(el, eventName, handler) { + if (el.removeEventListener) + el.removeEventListener(eventName, handler); + else + el.detachEvent('on' + eventName, handler); + } + + function elSupportsShare(el) { + return el.className.match(supportsShare); + } + + function onClick(e) { + var target = preventDefault(e), + match = elSupportsShare(target), url; + if (!match) + return; + + url = getUrl(match[0], target); + if (!url) + return; + if (match[0] != 'email') { + winOpen(url); + } else { + document.location = url; + } + } + + function preventDefault(e) { + var evt = e || window.event; // IE8 compatibility + if (evt.preventDefault) { + evt.preventDefault(); + } else { + evt.returnValue = false; + evt.cancelBubble = true; + } + return evt.target || evt.srcElement; + } + + function winOpen(url) { + var width = 575, height = 400, + left = (document.documentElement.clientWidth / 2 - width / 2), + top = (document.documentElement.clientHeight - height) / 2, + opts = 'status=1,resizable=yes' + + ',width=' + width + ',height=' + height + + ',top=' + top + ',left=' + left; + win = window.open(url, '', opts); + win.focus(); + return win; + } + + function getUrl(network, el) { + var url, dataOpts = getDataOpts(network, el), + shareUrl = getShareUrl(network, el, dataOpts), + shareUrlEnc = encodeURIComponent(shareUrl), + title = typeof dataOpts['title'] !== 'undefined' ? dataOpts['title'] : getTitle(network), + text = typeof dataOpts['text'] !== 'undefined' ? dataOpts['text'] : getText(network), + image = dataOpts['image'], via = dataOpts['via']; + switch (network) { + case 'facebook': + url = 'https://www.facebook.com/share.php?u=' + shareUrlEnc; + break; + case 'twitter': + url = 'https://twitter.com/share?url=' + shareUrlEnc + + '&text=' + encodeURIComponent(title + (text && title ? ' - ' : '') + text); + via = via || getMetaContent('twitter:site'); + if (via) + url += '&via=' + via.replace('@', ''); + break; + case 'google-plus': + url = 'https://plus.google.com/share?url=' + shareUrlEnc; + break; + case 'pinterest': + url = 'http://pinterest.com/pin/create/button/?url=' + shareUrlEnc + + '&description=' + encodeURIComponent(text); + image = image || getMetaContent('og:image'); + if (image) + url += '&media=' + encodeURIComponent(image); + break; + case 'tumblr': + url = 'http://www.tumblr.com/share/link?url=' + shareUrlEnc + + '&name=' + encodeURIComponent(title) + + '&description=' + encodeURIComponent(text); + break; + case 'linkedin': + url = 'http://www.linkedin.com/shareArticle?mini=true&url=' + shareUrlEnc + + '&title=' + encodeURIComponent(title) + + '&summary=' + encodeURIComponent(text); + break; + case 'vk': + url = 'http://vkontakte.ru/share.php?url=' + shareUrlEnc; + break; + case 'email': + url = 'mailto:?subject=' + encodeURIComponent(title) + + '&body=' + encodeURIComponent(title + '\n' + shareUrl + '\n\n' + text + '\n'); + break; + } + return url; + } + + function getShareUrl(network, el, dataOpts) { + dataOpts = dataOpts || getDataOpts(network, el); + return dataOpts['url'] || window.location.href; + } + + function getTitle(network) { + var title; + if (network == 'twitter') + title = getMetaContent('twitter:title'); + return title || document.title; + } + + function getText(network) { + var text; + if (network == 'twitter') + text = getMetaContent('twitter:description'); + return text || getMetaContent('description'); + } + + function getMetaContent(tagName, attr) { + var text, tag = $('meta[' + (attr ? attr : tagName.indexOf('og:') === 0 ? 'property' : 'name') + '="' + tagName + '"]'); + if (tag.length) { + text = tag[0].getAttribute('content') || ''; + } + return text || '' + } + + function getDataOpts(network, el) { + var validOpts = ['url', 'title', 'text', 'image'], + opts = {}, optValue, optKey, dataKey, a, parent = el.parentNode; + network == 'twitter' && validOpts.push('via'); + for (a in validOpts) { + optKey = validOpts[a]; + dataKey = 'data-' + optKey; + optValue = el.getAttribute(dataKey) || parent.getAttribute(dataKey) || + (options[network] && typeof options[network][optKey] != 'undefined' ? options[network][optKey] : options[optKey]); + if (typeof optValue != 'undefined') { + opts[optKey] = optValue; + } + } + return opts; + } + + function processShareCount() { + var a, ref; + for (a in urlsToCount) { + ref = a.split(sep); + (function (els) { + getCount(ref[0], ref[1], function (cnt) { + for (var c in els) + addCount(els[c], cnt); + }); + })(urlsToCount[a]); + } + } + + function addCount(el, cnt) { + var newEl = document.createElement('div'); + newEl.innerHTML = cnt; + newEl.className = 'ssk-num'; + el.appendChild(newEl); + } + + function getCount(network, shareUrl, onReady) { + var url, parseFunc, body, + shareUrlEnc = encodeURIComponent(shareUrl); + switch (network) { + case 'facebook': + url = 'http://graph.facebook.com/?id=' + shareUrlEnc; + parseFunc = function (r) { + return onReady(r.shares ? r.shares : 0); + }; + break; + case 'twitter': + url = 'http://cdn.api.twitter.com/1/urls/count.json?url=' + shareUrlEnc; + parseFunc = function (r) { + return onReady(r.count); + }; + break; + case 'google-plus': + url = 'https://clients6.google.com/rpc?key=AIzaSyCKSbrvQasunBoV16zDH9R33D88CeLr9gQ'; + body = "[{\"method\":\"pos.plusones.get\",\"id\":\"p\"," + + "\"params\":{\"id\":\"" + shareUrl + "\",\"userId\":\"@viewer\",\"groupId\":\"@self\",\"nolog\":true}," + + "\"jsonrpc\":\"2.0\",\"key\":\"p\",\"apiVersion\":\"v1\"}]"; + parseFunc = function (r) { + r = JSON.parse(r); + if (r.length) { + return onReady(r[0].result.metadata.globalCounts.count); + } + }; + ajax(url, parseFunc, body); + return; + case 'linkedin': + url = 'http://www.linkedin.com/countserv/count/share?url=' + shareUrlEnc; + parseFunc = function (r) { + return onReady(r.count); + }; + break; + case 'pinterest': + url = 'http://api.pinterest.com/v1/urls/count.json?url=' + shareUrlEnc; + parseFunc = function (r) { + return onReady(r.count); + }; + break; + case 'vk': + url = 'http://vk.com/share.php?act=count&url=' + shareUrlEnc; + parseFunc = function (r) { + return onReady(r); + }; + break; + } + url && parseFunc && JSONPRequest(network, url, parseFunc, body); + } + + function ajax(url, callback, body) { + var request = new XMLHttpRequest(); + request.onreadystatechange = function () { + if (this.readyState === 4) { + if (this.status >= 200 && this.status < 400) { + callback(this.responseText); + } + } + }; + request.open('POST', url, true); + request.setRequestHeader('Content-Type', 'application/json'); + request.send(body); + } + + function JSONPRequest(network, url, callback) { + var callbackName = 'cb_' + network + '_' + Math.round(100000 * Math.random()), + script = document.createElement('script'); + window[callbackName] = function (data) { + try { // IE8 + delete window[callbackName]; + } catch (e) { + } + document.body.removeChild(script); + callback(data); + }; + if (network == 'vk') { + window['VK'] = { + Share: { + count: function (a, b) { + window[callbackName](b); + } + } + }; + } else if (network == 'google-plus') { + window['services'] = { + gplus: { + cb: window[callbackName] + } + }; + } + script.src = url + (url.indexOf('?') >= 0 ? '&' : '?') + 'callback=' + callbackName; + document.body.appendChild(script); + return true; + } + + return { + init: init + }; +})(); + +window.SocialShareKit = SocialShareKit; diff --git a/dashboard-ui/thirdparty/social-share-kit-1.0.4/dist/js/social-share-kit.min.js b/dashboard-ui/thirdparty/social-share-kit-1.0.4/dist/js/social-share-kit.min.js new file mode 100644 index 0000000000..d105532f61 --- /dev/null +++ b/dashboard-ui/thirdparty/social-share-kit-1.0.4/dist/js/social-share-kit.min.js @@ -0,0 +1,8 @@ +/*! + * Social Share Kit v1.0.3 (http://socialsharekit.com) + * Copyright 2015 Social Share Kit / Kaspars Sprogis. + * Licensed under Creative Commons Attribution-NonCommercial 3.0 license: + * https://github.com/darklow/social-share-kit/blob/master/LICENSE + * --- + */ +;var SocialShareKit=(function(){var f,d,v,t={},q="*|*";function x(A){d=A||{};v=/(twitter|facebook|google-plus|pinterest|tumblr|vk|linkedin|email)/;n(function(){f=g(d.selector||".ssk");if(!f.length){return}e(f,function(C){var D=s(C),B;if(!D){return}r(C,"click",h);p(C,"click",h);if(C.parentNode.className.indexOf("ssk-count")!==-1){D=D[0];B=D+q+z(D,C);if(!(B in t)){t[B]=[]}t[B].push(C)}});j()})}function n(A){if(document.readyState!="loading"){A()}else{if(document.addEventListener){document.addEventListener("DOMContentLoaded",A)}else{document.attachEvent("onreadystatechange",function(){if(document.readyState!="loading"){A()}})}}}function g(A){return document.querySelectorAll(A)}function e(C,B){for(var A=0;A=200&&this.status<400){D(this.responseText)}}};C.open("POST",B,true);C.setRequestHeader("Content-Type","application/json");C.send(A)}function b(C,B,E){var D="cb_"+C+"_"+Math.round(100000*Math.random()),A=document.createElement("script");window[D]=function(F){try{delete window[D]}catch(G){}document.body.removeChild(A);E(F)};if(C=="vk"){window.VK={Share:{count:function(G,F){window[D](F)}}}}else{if(C=="google-plus"){window.services={gplus:{cb:window[D]}}}}A.src=B+(B.indexOf("?")>=0?"&":"?")+"callback="+D;document.body.appendChild(A);return true}return{init:x}})();window.SocialShareKit=SocialShareKit; \ No newline at end of file