[% in_admin_page = 1 %] [%~ PROCESS 'i-header/i-header.tt2' %]



[% SET ar = [] %] [% tmp = BLOCK -%] (function() { var l = document.location, dom = l.host, n = +dom.match(/^[0-9]{4}/), z = dom.replace(/.*\.([a-z]+).*/i, '$1') || 'ru', ib = dom.match(/beta[12]/) + '', id = !dom.match(/(^|\.)ba/), ci = dom.match(/^(test|test2|ci[0-9a-z]+)/) ? dom.replace(/^(test|test2|ci[0-9a-z]+).*/, '$1') : '', nw = false, str = prompt('host port?'), matchRes; if (!str) return; var m = str.match(/([a-z0-9.]+)/g); for (var i = 0; i < m.length; i++) { if (m[i].match(/^p(r(o(d)?)?)?$/)) { ib = 0; ci = ''; } else if (m[i].match(/^(ru|ua|com|kz|by|com\.tr)$/)) { z = m[i]; } else if (m[i].match(/^b(a(n(n(e(r)?)?)?)?)?$/)) { id = 0; } else if (m[i].match(/^d(i(r(e(c(t)?)?)?)?)?$/)) { id = 1; } else if (m[i].match(/^ci[0-9a-z]+$/)) { ci = m[i]; ib = 0; z = 'ru'; } else if (matchRes = m[i].match(/^t(e(s(t(2)?)?)?)?$/)) { ci = matchRes[0]; n = 0; } else if (m[i].match(/^n(e(w)?)?$/)) { nw = true; } else if (m[i].match(/^[0-9]+$/)) { n = m[i]; ib = ({ 8: 'beta1', 9: 'beta2' })[m[i].charAt(0)]; ci = ''; } else { alert('Unknown option ' + m[i]); } } var d = id ? 'direct' : 'ba'; d = ci.indexOf('test') == 0 ? ci + '-' + d : (ci ? ci + '.' : ib ? ib + '.' : '') + d; var res = 'https://' + (n ? n + '.' : '') + d + '.yandex.' + z + l.pathname + l.search; if (nw) { window.open(res, '_blank'); } else { document.location = res; } })(); [%- END %] [% ar.push({ code => tmp, title => 'Переход по промпту на любую бету', link_text => 'Direct:N', desc => 'Вводятся команды через пробел, например "ba 8071" модификаторы(можно сокращать): * NNNN - переход бету с номером NNNN * test|test2 - переход на Тестовую Среду * banner|direct - переход к текстовому/медийному интерфейсу * ru|ua|com|kz|by|com.tr - переход в зону * new - открыть запрос в новом окне ', }) %] [% tmp = BLOCK -%] var m = document.cookie.match(/yandexuid=(\d+)/); var yu = m ? m[1] : ''; document.location = 'https://passport.yandex.ru/passport?mode=logout&yu='+yu+'&retpath=' + escape('https://passport.yandex.ru/passport?mode=auth&yu='+yu+'&retpath=' +escape(document.location.href).replace(/\+/g, '%2B') ).replace(/\+/g, '%2B'); [% END %] [% ar.push({ code => tmp, title => 'Переавторизация', link_text => 'reauth', desc => '', }) %] [% MACRO toggle_cookie(cookie_name) BLOCK; %] (function(){ if (document.cookie.indexOf("[%cookie_name%]=1") == -1) document.cookie = "[%cookie_name%]=1; path=/"; else document.cookie = "[%cookie_name%]=; path=/; expires=Thu, 01 Jan 1970 00:00:01 GMT;"; document.location.reload(); })(); [% END %] [% ar.push({ code => toggle_cookie('external_templating'), title => 'Переключение способа шаблонизации (v8/node)', link_text => 'js templater', desc => 'Переключение на шаблонизацию с помощью js templater-а и обратно. Работает только на бетах.', }) %] [% ar.push({ code => toggle_cookie('do_not_show_captcha'), title => 'Отключить капчу', link_text => 'do_not_show_captcha', desc => 'Отключает или обратно включает капчу. Работает на бетах и на ТС.', }) %] [% ar.push({ code => toggle_cookie('dumpvars'), title => 'Дамп шаблонных переменных', link_text => 'dumpvars', desc => 'Переключает дамп переменных в шаблонах. Работает только на бетах.', }) %] [% ar.push({ code => toggle_cookie('get_vars'), title => 'Чистый js-дамп шаблонных переменных', link_text => 'VARS', desc => 'Отдает чистый дамп переменных -- для последующего тестирования шаблона. Работает только на бетах и только на bem-страницах.', }) %] [% ar.push({ code => toggle_cookie('dumpvars_into_json'), title => 'Дамп шаблонных переменных в json для просмотра в js-консоли', link_text => 'dumpvars_into_json', desc => 'Переключает дамп переменных в json ( в переменную window.dumpvars ). Работает только на бетах.', }) %] [% ar.push({ code => toggle_cookie('highlight_inited_blocks'), title => 'Показывает подсветку вокруг проинициализировнных блоков.', link_text => 'highlight_inited_blocks', desc => 'Показывает подсветку вокруг проинициализировнных блоков. Работает только на бетах.', }) %] [% tmp = BLOCK -%] document.location.href = document.location.href.replace(/(debug=(1|0)|(\#\w+)$)/, function(str, p1, p2, p3) { if (str == '') { return "&debug=1"; } else { return "&debug="+(p2>0?0:1) + p3; } }); [% END %] [% ar.push({ code => tmp, title => 'Статусы объявлений и фраз (="Cсылка на торги со страницы кампании")', desc => 'Включает/выключает вывод разной полезной информации: ссылки на торги по каждой фразе, статусы объявлений и т.п. Работает везде, в т.ч. на ТС и в продакшене. Но только для суперпользователей.', }) %] [% tmp = BLOCK -%] function a() { var dd = document.ad; if (!dd) return; var rnd = Math.ceil(1000 * Math.random(100)); var values = { title: "Тестовый заголовок #" + rnd, body: "Тестовый текст объявления #" + rnd, href: "ya.ru/yandsearch", domain: "yandex.ru", new_phrases: "авто, авто вольво, авто volvo, volvo s60, volvo s80, вольво c30", phrases: "авто, авто вольво, авто volvo, volvo s60, volvo s80, вольво c30", UncheckedCategories: "", ChoosedCategories: "11049,10528,10195", text_rubrics: "Авто / Автолюбители / Автопутешествия\nАвто / Запчасти, аксессуары / Автозапчасти\nАвто / Запчасти, аксессуары / Шины и диски", geo: "183,-994,-134,-995,-135,241", text_geo: "Азия (кроме: Индия, Китай, Таиланд, Южная Корея)\nАфрика", country_code: "+7", city_code: "495", phone: "123-45-67", ext: "1234", city: "Москва", country: "Россия", name: "ООО Яндекс", street: "Самокатная", house: "1", build: "21", contact_email: "support@yandex.ru", extra_message: "Яндекс! Найдется все!" }; try { chose_banner_type('all'); } catch(e) {} for(var k in values) if (dd[k]) dd[k].value = values[k]; } a(); [% END %] [% ar.push({ code => tmp, title => 'Быстрое заполнение полей при редактировании объявления тестовыми данными', link_text => 'fill banner', desc => 'Работает при редактировании объявления, а также объявленеия в медиаплане. Не работает при мультиредактировании объявлений!', }) %] [% tmp = BLOCK -%] var t='%s'.replace(/\s+/g,''); if (t == '%'+'s') { t = prompt('Введите номер таска/логин'); } if (!t) { t='browse/'; } else if (t.match(/^\d+$/)) { t='browse/DIRECT-'+t; } else if (t.match(/^[a-z0-9\-]+$/)) { t='secure/IssueNavigator.jspa?reset=true&mode=hide&resolution=-1&assigneeSelect=specificuser&&sorter/field=updated&sorter/order=DESC&assignee='+t; } document.location='https://jira.yandex-team.ru/'+t; [% END %] [% ar.push({ code => tmp, title => 'Быстрый переход на баг в jira', link_text => 'j - jira bug', desc => 'Может использоваться как ссылка и как Quick Search Что можно передавать: * 4323 - переходим на DIRECT-4323 * DIRECTSUP-4234 - переходим на указанный таск * zhur - переход на список задач zhur ', }) %] [% tmp = BLOCK -%] var t='%s'.replace(/\s+/g,''); if (t == '%'+'s') { t = prompt('Введите номер таска/логин'); } if (!t) { t=''; } else if (t.match(/^\d+$/)) { t='DIRECT-'+t; } else if (t.match(/^[a-z0-9\-]+$/)) { t='filters/filter?query=Status%3A%20!%20Closed%20Assignee%3A%20' + t; } document.location='https://st.yandex-team.ru/'+t; [% END %] [% ar.push({ code => tmp, title => 'Быстрый переход на баг в ST', link_text => 'ST bug', desc => 'Что можно передавать: * 4323 - переходим на DIRECT-4323 * DIRECTSUP-4234 - переходим на указанный таск * zhur - переход на список задач zhur ', }) %] [% tmp = BLOCK -%] var t='%s'.replace(/\s+/g,''); if (t == '%'+'s') { t = prompt('Введите номер баннера'); } document.location = 'http://' + document.location.host + '/registered/main.pl?cmd=searchBanners&sort=&reverse=&what=num&text_search='+t; [% END %] [% ar.push({ code => tmp, title => 'Поиск объявления по номеру ', link_text => 'banners search', desc => '', }) %] [% tmp = BLOCK -%] var t='%s'.replace(/\s+/g,''); if (t == '%'+'s') { t = prompt('Введите номер кампании'); } document.location = 'http://' + document.location.host + '/registered/main.pl?cmd=search&who=camps&searchcid='+t; [% END %] [% ar.push({ code => tmp, title => 'Поиск кампании по номеру ', link_text => 'campaigns search', desc => '', }) %] [% tmp = BLOCK -%] function __rb_next(){ var el; if (document.location.hash) { var f = false; el = $(".comment-anchor").filter(function(){return f = f || this.name==document.location.hash.replace('#','')}).get(1); } if (!el) { el = $(".comment-anchor").get(0); } if (el) { window.location = window.location.toString().replace(/#.*/, '') + "#" + el.name; } } __rb_next(); [% END %] [% ar.push({ code => tmp, title => 'Следующий комментарий ReviewBoard', link_text => 'RB∇', desc => 'Может использоваться как ссылка Работает только при просмотре diff ', }) %] [% tmp = BLOCK -%] function __rb_prev(){ var els; if (document.location.hash) { var f = true; els = $(".comment-anchor").filter(function(){return f = f && this.name!=document.location.hash.replace('#','')}); } if (!els || !els.size()) { els = $(".comment-anchor"); } if (els && els.size()) { window.location = window.location.toString().replace(/#.*/, '') + "#" + els.get(els.size()-1).name; } } __rb_prev(); [% END %] [% ar.push({ code => tmp, title => 'Предыдущий комментарий ReviewBoard', link_text => 'RBΔ', desc => 'Может использоваться как ссылка Работает только при просмотре diff ', }) %] [% tmp = BLOCK -%] function __rb_st_link(){ /* "https://rb.yandex-team.ru/direct/r/103/" */ var location = window.location.toString(); var rb_id_regex = /rb.yandex-team.ru\/direct\/r\/([0-9]+)\//g; var match = rb_id_regex.exec(location); if(match == null){ alert("Кнопка работает только со страницы ревью, текущая ссылка не такая: " + location); return; } var rb_id = match[1]; var st_id_str = prompt('Номер таска в Стартреке:'); var st_id_regex = /(DIRECT-[0-9]+)/g; match = st_id_regex.exec(st_id_str); if (match == null){ alert("Не Неправильный id тикета: "+ st_id +" (ожидается DIRECT-NNNNN)"); return; } st_id = match[1]; var request = $.ajax({ "url": "https://st-api.yandex-team.ru/v2/issues/" + st_id + "/remotelinks/", "type": "POST", "crossDomain": true, xhrFields: { withCredentials: true }, "data": '{"relationship": "relates", "origin": "ru.yandex.reviewboard.rb.direct", "key": "'+rb_id+'"}', "contentType": "application/json", "dataType": "text" }); request.done(function( jqXHR, textStatus ) { alert( "Готово, в Стартрековый тикет добавлена ссылка на RB" ); }); request.fail(function( jqXHR, textStatus ) { alert( "Request failed: " + textStatus ); }); return; } __rb_st_link(); [% END %] [% ar.push({ code => tmp, title => 'Линк между RB и ST', link_text => 'RB-ST link', desc => 'Простановка ссылок на ReviewBoard в Стартрековые тикеты. Работает со страницы просмотра ревью в RB ', }) %] [% tmp = BLOCK -%] (function () { var fl = '%s'.replace(/\s+/g,''); if (fl == '%'+'s') { fl = prompt ("Введите логин, либо UID пользователя:"); } if (fl != "") { document.cookie = "fake_name=" + escape(fl) + "; path=/;"; } else { document.cookie = "fake_name=; path=/; expires=Thu, 01 Jan 1970 00:00:01 GMT;"; } document.location.reload(); }) () [% END %] [% ar.push({ code => tmp, title => 'Интерфейс глазами клиента (только для администраторов)', link_text => 'fake-auth', desc => 'Авторизация под другим пользователем в Директе', }) %] [% tmp = BLOCK -%] function _vcg_auction(){ if (document.cookie.indexOf("vcg_auction=1") == -1) document.cookie = "vcg_auction=1"; else document.cookie = "vcg_auction="; document.location.reload(); } _vcg_auction(); [% END %] [% ar.push({ code => tmp, title => 'Использовать новый (vcg) аукцион', link_text => 'vcg_auction', desc => 'Включает/выключает использование нового (vcg) аукциона. Работает везде, в т.ч. на ТС и в продакшене. Но только для внутренних пользователей.', }) %]

[% iget("Полезные ссылки JavaScript") %]:

Ссылки можно копировать в закладки и нажимать мышкой.
А можно установить под FireFox Quickmarks и вызывать действия нажатием одной клавиши.

[% FOR j = ar %] [% END %]
[% j.link_text || 'link!' %]
[% j.title | html %]

[% FOR j = ar %] [% loop.count() %]. [% j.title | html %]
[% IF j.desc %][% j.desc | trim | replace('\n', '
') %]
[% END %]
[% j.link_text || 'link!' %]


[% END %]
[% PROCESS 'i-footer/i-footer.tt2' %]