Рассмотрим задачу: позвонить из BPMonline на городской/сотовый номер. Самое простое, что приходит в голову - это звонить через скайп. Как реализовать именно такой сценарий, я и покажу сегодня на примере раздела "Контрагенты" в семерке.

Для всяких дополнительных действий с записями реестра в семерке by design используется меню "Действия" (как ни странно:smile:). Туда и добавим наш функционал. Как только пользователь выбирает контрагента, в действиях появляется пункт "Позвонить в Skype":

Номер телефона берется из основного средства связи для контрагента. После подтверждения сразу пойдет набор номера:

Собственно, к самому интересному - к коду:

define('AccountSection', ['sandbox', 'Account', 'AccountSectionStructure', 'AccountSectionResources', 'MaskHelper', 'BaseFiltersGenerateModule'],
        function(sandbox, Account, structure, resources, MaskHelper, BaseFiltersGenerateModule) {
                structure.userCode = function() {

                        this.methods.callViaSkype = function() {
                                var selectedId = this.get("activeRow");
                                var collection = this.get("gridData");
                                var selected = collection.get(selectedId);
                                var number = selected.get("Phone");
                                var callLink = document.createElement('a');
                                callLink.href = 'skype:' + number + '?call'
                                document.body.appendChild(callLink);
                                callLink.click();
                                document.body.removeChild(callLink);
                        };
                       
                        this.methods.getActiveRowSelected = function() {
                                return this.get("activeRow") ? true : false;
                        };
                       
                        var actions = this.actions ? this.actions : [];
                        actions.push({
                                caption: '',
                                className: 'Terrasoft.MenuSeparator'
                        }, {
                                caption: resources.localizableStrings.SkypeCall,
                                methodName: "callViaSkype",
                                enabled: {
                                        bindTo: "getActiveRowSelected"
                                }
                        });
                        this.actions = actions;
                }
                return structure;
        });

Весь код состоит из определения текущего выбранного контрагента, поиска его номера и формирования skype-ссылки, по которой будет осуществляться переход-звонок.
Все гениальное просто, все вопросы - в комментарии:smile:.

Нравится

Поделиться

3 комментария

Так же можно ссылку на октелл сделать )

Александр, добрый день.

Хорошо получилось.

А есть идея как сделать тоже звонок, но уже через кнопку рядом с номером телефона. Возможно не на AccountSection, а на AccountPage.т.е. получается рядом с каждым телефоном будет кнопка (со значком трубки), по нажатию которой будет проводится определённое событие.

"Кашапов Ренат" написал:А есть идея как сделать тоже звонок, но уже через кнопку рядом с номером телефона

Ренат, не совсем понятно, в чем проблема? Если нужно добавить кнопку на страницу, то это тоже можно сделать, а дальше с помощью CSS задизайнить, как надо.

Показать все комментарии