diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/client/messages.js | 26 | ||||
| -rw-r--r-- | src/client/model/graph.js | 6 | ||||
| -rw-r--r-- | src/client/view/item_info.js | 18 | ||||
| -rw-r--r-- | src/client/view/selection.js | 6 |
4 files changed, 43 insertions, 13 deletions
diff --git a/src/client/messages.js b/src/client/messages.js new file mode 100644 index 00000000..306a80c9 --- /dev/null +++ b/src/client/messages.js @@ -0,0 +1,26 @@ +define( ['util', 'model/graph'], +function (util, graph) { + + + +function delete_items_message(items) { + util.assert(items && items.length && items.length > 0); + + return delete_items_message_helper(graph.is_node(items[0]) ? 'node' : 'link', items.length); +} + +function delete_nodes_message(count) { + return delete_items_message_helper('node', count); +} + +function delete_items_message_helper(type, count) { + var descriptor = count > 1 ? '' + count + ' ' + type + 's' : 'a ' + type; + + return 'You are about to delete ' + descriptor + ', are you sure you want to do that?' ; +} + +return { + delete_items_message: delete_items_message, + delete_nodes_message: delete_nodes_message, +}; +}); diff --git a/src/client/model/graph.js b/src/client/model/graph.js index 6a67ad63..d9dfb499 100644 --- a/src/client/model/graph.js +++ b/src/client/model/graph.js @@ -1168,8 +1168,14 @@ function Graph(spec) { this.removeRelated = removeRelated; } +function is_node(item) +{ + return item.__src === undefined; +} + return { Graph: Graph, + is_node: is_node, }; }); diff --git a/src/client/view/item_info.js b/src/client/view/item_info.js index 67b94e6a..757de261 100644 --- a/src/client/view/item_info.js +++ b/src/client/view/item_info.js @@ -1,10 +1,15 @@ -define(['jquery', 'jquery-ui', 'util', 'consts', 'view/helpers', 'model/diff', 'model/types'], -function($, _unused_jquery_ui, util, consts, view_helpers, model_diff, model_types) { +define(['jquery', 'jquery-ui', 'util', 'consts', 'view/helpers', 'model/diff', 'model/types', 'model/graph', 'messages'], +function($, _unused_jquery_ui, util, consts, view_helpers, model_diff, model_types, graph, messages) { "strict" +// constants var DEBOUNCE_TIME = 500; // milliseconds +// aliases +var is_node = graph.is_node; + +// variables var msg_node = $('.info-card-message'), setup_done = false, info = $('#info'), @@ -69,11 +74,6 @@ function _get_form_data() { return ret; } -function is_node(item) -{ - return item.__src === undefined; -} - function update_item(item, new_data) { if (is_node(item)) { @@ -167,10 +167,8 @@ function setup_click_handlers() } }); delete_button.on('click', function (e) { - var msg = is_node(item) ? 'delete node?' : 'delete link?'; - e.preventDefault(); - if (confirm(msg)) { + if (confirm(messages.delete_items_message([item]))) { delete_item(item); } hide(); diff --git a/src/client/view/selection.js b/src/client/view/selection.js index fcf46258..63074e89 100644 --- a/src/client/view/selection.js +++ b/src/client/view/selection.js @@ -1,5 +1,5 @@ -define(['Bacon', 'jquery', 'underscore'], -function(Bacon, $, _) { +define(['Bacon', 'jquery', 'underscore', 'messages'], +function(Bacon, $, _, messages) { var rz_core; // circular dependency, see get_rz_core @@ -288,7 +288,7 @@ var setup_toolbar = function(main_graph) delete_root_selection = function() { var ids = root_nodes_ids(); - if (confirm('you are deleting ' + ids.length + ' nodes, are you sure?')) { + if (confirm(messages.delete_nodes_message(ids.length))) { main_graph.nodes__delete(ids); } }, |
