Локализация в ExtJS

В файл app.json добавить

requires:[
...
"ext-locale"
...
],
locale: "ru",
...
"overrides": [
...
"${app.dir}/locale/${app.locale}"
...
]

Создать в корне проекта папку locale и добавить туда папку с значением свойства locale и создаем там файлы

Пример:

Ext.define('Ext.locale.ru.form.field.Date', {
    override: 'Ext.form.field.Date',
    config: {
        format: 'd.m.Y H:i:s',
        submitFormat: 'Y-m-d H:i:sO'
    }
});

Оптимизация обработки нажатия в мобильных приложениях

При использование Extjs приложений в мобильном устройстве возникают задержки при нажатии на кнопки (Ext.Button). Для их устранения можно воспользоваться следующим классом:

Ext.define('Base.KeyButton', {
    extend: 'Ext.Button',
    xtype: 'keybutton',
    /**
     * специально переопределенный класс, чтобы не было серого цвета
     */
    hoveredCls: Ext.baseCSSPrefix + 'hovered-override',

    /**
     * Переопределен
     */
    onPress: function () {
        this.fireEvent('userkeypress', this); // тут создаем собственное событие
        this.callParent(arguments);
    }
});

Применение:

    xtype: 'keybutton',
    ui: 'action letter',
    flex: 1,
    margin: 3,
    listeners: {
        userkeypress: 'onClick'
    }

Работа с метками в git’е

Полная информация указана здесь

Для создание собственных меток в проекте нужно использовать следующий синтаксис

git tag -a v1.0.3 -m "Сообщение"

Для отправки данных на сервер выполнить команду

git push --tags

Распознавание текста с изображения

В интернете куча приложения, которые можно использовать для распознавания текста с изображения. В данной статье речь пойдет про Tesseract.

Данное приложение можно установить, как на Linux, так и на Windows. Далее будет показан пример работы с данным приложение под Windows.

Скачиваем установочный файл http://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-setup-3.05.00dev.exe

Запускаем его. Когда будет предложено выбрать устанавливаемые компоненты оставляем по умолчанию. Ну вот и все теперь можно пользоваться данным приложением. Работать с ним нужно через консоль, запускаем её.

cd /d «C:\Program Files (x86)\Tesseract-OCR»

tesseract.exe «c:\… путь к изображению.png» «e:\text» -l eng -psm 3

где «e:\text» — путь к файлу, где будет «распарсенный» текст,

-l eng — язык распознования (можно указать и rus, но для этого надо загрузить данные)

-psm 3 — параметр по умолчанию

Всю справочную информацию можно получить выполнив команду tesseract.exe —help

Чтобы дополнительно подключить другие языки распознаванию нужно с https://github.com/tesseract-ocr/langdata скачать требуемый файл *.traineddata и перенести его в папку C:\Program Files (x86)\Tesseract-OCR\tessdata

Есть изображение с указанным текстом tesseract «путь к изображению.png» «e:\text» -l eng -psm 3 и в папке e:\ будет файл text.txt в котором будет текст Hello my friend

Запуск node js приложения на iis

Установка Node Js
1.Устанавливаем nodejs https://nodejs.org/en/ (ставить последнюю LTS версию)
2.https://github.com/tjanczuk/iisnode — от сюда устанавливаем расширение для iis (см. Installing for IIS 7.x/8.x)

Настройка IIS

1. https://www.iis.net/downloads/microsoft/url-rewrite устанавливаем расширение для iis

2. Перезагрузить сервер

Статьи:

https://www.hanselman.com/blog/InstallingAndRunningNodejsApplicationsWithinIISOnWindowsAreYouMad.aspx

https://tomasz.janczuk.org/2013/01/hosting-socketio-websocket-apps-in-iis.html

Создание клиента socket.io на c# для nodejs

1. Создаем консольное приложение
2. Install-Package SocketIoClientDotNet

using System;
using Quobject.SocketIoClientDotNet.Client;
 
namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            var socket = IO.Socket("http://localhost:5000/server.js");
            socket.On(Socket.EVENT_CONNECT, () =>
            {
                socket.Emit("message", "0");
 
            });
 
            socket.On("hi", (data) =>
            {
                Console.WriteLine(data);
                socket.Disconnect();
            });
            Console.ReadLine();
        }
    }
}

Статьи:

https://github.com/Quobject/SocketIoClientDotNet

Отладка в nodejs

Актуально для версии Node JS 8.9.0

Устанавливаем:
npm install —global node-inspect

Выполняем команду: node —inspect-brk [filename].js

Должен открыться chrome для начала отладки

Полезные статьи.

https://nodejs.org/en/docs/inspector

https://nodejs.org/api/debugger.html

https://github.com/nodejs/node-inspect

Sencha cmd — быстрый старт

Создание проекта:

— генерация проекта
sencha -sdk «D:\Install_new\sencha\ext-6.0.0-gpl\ext-6.0.0\» generate app App1 «E:\serp\work\_sencha\App1»
— или
sencha -sdk «D:\Install_new\sencha\ext-6.0.0-gpl\ext-6.0.0\» generate app -modern App1 «E:\serp\work\_sencha\App1»

— дальше перейти в сгенерированный проект
cd /D «E:\serp\work\_sencha\App1»

— запускаем проект, теперь он доступен по адресу http://localhost:1841/
sencha app watch

— билдим
sencha app build modern production
sencha app build modern production «d:/temp»
sencha app build modern testing

— дополнительный действия при билде(build.xml), в примере ниже копирование файла config.json



Как собрать проект под android:

— чтобы cordova была доступна из командной строки
npm install -g cordova

— подготавливаем проект, создает папку cordova и добавляет в app.json «builds»: «native», если builds не был определен

— «builds»: «native» надо будет еще подправить ручками, выбрать «platforms»
sencha cordova init com.iserv.cabinet Cabinet

«builds»: {
«native»: {
«packager»: «cordova»,
«cordova»: {
«config»: {
«platforms»: «android»,
«id»: «com.iserv.cabinet»,
«name»: «Cabinet»
}
}
}
},

— запускает приложение на android
sencha app run native

— билдит мобильную версию. Для android результат кладет в cordova\platforms\android\build\outputs\apk\android-debug.apk
sencha app build native

— установка на android
D:\android-sdk\platform-tools\adb kill-server
D:\android-sdk\platform-tools\adb install -r «cordova\platforms\android\build\outputs\apk\android-debug.apk»

— shell
D:\android-sdk\platform-tools\adb shell
D:\android-sdk\tools\ddms.bat
— какие устройства подключены к компьютеру
D:\android-sdk\platform-tools\adb devices

Запуск тестов Siesta из консоли с помощью PhantomJS

В проект добавлен скрипт run-siesta.js в папку с тестами. Он предназначен для того, чтобы с помощью PhantomJS запускать тесты Siesta. run-siesta.js использует API PhantomJS для запуска страницы c тестами и выводит в консоль и в текстовый файл siesta_log.txt логи, которые формируются на странице index.html.

Также в скрипте index.js изменен Harness.configure — в него добавлены дополнительные обработчики событий: testfinalize, testsuiteend и условие автозапуска autoRun: true.

При завершении тестов run-siesta.js парсит тестовую страницу на общее количество пройденных тестов, выводит общее затраченное время и возвращает соответствующий числовой идентификатор в консоль (0 – успех, 1 — ошибка).

Пример команды в консоли: D:\…\Omnis-ExtJS\Pir\Siesta\phantomjs run-siesta.js http://localhost:62681/Siesta/index.html

Для выполнения команды ‘phantomjs’ нужно установить сам PhantomJS — http://phantomjs.org/download.html, и прописать в PATH системы — путь к исполняемому файлу phantomjs.exe, или скопировать phantomjs.exe в папку с тестами D:\…\Omnis-ExtJS\Pir\Siesta\ и запускать команду: D:\…\Omnis-ExtJS\Pir\Siesta\phantomjs.exe run-siesta.js http://localhost:62681/Siesta/index.html На момент написания использовалась версия PhantomJS 2.0 — http://phantomjs.org/