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.
- data/CHANGELOG.md +24 -5
- data/Gemfile +2 -2
- data/Gemfile.lock +20 -20
- data/bench/benchapp/Gemfile +17 -20
- data/bench/benchapp/config.ru +2 -2
- data/bench/benchapp/settings/settings.yml +3 -3
- data/bench/blobapp/Gemfile +16 -13
- data/bench/blobapp/config.ru +2 -2
- data/bench/blobapp/settings/settings.yml +5 -3
- data/bench/lib/bench.rb +35 -32
- data/bench/lib/bench/session.rb +9 -1
- data/bench/scripts/blob_cud_script.rb +13 -17
- data/bench/scripts/cud_script.rb +11 -12
- data/bench/scripts/helpers.rb +5 -7
- data/bench/scripts/query_md_script.rb +18 -12
- data/bench/scripts/query_only_script.rb +19 -11
- data/bench/scripts/query_script.rb +17 -13
- data/bench/scripts/test_query_script.rb +46 -17
- data/bench/scripts/test_source_script.rb +7 -7
- data/commands/commands/dtach_commands/dtach_install.rb +44 -16
- data/commands/commands/rhoconnect/spec.rb +13 -9
- data/commands/commands/rhoconnect/version.rb +6 -0
- data/commands/execute.rb +10 -6
- data/doc/deploying.txt +75 -13
- data/doc/install.txt +3 -3
- data/doc/push-client-setup.txt +1 -1
- data/doc/rest-api.txt +4 -23
- data/doc/rhoconnect-redis-stack.txt +26 -7
- data/doc/settings.txt +9 -3
- data/examples/simple/Gemfile +3 -1
- data/examples/simple/application.rb +5 -0
- data/examples/simple/config.ru +3 -2
- data/examples/simple/my_server.rb +14 -0
- data/examples/simple/settings/settings.yml +1 -0
- data/generators/templates/application/Gemfile +4 -4
- data/generators/templates/application/application.rb +4 -0
- data/generators/templates/application/settings/settings.yml +4 -1
- data/installer/unix-like/create_texts.rb +39 -1
- data/installer/unix-like/rho_connect_install_constants.rb +1 -1
- data/installer/utils/package_upload/repos.rake +7 -5
- data/lib/rhoconnect.rb +3 -2
- data/lib/rhoconnect/api/app/ans_login.rb +3 -0
- data/lib/rhoconnect/api/app/bulk_data.rb +6 -0
- data/lib/rhoconnect/api/{source → app}/fast_delete.rb +1 -1
- data/lib/rhoconnect/api/{source → app}/fast_insert.rb +2 -2
- data/lib/rhoconnect/api/{source → app}/fast_update.rb +2 -2
- data/lib/rhoconnect/api/app/login.rb +5 -0
- data/lib/rhoconnect/api/{source → app}/push_deletes.rb +1 -1
- data/lib/rhoconnect/api/{source → app}/push_objects.rb +1 -1
- data/lib/rhoconnect/api/app/query.rb +4 -0
- data/lib/rhoconnect/api/app/queue_updates.rb +94 -0
- data/lib/rhoconnect/api/app/search.rb +4 -0
- data/lib/rhoconnect/api/client/client_get_db_doc.rb +5 -0
- data/lib/rhoconnect/api/client/client_set_db_doc.rb +8 -0
- data/lib/rhoconnect/api/client/create.rb +7 -0
- data/lib/rhoconnect/api/client/get_client_params.rb +2 -1
- data/lib/rhoconnect/api/client/list_client_docs.rb +2 -1
- data/lib/rhoconnect/api/client/register.rb +12 -0
- data/lib/rhoconnect/api/client/reset.rb +5 -0
- data/lib/rhoconnect/api/{source → readstate}/set_refresh_time.rb +2 -1
- data/lib/rhoconnect/api/source/get_source_params.rb +3 -2
- data/lib/rhoconnect/api/source/list_sources.rb +2 -1
- data/lib/rhoconnect/api/source/update_source_params.rb +3 -3
- data/lib/rhoconnect/api/store/get_db_doc.rb +4 -0
- data/lib/rhoconnect/api/store/set_db_doc.rb +7 -0
- data/lib/rhoconnect/api/system/get_adapter.rb +4 -0
- data/lib/rhoconnect/api/{admin → system}/get_license_info.rb +2 -1
- data/lib/rhoconnect/api/system/login.rb +15 -0
- data/lib/rhoconnect/api/{admin → system}/reset.rb +3 -2
- data/lib/rhoconnect/api/system/save_adapter.rb +4 -0
- data/lib/rhoconnect/api/{admin → system}/stats.rb +2 -1
- data/lib/rhoconnect/api/user/create_user.rb +2 -2
- data/lib/rhoconnect/api/user/delete_client.rb +6 -0
- data/lib/rhoconnect/api/user/delete_user.rb +2 -1
- data/lib/rhoconnect/api/user/list_clients.rb +4 -0
- data/lib/rhoconnect/api/user/list_source_docs.rb +11 -0
- data/lib/rhoconnect/api/user/list_users.rb +1 -1
- data/lib/rhoconnect/api/user/ping.rb +7 -0
- data/lib/rhoconnect/api/user/show_user.rb +3 -0
- data/lib/rhoconnect/api/user/update_user.rb +3 -2
- data/lib/rhoconnect/api/user/user_get_db_doc.rb +5 -0
- data/lib/rhoconnect/api/user/user_set_db_doc.rb +10 -0
- data/lib/rhoconnect/app.rb +12 -2
- data/lib/rhoconnect/async.rb +6 -10
- data/lib/rhoconnect/bulk_data/bulk_data.rb +4 -4
- data/lib/rhoconnect/client.rb +10 -9
- data/lib/rhoconnect/client_sync.rb +24 -19
- data/lib/rhoconnect/document.rb +18 -4
- data/lib/rhoconnect/graph_helper.rb +4 -2
- data/lib/rhoconnect/jobs/bulk_data_job.rb +1 -1
- data/lib/rhoconnect/jobs/ping_job.rb +39 -29
- data/lib/rhoconnect/middleware/admin_user.rb +23 -0
- data/lib/rhoconnect/middleware/body_content_type_parser.rb +35 -0
- data/lib/rhoconnect/{cors.rb → middleware/cors.rb} +1 -0
- data/lib/rhoconnect/middleware/current_app.rb +16 -0
- data/lib/rhoconnect/middleware/current_request.rb +16 -0
- data/lib/rhoconnect/middleware/current_user.rb +17 -0
- data/lib/rhoconnect/middleware/helpers.rb +105 -0
- data/lib/rhoconnect/middleware/login_required.rb +22 -0
- data/lib/rhoconnect/{stats/middleware.rb → middleware/stats.rb} +5 -3
- data/lib/rhoconnect/middleware/x_domain_session_wrapper.rb +58 -0
- data/lib/rhoconnect/ping.rb +1 -0
- data/lib/rhoconnect/ping/apple.rb +18 -16
- data/lib/rhoconnect/ping/blackberry.rb +9 -9
- data/lib/rhoconnect/ping/rhoconnect_push.rb +45 -0
- data/lib/rhoconnect/server.rb +98 -91
- data/lib/rhoconnect/source.rb +5 -1
- data/lib/rhoconnect/source_sync.rb +4 -3
- data/lib/rhoconnect/stats/record.rb +15 -15
- data/lib/rhoconnect/store.rb +253 -75
- data/lib/rhoconnect/tasks.rb +3 -3
- data/lib/rhoconnect/version.rb +1 -1
- data/lib/rhoconnect/web-console/controllers/admins.js +1 -14
- data/lib/rhoconnect/web-console/models/adapter.js +18 -8
- data/lib/rhoconnect/web-console/models/client.js +15 -9
- data/lib/rhoconnect/web-console/models/doc.js +7 -11
- data/lib/rhoconnect/web-console/models/session.js +5 -2
- data/lib/rhoconnect/web-console/models/source.js +55 -36
- data/lib/rhoconnect/web-console/models/user.js +20 -11
- data/lib/rhoconnect/web-console/public/backbone.js +8 -2
- data/lib/rhoconnect/web-console/templates/index.erb +11 -5
- data/lib/rhoconnect/web-console/views/doc.js +6 -8
- data/lib/rhoconnect/web-console/views/edit_user.js +6 -3
- data/lib/rhoconnect/web-console/views/home.js +98 -25
- data/lib/rhoconnect/web-console/views/index.js +1 -1
- data/lib/rhoconnect/web-console/views/new_ping.js +6 -3
- data/lib/rhoconnect/web-console/views/server_doc.js +12 -4
- data/lib/rhoconnect/web-console/views/show_device.js +6 -3
- data/rhoconnect.gemspec +1 -2
- data/spec/api/{source → app}/fast_delete_spec.rb +4 -4
- data/spec/api/{source → app}/fast_insert_spec.rb +4 -4
- data/spec/api/{source → app}/fast_update_spec.rb +22 -6
- data/spec/api/{source → app}/push_deletes_spec.rb +2 -2
- data/spec/api/app/push_objects_spec.rb +45 -0
- data/spec/api/client/client_get_db_doc_spec.rb +31 -0
- data/spec/api/client/client_set_db_doc_spec.rb +14 -0
- data/spec/api/client/get_client_params_spec.rb +3 -2
- data/spec/api/client/list_client_docs_spec.rb +2 -2
- data/spec/api/{source → readstate}/set_refresh_time_spec.rb +15 -9
- data/spec/api/source/get_source_params_spec.rb +3 -2
- data/spec/api/source/list_sources_spec.rb +3 -9
- data/spec/api/source/update_source_params_spec.rb +4 -4
- data/spec/api/store/get_db_doc_spec.rb +32 -0
- data/spec/api/store/set_db_doc_spec.rb +43 -0
- data/spec/api/system/adapter_spec.rb +33 -0
- data/spec/api/{admin → system}/get_license_info_spec.rb +2 -5
- data/spec/api/{admin/get_api_token_spec.rb → system/login_spec.rb} +4 -11
- data/spec/api/{admin → system}/reset_spec.rb +2 -2
- data/spec/api/{admin → system}/stats_spec.rb +19 -13
- data/spec/api/user/create_user_spec.rb +15 -8
- data/spec/api/{client → user}/delete_client_spec.rb +3 -4
- data/spec/api/user/delete_user_spec.rb +33 -4
- data/spec/api/user/list_clients_spec.rb +30 -0
- data/spec/api/user/list_source_docs_spec.rb +35 -0
- data/spec/api/user/list_users_spec.rb +5 -6
- data/spec/api/{client → user}/ping_spec.rb +4 -6
- data/spec/api/user/show_user_spec.rb +14 -0
- data/spec/api/user/update_user_spec.rb +28 -10
- data/spec/api/user/user_get_db_doc_spec.rb +16 -0
- data/spec/api/user/user_set_db_doc_spec.rb +41 -0
- data/spec/apps/rhotestapp/application.rb +4 -0
- data/spec/apps/rhotestapp/settings/settings.yml +3 -1
- data/spec/bulk_data/bulk_data_spec.rb +13 -0
- data/spec/client_sync_spec.rb +41 -59
- data/spec/document_spec.rb +23 -0
- data/spec/javascripts/doc_view_spec.js +1 -1
- data/spec/javascripts/home_view_spec.js +10 -5
- data/spec/javascripts/index_view_spec.js +1 -1
- data/spec/jobs/ping_job_spec.rb +26 -0
- data/spec/perf/store_perf_spec.rb +1 -1
- data/spec/ping/android_spec.rb +0 -7
- data/spec/ping/apple_spec.rb +7 -0
- data/spec/ping/blackberry_spec.rb +10 -0
- data/spec/ping/rhoconnect_push_spec.rb +58 -0
- data/spec/server/cors_spec.rb +1 -1
- data/spec/server/server_spec.rb +152 -104
- data/spec/{stats/middleware_spec.rb → server/stats_spec.rb} +4 -5
- data/spec/server/x_domain_session_wrapper_spec.rb +3 -3
- data/spec/source_spec.rb +2 -2
- data/spec/source_sync_spec.rb +2 -0
- data/spec/spec_helper.rb +17 -3
- data/spec/stats/record_spec.rb +18 -19
- data/spec/store_spec.rb +51 -26
- data/spec/support/shared_examples.rb +4 -0
- data/spec/sync_states_spec.rb +2 -2
- metadata +104 -88
- data/bench/benchapp/Gemfile.lock +0 -87
- data/bench/blobapp/Gemfile.lock +0 -107
- data/bench/lib/testdata/5-data.txt +0 -8
- data/doc/release.txt +0 -41
- data/lib/rhoconnect/api/admin/get_api_token.rb +0 -14
- data/lib/rhoconnect/api/admin/login.rb +0 -6
- data/lib/rhoconnect/api/application/bulk_data.rb +0 -7
- data/lib/rhoconnect/api/application/clientcreate.rb +0 -8
- data/lib/rhoconnect/api/application/clientlogin.rb +0 -6
- data/lib/rhoconnect/api/application/clientregister.rb +0 -13
- data/lib/rhoconnect/api/application/clientreset.rb +0 -6
- data/lib/rhoconnect/api/application/query.rb +0 -7
- data/lib/rhoconnect/api/application/queue_updates.rb +0 -20
- data/lib/rhoconnect/api/application/search.rb +0 -6
- data/lib/rhoconnect/api/client/create_client.rb +0 -3
- data/lib/rhoconnect/api/client/delete_client.rb +0 -5
- data/lib/rhoconnect/api/client/list_clients.rb +0 -3
- data/lib/rhoconnect/api/client/ping.rb +0 -7
- data/lib/rhoconnect/api/source/get_adapter.rb +0 -3
- data/lib/rhoconnect/api/source/get_db_doc.rb +0 -7
- data/lib/rhoconnect/api/source/list_source_docs.rb +0 -10
- data/lib/rhoconnect/api/source/save_adapter.rb +0 -3
- data/lib/rhoconnect/api/source/set_db_doc.rb +0 -10
- data/lib/rhoconnect/api/source/upload_file.rb +0 -4
- data/lib/rhoconnect/body_content_type_parser.rb +0 -32
- data/lib/rhoconnect/x_domain_session_wrapper.rb +0 -53
- data/spec/api/admin/api_token_spec.rb +0 -13
- data/spec/api/client/create_client_spec.rb +0 -13
- data/spec/api/client/list_clients_spec.rb +0 -22
- data/spec/api/source/adapter_spec.rb +0 -29
- data/spec/api/source/get_db_doc_spec.rb +0 -21
- data/spec/api/source/list_source_docs_spec.rb +0 -25
- data/spec/api/source/push_objects_spec.rb +0 -27
- data/spec/api/source/set_db_doc_spec.rb +0 -32
- data/spec/api/source/upload_file_spec.rb +0 -26
data/lib/rhoconnect/version.rb
CHANGED
@@ -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: '/
|
19
|
-
data: {
|
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: '
|
38
|
-
url: '/
|
39
|
-
|
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
|
-
|
42
|
-
|
43
|
-
|
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: '
|
16
|
-
url: '/
|
17
|
-
|
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: '
|
40
|
-
url: '/
|
41
|
-
|
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: '
|
64
|
-
url: '/
|
65
|
-
|
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
|
-
'
|
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
|
-
|
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: '
|
39
|
-
url: '/
|
40
|
-
|
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: '/
|
26
|
-
|
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
|
-
|
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
|
-
|
33
|
-
|
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
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
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 " + r["licensee"] +
|
64
|
+
" on " + r["issued"] + ", available " +
|
65
|
+
r["available"] + " out of " +
|
66
|
+
r['seats'] + " devices"
|
67
|
+
var license_footer = "Licensed to Rhomobile "+r['available']+"/"+r['seats']+" devices available"
|
68
|
+
$('#license').html(license_text);
|
69
|
+
$('#license_info').html(license_footer);
|
48
70
|
}
|
49
|
-
|
50
|
-
|
71
|
+
},
|
72
|
+
error: function(resp){
|
73
|
+
if(resp.status == 422){
|
74
|
+
new App.Views.Index()
|
51
75
|
}
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
}
|
56
|
-
else{
|
57
|
-
var license_text = "Licensed to " + resp["licensee"] +
|
58
|
-
" on " + resp["issued"] + ", available " +
|
59
|
-
resp["available"] + " out of " +
|
60
|
-
resp['seats'] + " devices"
|
61
|
-
var license_footer = "Licensed to Rhomobile "+resp['available']+"/"+resp['seats']+" 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: '
|
71
|
-
url: '/
|
72
|
-
|
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: '
|
96
|
-
url: '/
|
97
|
-
|
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: '
|
17
|
-
url: '/
|
18
|
-
|
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: '/
|
52
|
-
data: {
|
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: '
|
70
|
-
url: '/
|
71
|
-
|
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: '
|
90
|
-
url: '/
|
91
|
-
|
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
|
-
|
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
|
-
|
64
|
-
<%
|
65
|
-
|
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: '/
|
25
|
-
data: {
|
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 "+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'>";
|