Уже прошла середина лета и, благодаря легкому похолоданию, мы, кажется, начали больше ценить эту волшебную пору года. Через месяц детишки пойдут в школу, в город нахлынут толпы жаждущих новых знаний студентов, и город плавно войдет в привычный ритм. С момента прошлого релиза прошло уже больше трёх месяцев, а это значит пора выкатывать новый релиз. В нём будет очень много нового и интересного. У командира наконецто появилась новая иконка, терминал и редактор были полностью заменены и привязаны к вьеру. Код значительно упрощен и оптимизирован. Далее подробнее.
Добавлена внешняя возможность:
- Назначено f3 - просмотр.
- FilePicker получает ключ из modules.json.
- Добавлена возможность показывать помощь по F1.
- Jquery-terminal заменён на JQ-Console.
- Добавлена лицензия.
- Добавлено соглашение по именованию коммитов.
- Добавлен favicon.
- CodeMirror заменён на Ace.
- Обновление теперь возможно, при запуске с любого каталога.
- Добавлен исполняемый файл для npm -g.
- Файл сохраняется только если он был изменён в Editor.
- Для определения разделов на Windows, утилита diskpart заменена на wmic.
- Добавлена кнопка "~ - console" для вызова Консоли.
- Добавлена кнопка "f9 - menu" для вызова Меню.
Исправленные ошибки:
- Функция загрузки в Filepicker.
- this.promptNewFile -> Cmd.promptNewFile.
- Стили: .name{width}: 37% -> 35%.
- socket: log level: debug -> info.
- help: удален стиль "pre".
- Стили: .mode width: 25% -> 23%.
- DOM: убрана возможность принимать массив в jsload.
- Стили: .cmd-button: "outline:0".
- Сохранение и создание нового файла.
Обновлены:
- socket.io до v0.9.16.
- jquery до v2.0.3.
- minify до v0.2.1.
Внутренние изминения:
- Изменена jquery cdn в пользу той, что поддерживает https (jquery.com -> google cdn).
- Добавлен заголовок Access-Control-Allow-Origin для под возможности ajax запросов с других адресов.
- Добавлены функции в DOM: createEvent(createKeyEvent, createClickEvent, createDblClickEvent), dispatch(dispatchKeyEvent, dispatchClickEvent, dispatchDblClickEvent).
- Переименован обьект CloudCommander -> CloudCmd.
- Функции загрузки перемещены в обьект Loader модуля DOM.
- Добавлен скрипт addtables.sh, добавляющий правила в фаервол.
- Исправлены повторяющиеся правила, связанные с фоном, в css.
- Переименована функция DOM.addListener - DOM.Events.add.
- Добавлена возможность повесить несколько обработчиков через Events.add.
- jqeuryLoader и socketLoader перемещены в обьект CMD в модуле DOM.
- Исправлена ошибка с удалением файла в Menu.
- Удалена функция _editFileName из Client.
- Удалена функция linuxWatch из Main.
- Добавлен tryCatch в fs.watch в cloudcmd.js.
- Переименовано KeyBinding в Key.
- Переименовано set - setBinded, unSet -> unsetBinded, get -> isBinded.
- Следующие функции теперь приватные: ajaxload, changeLinks, createFileTable, getJSONfromFileTable.
- Данные обйъекта CloudCmd.KEY перемещены в прототип CloudCmd.Key.
- Упрощены id плагинов.
- Переписаны модули _codemirror и View с прототипами.
- Добавлен метод hide в модуль View.
- Удалено свойство init из модулей View и Edit.
- Добавлена возможность передавать колбек во View: show(pData) -> show(pData, pCallBack).
- Добавлен модуль Help.
- Добавлена возможность устанавливать атрибуты в Loader.anyload.
- Добавлен обработчик disconect в Socket.
- Добавлена минификация и gzip в Socket.
- Если id уже используется происходит повторное соединение в Socket.
- Util.log теперь может вызываться с любым количеством параметров.
- Добавлена функция logArray в Util.
- Добавлена возможность смены каталога по cd в Socket.
- Добавлена возможность передавать функции Events.add массив.
- Добавлено событие unload.
- Добавлена в экспорт функция checkCallBackParams.
- Функция dispatch принимает на вход event или его название.
- Добавлены media-query для .cmd-button.
Весна в разгаре, на деревьях появляются почки, наконец-то начинает теплеть. А это значит, что пришло время выпускать на свободу новую версию Командира.
Много интересных вещей произошло и изменилось со времени прошлого релиза. Сейчас мы рассмотрим поближе, что же именно изменилось. Итак начнём.
Добавленна внешняя возможность:
- Всплывающее сообщение об ошибках
- Создание папки.
- FilePicker.
- загружать файлы в облако и скачивать их в файловую систему.
- SSL.
- Перемещения файлов.
- Перехода на http, если https-сервер запустить не удалось.
- Если создаётся директория индикатор загрузки будет сверху.
- Обновления размера файла после изминения оного в редакторе.
- Копирования файлов.
- Выделения файлов клавишей Insert.
- Получения размера текущей папки при нажатии клавиши Space.
- Выделение всех файлов по Ctrl + A.
- Удаления файла по F8.
- Удаления нескольких файлов.
Исправленные ошибки:
- Несколько обработчиков клика по нажатию клавиш F3 и F4.
- Множественный вызов Sockets.
- Запись json в localStorage: всегда обновлялось содержимое корневой директории.
- В функциях Util.time и Util.timeEnd.
- Генереация href файла, который переименовывается.
- Выделение коревой директории клавишей Space
- Обработка выделенной корневой директории.
- Создание нового файла.
- Стиль выделения в Опере.
- Заголовок выдачи REST-фукнции fs метода GET.
- Отправка данных в ответ на запрос отличный от ?json в пути /url.
- Возвращение в папку, из которой был удален файл.
Обновлены:
- jquery до версии v2.0.0.
- dropbox до версии v0.9.2.
- socket.io до версии v0.9.14.
Внутренние изминения:
- Удален массив Listeners из модуля DOM.
- Переделан и оптимизирована функция getShortSize в CloudFunc.
- Контроль генерации заголовка кеша перенесен в модуль Main.
- Установка текущего файла перенесена в Client из CloudFunc.
- Изменён способ построения таблицы файлов. Теперь используются шаблоны.
- Загрузка SSL-сертификатов теперь асинхронная.
- Модуль DropBox перенесён в packege.json из папки Storage.
- Удаления выделеного файла из DOM.
- Рекурсивного получения размера текущей папки.
- Переименована функция promptNewFolder -> promptNewDir.
- Добавлена функция getSelectedNames.
- Удален модуль Сache.
- Оптимизирован модуль CloudFunc.
Сегодня, в первый день весны, вышла новая версия облачного менеджера файлов: 0.1.9. В связи с этим, есть двойной повод порадоватся: наконец, пришла весна, с полной готовностью согревать серца жителей, после зимних холодов, а так же новая порция положительных изминений и исправленных ошибок в Облачном Командире.
Теперь Cloud Commander гораздо стабильнее, продуманее, внего гораздо проще вносить изминения и добавлять новые функции. Скоро будет много всего интересного.
С прошлой версии произошло очень много перемен и для пользователей и для программистов, некоторые части были полностью переписаны, и теперь программа более стабильна, а исходный код более простой и логичный. К примеру раньше был один баг, из-за которого при нескольких одновременных соединениях людям могли не приходить запрошенные файлы. Сейчас подобные просчёты позади. Рассмотрим подробнее, чем нас порадует новая версия Cloud Commaner’а.
Добавленна внешняя возможность:
- загрузки файлов на Google Drive и DropBox;
- пункт VK в меню;
- прятать пункт меню Upload To, если ниодного storage модуля не задано в modules.json.
- показывать контекстное меню, правкой кнопкой мыши, даже если оно уже открыто
- не менять путь, если у нас нет прав на чтение папки.
- времнный редирект для старых no-js урлов.
- отключения кеширования файлов браузером в config.json
- загрузка файлов;
- сохранение файлов по +
в CodeMirror; - удаление файлов;
- пункт меню и возможность переименовать;
- экран помощи (, когда Viewer загружен);
Убрана внешняя возможность:
- Удалена часть URL, которая говорит о том, что JavaScript отключен. Теперь json-данные о структуре файлов будут получатся в собитии click с флагом ?json. Часть URL /no-js больше не будет поддерживатся;
Исправленные ошибки:
- загрузка терминала;
- в браузерах, которые поддерживают не все функции: jquery загружался после ie.js, должен загружатся — до;
- закрытием терминала и откритием Вьюера, внутри функции, которая возникает во-время возникновения события переменной event не существует (всё хорошо работало на вебките);
- высотой терминала;
- установка текущего курсора, когда выбрали пункт меню;
- ссылки в панели пути и с кликами на файлы.;
- поддержка старых браузеров;
- скроллинг в опере и Фаерфоксе;
- (ненастоящее) удаление файлов;
- установка текущего файла после обновления содержимого директории;
- нажатие на файле;
- первый и последующие показы меню, а так же выделение даблкликом в Firefox
Обновлены:
- jquery до версии v1.9.0.
- jquery-terminal до версии v0.4.22.
- jQuery-contextMenu до версии v1.6.5.
- socket.io до версии 0.9.13.
- CodeMirror до версии 2.37.01.
- dropbox до версии v.0.8.1.
- funcyBox до версии v2.1.4.
Внутренние изминения:
- Изменен способ получения github id (теперь это делается через config.json, rest api были удалены).
- Добавлены функции DOM.getCurrentFileContent(pCallBack [, pCurrentFile]) для получения содержимого файла в ФС, а так же обёртка Util.setTimeout(pFunction [, pCallBack, pTime]).
- Добавлена функция в win.js для парсинга вывода команды diskpart (которая используется для опредиления локальных дисков).
- Добавлена функция DOM.getCurrentDir().
- API url на клиенте читается с файла config.json.
- Если выбрана загрузка на Gist (GitHub) и у файла в формате json нет расширения — оно добавляется.
- Добавлена возможность авторизовыватся на Гитхабе через новое окно. Изминен редирект на /auth и добавлена фнукция rout в cloudcmd.js.
- DropBox, GDrive и GitHub модули теперь выглядят одинаково.
- Рефакторинг в модуле Viewer.
- Улучшена оптимизация файла menu.js с 2539 до 2444 байт.
- Добавлена возможность читать GDrive key из конфига.
- Добавлена возможность авторизовыватся на дропбоксе через popup.
- Добавлена возможность авторизовыватся на vk.com.
- Улучшен формат и парсинг файла modules.json.
- Добавлена возможность читать информацию о модулях сохранения из модуля меню.
- Добавлена простая система рендеринга шаблонов Util.render.
- Добавлены функции DOM.parseJSON и DOM.stringifyJSON, как обёртки над системными функциями.
- Добавлен плагин для миграции к новой версии jquery.
- Убрано получения данных из кеша Minify.
- JSON-файлы перемещены в папки json.
- Изминен шрифт с Octicons на Fonteollo.
- Полностью удален шрифт Octicons.
- Удалено свойство allowed из свойства cache в конфиге.
- С этого момента оптимизироватся будут лишь те файлы, дата последнего изминения которых была изменена.
- Убрана возможность кешировать файлы в памяти.
- Перемещены расширения из main.js в json/ext.json.
- Основная функциональность CloudCmd перемещена в commander.js из server.js.
- Добавлена возможность удалять приставку к URL /fs когда мы в корневом каталоге.
- Убраны перересовки создаваемые js.
- Добавлена возможность добавлять флаг ?json только если мы работаем с папкой.
- Изминен принцип работы функции clickProcessing в меню, теперь он гораздо проще.
- Произведен тотальный рефакторинг в файле commander.js, теперь там только генерация. структуры каталогов в формате json.
- добавлен обьект RESTful в DOM модуль для упрощения работы с CloudCmd REST API.