Почему я спросил про базу, потому что в PostgreSQL есть поддержка работы с JSON на стороне БД, что может облегчить реализацию. В ином случае вам придется парсить все на уровне приложения, что собственно тоже не плохо.
Вообще норм решение у вас. Только если у вас будут появляться еще объекты в проекте, вам придется постоянно добавлять колонки для каждого объекта в таблицу PROJECT_USER.
Еще интересно, какая БД. Как вариант можно прям в таблице PROJECT_USER вместо folder_access_type хранить json например с типом доступа и списком id папок, на которые у него есть или нет доступа. Целостность в данном случае будет нарушена, если у вас папки будут удаляться из базы и id будут невалидны. Но на стороне приложения можно просто делать сверку с теми id, которые вы получите по проекту, а те, что уже не актуальны, будут игнориться. Ну и в зависимости от того, как часто будет меняться структура папок, можно запускать раз в день/неделю/месяц джоб по актуализации идентификаторов папок.
natoster: поедет верстка, это когда вы будете вставлять еще блоки между подвалом и шапкой, и они начнут слипаться. Отступы, что вы убрали, это дизайн, они нужны. Поэтому я предложил вам альтернативное решение, которое не нарушит дизайн, и при этом решит проблему.
Ну, одно дело пользователь что-то меняет, другое - само приложение. Разные механизмы обработки.
Вы можете вызвать событие change или keydown искусственно для этого input после его изменения. Тогда логика у вас будет разделена.
А еще вы можете написать таймер, который будет отслеживать изменения значения инпута несколько раз в секунду. Это не очень хорошее решение, т.к. нагрузка на CPU, но оно будет работать.
подождите, а зачем вам отлавливать событие изменения значения в input (вы же туда программно значение указываете), если у вас уже есть событие изменения слайдера?
Еще минус в том, что вам тяжело будет отслеживать изменения расписания для компании, если это расписание принадлежит к нескольким компания. Я бы не рекомендовал так делать. Не так уж много записей в БД генерится.
А если вручную хэш прописать в браузере, перейдет на якорь? По идее должен, конечно. Но, возможно, у вас там есть библиотека какая-нибудь, которая обрабатывает хэш-ссылки. Попробуйте поотключать JS и проверить работу.
Тоже столкнулся с таким поведением. Сначала грешил на перегрев, но после полной чистки железа не "взлетело". Тогда стал думать на диски, pagefile у меня лежал на диске D, т.к. диск С был забит. Как оказалось, это тоже критично, т.к. чем дальше pagefile от центра оси, тем дольше обращение к нему. Правда после переразметки дисков (с полным форматированием) и переустановки ОС еще не попробовал ничего запускать, т.к. не до этого. Но очень интересно будет узнать ответ.
А вы смотрели, URL меняется при нажатии на ссылку? Что вообще происходит при нажатии на ссылку на якорь? В каких браузерах смотрели? Какие JS библиотеки подключены к странице и чем они отличаются от основной версии сайта? Пробовали ли вы открыть мобильную версию в десктопном браузере, работает ли там?
TheShestov Сожалею, что совет вышел скорее "вредным", чем "полезным". У меня это решение работает уже года 4, и пережило несколько версий WP и собственных обновлений. Но, видимо, раз на раз не приходится.
Тут в ветке WP Panda упоминал про аналогичное решение своими руками. Возможно, вам стоит попробовать его вариант.