Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Выполнение Dynamic Action на другой странице / 25 сообщений из 33, страница 1 из 2
03.04.2015, 14:58
    #38926349
DKis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение Dynamic Action на другой странице
Уважаемые знатоки APEX, пожалуйста подскажите, возможно ли реализовать подобную вещь:
необходимо, чтобы при нажатии кнопки на одной странице вызывался Dynamic Action на другой странице.
В чем смысл: есть несколько пользователей системы. При добавлении одним из пользователей записи в таблицу надо, чтобы у остальных пользователей, находящихся на главной странице в текущий момент, появлялось сообщение о том, что кто-то только-что добавил в ту таблицу новую запись.
...
Рейтинг: 0 / 0
03.04.2015, 15:05
    #38926361
Gustly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение Dynamic Action на другой странице
DKis,

Это получается нужно чтобы сервер сделал мульти рассылку всем. Нет, просто так нельзя. Самое быстрое решение - это самому опрашивать таблицу каждые n секунд. Или сложное решение через node.js. Но ради такой задачи не стоит мне кажется.
...
Рейтинг: 0 / 0
03.04.2015, 15:22
    #38926403
DKis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение Dynamic Action на другой странице
Gustly,
Вообще задача следующая: на форме один пользователь пишет текст сообщения и выбирает кому его отправить, нажимает "Отправить". Выбранный пользователь, переходя на главную страницу, получает уведомление о том, что ему отправили сообщение.
...
Рейтинг: 0 / 0
03.04.2015, 15:26
    #38926411
Casufi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение Dynamic Action на другой странице
GustlyИли сложное решение через node.js.
А при чем тут node js ? Кроме него сокеты spdy или html/2 никто из серверов не умеет ?
На апексе можно DA пинать через setTimeout( и проверятьна сервере чего изменилось.
...
Рейтинг: 0 / 0
03.04.2015, 15:26
    #38926412
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение Dynamic Action на другой странице
DKisGustly,
Вообще задача следующая: на форме один пользователь пишет текст сообщения и выбирает кому его отправить, нажимает "Отправить". Выбранный пользователь, переходя на главную страницу, получает уведомление о том, что ему отправили сообщение.
Если это происходит при загрузке страницы, то никаких Dynamic Action не нужно или только как сказал Gustly.
...
Рейтинг: 0 / 0
03.04.2015, 15:30
    #38926417
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение Dynamic Action на другой странице
DKisи выбирает кому его отправить
поиск делал? Вчера вроде обсуждали.
...
Рейтинг: 0 / 0
03.04.2015, 15:35
    #38926426
Casufi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение Dynamic Action на другой странице
Пример клиентской части
Всплывающие сообщения вот этим http://needim.github.com/noty/

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
    <script language="JavaScript" type="text/javascript">
        function NotifiClose(msg){            
            var get = new htmldb_Get(null, $v('pFlowId'), 'APPLICATION_PROCESS=CloseNotification', 0);
            get.addParam('x01',msg.options.msg_id);
            var greturn = get.get();
            greturn = undefined;
        }
        
        function GetNotifiData(){
            var timecoef = 1000;
            var get = new htmldb_Get(null,$v('pFlowId'),'APPLICATION_PROCESS=GetNotification',0);
            //get.addParam('x01', node.data.key);
            var greturn = get.get();
            var results;
            try{
                results = $.parseJSON(greturn);
            }catch(e){
                results = {};
            }
            
            greturn = undefined;

            var timing = 180;
            if (results.timing && results.timing > 0){
                timing = results.timing;
            }
            if (results && results.messages){
            for (var i = 0; i < results.messages.length; i++){
                if (results.messages[i].message){
                    var msgtype = 'alert';
                    if (results.messages[i].msgtype){
                        msgtype = results.messages[i].msgtype;
                    }
                    var timeout = false;
                    if (results.messages[i].timeout && results.messages[i].timeout > 0){
                      timeout = results.messages[i].timeout*timecoef;
                    }
                    var buttons = false;
                    if (results.messages[i].msg_id && results.messages[i].confirm && results.messages[i].confirm == 1){
                        buttons = [{
                            addClass: 'btn btn-primary', text: 'Ok', onClick: function ($noty) {
                                var get = new htmldb_Get(null, $v('pFlowId'), 'APPLICATION_PROCESS=ConfirmNotification', 0);
                                get.addParam('x01',$noty.options.msg_id);
                                var greturn = get.get();
                                greturn = undefined;
                                $noty.close();
                            }                          
                        }]    
                    }    
                    var notification = noty({
                        layout: 'bottomRight',
                        type: msgtype,
                        text: results.messages[i].message,
                        msg_id: results.messages[i].msg_id,
                        timeout: timeout,
                        callback: {
						  onCloseClick: function(){
                              NotifiClose(this);
                          }
                        },
                        buttons: buttons
                    });
                notification = undefined;    
                }
            }
            }    
            setTimeout(GetNotifiData,timing*timecoef);
        }

        $(document).ready(function(){
            GetNotifiData();
        });
    </script>
...
Рейтинг: 0 / 0
03.04.2015, 16:41
    #38926534
DKis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение Dynamic Action на другой странице
Casufi,
не могли бы пояснить, как это работает?
...
Рейтинг: 0 / 0
03.04.2015, 16:53
    #38926551
Casufi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение Dynamic Action на другой странице
DKisCasufi,
не могли бы пояснить, как это работает?
С яваскриптом дружишь ?
...
Рейтинг: 0 / 0
03.04.2015, 17:00
    #38926559
DKis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение Dynamic Action на другой странице
Casufi,
Не очень, если честно.
...
Рейтинг: 0 / 0
03.04.2015, 17:01
    #38926560
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение Dynamic Action на другой странице
CasufiDKisCasufi,
не могли бы пояснить, как это работает?
С яваскриптом дружишь ?
обычно чата и реалтайм хотят те, кто не дружит)
...
Рейтинг: 0 / 0
03.04.2015, 17:03
    #38926562
DKis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение Dynamic Action на другой странице
Petro123,
Обычно этого хотят работодатели. Чтобы все сразу и не хуже, чем "у того парня") Вот и приходится на ходу технологии новые для себя осваивать. Я простейшие вещи на яваскрипте делал, синтаксис знаю. Но далеко-далеко не гуру. Только учусь.
...
Рейтинг: 0 / 0
03.04.2015, 17:04
    #38926563
Casufi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение Dynamic Action на другой странице
DKisне могли бы пояснить, как это работает?
Он деманд процесс GetNotification выдает json в формате
{timing : задержка перед следующей проверкой сообщений(если необходимо ее изменить)
messages: [пачка сообщений в формате]
{msgtype: тип,
timeout : время сколько будет висеть перед пользователем,
confirm : просто сообщение илитребует подтверждения о прочтении,
message: текст,
id: ИД в таблице по которому два другие процессса проставляют статус}

Процессы CloseNotification и ConfirmNotification Проставляют статусы в таблице по ИД

Ну собственно все.
Процедура рекурсивно ставит себя на выполнение с задержкой setTimeout(GetNotifiData,timing*timecoef);

Пример работы noty() можно посмотреть на сайте
...
Рейтинг: 0 / 0
03.04.2015, 17:05
    #38926567
Casufi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение Dynamic Action на другой странице
DKisОбычно этого хотят работодатели. Чтобы все сразу и не хуже, чем "у
Ну я могу тут выложить биткойн кошелек и расписать "готовое решение" когда там наберется больше половины койна
...
Рейтинг: 0 / 0
03.04.2015, 17:11
    #38926575
DKis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение Dynamic Action на другой странице
Casufi,
Нет, спасибо.
Попробую сам разобраться)
...
Рейтинг: 0 / 0
03.04.2015, 17:18
    #38926584
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение Dynamic Action на другой странице
DKis,
Обратись, к Petro123. Он без кошелька помогает. Вон одному уже почти написал приложение
...
Рейтинг: 0 / 0
03.04.2015, 17:21
    #38926587
DKis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение Dynamic Action на другой странице
blkangelDKis,
Обратись, к Petro123. Он без кошелька помогает. Вон одному уже почти написал приложение
Мне не надо чтобы за меня писали приложение. Я всего лишь попросил у более опытных коллег задать направление возможно ли это реализовать и ести да, то в какую сторону копать.
...
Рейтинг: 0 / 0
03.04.2015, 17:23
    #38926589
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение Dynamic Action на другой странице
DKis,
Не обижайся. Направление тебе дали и даже больше.
...
Рейтинг: 0 / 0
03.04.2015, 17:27
    #38926592
DKis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение Dynamic Action на другой странице
Да. Всем большое спасибо за ответы.
...
Рейтинг: 0 / 0
03.04.2015, 17:32
    #38926596
Casufi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение Dynamic Action на другой странице
DKis,

выдать json из Он деманд процесса

htp.p('{"timing":'||l_timing||', "messages":[{"message":"'||cur.text||'"},{}]}');
...
Рейтинг: 0 / 0
03.04.2015, 17:34
    #38926599
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение Dynamic Action на другой странице
Мне кажется пора в FAQ выносить тему инициализации действия на клиенте, по событию на сервере. С разъяснением, что Апекс тут не при чем, виновата технология HTML.
...
Рейтинг: 0 / 0
03.04.2015, 17:44
    #38926606
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение Dynamic Action на другой странице
DKisОбычно этого хотят работодатели.
я в курсе.
Бывает и драйвера просят на Java сделать.
И фотошоп в вебе организовать.
Что делать? Только направлять этих работодателей на путь истинный))).
Ну, или увольняться.
Могут же и тонер попросить заменить)... и бумагу принести...
Ничего личного. Только IMHO. Удачи)
...
Рейтинг: 0 / 0
03.04.2015, 17:44
    #38926607
Casufi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение Dynamic Action на другой странице
blkangelМне кажется пора в FAQ выносить тему инициализации действия на клиенте
Тут целый пласт проблем. Люди не совсем понимают что такое Веб разработка и какой код выполняется на сервере, а какой на клиенте.
...
Рейтинг: 0 / 0
03.04.2015, 17:47
    #38926610
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение Dynamic Action на другой странице
CasufiblkangelМне кажется пора в FAQ выносить тему инициализации действия на клиенте
Тут целый пласт проблем. Люди не совсем понимают что такое Веб разработка и какой код выполняется на сервере, а какой на клиенте.
причём именно в этой ветке их больше, т.к. период вхождения небольшой.
Се ля ви.
...
Рейтинг: 0 / 0
03.04.2015, 17:48
    #38926613
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение Dynamic Action на другой странице
blkangelВон одному уже почти написал приложение
это пока я сам учусь))) Потом будет лень))) уйду на пенсию)
...
Рейтинг: 0 / 0
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Выполнение Dynamic Action на другой странице / 25 сообщений из 33, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]