summaryrefslogtreecommitdiff
path: root/src/client
diff options
context:
space:
mode:
Diffstat (limited to 'src/client')
-rw-r--r--src/client/messages.js26
-rw-r--r--src/client/model/graph.js6
-rw-r--r--src/client/view/item_info.js18
-rw-r--r--src/client/view/selection.js6
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);
}
},