rhoconnect 3.2.1 → 3.3.1.beta2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (221) hide show
  1. data/CHANGELOG.md +24 -5
  2. data/Gemfile +2 -2
  3. data/Gemfile.lock +20 -20
  4. data/bench/benchapp/Gemfile +17 -20
  5. data/bench/benchapp/config.ru +2 -2
  6. data/bench/benchapp/settings/settings.yml +3 -3
  7. data/bench/blobapp/Gemfile +16 -13
  8. data/bench/blobapp/config.ru +2 -2
  9. data/bench/blobapp/settings/settings.yml +5 -3
  10. data/bench/lib/bench.rb +35 -32
  11. data/bench/lib/bench/session.rb +9 -1
  12. data/bench/scripts/blob_cud_script.rb +13 -17
  13. data/bench/scripts/cud_script.rb +11 -12
  14. data/bench/scripts/helpers.rb +5 -7
  15. data/bench/scripts/query_md_script.rb +18 -12
  16. data/bench/scripts/query_only_script.rb +19 -11
  17. data/bench/scripts/query_script.rb +17 -13
  18. data/bench/scripts/test_query_script.rb +46 -17
  19. data/bench/scripts/test_source_script.rb +7 -7
  20. data/commands/commands/dtach_commands/dtach_install.rb +44 -16
  21. data/commands/commands/rhoconnect/spec.rb +13 -9
  22. data/commands/commands/rhoconnect/version.rb +6 -0
  23. data/commands/execute.rb +10 -6
  24. data/doc/deploying.txt +75 -13
  25. data/doc/install.txt +3 -3
  26. data/doc/push-client-setup.txt +1 -1
  27. data/doc/rest-api.txt +4 -23
  28. data/doc/rhoconnect-redis-stack.txt +26 -7
  29. data/doc/settings.txt +9 -3
  30. data/examples/simple/Gemfile +3 -1
  31. data/examples/simple/application.rb +5 -0
  32. data/examples/simple/config.ru +3 -2
  33. data/examples/simple/my_server.rb +14 -0
  34. data/examples/simple/settings/settings.yml +1 -0
  35. data/generators/templates/application/Gemfile +4 -4
  36. data/generators/templates/application/application.rb +4 -0
  37. data/generators/templates/application/settings/settings.yml +4 -1
  38. data/installer/unix-like/create_texts.rb +39 -1
  39. data/installer/unix-like/rho_connect_install_constants.rb +1 -1
  40. data/installer/utils/package_upload/repos.rake +7 -5
  41. data/lib/rhoconnect.rb +3 -2
  42. data/lib/rhoconnect/api/app/ans_login.rb +3 -0
  43. data/lib/rhoconnect/api/app/bulk_data.rb +6 -0
  44. data/lib/rhoconnect/api/{source → app}/fast_delete.rb +1 -1
  45. data/lib/rhoconnect/api/{source → app}/fast_insert.rb +2 -2
  46. data/lib/rhoconnect/api/{source → app}/fast_update.rb +2 -2
  47. data/lib/rhoconnect/api/app/login.rb +5 -0
  48. data/lib/rhoconnect/api/{source → app}/push_deletes.rb +1 -1
  49. data/lib/rhoconnect/api/{source → app}/push_objects.rb +1 -1
  50. data/lib/rhoconnect/api/app/query.rb +4 -0
  51. data/lib/rhoconnect/api/app/queue_updates.rb +94 -0
  52. data/lib/rhoconnect/api/app/search.rb +4 -0
  53. data/lib/rhoconnect/api/client/client_get_db_doc.rb +5 -0
  54. data/lib/rhoconnect/api/client/client_set_db_doc.rb +8 -0
  55. data/lib/rhoconnect/api/client/create.rb +7 -0
  56. data/lib/rhoconnect/api/client/get_client_params.rb +2 -1
  57. data/lib/rhoconnect/api/client/list_client_docs.rb +2 -1
  58. data/lib/rhoconnect/api/client/register.rb +12 -0
  59. data/lib/rhoconnect/api/client/reset.rb +5 -0
  60. data/lib/rhoconnect/api/{source → readstate}/set_refresh_time.rb +2 -1
  61. data/lib/rhoconnect/api/source/get_source_params.rb +3 -2
  62. data/lib/rhoconnect/api/source/list_sources.rb +2 -1
  63. data/lib/rhoconnect/api/source/update_source_params.rb +3 -3
  64. data/lib/rhoconnect/api/store/get_db_doc.rb +4 -0
  65. data/lib/rhoconnect/api/store/set_db_doc.rb +7 -0
  66. data/lib/rhoconnect/api/system/get_adapter.rb +4 -0
  67. data/lib/rhoconnect/api/{admin → system}/get_license_info.rb +2 -1
  68. data/lib/rhoconnect/api/system/login.rb +15 -0
  69. data/lib/rhoconnect/api/{admin → system}/reset.rb +3 -2
  70. data/lib/rhoconnect/api/system/save_adapter.rb +4 -0
  71. data/lib/rhoconnect/api/{admin → system}/stats.rb +2 -1
  72. data/lib/rhoconnect/api/user/create_user.rb +2 -2
  73. data/lib/rhoconnect/api/user/delete_client.rb +6 -0
  74. data/lib/rhoconnect/api/user/delete_user.rb +2 -1
  75. data/lib/rhoconnect/api/user/list_clients.rb +4 -0
  76. data/lib/rhoconnect/api/user/list_source_docs.rb +11 -0
  77. data/lib/rhoconnect/api/user/list_users.rb +1 -1
  78. data/lib/rhoconnect/api/user/ping.rb +7 -0
  79. data/lib/rhoconnect/api/user/show_user.rb +3 -0
  80. data/lib/rhoconnect/api/user/update_user.rb +3 -2
  81. data/lib/rhoconnect/api/user/user_get_db_doc.rb +5 -0
  82. data/lib/rhoconnect/api/user/user_set_db_doc.rb +10 -0
  83. data/lib/rhoconnect/app.rb +12 -2
  84. data/lib/rhoconnect/async.rb +6 -10
  85. data/lib/rhoconnect/bulk_data/bulk_data.rb +4 -4
  86. data/lib/rhoconnect/client.rb +10 -9
  87. data/lib/rhoconnect/client_sync.rb +24 -19
  88. data/lib/rhoconnect/document.rb +18 -4
  89. data/lib/rhoconnect/graph_helper.rb +4 -2
  90. data/lib/rhoconnect/jobs/bulk_data_job.rb +1 -1
  91. data/lib/rhoconnect/jobs/ping_job.rb +39 -29
  92. data/lib/rhoconnect/middleware/admin_user.rb +23 -0
  93. data/lib/rhoconnect/middleware/body_content_type_parser.rb +35 -0
  94. data/lib/rhoconnect/{cors.rb → middleware/cors.rb} +1 -0
  95. data/lib/rhoconnect/middleware/current_app.rb +16 -0
  96. data/lib/rhoconnect/middleware/current_request.rb +16 -0
  97. data/lib/rhoconnect/middleware/current_user.rb +17 -0
  98. data/lib/rhoconnect/middleware/helpers.rb +105 -0
  99. data/lib/rhoconnect/middleware/login_required.rb +22 -0
  100. data/lib/rhoconnect/{stats/middleware.rb → middleware/stats.rb} +5 -3
  101. data/lib/rhoconnect/middleware/x_domain_session_wrapper.rb +58 -0
  102. data/lib/rhoconnect/ping.rb +1 -0
  103. data/lib/rhoconnect/ping/apple.rb +18 -16
  104. data/lib/rhoconnect/ping/blackberry.rb +9 -9
  105. data/lib/rhoconnect/ping/rhoconnect_push.rb +45 -0
  106. data/lib/rhoconnect/server.rb +98 -91
  107. data/lib/rhoconnect/source.rb +5 -1
  108. data/lib/rhoconnect/source_sync.rb +4 -3
  109. data/lib/rhoconnect/stats/record.rb +15 -15
  110. data/lib/rhoconnect/store.rb +253 -75
  111. data/lib/rhoconnect/tasks.rb +3 -3
  112. data/lib/rhoconnect/version.rb +1 -1
  113. data/lib/rhoconnect/web-console/controllers/admins.js +1 -14
  114. data/lib/rhoconnect/web-console/models/adapter.js +18 -8
  115. data/lib/rhoconnect/web-console/models/client.js +15 -9
  116. data/lib/rhoconnect/web-console/models/doc.js +7 -11
  117. data/lib/rhoconnect/web-console/models/session.js +5 -2
  118. data/lib/rhoconnect/web-console/models/source.js +55 -36
  119. data/lib/rhoconnect/web-console/models/user.js +20 -11
  120. data/lib/rhoconnect/web-console/public/backbone.js +8 -2
  121. data/lib/rhoconnect/web-console/templates/index.erb +11 -5
  122. data/lib/rhoconnect/web-console/views/doc.js +6 -8
  123. data/lib/rhoconnect/web-console/views/edit_user.js +6 -3
  124. data/lib/rhoconnect/web-console/views/home.js +98 -25
  125. data/lib/rhoconnect/web-console/views/index.js +1 -1
  126. data/lib/rhoconnect/web-console/views/new_ping.js +6 -3
  127. data/lib/rhoconnect/web-console/views/server_doc.js +12 -4
  128. data/lib/rhoconnect/web-console/views/show_device.js +6 -3
  129. data/rhoconnect.gemspec +1 -2
  130. data/spec/api/{source → app}/fast_delete_spec.rb +4 -4
  131. data/spec/api/{source → app}/fast_insert_spec.rb +4 -4
  132. data/spec/api/{source → app}/fast_update_spec.rb +22 -6
  133. data/spec/api/{source → app}/push_deletes_spec.rb +2 -2
  134. data/spec/api/app/push_objects_spec.rb +45 -0
  135. data/spec/api/client/client_get_db_doc_spec.rb +31 -0
  136. data/spec/api/client/client_set_db_doc_spec.rb +14 -0
  137. data/spec/api/client/get_client_params_spec.rb +3 -2
  138. data/spec/api/client/list_client_docs_spec.rb +2 -2
  139. data/spec/api/{source → readstate}/set_refresh_time_spec.rb +15 -9
  140. data/spec/api/source/get_source_params_spec.rb +3 -2
  141. data/spec/api/source/list_sources_spec.rb +3 -9
  142. data/spec/api/source/update_source_params_spec.rb +4 -4
  143. data/spec/api/store/get_db_doc_spec.rb +32 -0
  144. data/spec/api/store/set_db_doc_spec.rb +43 -0
  145. data/spec/api/system/adapter_spec.rb +33 -0
  146. data/spec/api/{admin → system}/get_license_info_spec.rb +2 -5
  147. data/spec/api/{admin/get_api_token_spec.rb → system/login_spec.rb} +4 -11
  148. data/spec/api/{admin → system}/reset_spec.rb +2 -2
  149. data/spec/api/{admin → system}/stats_spec.rb +19 -13
  150. data/spec/api/user/create_user_spec.rb +15 -8
  151. data/spec/api/{client → user}/delete_client_spec.rb +3 -4
  152. data/spec/api/user/delete_user_spec.rb +33 -4
  153. data/spec/api/user/list_clients_spec.rb +30 -0
  154. data/spec/api/user/list_source_docs_spec.rb +35 -0
  155. data/spec/api/user/list_users_spec.rb +5 -6
  156. data/spec/api/{client → user}/ping_spec.rb +4 -6
  157. data/spec/api/user/show_user_spec.rb +14 -0
  158. data/spec/api/user/update_user_spec.rb +28 -10
  159. data/spec/api/user/user_get_db_doc_spec.rb +16 -0
  160. data/spec/api/user/user_set_db_doc_spec.rb +41 -0
  161. data/spec/apps/rhotestapp/application.rb +4 -0
  162. data/spec/apps/rhotestapp/settings/settings.yml +3 -1
  163. data/spec/bulk_data/bulk_data_spec.rb +13 -0
  164. data/spec/client_sync_spec.rb +41 -59
  165. data/spec/document_spec.rb +23 -0
  166. data/spec/javascripts/doc_view_spec.js +1 -1
  167. data/spec/javascripts/home_view_spec.js +10 -5
  168. data/spec/javascripts/index_view_spec.js +1 -1
  169. data/spec/jobs/ping_job_spec.rb +26 -0
  170. data/spec/perf/store_perf_spec.rb +1 -1
  171. data/spec/ping/android_spec.rb +0 -7
  172. data/spec/ping/apple_spec.rb +7 -0
  173. data/spec/ping/blackberry_spec.rb +10 -0
  174. data/spec/ping/rhoconnect_push_spec.rb +58 -0
  175. data/spec/server/cors_spec.rb +1 -1
  176. data/spec/server/server_spec.rb +152 -104
  177. data/spec/{stats/middleware_spec.rb → server/stats_spec.rb} +4 -5
  178. data/spec/server/x_domain_session_wrapper_spec.rb +3 -3
  179. data/spec/source_spec.rb +2 -2
  180. data/spec/source_sync_spec.rb +2 -0
  181. data/spec/spec_helper.rb +17 -3
  182. data/spec/stats/record_spec.rb +18 -19
  183. data/spec/store_spec.rb +51 -26
  184. data/spec/support/shared_examples.rb +4 -0
  185. data/spec/sync_states_spec.rb +2 -2
  186. metadata +104 -88
  187. data/bench/benchapp/Gemfile.lock +0 -87
  188. data/bench/blobapp/Gemfile.lock +0 -107
  189. data/bench/lib/testdata/5-data.txt +0 -8
  190. data/doc/release.txt +0 -41
  191. data/lib/rhoconnect/api/admin/get_api_token.rb +0 -14
  192. data/lib/rhoconnect/api/admin/login.rb +0 -6
  193. data/lib/rhoconnect/api/application/bulk_data.rb +0 -7
  194. data/lib/rhoconnect/api/application/clientcreate.rb +0 -8
  195. data/lib/rhoconnect/api/application/clientlogin.rb +0 -6
  196. data/lib/rhoconnect/api/application/clientregister.rb +0 -13
  197. data/lib/rhoconnect/api/application/clientreset.rb +0 -6
  198. data/lib/rhoconnect/api/application/query.rb +0 -7
  199. data/lib/rhoconnect/api/application/queue_updates.rb +0 -20
  200. data/lib/rhoconnect/api/application/search.rb +0 -6
  201. data/lib/rhoconnect/api/client/create_client.rb +0 -3
  202. data/lib/rhoconnect/api/client/delete_client.rb +0 -5
  203. data/lib/rhoconnect/api/client/list_clients.rb +0 -3
  204. data/lib/rhoconnect/api/client/ping.rb +0 -7
  205. data/lib/rhoconnect/api/source/get_adapter.rb +0 -3
  206. data/lib/rhoconnect/api/source/get_db_doc.rb +0 -7
  207. data/lib/rhoconnect/api/source/list_source_docs.rb +0 -10
  208. data/lib/rhoconnect/api/source/save_adapter.rb +0 -3
  209. data/lib/rhoconnect/api/source/set_db_doc.rb +0 -10
  210. data/lib/rhoconnect/api/source/upload_file.rb +0 -4
  211. data/lib/rhoconnect/body_content_type_parser.rb +0 -32
  212. data/lib/rhoconnect/x_domain_session_wrapper.rb +0 -53
  213. data/spec/api/admin/api_token_spec.rb +0 -13
  214. data/spec/api/client/create_client_spec.rb +0 -13
  215. data/spec/api/client/list_clients_spec.rb +0 -22
  216. data/spec/api/source/adapter_spec.rb +0 -29
  217. data/spec/api/source/get_db_doc_spec.rb +0 -21
  218. data/spec/api/source/list_source_docs_spec.rb +0 -25
  219. data/spec/api/source/push_objects_spec.rb +0 -27
  220. data/spec/api/source/set_db_doc_spec.rb +0 -32
  221. data/spec/api/source/upload_file_spec.rb +0 -26
@@ -1,3 +1,3 @@
1
1
  module Rhoconnect
2
- VERSION = '3.2.1'
2
+ VERSION = '3.3.1.beta2'
3
3
  end
@@ -10,7 +10,6 @@ App.Controllers.Admins = Backbone.Router.extend({
10
10
  "doc/:dbkey/:source_id" : "get_doc",
11
11
  "docselect" : "server_doc",
12
12
  "adapter" : "adapter",
13
- "settings" : "settings",
14
13
  "users" : "users",
15
14
  "users/new" : "new_user",
16
15
  "user/:id" : "show_user",
@@ -41,7 +40,7 @@ App.Controllers.Admins = Backbone.Router.extend({
41
40
  this.set_nav('info_home');
42
41
  if(session.getAuthenticated() == 'true'){
43
42
  this.set_log('logout');
44
- new App.Views.Home({model: new Source()})
43
+ new App.Views.Home({model: new Source(), model2: new Adapter()})
45
44
  }
46
45
  else
47
46
  new App.Views.Index
@@ -98,18 +97,6 @@ App.Controllers.Admins = Backbone.Router.extend({
98
97
  new App.Views.Index
99
98
  },
100
99
 
101
- settings: function(){
102
- var session = new Session();
103
- if(session.getAuthenticated() == 'true'){
104
- this.set_log('logout');
105
- this.set_nav('settings');
106
- //adapter = new Adapter();
107
- new App.Views.Settings()
108
- }
109
- else
110
- new App.Views.Index
111
- },
112
-
113
100
  adapter: function(){
114
101
  var session = new Session();
115
102
  if(session.getAuthenticated() == 'true'){
@@ -15,8 +15,11 @@ var Adapter = Backbone.Model.extend({
15
15
  var adapter_url = adapter_url;
16
16
  $.ajax({
17
17
  type: 'POST',
18
- url: '/api/source/save_adapter',
19
- data: {api_token : this.get('api_token'), adapter_url : adapter_url},
18
+ url: '/rc/v1/system/appserver',
19
+ data: {attributes : {'adapter_url' : adapter_url}},
20
+ beforeSend: function (HttpRequest) {
21
+ HttpRequest.setRequestHeader("X-RhoConnect-API-TOKEN", session.getApiKey());
22
+ },
20
23
  success: function(model, resp){
21
24
  $(".setadapter-status")[0].firstChild.className = "label label-success";
22
25
  $(".setadapter-status")[0].firstChild.innerHTML = "success";
@@ -28,19 +31,26 @@ var Adapter = Backbone.Model.extend({
28
31
  }
29
32
  $(".setadapter-status")[0].firstChild.className = "label label-important";
30
33
  $(".setadapter-status")[0].firstChild.innerHTML = "error";
34
+ $('#home-alert')[0].innerHTML = resp.responseText;
35
+ $('#home-alert').css('display','block');
31
36
  }
32
37
  })
33
38
  },
34
39
 
35
40
  get_adapter: function(){
36
41
  $.ajax({
37
- type: 'POST',
38
- url: '/api/source/get_adapter',
39
- data: {api_token : this.get('api_token')},
42
+ type: 'GET',
43
+ url: '/rc/v1/system/appserver',
44
+ beforeSend: function (HttpRequest) {
45
+ HttpRequest.setRequestHeader("X-RhoConnect-API-TOKEN", session.getApiKey());
46
+ },
40
47
  success: function(resp){
41
- var r = JSON.parse(resp);
42
- if(r.adapter_url)
43
- $('#input_adapter').val(r.adapter_url);
48
+ if(resp != 'testtoken'){
49
+ var r = JSON.parse(resp);
50
+ if(r.adapter_url){
51
+ $('#input_adapter').val(r.adapter_url);
52
+ }
53
+ }
44
54
  },
45
55
  error: function(resp){
46
56
  if(resp.status == 422){
@@ -12,9 +12,11 @@ var Client = Backbone.Model.extend({
12
12
 
13
13
  get_clients: function(user_id){
14
14
  $.ajax({
15
- type: 'POST',
16
- url: '/api/client/list_clients',
17
- data: {api_token : this.get('api_token'), user_id : user_id},
15
+ type: 'get',
16
+ url: '/rc/v1/users/' + user_id + '/clients',
17
+ beforeSend: function (HttpRequest) {
18
+ HttpRequest.setRequestHeader("X-RhoConnect-API-TOKEN", session.getApiKey());
19
+ },
18
20
  success: function(resp){
19
21
  var r = JSON.parse(resp)
20
22
  data = ""
@@ -36,9 +38,11 @@ var Client = Backbone.Model.extend({
36
38
 
37
39
  list_client_docs: function(client_id,source_id){
38
40
  $.ajax({
39
- type: 'POST',
40
- url: '/api/client/list_client_docs',
41
- data: {api_token : this.get('api_token'), client_id : client_id, source_id : source_id},
41
+ type: 'GET',
42
+ url: '/rc/v1/clients/' + client_id + '/sources/' + source_id + '/docnames',
43
+ beforeSend: function (HttpRequest) {
44
+ HttpRequest.setRequestHeader("X-RhoConnect-API-TOKEN", session.getApiKey());
45
+ },
42
46
  success: function(resp){
43
47
  var r = JSON.parse(resp)
44
48
  data = ""
@@ -60,9 +64,11 @@ var Client = Backbone.Model.extend({
60
64
 
61
65
  get_client_params: function(client_id){
62
66
  $.ajax({
63
- type: 'POST',
64
- url: '/api/client/get_client_params',
65
- data: {api_token : this.get('api_token'),client_id : client_id},
67
+ type: 'GET',
68
+ url: '/rc/v1/clients/' + client_id,
69
+ beforeSend: function (HttpRequest) {
70
+ HttpRequest.setRequestHeader("X-RhoConnect-API-TOKEN", session.getApiKey());
71
+ },
66
72
  success: function(resp){
67
73
  var r = JSON.parse(resp)
68
74
  data = "";
@@ -12,16 +12,14 @@ var Doc = Backbone.Model.extend({
12
12
  },
13
13
 
14
14
  methodUrl: {
15
- 'create': '/api/admin/get_license_info'
15
+ 'read': '/rc/v1/system/license'
16
16
  },
17
17
 
18
18
  sync: function(method, model, options) {
19
19
  if (model.methodUrl && model.methodUrl[method.toLowerCase()]) {
20
20
  options = options || {};
21
21
  options.url = model.methodUrl[method.toLowerCase()];
22
- // if(method == 'read'){
23
- // options.url += "?api_token=" + this.get('api_token')
24
- // }
22
+ options.token = this.get('api_token')
25
23
  }
26
24
  Backbone.sync(method, model, options);
27
25
  },
@@ -29,15 +27,13 @@ var Doc = Backbone.Model.extend({
29
27
  get_doc: function(dbkey,d_type){
30
28
  self = this;
31
29
  var session = new Session();
32
- var dt = 'hash';
33
- if(dbkey.search(/token/i) > 0 || dbkey.search(/size/i) > 0 || d_type == 'string'){
34
- dt = 'string';
35
- }
36
30
  this.set('dbkey',dbkey);
37
31
  $.ajax({
38
- type: 'POST',
39
- url: '/api/source/get_db_doc',
40
- data: {api_token : session.getApiKey, doc : dbkey, data_type : dt},
32
+ type: 'GET',
33
+ url: '/rc/v1/store/' + dbkey,
34
+ beforeSend: function (HttpRequest) {
35
+ HttpRequest.setRequestHeader("X-RhoConnect-API-TOKEN", session.getApiKey());
36
+ },
41
37
  success: function(resp){
42
38
  var data = ""
43
39
  r = self.formatJson(resp)
@@ -20,10 +20,13 @@ var Session = Backbone.Model.extend({
20
20
  $(".reset-status")[0].firstChild.className = "label label-warning";
21
21
  $(".reset-status")[0].firstChild.innerHTML = "loading...";
22
22
  $(".reset-status").css("visibility","visible");
23
+ var token = this.getApiKey();
23
24
  $.ajax({
24
25
  type: 'POST',
25
- url: '/api/admin/reset',
26
- data: {api_token : this.getApiKey()},
26
+ url: '/rc/v1/system/reset',
27
+ beforeSend: function (XMLHttpRequest) {
28
+ XMLHttpRequest.setRequestHeader("X-RhoConnect-API-TOKEN", token);
29
+ },
27
30
  success: function(){
28
31
  $(".reset-status")[0].firstChild.className = "label label-success";
29
32
  $(".reset-status")[0].firstChild.innerHTML = "success";
@@ -18,58 +18,75 @@ var Source = Backbone.Model.extend({
18
18
  this.set('api_token', session.getApiKey())
19
19
  },
20
20
 
21
- url: '/api/admin',
22
-
23
21
  methodUrl: {
24
- 'create': '/api/admin/get_license_info',
25
- 'read' : '/api/source/list_sources'
22
+ 'read' : '/rc/v1/sources/type/'
26
23
  },
27
24
 
28
25
  sync: function(method, model, options) {
29
26
  if (model.methodUrl && model.methodUrl[method.toLowerCase()]) {
30
27
  options = options || {};
31
28
  options.url = model.methodUrl[method.toLowerCase()];
32
- if(method == 'read'){
33
- options.url += "?api_token=" + this.get('api_token') + "&partition_type=" + this.get('partition_type')
34
- }
29
+ options.url += this.get('partition_type')
30
+ options.token = this.get('api_token')
35
31
  }
36
32
  Backbone.sync(method, model, options);
37
33
  },
38
34
 
39
35
  parse: function(resp){
40
- if(resp[0] != undefined || resp.length < 1){
41
- var user = this.get('user_id');
42
- var doctype = this.get('doctype');
43
- var client_id = this.get('client_id');
44
- var adapters = "";
45
- $.each(resp, function(index,value){
46
- if(doctype == null){
47
- adapters += "<tr><td colspan='2'><a href='#sources/"+value+"'>"+ value + "</a></td></tr>"
36
+ var user = this.get('user_id');
37
+ var doctype = this.get('doctype');
38
+ var client_id = this.get('client_id');
39
+ var adapters = "";
40
+ $.each(resp, function(index,value){
41
+ if(doctype == null){
42
+ adapters += "<tr><td colspan='2'><a href='#sources/"+value+"'>"+ value + "</a></td></tr>"
43
+ }
44
+ else{
45
+ adapters += "<tr><td colspan='2'><a href='#sources/"+value+"/"+user+"/"+doctype+"/"+client_id+"'>"+ value + "</a></td></tr>"
46
+ }
47
+ })
48
+ $('tr.remove-tr-user').remove();
49
+ $('#source-table tr:last').after(adapters);
50
+ },
51
+
52
+ get_license_info: function(){
53
+ var session = new Session();
54
+ $.ajax({
55
+ type: 'GET',
56
+ url: '/rc/v1/system/license',
57
+ beforeSend: function (HttpRequest) {
58
+ HttpRequest.setRequestHeader("X-RhoConnect-API-TOKEN", session.getApiKey());
59
+ },
60
+ success: function(resp){
61
+ if(resp != 'testtoken'){
62
+ var r = JSON.parse(resp)
63
+ var license_text = "Licensed to &nbsp;" + r["licensee"] +
64
+ "&nbsp;on&nbsp;" + r["issued"] + ", available&nbsp;" +
65
+ r["available"] + "&nbsp;out of&nbsp;" +
66
+ r['seats'] + "&nbsp;devices"
67
+ var license_footer = "Licensed to Rhomobile&nbsp;"+r['available']+"/"+r['seats']+"&nbsp;devices available"
68
+ $('#license').html(license_text);
69
+ $('#license_info').html(license_footer);
48
70
  }
49
- else{
50
- adapters += "<tr><td colspan='2'><a href='#sources/"+value+"/"+user+"/"+doctype+"/"+client_id+"'>"+ value + "</a></td></tr>"
71
+ },
72
+ error: function(resp){
73
+ if(resp.status == 422){
74
+ new App.Views.Index()
51
75
  }
52
- })
53
- $('tr.remove-tr-user').remove();
54
- $('#source-table tr:last').after(adapters);
55
- }
56
- else{
57
- var license_text = "Licensed to &nbsp;" + resp["licensee"] +
58
- "&nbsp;on&nbsp;" + resp["issued"] + ", available&nbsp;" +
59
- resp["available"] + "&nbsp;out of&nbsp;" +
60
- resp['seats'] + "&nbsp;devices"
61
- var license_footer = "Licensed to Rhomobile&nbsp;"+resp['available']+"/"+resp['seats']+"&nbsp;devices available"
62
- $('#license').html(license_text);
63
- $('#license_info').html(license_footer);
64
- }
76
+ $('#docalert')[0].innerHTML = resp.responseText;
77
+ $('#docalert').css('display','block');
78
+ }
79
+ })
65
80
  },
66
81
 
67
82
  list_source_docs: function(source_id,user_id){
68
83
  var session = new Session();
69
84
  $.ajax({
70
- type: 'POST',
71
- url: '/api/source/list_source_docs',
72
- data: {api_token : session.getApiKey, source_id : source_id, user_id : user_id},
85
+ type: 'GET',
86
+ url: '/rc/v1/users/' + user_id + '/sources/' + source_id + '/docnames',
87
+ beforeSend: function (HttpRequest) {
88
+ HttpRequest.setRequestHeader("X-RhoConnect-API-TOKEN", session.getApiKey());
89
+ },
73
90
  success: function(resp){
74
91
  var r = JSON.parse(resp)
75
92
  var docs = "";
@@ -92,9 +109,11 @@ var Source = Backbone.Model.extend({
92
109
  get_source_params: function(source_id,user_id){
93
110
  var session = new Session();
94
111
  $.ajax({
95
- type: 'POST',
96
- url: '/api/source/get_source_params',
97
- data: {api_token : session.getApiKey, source_id : source_id, user : user_id},
112
+ type: 'GET',
113
+ url: '/rc/v1/sources/' + source_id,
114
+ beforeSend: function (HttpRequest) {
115
+ HttpRequest.setRequestHeader("X-RhoConnect-API-TOKEN", session.getApiKey());
116
+ },
98
117
  success: function(resp){
99
118
  var r = JSON.parse(resp)
100
119
  var params = "";
@@ -13,9 +13,11 @@ var User = Backbone.Model.extend({
13
13
  get_users: function(tble_name){
14
14
  var tble_name = tble_name;
15
15
  $.ajax({
16
- type: 'POST',
17
- url: '/api/list_users',
18
- data: {api_token : this.get('api_token')},
16
+ type: 'GET',
17
+ url: '/rc/v1/users',
18
+ beforeSend: function (HttpRequest) {
19
+ HttpRequest.setRequestHeader("X-RhoConnect-API-TOKEN", session.getApiKey());
20
+ },
19
21
  success: function(resp){
20
22
  var r = JSON.parse(resp)
21
23
  data = ""
@@ -48,8 +50,11 @@ var User = Backbone.Model.extend({
48
50
  var password = $('#new-password').val();
49
51
  $.ajax({
50
52
  type: 'POST',
51
- url: '/api/create_user',
52
- data: {api_token : this.get('api_token'), attributes : {login : login, password : password}},
53
+ url: '/rc/v1/users',
54
+ data: {attributes : {login : login, password : password}},
55
+ beforeSend: function (HttpRequest) {
56
+ HttpRequest.setRequestHeader("X-RhoConnect-API-TOKEN", session.getApiKey());
57
+ },
53
58
  success: function(resp){
54
59
  router.navigate("users", true);
55
60
  },
@@ -66,9 +71,11 @@ var User = Backbone.Model.extend({
66
71
  delete_user: function(){
67
72
  if(confirm("Are you sure you want to delete this user?")){
68
73
  $.ajax({
69
- type: 'POST',
70
- url: '/api/user/delete_user',
71
- data: {api_token : this.get('api_token'), user_id : this.get('name')},
74
+ type: 'DELETE',
75
+ url: '/rc/v1/users/' + this.get('name'),
76
+ beforeSend: function (HttpRequest) {
77
+ HttpRequest.setRequestHeader("X-RhoConnect-API-TOKEN", session.getApiKey());
78
+ },
72
79
  success: function(resp){
73
80
  router.navigate("users", true);
74
81
  },
@@ -86,9 +93,11 @@ var User = Backbone.Model.extend({
86
93
 
87
94
  new_ping: function(){
88
95
  $.ajax({
89
- type: 'POST',
90
- url: '/api/source/list_sources',
91
- data: {api_token : this.get('api_token'), user_id : this.get('name')},
96
+ type: 'GET',
97
+ url: '/rc/v1/sources/type/user',
98
+ beforeSend: function (HttpRequest) {
99
+ HttpRequest.setRequestHeader("X-RhoConnect-API-TOKEN", session.getApiKey());
100
+ },
92
101
  success: function(resp){
93
102
  var r = JSON.parse(resp);
94
103
  source_list = "";
@@ -1295,7 +1295,8 @@
1295
1295
  'create': 'POST',
1296
1296
  'update': 'PUT',
1297
1297
  'delete': 'DELETE',
1298
- 'read': 'POST'
1298
+ // TODO: Rhoconnect override - we need to re-factor it properly
1299
+ 'read': 'GET'
1299
1300
  };
1300
1301
 
1301
1302
  // Override this function to change the manner in which Backbone persists
@@ -1338,7 +1339,10 @@
1338
1339
  params.contentType = 'application/x-www-form-urlencoded';
1339
1340
  params.data = params.data ? {model: params.data} : {};
1340
1341
  }
1341
-
1342
+ // TODO: Rhoconnect override - we need to re-factor it properly
1343
+ params.beforeSend = function(xhr) {
1344
+ xhr.setRequestHeader('X-RhoConnect-API-TOKEN', options.token);
1345
+ };
1342
1346
  // For older servers, emulate HTTP by mimicking the HTTP method with `_method`
1343
1347
  // And an `X-HTTP-Method-Override` header.
1344
1348
  if (Backbone.emulateHTTP) {
@@ -1346,6 +1350,8 @@
1346
1350
  if (Backbone.emulateJSON) params.data._method = type;
1347
1351
  params.type = 'POST';
1348
1352
  params.beforeSend = function(xhr) {
1353
+ // TODO: Rhoconnect override - we need to re-factor it properly
1354
+ xhr.setRequestHeader('X-RhoConnect-API-TOKEN', options.token);
1349
1355
  xhr.setRequestHeader('X-HTTP-Method-Override', type);
1350
1356
  };
1351
1357
  }
@@ -2,7 +2,14 @@
2
2
  <head>
3
3
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
4
4
  <title>RhoConnect Console</title>
5
-
5
+ <style type="text/css">
6
+ a.disable_link {
7
+ color:#CCC;
8
+ }
9
+ a.disable_link:hover {
10
+ color:#CCC;
11
+ }
12
+ </style>
6
13
  <link rel="stylesheet" href='public/bootstrap.css' type="text/css" media="screen" />
7
14
  <!-- <script language="javascript" type="text/javascript" src='application.js'></script> -->
8
15
  <script language="javascript" type="text/javascript" src='public/jquery-1.7.1.min.js'></script>
@@ -60,10 +67,9 @@
60
67
  <li id='info_home'><a href='#'>Home</a></li>
61
68
  <li id='server_doc'><a href='#docselect'>Server Doc</a></li>
62
69
  <li id='users'><a href='#users'>Users</a></li>
63
- <li id='settings'><a href='#settings'>Settings</a></li>
64
- <% if Rhoconnect.stats == true%>
65
- <li id='stats'><a href='#stats'>Statistics</a></li>
66
- <% end %>
70
+ <% link = Rhoconnect.stats == true ? '#stats' : '#'%>
71
+ <% l_klass = Rhoconnect.stats == true ? '' : 'disable_link'%>
72
+ <li id='stats'><a class='<%=l_klass%>' href='<%=link%>'>Statistics</a></li>
67
73
  </ul>
68
74
  </div>
69
75
  <div class='span12' style='margin-left:0'>
@@ -14,15 +14,18 @@ App.Views.Doc = Backbone.View.extend({
14
14
  dbkey = this.model.get('dbkey');
15
15
  var dt = 'hash';
16
16
  var data = [];
17
+ token = this.model.get('api_token');
17
18
  if(dbkey.search(/token/i) > 0 || dbkey.search(/size/i) > 0){
18
- dt = 'string';
19
19
  data = '';
20
20
  }
21
21
  var self = this;
22
22
  $.ajax({
23
23
  type: 'POST',
24
- url: '/api/source/set_db_doc',
25
- data: {api_token : this.model.get('api_token'), doc : dbkey, data : data, data_type : dt},
24
+ url: '/rc/v1/store/' + dbkey,
25
+ data: {data : data},
26
+ beforeSend: function (HttpRequest) {
27
+ HttpRequest.setRequestHeader("X-RhoConnect-API-TOKEN", token);
28
+ },
26
29
  success: function(){
27
30
  data = "<tr><th colspan=3><h3 style='display:inline'>Data</h3><div class='pull-right'>" +
28
31
  "<a class='btn btn-danger'>clear document</a></div></th></tr>" +
@@ -46,11 +49,6 @@ App.Views.Doc = Backbone.View.extend({
46
49
  $('#secondary-nav').css('display','block');
47
50
  out = "<div class='page-header well'><h2>Document&nbsp;"+dbkey+"</h2></div>";
48
51
  out += "<div id='docalert' class='alert alert-error' style='display:none'></div>";
49
- out += "<form class='form-horizontal' action='#doc/upload?#{@back_params}' method='post' enctype='multipart/form-data'>";
50
- out += "<input type='hidden' name='doc' value='"+dbkey+"'/>";
51
- out += "<input type='text' name='string' value='' placeholder='Upload token string' class='input-xlarge'/>";
52
- out += "<input type='submit' value='Submit' class='btn btn-primary' style='margin-left:10px'>";
53
- out += "</form>";
54
52
  out += "<form 'string_s' class='form-horizontal'>";
55
53
  out += "<input type='text' name='data' value='' class='input-xlarge' placeholder='Upload string'/>";
56
54
  out += "<input type='submit' value='Submit' class='btn btn-primary' style='margin-left:10px'>";