Комментарии 20
неплохо было бы показать простой пример
+1
Так как цель автора не отчеты а именно библиотека, то тут хватит и стандартных примеров www.extjs.com/deploy/dev/examples/samples.html
0
Готовится очередная статья. Большая, с кучей примеров. Обещаю, будет интересно :)
0
перенесите, пожалуйста, в блог тематический по ExtJS
0
С радостью перенёс бы, но кармы пока не хватает. Да и стыдно немного за статью. Она скорее для себя, как вводное слово. Но если вам кажется, что кто-то где-то из статьи почерпнёт хоть что-то интересное — перенесу в тематический блог сразу, как появится карма.
0
Всегда было интересно как правильно реализовать авторизацию на ExtJS. Не поделитесь секретом?)
0
гм. а при чем тут екст? Форму авторизации можно сделать любым способом, проверку на сервере тоже. Есть даже готовый компонент LoginForm, там даже виртуальная клавиатура есть, очень кстати удобная штука
0
Извиняюсь, я конечно имел ввиду аутентификацию. Суть проблемы — проверка на сервере у меня осуществлялась через Interceptor, который в случае отказа доступа отправляет ответ примерно такого вида: {success: false, reason='denied'}. Собственно проблема в том, что я не нашел единого способа обработки такого ответа во всех компонентах ExtJs. Т.е. для форм, для AJAX запросов, для Stor-ов и прочего везде приходилось ручками обрабатывать этот ответ. Может есть способ красивее? Типа назначить некий глобальный прокси на все http запросы и анализировать ответ на наличие инфы об отказе доступа и показывать форму логина если нужно.
Еще вопрос — как красивее организовать формировать различного UI на ExtJS для различных групп пользователей? Где это лучше делать на сервере или на клинте? Я делал на клиенте, получалось довольно убого — запрашиваем права доступа у сервера, дальше мешанина проверок. Хотелось бы по-красивше. Может стоит посмотреть на Ext-GWT и делать все на сервере?
Еще вопрос — как красивее организовать формировать различного UI на ExtJS для различных групп пользователей? Где это лучше делать на сервере или на клинте? Я делал на клиенте, получалось довольно убого — запрашиваем права доступа у сервера, дальше мешанина проверок. Хотелось бы по-красивше. Может стоит посмотреть на Ext-GWT и делать все на сервере?
0
я в своем одном проекте сделал через кастомные ответы сервера — типа HTTP 500 — это ошибка вообще, 901 — неверный логин, 902 неверный пароль и так далее. Общий обработчик failure для обьекта Ext.Ajax все ответы которые не 200 ОК обрабатывает, а значит везде в приложении это можно перехватить.
0
О, спасибо насчет Ext.Ajax. Вот нарыл код, который мне подойдет:
Ext.Ajax.on('requestcomplete', function( oConn, oResp, oOpts ) {
var oData = Ext.decode(oResp.responseText);
if ( Ext.type(oData) == 'object' &&! oData.success ) {
if ( oData.reason == 'denied' ) {
/* Do something */
}
}
});
А с кодами ошибок, это вы видимо обработчик на requestexception повесили?
Ext.Ajax.on('requestcomplete', function( oConn, oResp, oOpts ) {
var oData = Ext.decode(oResp.responseText);
if ( Ext.type(oData) == 'object' &&! oData.success ) {
if ( oData.reason == 'denied' ) {
/* Do something */
}
}
});
А с кодами ошибок, это вы видимо обработчик на requestexception повесили?
0
Ext.Ajax.request({
url: 'foo.php',
success: someFn,
failure: otherFn, — вот сюда
url: 'foo.php',
success: someFn,
failure: otherFn, — вот сюда
0
Лучше присмотритесь к Ext.Ajax.request — это более высокоуровневое решение. В параметрах можно указать функции для success и failure.
0
В моих проектах надо было две похожие вещи. Нет, вру, три.
первая: выводить различное меню для различных групп пользователей
вторая: выводить в некоторых гридах различные колонки для различных групп пользователей
третья: отображать данные по-разному для различных групп пользователей.
первая решается на сервере. Просто отдаётся нужный json-объект для панели навигации.
вторая решается плагином MetaGrid, который позволяет менять метаинформацию грида динамически. Т.е. от сервера сначала приходили необходимые настройки для грида, а потом запрашивалась сама информация.
На третьей я остановлюсь подробнее. Это были анонсы. Для администраторов необходимо было выводить грид с возможностью добавления-удаления-редактирования новости, в то время как остальным надо было вывести форматированные новости. Решилось это на клиенте с использованием XTemplate. Панель новости имела тип лейаута «card» и в зависимости от пользователя показывала либо XTemplate, либо грид.
первая: выводить различное меню для различных групп пользователей
вторая: выводить в некоторых гридах различные колонки для различных групп пользователей
третья: отображать данные по-разному для различных групп пользователей.
первая решается на сервере. Просто отдаётся нужный json-объект для панели навигации.
вторая решается плагином MetaGrid, который позволяет менять метаинформацию грида динамически. Т.е. от сервера сначала приходили необходимые настройки для грида, а потом запрашивалась сама информация.
На третьей я остановлюсь подробнее. Это были анонсы. Для администраторов необходимо было выводить грид с возможностью добавления-удаления-редактирования новости, в то время как остальным надо было вывести форматированные новости. Решилось это на клиенте с использованием XTemplate. Панель новости имела тип лейаута «card» и в зависимости от пользователя показывала либо XTemplate, либо грид.
0
Поделюсь :) Но не в следующей статье. Могу мылом.
0
В области содержимого необязательно только грид, если приложение достаточно большое, то там обычно можно встретить TabPanel
-1
Зарегистрируйтесь на Хабре , чтобы оставить комментарий
Типовые приложения на основе ExtJS