Browse Source

Lookup CID Name submodule

pull/4/head
Vladimir Barkasov 6 years ago
parent
commit
59de43dd08
7 changed files with 251 additions and 0 deletions
  1. +1
    -0
      src/apps/callflows/app.js
  2. +15
    -0
      src/apps/callflows/i18n/en-US.json
  3. +1
    -0
      src/apps/callflows/style/app.css
  4. +7
    -0
      src/apps/callflows/submodules/lookupcidname/lookupcidname.css
  5. +164
    -0
      src/apps/callflows/submodules/lookupcidname/lookupcidname.js
  6. +37
    -0
      src/apps/callflows/submodules/lookupcidname/views/dialogEdit.html
  7. +26
    -0
      src/apps/callflows/submodules/lookupcidname/views/dialogMenuOption.html

+ 1
- 0
src/apps/callflows/app.js View File

@ -21,6 +21,7 @@ define(function(require) {
'flushdtmf',
'groups',
'language',
'lookupcidname',
'media',
'menu',
'misc',


+ 15
- 0
src/apps/callflows/i18n/en-US.json View File

@ -1379,6 +1379,21 @@
}
},
"lookup_cid_name": {
"lookup_cid_name": "Lookup CID Name",
"edit_dialog": {
"title": "Lookup CID Name",
"available_lists": "Available lists",
"selected_lists": "Selected lists"
},
"menu_option_dialog": {
"title": "Menu option",
"menu_option": "Menu option",
"match": "Match",
"no_match": "No match"
}
},
"__comment": "UI-1929: adding time of day sets to adv. callflows",
"__version": "v4.1",
"temporalset": {


+ 1
- 0
src/apps/callflows/style/app.css View File

@ -19,6 +19,7 @@
@import url('../submodules/faxdetect/faxdetect.css');
@import url('../submodules/flushdtmf/flushdtmf.css');
@import url('../submodules/language/language.css');
@import url('../submodules/lookupcidname/lookupcidname.css');
@import url('../../../css/vendor/bootstrap-tour.css');
/* style.css */
#ws_callflow > .callflow {


+ 7
- 0
src/apps/callflows/submodules/lookupcidname/lookupcidname.css View File

@ -0,0 +1,7 @@
.lookup-cid-name_dialog .items-selector .box-selector {
max-width: 195px;
}
.lookup-cid-name_dialog form {
margin: 15px 0 0;
}

+ 164
- 0
src/apps/callflows/submodules/lookupcidname/lookupcidname.js View File

@ -0,0 +1,164 @@
define(function(require) {
var $ = require('jquery'),
monster = require('monster');
var app = {
requests: {
'callflows.lookupcidname.lists.get': {
'verb': 'GET',
'url': 'accounts/{accountId}/lists'
}
},
subscribe: {
'callflows.fetchActions': 'lookupcidnameDefineActions'
},
lookupcidnameDefineActions: function(args) {
var self = this,
callflow_nodes = args.actions,
i18n = self.i18n.active().callflows.lookup_cid_name;
$.extend(callflow_nodes, {
'lookupcidname[]': {
name: i18n.lookup_cid_name,
icon: 'group',
category: self.i18n.active().oldCallflows.advanced_cat,
module: 'lookupcidname',
tip: i18n.tooltip,
data: {
lists: []
},
rules: [{
type: 'quantity',
maxSize: 2
}],
isUsable: 'true',
weight: 48,
caption: function(node, caption_map) {
return '';
},
edit: function(node, callback) {
self.lookupcidnameShowEditDialog(node, callback);
},
key_caption: function(child_node, caption_map) {
if(child_node.key === 'match') {
return i18n.menu_option_dialog.match;
} else if(child_node.key === 'nomatch') {
return i18n.menu_option_dialog.no_match;
}
return child_node.key;
},
key_edit: function(child_node, callback) {
var $dialog, $popup;
$popup = $(self.getTemplate({
name: 'dialogMenuOption',
data: {
selected: child_node.key
},
submodule: 'lookupcidname'
}));
$popup.find('.js-save').on('click', function() {
var $menuOption = $('#lookup-cid-name_menu-option option:selected', $popup);
child_node.key = $menuOption.val();
child_node.key_caption = $menuOption.text();
$dialog.dialog('close');
});
$dialog = monster.ui.dialog($popup, {
title: self.i18n.active().callflows.lookup_cid_name.menu_option_dialog.title,
minHeight: '0',
width: 450,
beforeClose: function() {
if (typeof callback === 'function') {
callback();
}
}
});
}
}
});
},
getLists: function(callback){
var self = this;
monster.request({
resource: 'callflows.lookupcidname.lists.get',
data: {
accountId: self.accountId,
generateError: false
},
success: function (data) {
if(typeof(callback) === 'function') {
callback(data.data);
}
}
});
},
lookupcidnameShowEditDialog: function (node, callback) {
var self = this,
$dialogHtml,
$dialog,
i18n = self.i18n.active().callflows.lookup_cid_name,
selectedListsIds = node.getMetadata('lists') || [];
self.getLists(function (lists) {
var selectedLists = [];
var allListsWithoutSelected = [];
for(var i=0, len=lists.length; i<len; i++) {
if($.inArray(lists[i].id, selectedListsIds) !== -1) {
selectedLists.push(lists[i]);
} else {
allListsWithoutSelected.push(lists[i]);
}
}
$dialogHtml = $(self.getTemplate({
name: 'dialogEdit',
data: {
selectedLists: selectedLists,
lists: allListsWithoutSelected
},
submodule: 'lookupcidname'
}));
$dialogHtml.find(
'#lookup-cid-name_lists .selected-lists, ' +
'#lookup-cid-name_lists .available-lists'
).sortable({
connectWith: '.connected-sortable'
}).disableSelection();
$dialog = monster.ui.dialog($dialogHtml, {
title: i18n.edit_dialog.title,
minHeight: '0',
width: 490,
beforeClose: function() {
if (typeof callback === 'function') {
callback();
}
}
});
$dialogHtml.find('.js-save').click(function() {
var lists = $('.js-selected-lists .js-list').map(function (index, el) {
return $(el).data('list_id')
}).toArray();
node.setMetadata('lists', lists);
if (typeof callback === 'function') {
callback();
}
$dialog.dialog('close');
});
})
}
};
return app;
});

+ 37
- 0
src/apps/callflows/submodules/lookupcidname/views/dialogEdit.html View File

@ -0,0 +1,37 @@
<div class="dialog_popup callflows-port lookup-cid-name_dialog">
<div class="items-selector clearfix" id="lookup-cid-name_lists">
<div class="box-selector">
<div class="box-title">
{{ i18n.callflows.lookup_cid_name.edit_dialog.available_lists }}
</div>
<ul class="available-lists box-content connected-sortable">
{{#each lists}}
<li class="js-list item-selector" data-list_id="{{this.id}}">
<div class="item-handle"></div>
{{ this.name }}
</li>
{{/each}}
</ul>
</div>
<div class="box-selector">
<div class="box-title">
{{ i18n.callflows.lookup_cid_name.edit_dialog.selected_lists }}
</div>
<ul class="js-selected-lists selected-lists box-content connected-sortable">
{{#each selectedLists}}
<li class="js-list item-selector" data-list_id="{{this.id}}">
<div class="item-handle"></div>
{{ this.name }}
</li>
{{/each}}
</ul>
</div>
</div>
<div class="buttons-center">
<button class="monster-button monster-button-primary js-save">
{{ i18n.save }}
</button>
</div>
</div>

+ 26
- 0
src/apps/callflows/submodules/lookupcidname/views/dialogMenuOption.html View File

@ -0,0 +1,26 @@
<div class="dialog_popup lookup-cid-name_dialog">
<form name="form" method="post" action="#">
<div class="form_content">
<div class="popup_field clear">
<label for="lookup-cid-name_menu-option">
{{ i18n.callflows.lookup_cid_name.menu_option_dialog.menu_option }}
</label>
<div class="select_wrapper">
<select name="menu-option" id="lookup-cid-name_menu-option">
{{#select selected }}
<option value="match">
{{ i18n.callflows.lookup_cid_name.menu_option_dialog.match }}
</option>
<option value="nomatch">
{{ i18n.callflows.lookup_cid_name.menu_option_dialog.no_match }}
</option>
{{/select}}
</select>
</div>
</div>
</div>
</form>
<div class="buttons-center">
<button class="js-save monster-button monster-button-primary">{{ i18n.save }}</button>
</div>
</div>

Loading…
Cancel
Save