redcar 0.12.1 → 0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. data/CHANGES +18 -0
  2. data/bin/redcar +1 -0
  3. data/lib/redcar.rb +4 -5
  4. data/lib/redcar/usage.rb +0 -1
  5. data/lib/redcar_quick_start.rb +3 -1
  6. data/plugins/application/lib/application.rb +1 -0
  7. data/plugins/application/lib/application/commands/treebook_commands.rb +11 -18
  8. data/plugins/application/lib/application/dialog.rb +1 -1
  9. data/plugins/application/lib/application/dialogs/filter_list_dialog.rb +13 -5
  10. data/plugins/application/lib/application/global_state.rb +21 -0
  11. data/plugins/application/lib/application/menu/item.rb +37 -11
  12. data/plugins/application/lib/application/notebook.rb +12 -0
  13. data/plugins/application/lib/application/tree/mirror.rb +0 -11
  14. data/plugins/application/lib/application/window.rb +32 -7
  15. data/plugins/application_swt/lib/application_swt.rb +1 -1
  16. data/plugins/application_swt/lib/application_swt/dialogs/filter_list_dialog_controller.rb +35 -10
  17. data/plugins/application_swt/lib/application_swt/icon.rb +1 -1
  18. data/plugins/application_swt/lib/application_swt/menu.rb +47 -15
  19. data/plugins/application_swt/lib/application_swt/notebook.rb +11 -2
  20. data/plugins/application_swt/lib/application_swt/window.rb +37 -34
  21. data/plugins/auto_indenter/lib/auto_indenter/analyzer.rb +1 -1
  22. data/plugins/auto_indenter/spec/auto_indenter/analyzer_spec.rb +9 -0
  23. data/plugins/declarations/lib/declarations.rb +31 -66
  24. data/plugins/declarations/lib/declarations/commands.rb +142 -0
  25. data/plugins/declarations/lib/declarations/file.rb +1 -1
  26. data/plugins/{outline_view → declarations}/spec/fixtures/some_project/javascript.js +0 -0
  27. data/plugins/{outline_view → declarations}/spec/fixtures/some_project/nothing_to_see.rb +0 -0
  28. data/plugins/{outline_view → declarations}/spec/fixtures/some_project/one_lonely_class.rb +0 -0
  29. data/plugins/{outline_view → declarations}/spec/fixtures/some_project/similar_names.rb +0 -0
  30. data/plugins/{outline_view → declarations}/spec/fixtures/some_project/something_fancy.rb +0 -0
  31. data/plugins/{outline_view → declarations}/spec/fixtures/some_project/trailing_space.rb +0 -0
  32. data/plugins/edit_view/lib/edit_view.rb +35 -2
  33. data/plugins/edit_view/lib/edit_view/commands/change_language_command.rb +31 -0
  34. data/plugins/edit_view/lib/edit_view/commands/language_settings_commands.rb +45 -0
  35. data/plugins/edit_view/lib/edit_view/document/command.rb +1 -1
  36. data/plugins/edit_view/lib/edit_view/edit_tab.rb +11 -13
  37. data/plugins/key_bindings/lib/key_bindings.rb +6 -2
  38. data/plugins/project/lib/project.rb +27 -32
  39. data/plugins/project/lib/project/commands.rb +3 -88
  40. data/plugins/project/lib/project/dir_controller.rb +12 -18
  41. data/plugins/project/lib/project/dir_mirror.rb +20 -25
  42. data/plugins/project/lib/project/file_mirror.rb +10 -10
  43. data/plugins/project/lib/project/find_file_dialog.rb +20 -18
  44. data/plugins/project/lib/project/find_recent_dialog.rb +6 -3
  45. data/plugins/project/lib/project/{adapters/local.rb → local_filesystem.rb} +35 -35
  46. data/plugins/project/lib/project/manager.rb +21 -75
  47. data/plugins/project/lib/project/sub_project.rb +3 -3
  48. data/plugins/project/plugin.rb +0 -1
  49. data/plugins/project_search/lib/project_search/lucene_refresh.rb +0 -1
  50. data/plugins/redcar/plugin.rb +2 -2
  51. data/plugins/redcar/redcar.rb +34 -42
  52. data/plugins/ruby/lib/ruby/syntax_checker.rb +27 -7
  53. data/plugins/scm/lib/scm.rb +1 -12
  54. data/plugins/sessions/lib/sessions.rb +22 -0
  55. data/plugins/sessions/lib/sessions/cursor_saver.rb +162 -0
  56. data/plugins/sessions/lib/sessions/loader.rb +99 -0
  57. data/plugins/sessions/lib/sessions/memory.rb +59 -0
  58. data/plugins/sessions/plugin.rb +8 -0
  59. data/plugins/strip_trailing_spaces/lib/strip_trailing_spaces.rb +2 -2
  60. data/plugins/syntax_check/lib/syntax_check.rb +2 -2
  61. data/plugins/tree_view_swt/lib/tree_view_swt.rb +1 -3
  62. data/redcar.gemspec +1 -1
  63. metadata +195 -291
  64. data/plugins/connection_manager/lib/connection_manager.rb +0 -57
  65. data/plugins/connection_manager/lib/connection_manager/commands.rb +0 -14
  66. data/plugins/connection_manager/lib/connection_manager/connection_store.rb +0 -87
  67. data/plugins/connection_manager/lib/connection_manager/controller.rb +0 -100
  68. data/plugins/connection_manager/lib/connection_manager/filter_dialog.rb +0 -38
  69. data/plugins/connection_manager/lib/connection_manager/private_key_store.rb +0 -93
  70. data/plugins/connection_manager/plugin.rb +0 -12
  71. data/plugins/connection_manager/views/index.html.erb +0 -284
  72. data/plugins/edit_view/lib/edit_view/info_speedbar.rb +0 -98
  73. data/plugins/outline_view/features/outline_view.feature +0 -79
  74. data/plugins/outline_view/features/project_outline.feature +0 -23
  75. data/plugins/outline_view/features/step_definitions/outline_steps.rb +0 -61
  76. data/plugins/outline_view/lib/outline_view.rb +0 -97
  77. data/plugins/outline_view/lib/outline_view/commands.rb +0 -19
  78. data/plugins/outline_view/plugin.rb +0 -10
  79. data/plugins/outline_view_swt/lib/outline_view_swt.rb +0 -79
  80. data/plugins/outline_view_swt/plugin.rb +0 -7
  81. data/plugins/project/lib/project/adapters/remote.rb +0 -96
  82. data/plugins/project/lib/project/adapters/remote_protocols/ftp.rb +0 -93
  83. data/plugins/project/lib/project/adapters/remote_protocols/protocol.rb +0 -94
  84. data/plugins/project/lib/project/adapters/remote_protocols/sftp.rb +0 -181
@@ -1,57 +0,0 @@
1
- require 'erb'
2
-
3
- require 'connection_manager/commands'
4
- require 'connection_manager/connection_store'
5
- require 'connection_manager/controller'
6
- require 'connection_manager/filter_dialog'
7
- require 'connection_manager/private_key_store'
8
-
9
- module Redcar
10
- class ConnectionManager
11
- CONNECTION_SUPER_CLASS ||= Struct.new(:name, :protocol, :host, :port, :user, :path)
12
-
13
- def self.open_connection(c)
14
- Project::Manager.connect_to_remote(c.protocol, c.host, c.user, c.path, PrivateKeyStore.paths)
15
- end
16
-
17
- class Connection < CONNECTION_SUPER_CLASS
18
- def to_hash
19
- {
20
- "name" => name,
21
- "host" => host,
22
- "port" => port,
23
- "user" => user,
24
- "protocol" => protocol,
25
- "path" => path
26
- }
27
- end
28
- end
29
-
30
- class OpenRemoteFilter < Command
31
- def execute
32
- FilterDialog.new.open
33
- end
34
- end
35
-
36
- # def self.keymaps
37
- # osx = Redcar::Keymap.build("main", :osx) do
38
- # link "Cmd+P", OpenRemoteFilter
39
- # end
40
- # linwin = Redcar::Keymap.build("main", [:linux, :windows]) do
41
- # link "Ctrl+P", OpenRemoteFilter
42
- # end
43
- # [osx, linwin]
44
- # end
45
-
46
- def self.menus
47
- Menu::Builder.build do
48
- sub_menu "Plugins" do
49
- sub_menu "Connections", :priority => 36 do
50
- item "Manage", OpenCommand
51
- item "Remote Filter", OpenRemoteFilter
52
- end
53
- end
54
- end
55
- end
56
- end
57
- end
@@ -1,14 +0,0 @@
1
-
2
- module Redcar
3
- class ConnectionManager
4
- class OpenCommand < Redcar::Command
5
-
6
- def execute
7
- controller = Controller.new
8
- tab = win.new_tab(ConfigTab)
9
- tab.html_view.controller = controller
10
- tab.focus
11
- end
12
- end
13
- end
14
- end
@@ -1,87 +0,0 @@
1
-
2
- module Redcar
3
- class ConnectionManager
4
-
5
- class ConnectionStore
6
- class ValidationFailedError < StandardError
7
- def errors
8
- @errors ||= []
9
- end
10
- end
11
-
12
- class AlreadyExistsError < StandardError
13
- end
14
-
15
- attr_reader :connections
16
-
17
- def initialize
18
- @connections = load_connections
19
- end
20
-
21
- def find(name)
22
- connections.detect { |c| c.name == name }
23
- end
24
-
25
- def add_connection(name, protocol, host, port, user, path)
26
- if r = find(name)
27
- raise AlreadyExistsError.new
28
- end
29
-
30
- validate_connection(name, protocol, host, port, user, path)
31
-
32
- @connections << Connection.new(name, protocol, host, port, user, path)
33
-
34
- save_connections
35
- end
36
-
37
- def update_connection(name, protocol, host, port, user, path)
38
- connection = find(name)
39
-
40
- validate_connection(name, protocol, host, port, user, path)
41
-
42
- connection.name = name
43
- connection.protocol = protocol
44
- connection.host = host
45
- connection.port = port
46
- connection.user = user
47
- connection.path = path
48
-
49
- save_connections
50
- end
51
-
52
- def validate_connection(name, protocol, host, port, user, path)
53
- validation_failed = ValidationFailedError.new
54
- %w(name protocol host port user).each do |property|
55
- value = eval(property)
56
- validation_failed.errors << "#{property} cannot be blank" if !value || value.empty?
57
- end
58
-
59
- if validation_failed.errors.any?
60
- raise validation_failed
61
- end
62
- end
63
-
64
- def delete_connection(name)
65
- @connections.delete(find(name))
66
-
67
- save_connections
68
- end
69
-
70
- private
71
-
72
- def load_connections
73
- (storage["connections"] || []).map do |h|
74
- Connection.new(h["name"], h["protocol"], h["host"], h["port"], h["user"], h["path"])
75
- end
76
- end
77
-
78
- def save_connections
79
- storage["connections"] = connections.map { |c| c.to_hash }
80
- end
81
-
82
- def storage
83
- Redcar::Plugin::Storage.new('connection_manager')
84
- end
85
- end
86
- end
87
- end
@@ -1,100 +0,0 @@
1
-
2
- module Redcar
3
- class ConnectionManager
4
-
5
- class Controller
6
- include Redcar::HtmlController
7
-
8
- attr_reader :store, :private_key_store
9
-
10
- def initialize
11
- @store = ConnectionStore.new
12
- @private_key_store = PrivateKeyStore.new
13
- end
14
-
15
- def title
16
- "Connections"
17
- end
18
-
19
- def index
20
- rhtml = ERB.new(File.read(File.join(File.dirname(__FILE__), "..", "..", "views", "index.html.erb")))
21
- rhtml.result(binding)
22
- end
23
-
24
- def add_connection(name, protocol, host, port, user, path)
25
- store.add_connection(name, protocol, host, port, user, path)
26
-
27
- success_response
28
- rescue ConnectionStore::AlreadyExistsError
29
- {
30
- 'success' => false,
31
- 'error' => "Connection #{name} already exists. Choose another name and try again."
32
- }
33
- rescue ConnectionStore::ValidationFailedError => e
34
- validation_failed_response(e)
35
- end
36
-
37
- def update_connection(name, protocol, host, port, user, path)
38
- store.update_connection(name, protocol, host, port, user, path)
39
-
40
- success_response
41
- rescue ConnectionStore::ValidationFailedError => e
42
- validation_failed_response(e)
43
- end
44
-
45
- def delete_connection(name)
46
- store.delete_connection(name)
47
-
48
- success_response
49
- end
50
-
51
- def get_connection(name)
52
- store.find(name).to_hash
53
- end
54
-
55
- def add_private_key_file(path)
56
- private_key_store.add_private_key(path)
57
- rescue PrivateKeyStore::ValidationError => e
58
- validation_failed_response(e)
59
- end
60
-
61
- def remove_private_key_file(path)
62
- private_key_store.remove_private_key(path)
63
- end
64
-
65
- def activate_connection(name)
66
- connection = store.find(name)
67
- Project::Manager.connect_to_remote(
68
- connection.protocol, connection.host,
69
- connection.user, connection.path,
70
- PrivateKeyStore.paths
71
- )
72
- end
73
-
74
- private
75
-
76
- def connections
77
- store.connections
78
- end
79
-
80
- def auto_detected_private_key_files
81
- PrivateKeyStore.auto_detected_keys
82
- end
83
-
84
- def private_key_files
85
- private_key_store.paths
86
- end
87
-
88
- def success_response
89
- { 'success' => true }
90
- end
91
-
92
- def validation_failed_response(e)
93
- {
94
- 'success' => false,
95
- 'error' => "Please fix the following errors:<ul>#{e.errors.map {|msg| "<li>#{msg}</li>"}}<ul>"
96
- }
97
- end
98
- end
99
- end
100
- end
@@ -1,38 +0,0 @@
1
- module Redcar
2
- class ConnectionManager
3
- class FilterDialog < FilterListDialog
4
- MANAGER_NAME = "(Connection Manager)"
5
-
6
- def initialize
7
- super
8
- end
9
-
10
- def update_list(query)
11
- if query == ""
12
- connection_names
13
- else
14
- filter_and_rank_by(connection_names, query, 1000)
15
- end
16
- end
17
-
18
- def selected(text, _)
19
- close
20
- open_connection(text)
21
- end
22
-
23
- private
24
-
25
- def open_connection(name)
26
- ConnectionManager.open_connection(store.find(name))
27
- end
28
-
29
- def store
30
- ConnectionManager::ConnectionStore.new
31
- end
32
-
33
- def connection_names
34
- ["(Connection Manager)"] + store.connections.map {|con| con.name }
35
- end
36
- end
37
- end
38
- end
@@ -1,93 +0,0 @@
1
-
2
- module Redcar
3
- class ConnectionManager
4
-
5
- class PrivateKeyStore
6
- def self.paths
7
- auto_detected_keys + store_keys
8
- end
9
-
10
- def self.auto_detected_keys
11
- paths = []
12
- default_key_globs.each do |default_key_glob|
13
- Dir[default_key_glob].each do |filename|
14
- unless File.directory?(filename) || !File.readable?(filename)
15
- first = File.open(filename).read(100)
16
- if first =~ /PRIVATE KEY/
17
- paths << filename
18
- end
19
- end
20
- end
21
- end
22
- paths
23
- end
24
-
25
- def self.store_keys
26
- PrivateKeyStore.new.paths
27
- end
28
-
29
- def self.default_key_globs
30
- [File.join(Redcar.home_dir, ".ssh", "*")]
31
- end
32
-
33
- class ValidationError < StandardError
34
- def errors
35
- @errors ||= []
36
- end
37
- end
38
-
39
- def initialize
40
- @private_key_files = load_private_key_files
41
- end
42
-
43
- def paths
44
- @private_key_files
45
- end
46
-
47
- def add_private_key(path)
48
- path = File.expand_path(path)
49
- validate_private_key(path)
50
-
51
- @private_key_files << path
52
-
53
- save_private_key_files
54
- end
55
-
56
- def remove_private_key(path)
57
- path = File.expand_path(path)
58
- @private_key_files.delete(path)
59
-
60
- save_private_key_files
61
- end
62
-
63
- def validate_private_key(path)
64
- validation_error = ValidationError.new
65
- unless File.exist?(path) and File.file?(path)
66
- validation_error.errors << "File not found."
67
- raise validation_error
68
- end
69
-
70
- begin
71
- Net::SSH::KeyFactory.load_private_key(path)
72
- rescue OpenSSL::PKey::PKeyError
73
- validation_error.errors << "File does not contain a private key."
74
- raise validation_error
75
- end
76
- end
77
-
78
- private
79
-
80
- def load_private_key_files
81
- storage["private_keys"] || []
82
- end
83
-
84
- def save_private_key_files
85
- storage["private_keys"] = @private_key_files
86
- end
87
-
88
- def storage
89
- Redcar::Plugin::Storage.new('connection_manager')
90
- end
91
- end
92
- end
93
- end
@@ -1,12 +0,0 @@
1
-
2
- Plugin.define do
3
- name "connection_manager"
4
- version "0.0.1"
5
-
6
- object "Redcar::ConnectionManager"
7
- file "lib", "connection_manager"
8
-
9
- dependencies "core", ">0",
10
- "HTML View", ">=0.3.2"
11
-
12
- end
@@ -1,284 +0,0 @@
1
-
2
- <% jquery_path = File.expand_path(File.join(Redcar.root, %w(plugins html_view assets jquery-1.4.min.js))) %>
3
- <% watermark = File.expand_path(File.join(Redcar.root, %w(plugins html_view views watermark-48.png))) %>
4
- <% redcar_css = File.expand_path(File.join(Redcar.root, %w(plugins html_view views default.css))) %>
5
- <script type="text/javascript" src="file://<%= jquery_path %>"></script>
6
- <link rel="stylesheet" href="file://<%= redcar_css %>" type="text/css" media="screen">
7
- <div id="top">
8
- <img src="file://<%=watermark%>" id="watermark"/>
9
- <h1>Connection Manager</h1>
10
- </div>
11
- <div class="main">
12
- <h4>Connections</h4>
13
- <div class="inset">
14
- <div id='connections'>
15
- <% if connections and connections.any? %>
16
- <table id='table'>
17
- <tr class='grey' style='font-weight:bold;'>
18
- <th>Name</th>
19
- <th>Protocol</th>
20
- <th>Host</th>
21
- <th>Port</th>
22
- <th>User</th>
23
- <th>Remote Path</th>
24
- </tr>
25
-
26
- <% connections.each do |c| %>
27
- <tr id='row-<%= c.name %>'>
28
- <td><a href='javascript:void(0);' class='activate connection-name'><%= c.name %></a></td>
29
- <td><%= c.protocol %></td>
30
- <td><%= c.host %></td>
31
- <td><%= c.port %></td>
32
- <td><%= c.user %></td>
33
- <td><%= c.path %></td>
34
- <td>
35
- <a href='javascript:void(0);' class='delete'">Delete</a>
36
- <a href='javascript:void(0);' class='modify'">Modify</a>
37
- </td>
38
- </tr>
39
- <% end %>
40
- </table>
41
- <% else %>
42
- <p>No connections</p>
43
- <% end %>
44
- <p>
45
- <input id='add' type='button' value='Add Connection'>
46
- </p>
47
- </div>
48
- <p>
49
- <div id='add_div' style='display:none;'>
50
- <div id='error' style='display:none;color:red;text-weight:bold;margin-bottom:20px;'></div>
51
- <form id='new_connection'>
52
- <input type='hidden' name='operation' id='operation'>
53
- <table>
54
- <tr class='grey'>
55
- <th colspan=2><b><span id='conn_name'>New Connection</span></b></th>
56
- </tr>
57
- <tr><td>Name: </td><td><input size='30' type='text' name='name' id='name'></td></tr>
58
- <tr>
59
- <td>Protocol: </td>
60
- <td>
61
- <select name='protocol' id='protocol'>
62
- <option></option>
63
- <option>SFTP</option>
64
- <option>FTP</option>
65
- </select>
66
- </td>
67
- </tr>
68
- <tr><td>Host: </td><td><input size="30" type='text' name='host' id='host'></td></tr>
69
- <tr><td>Port: </td><td><input type='text' name='port' id='port' size=2></td></tr>
70
- <tr><td>User: </td><td><input size="30" type='text' name='user' id='user'></td></tr>
71
- <tr><td>Remote Path: </td><td><input size="30" type='text' name='path' id='path'></td></tr>
72
- <tr>
73
- <td colspan=2>
74
- <input id='save' type='submit' value='Save'>
75
- <input id='cancel' type='button' value='Cancel'>
76
- </td>
77
- </tr>
78
- </table>
79
- </form>
80
- </div>
81
- </p>
82
- </div>
83
-
84
- <h4>Private Keys</h4>
85
- <div class="inset">
86
- <div id="private-keys">
87
- <div class="list">
88
- <% if (private_key_files + auto_detected_private_key_files).any? %>
89
- <table>
90
- <% auto_detected_private_key_files.each do |private_key| %>
91
- <tr>
92
- <td><%= private_key %></td>
93
- </tr>
94
- <% end %>
95
- <% private_key_files.each do |private_key| %>
96
- <tr>
97
- <td><%= private_key %></td>
98
- <td>
99
- <a href='javascript:void(0);' class='delete-key' data-name="<%= private_key %>">Delete</a>
100
- </td>
101
- </tr>
102
- <% end %>
103
- </table>
104
- <% else %>
105
- No private keys.
106
- <% end %>
107
- </div>
108
- <br />
109
- <input id='add-private-key-button' type='button' value='Add Private Key'>
110
-
111
- <div id='add-private-key' style='display:none;'>
112
- <div class='error' style='display:none;color:red;text-weight:bold;margin-bottom:20px;'></div>
113
-
114
- <form id='add-private-key-form'>
115
- <input type='hidden' name='operation' class='operation'>
116
- <table>
117
- <tr class='grey'>
118
- <td colspan=2><b><span>New Private Key</span></b></td>
119
- </tr>
120
- <tr><td>Key file: </td><td><input size="30" type='text' class="path" name='path'></td></tr>
121
- <tr>
122
- <td colspan=2>
123
- <input class='save' type='submit' value='Save'>
124
- <input class='cancel' type='button' value='Cancel'>
125
- </td>
126
- </tr>
127
- </table>
128
- </form>
129
- </div>
130
- </div>
131
- </div>
132
- </div>
133
-
134
- <script type="text/javascript">
135
- $(document).ready(function() {
136
- function showMain() {
137
- $(':input','#new_connection')
138
- .not(':button, :submit, :reset, :hidden')
139
- .val('')
140
- .removeAttr('checked')
141
- .removeAttr('selected');
142
-
143
- $('#add_div').hide();
144
- $('#connections').show();
145
- };
146
-
147
- var PORTS = {
148
- 'FTP': 21, 'SFTP': 22
149
- };
150
-
151
- $('.delete').live('click', function() {
152
- var name = $(this).parent().parent().find(".connection-name").text();
153
- try {
154
- if (confirm('Do you really want to delete connection ' + name + '?')) {
155
- Controller.deleteConnection(name);
156
- Controller.reloadIndex();
157
- }
158
- }
159
- catch(err) {
160
- alert("Error: " + err.message);
161
- }
162
- });
163
-
164
- $('.modify').live('click', function() {
165
- var name = $(this).parent().parent().find(".connection-name").text();
166
- $('#error').html("");
167
- $('#conn_name').text('Editing ' + name);
168
- $('#connections').hide();
169
- $('#add_div').show();
170
- $('#protocol').focus();
171
- $('#name').attr('disabled', 'disabled');
172
-
173
- var data = Controller.getConnection(name);
174
- if (data) {
175
- $('#operation').val('update');
176
- $('#name').val(name);
177
- $('#protocol').val(data.protocol);
178
- $('#host').val(data.host);
179
- $('#port').val(data.port);
180
- $('#user').val(data.user);
181
- $('#path').val(data.path);
182
- }
183
- });
184
-
185
- $('#protocol').change(function(e) {
186
- $('#port').val(PORTS[$(this).val()]);
187
- });
188
-
189
- $('#add').click(function() {
190
- $('#error').html("");
191
- $('#conn_name').text('New Connection');
192
- $('#operation').val('insert');
193
- $('#connections').hide();
194
- $('#add_div').show();
195
- $('#name').focus();
196
- });
197
-
198
- $('#cancel').click(function() {
199
- $('#error').html("");
200
- showMain();
201
- });
202
-
203
- $("#new_connection").submit(function(e) {
204
- try {
205
- $('#name').removeAttr('disabled');
206
- var name = $('#name').val();
207
- var protocol = $('#protocol').val();
208
- var host = $('#host').val();
209
- var port = $('#port').val();
210
- var user = $('#user').val();
211
- var path = $('#path').val();
212
-
213
- if ($('#operation').val() == 'insert') {
214
- result = Controller.addConnection(name, protocol, host, port, user, path);
215
- }
216
- else {
217
- result = Controller.updateConnection(name, protocol, host, port, user, path);
218
- }
219
-
220
- if (result.success === false) {
221
- $('#error').html(result.error);
222
- $('#error').show();
223
- $('#name').focus();
224
- }
225
- else {
226
- Controller.reloadIndex();
227
- }
228
- }
229
- catch(err) {
230
- alert("Error: " + error.message);
231
- }
232
- return false;
233
- });
234
-
235
- $(".activate").click(function(e) {
236
- var name = $(this).parent().parent().find(".connection-name").text();
237
- Controller.activateConnection(name);
238
- });
239
-
240
- $("#add-private-key-button").click(function() {
241
- $("#add-private-key-button").hide();
242
- $("#add-private-key").show();
243
- $("#private-keys .list").hide();
244
- });
245
-
246
- $("#add-private-key-form .cancel").click(function() {
247
- $("#add-private-key-button").show();
248
- $("#add-private-key").hide();
249
- $("#private-keys .list").show();
250
- });
251
-
252
- $("#add-private-key-form").submit(function(e) {
253
- try {
254
- var result = Controller.addPrivateKeyFile($("#add-private-key-form .path").val());
255
-
256
- if (result.success === false) {
257
- $('#add-private-key .error').html(result.error);
258
- $('#add-private-key .error').show();
259
- $('#add-private-key-form .path').focus();
260
- }
261
- else {
262
- Controller.reloadIndex();
263
- }
264
- }
265
- catch(err) {
266
- alert("Error: " + error.message);
267
- }
268
- return false;
269
- });
270
-
271
- $("#private-keys .list .delete-key").click(function() {
272
- var path = $(this).attr('data-name');
273
- try {
274
- Controller.removePrivateKeyFile(path);
275
- Controller.reloadIndex();
276
- }
277
- catch(err) {
278
- alert("Error: " + err.message);
279
- }
280
- });
281
-
282
- });
283
-
284
- </script>