emo-mvp

node app --config=/home/ubuntu/projects/schools/demo1/local-config.js
Запуск приложения
git pull && grunt build && sudo service emote-demo1 restart && sudo service emote-demo2 restart && sudo service emote-prodtest1 restart
Билд demo1, demo2, prodtest1
git pull && grunt build && sudo service emote-test restart && sudo service emote-test1 restart && sudo service emote-test2 restart
Билд test1, test2
$(".refresh-row").show();
Показать секретные кнопки обновления строк
window.stopTimelineRefresh=1
Остановить пулинг таймлайна в правой панели.
JSON.parse(decodeURIComponent((document.cookie).split("; openedInRightBar=").pop().split(';').shift()))
Посмотреть openedInRightBar.

Javascript

location.href = `${location.origin}${location.pathname}`;
Рефреш страницы.
function copyTextToClipboard(text) {
	const textarea = document.createElement('textarea');
	textarea.value = text;
	textarea.style.position = 'fixed';
	textarea.style.opacity = 0;
	document.body.appendChild(textarea);
	textarea.select();
	textarea.setSelectionRange(0, textarea.value.length);
	document.execCommand('copy');
	document.body.removeChild(textarea);
}
Копировать текст в буфер обмена.
render: ["shareConfig", (cb, { shareConfig }) => {
	const view = new ShareForm({ app:this.app, data:{ shareConfig } });
	const $cont = $("#share-form-cont");
	view.render(safe.sure(cb, tmpl => {
		const $view = $(tmpl);
		$cont.html("");
		$cont.append($view);
		this.attachSubView(view);
		view.bindDom($view);
		cb();
	}));
}]
Пример рендера сабвью
e.stopPropagation();
e.preventDefault();
Предотвращение событий по умолчанию.

Ubuntu

pwgen -N 1 -s 12
Сгенерировать пароль на 12 символов без спецсимволов.
pwgen -y 12 1
Сгенерировать пароль на 12 символов с спецсимволами.
sudo tail -f /var/log/squid/access.log
Просмотр логов в реальном времени.

Fetch from Chrome

fetch(`${location.origin}/restapi/${document.cookie.split(';').filter((item) => item.trim().startsWith('token='))[0].split('=')[1]}/core/getCommitCount`, {
  method: 'POST',
    body:JSON.stringify({filter:{_idstudent:'5fdbc3cd8d2c885d83a549bc'}}),
  headers: {'Content-type': 'application/json; charset=UTF-8'}
}).then(res => {res.json().then((j) => console.log(j));})
1. Параметры для API кладём в body, как показано в примере. 2.Результата получаем в виде Promise. Поэтому с результатом дополнительно делаем res.json().then((j) => console.log(j))

nvm/npm

npm view mongodb versions
Показать доступные версии пакета mongodb.
npm install mongodb@latest
Установить последнюю версию пакета mongodb.
npm ls axios
Посмотреть дерево зависимостей.
better-npm-audit audit
Отчёт об уязвимостях в виде таблицы.
npm install -g better-npm-audit
Установка better-npm-audit
npm i grunt-cli -g
Установка grunt

HTML

<div class="row">
	<div class="col-xs-12 col-sm-12">
		
	</div>
</div>
Bootstrap 3 Grid

CSS

text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
width: 210px;
Обрезать текст и добавить троеточие.
/* Мобильные устройства (портретная ориентация) */
@media (max-width: 320px) {
  /* Стили для маленьких мобильных устройств */
}

@media (min-width: 321px) and (max-width: 480px) {
  /* Стили для средних мобильных устройств */
}

@media (min-width: 481px) and (max-width: 767px) {
  /* Стили для больших мобильных устройств */
}

/* Планшеты */
@media (min-width: 768px) and (max-width: 991px) {
  /* Стили для маленьких планшетов */
}

@media (min-width: 992px) and (max-width: 1199px) {
  /* Стили для больших планшетов */
}

/* Десктопы */
@media (min-width: 1200px) and (max-width: 1599px) {
  /* Стили для маленьких десктопов */
}

@media (min-width: 1600px) {
  /* Стили для больших десктопов */
}
Варианты обработки ширины экрана.