<!DOCTYPE html>
<html lang="en" >
<head>
<script>
window.ts_endpoint_url = "https:\/\/slack.com\/beacon\/timing";
(function(e) {
var n=Date.now?Date.now():+new Date,r=e.performance||{},t=[],a={},i=function(e,n){for(var r=0,a=t.length,i=[];a>r;r++)t[r][e]==n&&i.push(t[r]);return i},o=function(e,n){for(var r,a=t.length;a--;)r=t[a],r.entryType!=e||void 0!==n&&r.name!=n||t.splice(a,1)};r.now||(r.now=r.webkitNow||r.mozNow||r.msNow||function(){return(Date.now?Date.now():+new Date)-n}),r.mark||(r.mark=r.webkitMark||function(e){var n={name:e,entryType:"mark",startTime:r.now(),duration:0};t.push(n),a[e]=n}),r.measure||(r.measure=r.webkitMeasure||function(e,n,r){n=a[n].startTime,r=a[r].startTime,t.push({name:e,entryType:"measure",startTime:n,duration:r-n})}),r.getEntriesByType||(r.getEntriesByType=r.webkitGetEntriesByType||function(e){return i("entryType",e)}),r.getEntriesByName||(r.getEntriesByName=r.webkitGetEntriesByName||function(e){return i("name",e)}),r.clearMarks||(r.clearMarks=r.webkitClearMarks||function(e){o("mark",e)}),r.clearMeasures||(r.clearMeasures=r.webkitClearMeasures||function(e){o("measure",e)}),e.performance=r,"function"==typeof define&&(define.amd||define.ajs)&&define("performance",[],function(){return r}) // eslint-disable-line
})(window);
</script>
<script>;(function() {
'use strict';
window.TSMark = function(mark_label) {
if (!window.performance || !window.performance.mark) return;
performance.mark(mark_label);
};
window.TSMark('start_load');
window.TSMeasureAndBeacon = function(measure_label, start_mark_label) {
if (start_mark_label === 'start_nav' && window.performance && window.performance.timing) {
window.TSBeacon(measure_label, (new Date()).getTime() - performance.timing.navigationStart);
return;
}
if (!window.performance || !window.performance.mark || !window.performance.measure) return;
performance.mark(start_mark_label + '_end');
try {
performance.measure(measure_label, start_mark_label, start_mark_label + '_end');
window.TSBeacon(measure_label, performance.getEntriesByName(measure_label)[0].duration);
} catch(e) { return; }
};
window.TSBeacon = function(label, value) {
var endpoint_url = window.ts_endpoint_url || 'https://slack.com/beacon/timing';
(new Image()).src = endpoint_url + '?data=' + encodeURIComponent(label + ':' + value);
};
})();
</script>
<script>
window.TSMark('step_load');
</script> <noscript><meta http-equiv="refresh" content="0; URL=/files/abweb.gorohovets/F1B1040AY/5500_update2_abweb.patch?nojsmode=1" /></noscript>
<script type="text/javascript">
(function() {
var start_time = Date.now();
var logs = [];
var connecting = true;
var ever_connected = false;
var log_namespace;
var logWorker = function(ob) {
var log_str = ob.secs+' start_label:'+ob.start_label+' measure_label:'+ob.measure_label+' description:'+ob.description;
if (TS.metrics.getLatestMark(ob.start_label)){
TS.metrics.measure(ob.measure_label, ob.start_label);
TS.log(88, log_str);
if (ob.do_reset) {
window.TSMark(ob.start_label);
}
} else {
TS.maybeWarn(88, 'not timing: '+log_str);
}
}
var log = function(k, description) {
var secs = (Date.now()-start_time)/1000;
logs.push({
k: k,
d: description,
t: secs,
c: !!connecting
})
if (!window.boot_data) return;
if (!window.TS) return;
if (!TS.metrics) return;
if (!connecting) return;
// lazy assignment
log_namespace = log_namespace || (function() {
if (boot_data.app == 'client') return 'client';
if (boot_data.app == 'space') return 'post';
if (boot_data.app == 'api') return 'apisite';
if (boot_data.app == 'mobile') return 'mobileweb';
if (boot_data.app == 'web' || boot_data.app == 'oauth') return 'web';
return 'unknown';
})();
var modifier = (TS.boot_data.feature_no_rollups) ? '_no_rollups' : '';
logWorker({
k: k,
secs: secs,
description: description,
start_label: ever_connected ? 'start_reconnect' : 'start_load',
measure_label: 'v2_'+log_namespace+modifier+(ever_connected ? '_reconnect__' : '_load__')+k,
do_reset: false,
});
}
var setConnecting = function(val) {
val = !!val;
if (val == connecting) return;
if (val) {
log('start');
if (ever_connected) {
// we just started reconnecting, so reset timing
window.TSMark('start_reconnect');
window.TSMark('step_reconnect');
window.TSMark('step_load');
}
connecting = val;
log('start');
} else {
log('over');
ever_connected = true;
connecting = val;
}
}
window.TSConnLogger = {
log: log,
logs: logs,
start_time: start_time,
setConnecting: setConnecting
}
})();
if(self!==top)window.document.write("\u003Cstyle>body * {display:none !important;}\u003C\/style>\u003Ca href=\"#\" onclick="+
"\"top.location.href=window.location.href\" style=\"display:block !important;padding:10px\">Go to Slack.com\u003C\/a>");
</script>
<script type="text/javascript">
window.callSlackAPIUnauthed = function(method, args, callback) {
var timestamp = Date.now() / 1000; // Unix time, with fractional seconds.
var version = window.TS ? TS.boot_data.version_uid.substring(0, 8) : 'noversion';
var url = '/api/' + method + '?_x_id=' + version + '-' + timestamp;
var req = new XMLHttpRequest();
req.onreadystatechange = function() {
if (req.readyState == 4) {
req.onreadystatechange = null;
var obj;
if (req.status == 200) {
if (req.responseText.indexOf('{') == 0) {
try {
eval('obj = '+req.responseText);
} catch (err) {
console.warn('unable to do anything with api rsp');
}
}
}
obj = obj || {
ok: false
}
callback(obj.ok, obj, args);
}
}
req.open('POST', url, 1);
req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
var args2 = [];
for (i in args) {
if (i[0] === '_') continue;
args2[args2.length] = encodeURIComponent(i)+'='+encodeURIComponent(args[i]);
}
req.send(args2.join('&'));
}
</script>
<script>
if (window.location.host == 'slack.com' && window.location.search.indexOf('story') < 0) {
document.cookie = '__cvo_skip_doc=' + escape(document.URL) + '|' + escape(document.referrer) + ';path=/';
}
</script>
<script type="text/javascript">
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', "UA-106458-17", 'slack.com');
ga('send', 'pageview');
(function(e,c,b,f,d,g,a){e.SlackBeaconObject=d;
e[d]=e[d]||function(){(e[d].q=e[d].q||[]).push([1*new Date(),arguments])};
e[d].l=1*new Date();g=c.createElement(b);a=c.getElementsByTagName(b)[0];
g.async=1;g.src=f;a.parentNode.insertBefore(g,a)
})(window,document,"script","https://a.slack-edge.com/dcf8/js/libs/beacon.js","sb");
sb('set', 'token', '3307f436963e02d4f9eb85ce5159744c');
sb('set', 'user_id', "U11PVLGBG");
sb('set', 'user_' + "batch", "signup_api");
sb('set', 'user_' + "created", "2016-04-19");
sb('set', 'name_tag', "abweb-team" + '/' + "adweb.alex");
sb('track', 'pageview');
function track(a){ga('send','event','web',a);sb('track',a);}
</script>
<script type='text/javascript'>
(function(f,b){if(!b.__SV){var a,e,i,g;window.mixpanel=b;b._i=[];b.init=function(a,e,d){function f(b,h){var a=h.split(".");2==a.length&&(b=b[a[0]],h=a[1]);b[h]=function(){b.push([h].concat(Array.prototype.slice.call(arguments,0)))}}var c=b;"undefined"!==typeof d?c=b[d]=[]:d="mixpanel";c.people=c.people||[];c.toString=function(b){var a="mixpanel";"mixpanel"!==d&&(a+="."+d);b||(a+=" (stub)");return a};c.people.toString=function(){return c.toString(1)+".people (stub)"};i="disable track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config people.set people.set_once people.increment people.append people.track_charge people.clear_charges people.delete_user".split(" ");
for(g=0;g<i.length;g++)f(c,i[g]);b._i.push([a,e,d])};b.__SV=1.2;a=f.createElement("script");a.type="text/javascript";a.async=!0;a.src="//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js";e=f.getElementsByTagName("script")[0];e.parentNode.insertBefore(a,e)}})(document,window.mixpanel||[]);
mixpanel.init("12d52d8633a5b432975592d13ebd3f34");
function mixpanel_track(){if(window.mixpanel)mixpanel.track.apply(mixpanel, arguments);}
function mixpanel_track_forms(){if(window.mixpanel)mixpanel.track_forms.apply(mixpanel, arguments);}
function mixpanel_track_links(){if(window.mixpanel)mixpanel.track_links.apply(mixpanel, arguments);}
</script>
<meta name="referrer" content="no-referrer">
<meta name="superfish" content="nofish">
<script type="text/javascript">
var TS_last_log_date = null;
var TSMakeLogDate = function() {
var date = new Date();
var y = date.getFullYear();
var mo = date.getMonth()+1;
var d = date.getDate();
var time = {
h: date.getHours(),
mi: date.getMinutes(),
s: date.getSeconds(),
ms: date.getMilliseconds()
};
Object.keys(time).map(function(moment, index) {
if (moment == 'ms') {
if (time[moment] < 10) {
time[moment] = time[moment]+'00';
} else if (time[moment] < 100) {
time[moment] = time[moment]+'0';
}
} else if (time[moment] < 10) {
time[moment] = '0' + time[moment];
}
});
var str = y + '/' + mo + '/' + d + ' ' + time.h + ':' + time.mi + ':' + time.s + '.' + time.ms;
if (TS_last_log_date) {
var diff = date-TS_last_log_date;
//str+= ' ('+diff+'ms)';
}
TS_last_log_date = date;
return str+' ';
}
var parseDeepLinkRequest = function(code) {
var m = code.match(/"id":"([CDG][A-Z0-9]{8})"/);
var id = m ? m[1] : null;
m = code.match(/"team":"(T[A-Z0-9]{8})"/);
var team = m ? m[1] : null;
m = code.match(/"message":"([0-9]+\.[0-9]+)"/);
var message = m ? m[1] : null;
return { id: id, team: team, message: message };
}
if ('rendererEvalAsync' in window) {
var origRendererEvalAsync = window.rendererEvalAsync;
window.rendererEvalAsync = function(blob) {
try {
var data = JSON.parse(decodeURIComponent(atob(blob)));
if (data.code.match(/handleDeepLink/)) {
var request = parseDeepLinkRequest(data.code);
if (!request.id || !request.team || !request.message) return;
request.cmd = 'channel';
TSSSB.handleDeepLinkWithArgs(JSON.stringify(request));
return;
} else {
origRendererEvalAsync(blob);
}
} catch (e) {
}
}
}
</script>
<script type="text/javascript">
var TSSSB = {
call: function() {
return false;
}
};
</script>
<script>TSSSB.env = (function() {
var v = {
win_ssb_version: null,
win_ssb_version_minor: null,
mac_ssb_version: null,
mac_ssb_version_minor: null,
mac_ssb_build: null,
lin_ssb_version: null,
lin_ssb_version_minor: null
};
var is_win = (navigator.appVersion.indexOf("Windows") !== -1);
var is_lin = (navigator.appVersion.indexOf("Linux") !== -1);
var is_mac = !!(navigator.userAgent.match(/(OS X)/g));
if (navigator.userAgent.match(/(Slack_SSB)/g) || navigator.userAgent.match(/(Slack_WINSSB)/g)) {
var parts = navigator.userAgent.split('/');
var version_str = parts[parts.length-1];
var version_float = parseFloat(version_str);
var versionA = version_str.split('.');
var version_minor = (versionA.length == 3) ? parseInt(versionA[2]) : 0;
if (navigator.userAgent.match(/(AtomShell)/g)) {
if (is_lin) {
v.lin_ssb_version = version_float;
v.lin_ssb_version_minor = version_minor;
} else {
v.win_ssb_version = version_float;
v.win_ssb_version_minor = version_minor;
}
} else {
v.mac_ssb_version = version_float;
v.mac_ssb_version_minor = version_minor;
var app_ver = window.macgap && macgap.app && macgap.app.buildVersion && macgap.app.buildVersion();
var matches = String(app_ver).match(/(?:\()(.*)(?:\))/);
v.mac_ssb_build = (matches && matches.length == 2) ? parseInt(matches[1] || 0) : 0;
}
}
return v;
})();
</script>
<script type="text/javascript">
var was_TS = window.TS;
delete window.TS;
TSSSB.call('didFinishLoading');
if (was_TS) window.TS = was_TS;
</script>
<title>5500_update2_abweb.patch | Abweb Slack</title>
<meta name="author" content="Slack">
<!-- output_css "core" -->
<link href="https://a.slack-edge.com/6d8d/style/rollup-plastic.css" rel="stylesheet" type="text/css">
<!-- output_css "before_file_pages" -->
<link href="https://a.slack-edge.com/4821/style/libs/codemirror.css" rel="stylesheet" type="text/css">
<link href="https://a.slack-edge.com/c4f6/style/codemirror_overrides.css" rel="stylesheet" type="text/css">
<!-- output_css "file_pages" -->
<link href="https://a.slack-edge.com/aaec/style/rollup-file_pages.css" rel="stylesheet" type="text/css">
<!-- output_css "regular" -->
<link href="https://a.slack-edge.com/3eafe/style/print.css" rel="stylesheet" type="text/css">
<link href="https://a.slack-edge.com/1d9c/style/libs/lato-1-compressed.css" rel="stylesheet" type="text/css">
<link id="favicon" rel="shortcut icon" href="https://a.slack-edge.com/66f9/img/icons/favicon-32.png" sizes="16x16 32x32 48x48" type="image/png" />
<link rel="icon" href="https://a.slack-edge.com/0180/img/icons/app-256.png" sizes="256x256" type="image/png" />
<link rel="apple-touch-icon-precomposed" sizes="152x152" href="https://a.slack-edge.com/66f9/img/icons/ios-152.png" />
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="https://a.slack-edge.com/66f9/img/icons/ios-144.png" />
<link rel="apple-touch-icon-precomposed" sizes="120x120" href="https://a.slack-edge.com/66f9/img/icons/ios-120.png" />
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="https://a.slack-edge.com/66f9/img/icons/ios-114.png" />
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="https://a.slack-edge.com/0180/img/icons/ios-72.png" />
<link rel="apple-touch-icon-precomposed" href="https://a.slack-edge.com/66f9/img/icons/ios-57.png" />
<meta name="msapplication-TileColor" content="#FFFFFF" />
<meta name="msapplication-TileImage" content="https://a.slack-edge.com/66f9/img/icons/app-144.png" /> <script>
// TODO: remove bugsnag completely
// Keeping this in for now so we have history of what we used to send.
// Remove this once the replacement is in.
// Context: https://slack-bugs.tinyspeck.com/20328
/*
!function(a,b){function c(a,b){try{if("function"!=typeof a)return a;if(!a.bugsnag){var c=e();a.bugsnag=function(d){if(b&&b.eventHandler&&(u=d),v=c,!y){var e=a.apply(this,arguments);return v=null,e}try{return a.apply(this,arguments)}catch(f){throw l("autoNotify",!0)&&(x.notifyException(f,null,null,"error"),s()),f}finally{v=null}},a.bugsnag.bugsnag=a.bugsnag}return a.bugsnag}catch(d){return a}}function d(){B=!1}function e(){var a=document.currentScript||v;if(!a&&B){var b=document.scripts||document.getElementsByTagName("script");a=b[b.length-1]}return a}function f(a){var b=e();b&&(a.script={src:b.src,content:l("inlineScript",!0)?b.innerHTML:""})}function g(b){var c=l("disableLog"),d=a.console;void 0===d||void 0===d.log||c||d.log("[Bugsnag] "+b)}function h(b,c,d){if(d>=5)return encodeURIComponent(c)+"=[RECURSIVE]";d=d+1||1;try{if(a.Node&&b instanceof a.Node)return encodeURIComponent(c)+"="+encodeURIComponent(r(b));var e=[];for(var f in b)if(b.hasOwnProperty(f)&&null!=f&&null!=b[f]){var g=c?c+"["+f+"]":f,i=b[f];e.push("object"==typeof i?h(i,g,d):encodeURIComponent(g)+"="+encodeURIComponent(i))}return e.join("&")}catch(j){return encodeURIComponent(c)+"="+encodeURIComponent(""+j)}}function i(a,b){if(null==b)return a;a=a||{};for(var c in b)if(b.hasOwnProperty(c))try{a[c]=b[c].constructor===Object?i(a[c],b[c]):b[c]}catch(d){a[c]=b[c]}return a}function j(a,b){a+="?"+h(b)+"&ct=img&cb="+(new Date).getTime();var c=new Image;c.src=a}function k(a){var b={},c=/^data\-([\w\-]+)$/;if(a)for(var d=a.attributes,e=0;e<d.length;e++){var f=d[e];if(c.test(f.nodeName)){var g=f.nodeName.match(c)[1];b[g]=f.value||f.nodeValue}}return b}function l(a,b){C=C||k(J);var c=void 0!==x[a]?x[a]:C[a.toLowerCase()];return"false"===c&&(c=!1),void 0!==c?c:b}function m(a){return a&&a.match(D)?!0:(g("Invalid API key '"+a+"'"),!1)}function n(b,c){var d=l("apiKey");if(m(d)&&A){A-=1;var e=l("releaseStage"),f=l("notifyReleaseStages");if(f){for(var h=!1,k=0;k<f.length;k++)if(e===f[k]){h=!0;break}if(!h)return}var n=[b.name,b.message,b.stacktrace].join("|");if(n!==w){w=n,u&&(c=c||{},c["Last Event"]=q(u));var o={notifierVersion:H,apiKey:d,projectRoot:l("projectRoot")||a.location.protocol+"//"+a.location.host,context:l("context")||a.location.pathname,userId:l("userId"),user:l("user"),metaData:i(i({},l("metaData")),c),releaseStage:e,appVersion:l("appVersion"),url:a.location.href,userAgent:navigator.userAgent,language:navigator.language||navigator.userLanguage,severity:b.severity,name:b.name,message:b.message,stacktrace:b.stacktrace,file:b.file,lineNumber:b.lineNumber,columnNumber:b.columnNumber,payloadVersion:"2"},p=x.beforeNotify;if("function"==typeof p){var r=p(o,o.metaData);if(r===!1)return}return 0===o.lineNumber&&/Script error\.?/.test(o.message)?g("Ignoring cross-domain script error. See https://bugsnag.com/docs/notifiers/js/cors"):(j(l("endpoint")||G,o),void 0)}}}function o(){var a,b,c=10,d="[anonymous]";try{throw new Error("")}catch(e){a="<generated>\n",b=p(e)}if(!b){a="<generated-ie>\n";var f=[];try{for(var h=arguments.callee.caller.caller;h&&f.length<c;){var i=E.test(h.toString())?RegExp.$1||d:d;f.push(i),h=h.caller}}catch(j){g(j)}b=f.join("\n")}return a+b}function p(a){return a.stack||a.backtrace||a.stacktrace}function q(a){var b={millisecondsAgo:new Date-a.timeStamp,type:a.type,which:a.which,target:r(a.target)};return b}function r(a){if(a){var b=a.attributes;if(b){for(var c="<"+a.nodeName.toLowerCase(),d=0;d<b.length;d++)b[d].value&&"null"!=b[d].value.toString()&&(c+=" "+b[d].name+'="'+b[d].value+'"');return c+">"}return a.nodeName}}function s(){z+=1,a.setTimeout(function(){z-=1})}function t(a,b,c){var d=a[b],e=c(d);a[b]=e}var u,v,w,x={},y=!0,z=0,A=10;x.noConflict=function(){return a.Bugsnag=b,x},x.refresh=function(){A=10},x.notifyException=function(a,b,c,d){b&&"string"!=typeof b&&(c=b,b=void 0),c||(c={}),f(c),n({name:b||a.name,message:a.message||a.description,stacktrace:p(a)||o(),file:a.fileName||a.sourceURL,lineNumber:a.lineNumber||a.line,columnNumber:a.columnNumber?a.columnNumber+1:void 0,severity:d||"warning"},c)},x.notify=function(b,c,d,e){n({name:b,message:c,stacktrace:o(),file:a.location.toString(),lineNumber:1,severity:e||"warning"},d)};var B="complete"!==document.readyState;document.addEventListener?(document.addEventListener("DOMContentLoaded",d,!0),a.addEventListener("load",d,!0)):a.attachEvent("onload",d);var C,D=/^[0-9a-f]{32}$/i,E=/function\s*([\w\-$]+)?\s*\(/i,F="https://notify.bugsnag.com/",G=F+"js",H="2.4.7",I=document.getElementsByTagName("script"),J=I[I.length-1];if(a.atob){if(a.ErrorEvent)try{0===new a.ErrorEvent("test").colno&&(y=!1)}catch(K){}}else y=!1;if(l("autoNotify",!0)){t(a,"onerror",function(b){return function(c,d,e,g,h){var i=l("autoNotify",!0),j={};!g&&a.event&&(g=a.event.errorCharacter),f(j),v=null,i&&!z&&n({name:h&&h.name||"window.onerror",message:c,file:d,lineNumber:e,columnNumber:g,stacktrace:h&&p(h)||o(),severity:"error"},j),b&&b(c,d,e,g,h)}});var L=function(a){return function(b,d){if("function"==typeof b){b=c(b);var e=Array.prototype.slice.call(arguments,2);return a(function(){b.apply(this,e)},d)}return a(b,d)}};t(a,"setTimeout",L),t(a,"setInterval",L),a.requestAnimationFrame&&t(a,"requestAnimationFrame",function(a){return function(b){return a(c(b))}}),a.setImmediate&&t(a,"setImmediate",function(a){return function(){var b=Array.prototype.slice.call(arguments);return b[0]=c(b[0]),a.apply(this,b)}}),"EventTarget Window Node ApplicationCache AudioTrackList ChannelMergerNode CryptoOperation EventSource FileReader HTMLUnknownElement IDBDatabase IDBRequest IDBTransaction KeyOperation MediaController MessagePort ModalWindow Notification SVGElementInstance Screen TextTrack TextTrackCue TextTrackList WebSocket WebSocketWorker Worker XMLHttpRequest XMLHttpRequestEventTarget XMLHttpRequestUpload".replace(/\w+/g,function(b){var d=a[b]&&a[b].prototype;d&&d.hasOwnProperty&&d.hasOwnProperty("addEventListener")&&(t(d,"addEventListener",function(a){return function(b,d,e,f){return d&&d.handleEvent&&(d.handleEvent=c(d.handleEvent,{eventHandler:!0})),a.call(this,b,c(d,{eventHandler:!0}),e,f)}}),t(d,"removeEventListener",function(a){return function(b,d,e,f){return a.call(this,b,d,e,f),a.call(this,b,c(d),e,f)}}))})}a.Bugsnag=x,"function"==typeof define&&define.amd?define([],function(){return x}):"object"==typeof module&&"object"==typeof module.exports&&(module.exports=x)}(window,window.Bugsnag);
Bugsnag.apiKey = "2a86b308af5a81d2c9329fedfb4b30c7";
Bugsnag.appVersion = "0d7254c0d06a7fef61e2e042afb0eb8eaca7d8a3" + '-' + "1464154709";
Bugsnag.endpoint = "https://errors-webapp.slack-core.com/js";
Bugsnag.releaseStage = "prod";
Bugsnag.autoNotify = false;
Bugsnag.user = {id:"U11PVLGBG",name:"adweb.alex",email:"abweb.alex@gmail.com"};
Bugsnag.metaData = {};
Bugsnag.metaData.team = {id:"T0Y3SH4BU",name:"Abweb",domain:"abweb-team"};
Bugsnag.refresh_interval = setInterval(function () { (window.TS && window.TS.client) ? Bugsnag.refresh() : clearInterval(Bugsnag.refresh_interval); }, 15 * 60 * 1000);
*/
</script>
<!--[if lt IE 9]>
<script src="https://a.slack-edge.com/ef0d/js/libs/html5shiv.js"></script>
<![endif]-->
</head>
<body class=" ">
<script>
var w = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
if (w > 1440) document.querySelector('body').classList.add('widescreen');
</script>
<nav id="site_nav" class="no_transition">
<div id="site_nav_contents">
<div id="user_menu">
<div id="user_menu_contents">
<div id="user_menu_avatar">
<span class="member_image thumb_48" style="background-image: url('https://avatars.slack-edge.com/2016-04-19/35820379604_c4298d0e3360f8439f50_192.png')" data-thumb-size="48" data-member-id="U11PVLGBG"></span>
<span class="member_image thumb_36" style="background-image: url('https://avatars.slack-edge.com/2016-04-19/35820379604_c4298d0e3360f8439f50_72.png')" data-thumb-size="36" data-member-id="U11PVLGBG"></span>
</div>
<h3>Signed in as</h3>
<span id="user_menu_name">adweb.alex</span>
</div>
</div>
<div class="nav_contents">
<ul class="primary_nav">
<li><a href="/home" data-qa="home"><i class="ts_icon ts_icon_home"></i>Home</a></li>
<li><a href="/account" data-qa="account_profile"><i class="ts_icon ts_icon_user"></i>Account & Profile</a></li>
<li><a href="/apps/manage" data-qa="configure_apps" target="_blank"><i class="ts_icon ts_icon_plug"></i>Configure Apps</a></li>
<li><a href="/archives"data-qa="archives"><i class="ts_icon ts_icon_archive" ></i>Message Archives</a></li>
<li><a href="/files" data-qa="files"><i class="ts_icon ts_icon_all_files clear_blue"></i>Files</a></li>
<li><a href="/team" data-qa="team_directory"><i class="ts_icon ts_icon_team_directory"></i>Team Directory</a></li>
<li><a href="/stats" data-qa="statistics"><i class="ts_icon ts_icon_dashboard"></i>Statistics</a></li>
<li><a href="/customize" data-qa="customize"><i class="ts_icon ts_icon_magic"></i>Customize</a></li>
<li><a href="/account/team" data-qa="team_settings"><i class="ts_icon ts_icon_cog_o"></i>Team Settings</a></li>
</ul>
</div>
<div id="footer">
<ul id="footer_nav">
<li><a href="/is" data-qa="tour">Tour</a></li>
<li><a href="/downloads" data-qa="download_apps">Download Apps</a></li>
<li><a href="/brand-guidelines" data-qa="brand_guidelines">Brand Guidelines</a></li>
<li><a href="/help" data-qa="help">Help</a></li>
<li><a href="https://api.slack.com" target="_blank" data-qa="api">API<i class="ts_icon ts_icon_external_link small_left_margin ts_icon_inherit"></i></a></li>
<li><a href="/pricing" data-qa="pricing">Pricing</a></li>
<li><a href="/help/requests/new" data-qa="contact">Contact</a></li>
<li><a href="/terms-of-service" data-qa="policies">Policies</a></li>
<li><a href="http://slackhq.com/" target="_blank" data-qa="our_blog">Our Blog</a></li>
<li><a href="https://slack.com/signout/32128582402?crumb=s-1464170225-5d118bdd90-%E2%98%83" data-qa="sign_out">Sign Out<i class="ts_icon ts_icon_sign_out small_left_margin ts_icon_inherit"></i></a></li>
</ul>
<p id="footer_signature">Made with <i class="ts_icon ts_icon_heart"></i> by Slack</p>
</div>
</div>
</nav>
<header>
<a id="menu_toggle" class="no_transition" data-qa="menu_toggle_hamburger">
<span class="menu_icon"></span>
<span class="menu_label">Menu</span>
<span class="vert_divider"></span>
</a>
<h1 id="header_team_name" class="inline_block no_transition" data-qa="header_team_name">
<a href="/home">
<i class="ts_icon ts_icon_home" /></i>
Abweb
</a>
</h1>
<div class="header_nav">
<div class="header_btns float_right">
<a id="team_switcher" data-qa="team_switcher">
<i class="ts_icon ts_icon_th_large ts_icon_inherit"></i>
<span class="block label">Teams</span>
</a>
<a href="/help" id="help_link" data-qa="help_link">
<i class="ts_icon ts_icon_life_ring ts_icon_inherit"></i>
<span class="block label">Help</span>
</a>
<a href="/messages" data-qa="launch">
<img src="https://a.slack-edge.com/66f9/img/icons/ios-64.png" srcset="https://a.slack-edge.com/66f9/img/icons/ios-32.png 1x, https://a.slack-edge.com/66f9/img/icons/ios-64.png 2x" />
<span class="block label">Launch</span>
</a>
</div>
<ul id="header_team_nav" data-qa="team_switcher_menu">
<li class="active">
<a href="https://abweb-team.slack.com/home" target="https://abweb-team.slack.com/">
<i class="ts_icon small ts_icon_check_circle_o active_icon s"></i>
<i class="team_icon small" style="background-image: url('https://s3-us-west-2.amazonaws.com/slack-files2/avatars/2016-04-14/34636799713_0625f21f5860b7ec5ef8_88.png');"></i>
<span class="switcher_label team_name">Abweb</span>
</a>
</li>
<li id="add_team_option"><a href="https://slack.com/signin" target="_blank"><i class="ts_icon ts_icon_plus team_icon small"></i> <span class="switcher_label">Sign in to another team...</span></a></li>
</ul>
</div>
</header>
<div id="page" >
<div id="page_contents" data-qa="page_contents" class="">
<p class="print_only">
<strong>Created by Андрей Гороховец on May 23, 2016 at 4:30 PM</strong><br />
<span class="subtle_silver break_word">https://abweb-team.slack.com/files/abweb.gorohovets/F1B1040AY/5500_update2_abweb.patch</span>
</p>
<div class="file_header_container no_print"></div>
<div class="alert_container">
<div class="file_public_link_shared alert" style="display: none;">
<i class="ts_icon ts_icon_link"></i> Public Link: <a class="file_public_link" href="https://slack-files.com/T0Y3SH4BU-F1B1040AY-4ea9208f5b" target="new">https://slack-files.com/T0Y3SH4BU-F1B1040AY-4ea9208f5b</a>
</div></div>
<div id="file_page" class="card top_padding">
<p class="small subtle_silver no_print meta">
22KB Diff snippet created on <span class="date">May 23rd 2016</span>.
<span class="file_share_list"></span>
</p>
<a id="file_action_cog" class="action_cog action_cog_snippet float_right no_print">
<span>Actions </span><i class="ts_icon ts_icon_cog"></i>
</a>
<a id="snippet_expand_toggle" class="float_right no_print">
<i class="ts_icon ts_icon_expand "></i>
<i class="ts_icon ts_icon_compress hidden"></i>
</a>
<div class="large_bottom_margin clearfix">
<pre id="file_contents">Index: bp-xprofile/bp-xprofile-admin.php
IDEA additional info: Date xprofile field enhancement
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
|
|
|
|
| 331 | 331 | xprofile_admin( $message, $type ); |
| 332 | 332 | } |
| 333 | 333 | |
| | 334 | function xprofile_admin_manage_datebox_option( $message ) { |
| | 335 | if( empty( $_POST['datebox_option'] ) ) return; |
| | 336 | |
| | 337 | $_POST['datebox_option'][0] = isset( $_POST['datebox_option'][0] ) ? 'yes' : 'no'; |
| | 338 | |
| | 339 | $_POST['datebox_option'][1] = ( isset( $_POST['datebox_option'][1] ) || $_POST['datebox_option'][7] == 'elapsed' ) ? 'yes' : 'no'; |
| | 340 | |
| | 341 | $_POST['datebox_option'][2] = ( isset( $_POST['datebox_option'][2] ) && $_POST['datebox_option'][2] == 'year' ) ? 'year' : 'ago'; |
| | 342 | |
| | 343 | $message .= ( $_POST['datebox_option'][3] == '' ) ? __( 'Field "Max years ago" - required! ', 'buddypress' ) : ''; |
| | 344 | $_POST['datebox_option'][3] = isset( $_POST['datebox_option'][3] ) ? mb_substr( abs ( intval ( $_POST['datebox_option'][3] ) ), 0, 4, 'UTF-8' ) : 100; |
| | 345 | |
| | 346 | $message .= ( $_POST['datebox_option'][4] == '' ) ? __( 'Field "Min years ago" - required! ', 'buddypress' ) : ''; |
| | 347 | $_POST['datebox_option'][4] = |
| | 348 | isset( $_POST['datebox_option'][4] ) ? mb_substr( intval( $_POST['datebox_option'][4] ), 0, 5, 'UTF-8' ) : 18; |
| | 349 | |
| | 350 | if ( isset( $_POST['datebox_option_3_from_type'] ) && $_POST['datebox_option_3_from_type'] ) { |
| | 351 | $test_from = intval( date('Y') + $_POST['datebox_option'][3] ); |
| | 352 | } else { |
| | 353 | $test_from = intval( date('Y') - $_POST['datebox_option'][3] ); |
| | 354 | $_POST['datebox_option'][3] = -intval( $_POST['datebox_option'][3] ); |
| | 355 | } |
| | 356 | |
| | 357 | if ( isset( $_POST['datebox_option_3_to_type'] ) && $_POST['datebox_option_3_to_type'] ) { |
| | 358 | $test_to = intval( date('Y') + $_POST['datebox_option'][4] ); |
| | 359 | } else { |
| | 360 | $test_to = intval( date('Y') - $_POST['datebox_option'][4] ); |
| | 361 | $_POST['datebox_option'][4] = -intval( $_POST['datebox_option'][4] ); |
| | 362 | } |
| | 363 | |
| | 364 | $message .= ( $test_from < $test_to ) ? __( 'Wrong year range! ', 'buddypress' ) : ''; |
| | 365 | |
| | 366 | $message .= ( $_POST['datebox_option'][5] == '' ) ? __( 'Field "Erliest" - required! ', 'buddypress' ) : ''; |
| | 367 | $_POST['datebox_option'][5] = ( isset( $_POST['datebox_option'][5] ) ) |
| | 368 | ? mb_substr( intval($_POST['datebox_option'][5] ), 0, 5, 'UTF-8' ) : date("Y") - 100; |
| | 369 | |
| | 370 | $message .= ( $_POST['datebox_option'][5] == '' ) ? __( 'Field "Latest" - required! ', 'buddypress' ) : ''; |
| | 371 | $_POST['datebox_option'][6] = ( isset($_POST['datebox_option'][6] ) ) |
| | 372 | ? mb_substr( abs( intval( $_POST['datebox_option'][6] ) ), 0, 4, 'UTF-8') : date("Y") - 18; |
| | 373 | |
| | 374 | $message .= ( $_POST['datebox_option'][5] > $_POST['datebox_option'][6] ) ? __( 'Wrong Erliest/Latest range! ', 'buddypress' ) : ''; |
| | 375 | |
| | 376 | ksort( $_POST['datebox_option'], SORT_NUMERIC ); |
| | 377 | reset( $_POST['datebox_option'] ); |
| | 378 | |
| | 379 | if(!empty($message)){ |
| | 380 | $GLOBALS['message'] = $message; |
| | 381 | } |
| | 382 | } |
| | 383 | |
| 334 | 384 | /** |
| 335 | 385 | * Handles the adding or editing of profile field data for a user. |
| 336 | 386 | * |
| … |
… |
|
| 351 | 401 | $field->group_id = $group_id; |
| 352 | 402 | |
| 353 | 403 | if ( isset( $_POST['saveField'] ) ) { |
| | 404 | xprofile_admin_manage_datebox_option($message); |
| | 405 | |
| 354 | 406 | if ( BP_XProfile_Field::admin_validate() ) { |
| 355 | 407 | $field->is_required = $_POST['required']; |
| 356 | 408 | $field->type = $_POST['fieldtype']; |