-
Список говнокодов пользователя torbasow
Всего: 13
-
−2
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
this.params.IsCellEditable = function(rowNumber, cellNumber) {
cellNumber == 1;
this.params.ButtonList = this.params.ButtonList.filter(b=>b[0] === "OnRefresh");
let textContr = new CTextArea('textContr');
textContr.SourceName = "value";
textContr.ViewName = "Params";
textContr.ComEdit = true;
this.params.arrEditObj[1] = textContr;
}
Найдено в нашем проекте в старом модуле, в авторстве никто не признаётся.
Во-первых, строка 2 бессмысленна. Во-вторых, всё последующее имело бы хоть какой-то смысл _вне_ этой функции, а внутри уже на строке 3 выкидывает ошибку, потому что контекст там и есть this.param из первой строчки. В-третьих, строка 3 призвана выкидывать из тулбара виджета this.param все кнопки, кроме OnRefresh, но на самом деле она там только одна и есть. В-четвёртых, строчки 7 и 8 просто лишние (ну, это из логики используемого в проекте движка следует). В-пятых, из названия метода можно предположить (и это действительно так), что он должен бы возвращать булевское значение, но он всегда возвращает только undefined и, таким образом, все ячейки виджета оказываются нередактируемыми — что совсем лишает смысла создание контрола для редактирования в строках 5—9.
Редкостная бредятина. Кто-то в полном затмении писал, и даже десяти секунд не потратил на тестирование.
torbasow,
06 Мая 2016
-
+9
- 1
- 2
- 3
- 4
let i=document.createElement("i");
//какого чёрта это тег i? - Программист
//Тег i короткий и по звучанию ближе всего к «image» или «icon». А с точки зрения семантики здесь нет ничего страшного, т.к. текста внутри тега нет, и он фактически пустой. - Дизайнер
//Тег i для текста! - Программист
Перебранка Программиста, фаната стандартов, и Дизайнера в Javascript-коде (но относительно HTML). Дизайнер последовательно использует тег i для иконок, прописываемых в CSS-стиле background-image.
torbasow,
16 Декабря 2015
-
+5
- 1
- 2
- 3
- 4
- 5
- 6
for(var i=0; i<data.length; i++) {
…
self._markerList[data[i].r_osm_id].GOZ.arrRowNum[self._markerList[data[i].r_osm_id].GOZ.arrRowNum.length] = parseInt(i);
self._markerList[data[i].r_federal_osm_id].GOZ.arrRowNum[self._markerList[data[i].r_federal_osm_id].GOZ.arrRowNum.length] = parseInt(i);
self._markerList[0].GOZ.arrRowNum[self._markerList[0].GOZ.arrRowNum.length] = parseInt(i);
}
Это parseInt умилительно. Нет, со счётчиком ничего внутри цикла не делается. Но а вдруг?
torbasow,
04 Декабря 2015
-
+143
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
//выберем все th-ячейки заголовка грида
var allGridHeaderCells = cell.parentNode.children;
//получим индекс ячейки 0...N, на которой произошел клик
for (var ThisColNum = 0; ThisColNum < allGridHeaderCells.length; ThisColNum++) {
if (allGridHeaderCells[ThisColNum] == cell) {
break;
}
}
Пишет очень аккуратный программист. Но зачем так?! Вместо простого cell.cellIndex.
Отдельный штрих, что дальше он использует переменную ThisColNum, определённую в цикле, доступность которой вне цикла — это вообще пережиток прошлого ECMAScript, не знавшего let.
torbasow,
14 Мая 2015
-
+142
- 1
this.reparent = function (new_parent) {var el = this.element; el.parentNode.removeChild(el); new_parent.appendChild(el);}
Наткнулся в старом, но ещё работающем коде. Может быть, это даже я написал. Надеюсь, что нет.
…Нет, похоже, всё-таки не я. Я бы не назвал класс подсвеченного элемента hilited, даже десять лет назад. Похоже, это босс писал.
torbasow,
27 Апреля 2015
-
+160
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
function displayFilterElements(typeList){
_filter.form.elements["name1"].closest("tr").hidden = (typeList === "Type1") ? false : true;
_filter.form.elements["name2"].closest("tr").hidden = (typeList === "Type1") ? false : true;
_filter.form.elements["nam3"].closest("tr").hidden = (typeList === "Type1") ? false : true;
_filter.form.elements["name4"].closest("tr").hidden = (typeList === "Type1") ? false : true;
_filter.form.elements["name5"].closest("tr").hidden = (typeList === "Type1") ? false : true;
_filter.form.elements["name6"].closest("tr").hidden = (typeList === "Type1") ? false : true;
_filter.form.elements["name7"].closest("tr").hidden = (typeList === "Type1") ? false : true;
_filter.form.elements["name8"].closest("tr").hidden = (typeList === "Type2") ? false : true;
_filter.form.elements["name9"].closest("tr").hidden = (typeList === "Type2") ? false : true;
_filter.form.elements["name10"].closest("tr").hidden = (typeList === "Type2") ? false : true;
_filter.form.elements["name11"].closest("tr").hidden = (typeList === "Type2") ? false : true;
_filter.form.elements["name12"].closest("tr").hidden = (typeList === "Type2") ? false : true;
_filter.form.elements["name13"].closest("tr").hidden = (typeList === "Type2") ? false : true;
_filter.form.elements["name14"].closest("tr").hidden = (typeList === "Type2") ? false : true;
_filter.form.elements["name15"].closest("tr").hidden = (typeList === "Type2") ? false : true;
_filter.form.elements["name16"].closest("tr").hidden = (typeList === "Type2") ? false : true;
_filter.form.elements["name17"].closest("tr").hidden = (typeList === "Type2") ? false : true;
_filter.form.elements["name18"].closest("tr").hidden = (typeList === "Type2") ? false : true;
_filter.form.elements["name19"].closest("tr").hidden = (typeList === "Type2") ? false : true;
_filter.form.elements["name20"].closest("tr").hidden = (typeList === "Type2") ? false : true;
_filter.form.elements["name21"].closest("tr").hidden = (typeList === "Type2") ? false : true;
_filter.form.elements["name22"].closest("tr").hidden = (typeList === "Type2") ? false : true;
_filter.form.elements["name23"].closest("tr").hidden = (typeList === "Type2") ? false : true;
_filter.form.elements["name24"].closest("tr").hidden = (typeList === "Type2") ? false : true;
_filter.form.elements["name25"].closest("tr").hidden = (typeList === "Type2") ? false : true;
_filter.form.elements["name26"].closest("tr").hidden = (typeList === "Type2") ? false : true;
_filter.form.elements["name27"].closest("tr").hidden = (typeList === "Type2") ? false : true;
_filter.form.elements["name28"].closest("tr").hidden = (typeList === "Type3") ? true : false;
_filter.form.elements["name29"].closest("tr").hidden = (typeList === "Type3") ? false : true;
};
function stateFilterElements(){
let select = false;
["name1", "name2", "name3", "name4", "name5", "name6", "name7", "name8", "name9", "name10", "name11", "name12", "name13"].forEach(function(fieldName){
if ($.query.hashJSON.has(fieldName))
select = true;
});
return select;
}
Получил в доработку модуль сотрудника. Идентификаторы изменены для публикации, не в них суть.
torbasow,
17 Марта 2015
-
+158
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
scope = new Object();
scope = document.getElementById("scope");
…
var block = document.getElementById("scope");
var els = block.getElementsByClassName("noactive");
for(var n in els)
{
els[n].className = "active";
}
Проклятие, этот человек хоть что-нибудь думает, когда кодит? Хочется взять — и… Потому что мне с этим потом работать.
torbasow,
31 Июля 2014
-
+158
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
function toJData(
r_name_short_row,
r_name_full_row,
r_id_row, r_name_short_col,
r_name_full_col, r_id_col,
r_period,
r_year,
r_recruit,
r_contract,
r_recruit_plan,
r_contract_plan,
index
){
var tmp = new Object();
tmp.r_name_short_row=r_name_short_row;
tmp.r_name_full_row = r_name_full_row;
tmp.r_id_row = r_id_row;
tmp.r_name_short_col = r_name_short_col;
tmp.r_name_full_col = r_name_full_col;
tmp.r_id_col = r_id_col;
tmp.r_period =r_period;
tmp.r_year = r_year;
tmp.r_recruit = r_recruit;
tmp.r_contract = r_contract;
tmp.r_recruit_plan = r_recruit_plan;
tmp.r_contract_plan = r_contract_plan;
tmp.index = index;
return tmp;
}
Разбираю код сотрудника, отчалившего в отпуск.
Внезапно до меня доходит, что я вижу: это же пресловутое клонирование!
torbasow,
30 Июня 2014
-
+158
- 1
- 2
- 3
var CLICK = "click";
var CHANGE = "change";
periodTo.addEventListener(CLICK,function(){…});
Когда я спросил «Зачем?!», автор ответил, что так можно же, при необходимости, легко внести изменение типа «var CLICK = "mousedown";»
torbasow,
27 Июня 2014
-
+148
- 1
- 2
- 3
var attr_class = document.createAttribute("class");
attr_class.nodeValue="th_tr";
th.setAttributeNode(attr_class);
И нет, attr_class больше нигде не используется. Кто-то из наших сотрудников экспериментировал, похоже.
torbasow,
21 Апреля 2014