Jump to content

zilav

uniGUI Subscriber
  • Posts

    573
  • Joined

  • Last visited

  • Days Won

    43

Everything posted by zilav

  1. try this myshop.sql Unigui_Grid_Renderer.rar Unigui_Grid_Xtemplate.rar
  2. отключи свое автопродление сессий, оно у тебя я так понимаю до бесконечности продлевать ее будет
  3. у тебя какой-то запредельный Idle time, часть сессий вон неделю в неактивности болтается
  4. Что-то тебя уже совсем понесло Какой кейс может быть у коннекта именно с определенной ноде если все они посути экземпляры одного и того же приложения.
  5. По мне так запрос от нежелательного ip вообще не должен дойти до гипера, доступ к стандартному фаерволу встроенному в windows получить несложно при наличии прав на это.
  6. Это задача не для гиперсервера, а для фаервола.
  7. а зачем тебе собственно говоря доступ из приложения к гиперу? между узлами легко можно установить взаимосвязь через теже вебсокеты.
  8. ну у тебя получается пул готовых сессий, плюс сейчас уже ферма есть насколько я понимаю что даст тебе раскидать нагрузку на разные сервера. Гипер еще дает возможность того что одна подвисшая по тем или иным причинам сессия не поставит раком весь твой сервер и остальные пользователи продолжат нормально работать. а обновление файлов по идее ты можешь встроить и в сам сервер при необходимости кстати
  9. Логично, у тебя есть полный доступ к папке cache, вот и переложи нужный лог-файл туда, после чего скачивай его уже оттуда я вообще не вижу папки logs в твоем URI, он лезет в папку cache, но есть ли у тебя там этот файл я хз http://localhost:8077/cache/programmaweb_exe/3sLWWMZKnZ10936FFA4/$$$/A2021-10-22.log
  10. А в чем логика, файлы у тебя в папке Logs, а качать ты их почему-то собрался из кэша судя по URI
  11. 1) Find \Framework\uniGUI\ext-x.x.x\build\packages\font-awesome 2) replace fonts and css
  12. you can patch unigui files and replace free css -> pro version
  13. Столько у вас по идее и на одном сервере должно выдержать, но была заявлена поддержка фермы (нескольких серверов), но когда она точно будет никто точно не скажет. В составе дистрибутива идет утилита для стресс тестирования, попробуйте ей нагрузите какой-нибудь Ваш прототип и прикиньте какое железо понадобится для поддержки вашего количества клиентов.
  14. Просто подождите когда гиперсервер начнет поддерживать несколько серверов. Да и что у Вас там за нагрузка что один гипер уже не справляется и надо распределять нагрузку на несколько серверов?
  15. Планирую добавить еще пару типов фильтров 1) фильтр TUniCombobox с поддержкой заполнения из другого датасета для работы на лукап полях 2) фильтр для чекбоксов, но чтобы значения анализировались не из текущего поля, а из другого поля датасета, а то у меня есть поля в одном из которых нормально 0/1, а поле которое отображается в самом гриде, представляет собой сформированный html с иконками
  16. Да ладно, я и так поделюсь, только чур не смеяться, код писался под себя и по качеству ближе всего находится к понятию "гов...код" Доделать под себя никаких проблем нет, я там старался как можно проще в лоб все решать, да и доделал еще только вчера. В общем кину в личку, вроде тут очереди особой нет, а мне по идее все равно стыдно. Там попутно в хелпере еще пара функций для сохранения/восстановления настроек колонок в json. Использовать так, в создание формы пишем grd.InstallFilters; grd.CreateFilter_String(hidden,'fldString'); // просто TUniEdit с поиском вхождения подстроки grd.CreateFilter_Combobox(hidden,'fldCombobox'); // TUniCombobox, заполняется содержимым самого поля grd.CreateFilter_Date(hidden,'fldDateTime'); // TUniEdit с поддержкой диапазона дат и значений: сегодня, вчера, завтра, текущая неделя, прошлая неделя, следующая неделя, прошлый месяц, текущий месяц, следующий месяц, текущий год, прошлый год + дописать любые обработчики типа тех же кварталов никаких проблем нет grd.CreateFilter_Float(hidden,'fldFloat'); // TUniEdit с поддержкой диапазона, т.е можно написать и 2.34 и 2-10.34 grd.CreateFilter_Boolean(hidden,'fldBool','Нет','Да'); // TUniCombobox с 2 значениями для true и false, поле должно быть типа ftBoolean grd.CreateFilter_Boolean(hidden,'fldBoolInt','-','+'); // посути предыдущий фильтр но работает с ftInteger 0/1 Так же гриду добавляется свойство JSON, соответственно чтение/запись настроек колонок На уничтожение формы просто добавляем grd.RemoveFilters;
  17. да, reconfigure нормально задал в рантайме, изначально неверно завал. Надо было через AddPair reconfigure:= 'function reconfigure(sender, store, columns, oldStore, oldColumns, eOpts)'+ '{'+ ' columns.forEach(function(col) {'+ ' if (col.fedit && col.fedit.getTriggers() && col.fedit.getTriggers().clear) {'+ ' col.fedit.getTriggers().clear.el.addListener(''click'', function(event) {'+ ' event.keyCode = 13;'+ ' col.fedit.fireEvent(''keydown'', col.fedit, event);'+ ' })'+ ' }'+ ' });'+ '}'; Self.ClientEvents.ExtEvents.AddPair('reconfigure',reconfigure);
  18. 😂 Я бы сильно не рассчитывал, меня они тоже начинали так лепить, а сейчас смотрю на столах только мои куклы вуду, утыканные острыми предметами
  19. Шерзод, работает, огромное спасибо, пользователи начали лепить вашу скульптуру из папье-маше в натуральную величину Пара доп. вопросов если можно: Работает при задании в дизайн-тайме, перевешивание на добавление в рантайме к сожалению сходу не работает, это вообще возможно технически? Очистка работает на каждой колонке отдельно, но есть еще кнопка полной очистки фильтров, появляющаяся при включенном фильтре, на ней все осталось по-старому, очищаются только сами контролы фильтров, без отработки нажатия Enter, туда встроить нажатие можно?
  20. У TUniEdit контролов вставляемых в качестве фильтра я отключит автоматическую фильтрацию, так как пользователи не всегда сходу быстро способны набрать значения фильтров типа "прошлая неделя" или "01.01.2021-01.01.2021", ошибки нажатий и все такое. Именно поэтому автоматическая фильтрация в процессе набора строки фильтра отключена, и включается по четкому нажатию Enter. Но при этом проявляется эффект при котором стандартная кнопка очистки фильтра просто очищает значение контрола, но так как фильтр начинает отрабатывать только после нажатия Enter, то визуально контрол фильтра очищен, но без нажатого Enter не включается. Поэтому и хочется чтобы стандартная кнопка очистки не только очищала контрол но и автоматом нажимала бы Enter для отработки фильтра. Контролы для фильтров у меня создаются автоматом, например вот для даты function TUniDbGridHelper.CreateFilter_Date(ParentPanel: TUniHiddenPanel; FieldName: string): TUniEdit; var col: TUniBaseDbGridColumn; ds: TDataset; begin col:= self.Columns.ColumnFromFieldName(FieldName); ds:= self.DataSource.DataSet; result := TUniEdit.Create(ParentPanel); Result.Name:= 'edtFilter_'+FieldName; result.Parent := ParentPanel; Result.CharEOL:= #13; result.ClearButton := True; col.Filtering.ChangeDelay:= 800; col.Filtering.Editor:= Result; col.Filtering.Enabled:= true; end; Вот этот самый Result.CharEOL:= :13 фактически отключает автофильтр и делает его включение строго на Enter
  21. Сейчас вот сижу и думаю как бы на кнопку очистки еще и нажатие кнопки Enter сразу прибить, а то получается что я нажимаю кнопку очистки у контрола, но фильтр по факту не сбрасывается, а только очищается, для сброса приходится ставить курсор в контрол и руками Enter нажимать. Пока по форуму нашел либо вот этот вариант UniEdit1.JSInterface.JSCode(#1'.plugins.forEach(function(p) {if (p.alias[0] == "plugin.clearbutton") {p.clearButtonEl.dom.click()}});'); либо вообще вешаться на триггер и делать уже на сервере, как описано тут Trigger ClearButton - General - uniGUI Discussion Forums но тут посути лишний раз сервер дергаться будет, поэтому первый вариант выполняющийся прямо на сервере предпочтительнее.
  22. Нет, я сам себе написал универсальный хелпер к гриду, он позволяет цеплять вот типа таких фильтров на разные типы полей, там по идее даже смешнее есть фильтры на дату, "вчера", "прошлая неделя", "прошлый месяц" и т.д. Для нумерик полей поддерживается запись диапазонов тоже например "2-7,62" (от 2.00 до 7.62). Для чекбокс полей 2 тоже свой фильтр, позволяет задать значения которые будут отображаться в комбобоксе фильтра для true и false, ну или 0 и 1 (мало ли поле не типа ftBoolean).
  23. просто не приходит в голову кейс который ты пытаешься решить, но вообще обычно для отправки чего-то с сервера на фронт используются вебсокеты
  24. Уважаемый Шерзод, есть пара вопросов. Я реализовал свои алгоритмы фильтрации в гриде, так как у тех же дат например есть готовые шаблоны типа "прошлый месяц" я убрал автоматическую фильтрацию и оставил включение фильтрации по нажатию Enter. На uniEdit выводится значок очистки, но он он только очищает значение контрола, а Enter приходится нажимать руками. Соответственно первый вопрос, как можно перехватить очистку контрола и сделать помимо очистки еще и принудительное нажатие Enter? Вопрос второй, при наложении фильтра в гриде есть значок сброса фильтра, но он опять же только чистит значение контролов-фильтров, но при этом Enter опять же приходится нажимать самому. Как перехватить нажатие на эту очистку фильтров и тоже сделать нормальную полную автоматическую очистку фильтров?
×
×
  • Create New...