-
Notifications
You must be signed in to change notification settings - Fork 237
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
116 changed files
with
33,512 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
# logs and symlinks | ||
rholog.txt | ||
rholog-* | ||
sim-* | ||
|
||
# build output | ||
bin/ | ||
public/api/generated/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
require 'yaml' | ||
|
||
unless File.exists? "build.yml" | ||
puts "Cannot find build.yml" | ||
exit 1 | ||
end | ||
|
||
|
||
$app_config = YAML::load_file("build.yml") | ||
$app_path = File.expand_path(File.dirname(__FILE__)) | ||
|
||
if ENV["RHO_HOME"].nil? | ||
if $app_config["sdk"] | ||
rakefilepath = File.join(File.expand_path($app_config['sdk']), 'Rakefile') | ||
else | ||
begin | ||
rakefilepath = `get-rhodes-info --rhodes-path`.chomp | ||
rakefilepath = File.join(rakefilepath, "Rakefile") | ||
rescue | ||
rakefilepath = "" | ||
end | ||
end | ||
else | ||
rakefilepath = "#{ENV["RHO_HOME"]}/Rakefile" | ||
end | ||
|
||
unless File.exists? rakefilepath | ||
puts "\nCannot find your Rhodes gem or source path: #{rakefilepath}" | ||
puts "\nIf you have the sdk on your path or have installed the gem this" | ||
puts "can be resolved by running 'set-rhodes-sdk'" | ||
puts "\nYou can also set this manually by modifying your build.yml or" | ||
puts "setting the environment variable RHO_HOME" | ||
exit 1 | ||
end | ||
|
||
load rakefilepath | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
<script type="text/javascript"> | ||
(function () { | ||
var jasmineEnv = jasmine.getEnv(); | ||
jasmineEnv.updateInterval = 1000; | ||
|
||
var htmlReporter = new jasmine.HtmlReporter(); | ||
jasmineEnv.addReporter(htmlReporter); | ||
|
||
jasmineEnv.specFilter = function (spec) { | ||
return htmlReporter.specFilter(spec); | ||
}; | ||
|
||
var currentWindowOnload = window.onload; | ||
window.onload = function() { | ||
if (currentWindowOnload) { | ||
currentWindowOnload(); | ||
} | ||
execJasmine(); | ||
}; | ||
|
||
function execJasmine() { | ||
jasmineEnv.execute(); | ||
} | ||
})(); | ||
</script> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" | ||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | ||
<html xmlns="http://www.w3.org/1999/xhtml"> | ||
<head> | ||
<title>BluetoothChat</title> | ||
<meta name="viewport" content="initial-scale=1.0, width=device-width"/> | ||
<% if System::get_property('platform') == 'WINDOWS' && System::get_property('webview_framework') !~ /^WEBKIT/ %> | ||
<% elsif System::get_property('platform') != 'Blackberry' || System::get_property('webview_framework') =~ /^WEBKIT/ %> | ||
<script src="/public/jquery/jquery-1.6.4.min.js" type="text/javascript"></script> | ||
<script src="/public/jquery/jquery.json-2.3.min.js" type="text/javascript"></script> | ||
|
||
<link rel="stylesheet" type="text/css" href="/public/jasmine/jasmine.css"> | ||
<script type="text/javascript" src="/public/jasmine/jasmine.js"></script> | ||
<script type="text/javascript" src="/public/jasmine/jasmine-html.js"></script> | ||
|
||
<script type="text/javascript" charset="utf-8" src="/public/api/generated/rhoapi.js"></script> | ||
<script type="text/javascript" charset="utf-8" src="/public/api/generated/rhoapi-modules.js"></script> | ||
|
||
<script type="text/javascript" charset="utf-8" src="/public/api/spec-rhoapi.js"></script> | ||
|
||
<% end %> | ||
</head> | ||
<body onUnload="onUnload();"> | ||
<%= @content %> | ||
</body> | ||
</html> |
72 changes: 72 additions & 0 deletions
72
spec/javascript_api_spec/app/RhoJavascriptApi/rho_javascript_api_controller.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
require 'rho/rhocontroller' | ||
require 'helpers/application_helper' | ||
require 'helpers/browser_helper' | ||
require 'json' | ||
|
||
class RhoJavascriptApiController < Rho::RhoController | ||
include ApplicationHelper | ||
include BrowserHelper | ||
|
||
LOG_TAG = 'JSAPI' | ||
RHO_ID_PARAM = '__rhoID' | ||
COMMAND_REGEXP = /^command_proxy_/ | ||
|
||
@layout = 'RhoJavascriptApi/layout' | ||
|
||
def command_handler | ||
RhoLog.info LOG_TAG, "command_handler: #{@params}" | ||
|
||
data = Rho::JSON.parse(@params['data']) | ||
|
||
# data['method'] contain it as 'Rho.ModuleName.methodName' or 'Rho:ModuleName.methodName' | ||
id = data['id'] | ||
module_name = data['method'][0 .. data['method'].rindex('.') - 1].gsub(/\:/, '.') | ||
method_name = data['method'][data['method'].rindex('.') + 1 .. -1].gsub(/is_(.*)/, '\1?') | ||
method_args = data['args'] | ||
|
||
begin | ||
if module_name.nil? | ||
err_message = "Undefined module: #{data['module']}" | ||
RhoLog.error LOG_TAG, err_message | ||
raise ArgumentError, err_message | ||
end | ||
|
||
puts "method_args : #{method_args}" | ||
|
||
proxy_method = "command_proxy_#{module_name.gsub(/::|:|\./, '_')}_#{method_name}" | ||
res = self.send(proxy_method.to_sym(), module_name, method_name.to_sym(), method_args) | ||
jsonrpc = { 'jsonrpc' => '2.0', 'id' => id, 'result' => res } | ||
rescue Exception => e | ||
@response['status'] = 500 | ||
@response['message'] = e.message | ||
res = {'code' => -1, 'message' => e.message, 'stack' => e.backtrace} | ||
jsonrpc = { 'jsonrpc' => '2.0', 'id' => id, 'error' => res } | ||
end | ||
|
||
jsonrpc = ::JSON.generate(jsonrpc) | ||
render :string => "#{jsonrpc}" | ||
end | ||
|
||
def command_proxy_Rho_Barcode_testMethod(module_name, method_name, method_args) | ||
result = ''; | ||
method_args.each { |arg| result.concat arg.to_s } | ||
{'value' => result, 'type' => 'string'} | ||
end | ||
|
||
def command_proxy_Rho_Barcode_getDefaultID(module_name, method_name, method_args) | ||
{'value' => '00001', 'type' => 'instance', 'class' => 'Rho.Barcode'} | ||
end | ||
|
||
def command_proxy_Rho_Barcode_enumerate(module_name, method_name, method_args) | ||
{'value' => '00001 00002 00003', 'type' => 'instance', 'class' => 'Rho.Barcode'} | ||
end | ||
|
||
def command_proxy_Rho_Barcode_getProperties(module_name, method_name, method_args) | ||
{'value' => { 'resolution' => '1024x768' }, 'type' => 'object'} | ||
end | ||
|
||
def command_proxy_Rho_Barcode_setProperties(module_name, method_name, method_args) | ||
{'value' => { 'resolution' => method_args[0]['resolution'] }, 'type' => 'object'} | ||
end | ||
|
||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,121 @@ | ||
require 'rho' | ||
require 'rho/rhocontroller' | ||
require 'rho/rhoerror' | ||
require 'helpers/browser_helper' | ||
|
||
class SettingsController < Rho::RhoController | ||
include BrowserHelper | ||
|
||
def index | ||
@msg = @params['msg'] | ||
render | ||
end | ||
|
||
|
||
def login | ||
@msg = @params['msg'] | ||
render :action => :login | ||
end | ||
|
||
def login_callback | ||
errCode = @params['error_code'].to_i | ||
if errCode == 0 | ||
# run sync if we were successful | ||
WebView.navigate Rho::RhoConfig.options_path | ||
SyncEngine.dosync | ||
else | ||
if errCode == Rho::RhoError::ERR_CUSTOMSYNCSERVER | ||
@msg = @params['error_message'] | ||
end | ||
|
||
if !@msg || @msg.length == 0 | ||
@msg = Rho::RhoError.new(errCode).message | ||
end | ||
|
||
WebView.navigate ( url_for :action => :login, :query => {:msg => @msg} ) | ||
end | ||
end | ||
|
||
def do_login | ||
if @params['login'] and @params['password'] | ||
begin | ||
SyncEngine.login(@params['login'], @params['password'], (url_for :action => :login_callback) ) | ||
@response['headers']['Wait-Page'] = 'true' | ||
render :action => :wait | ||
rescue Rho::RhoError => e | ||
@msg = e.message | ||
render :action => :login | ||
end | ||
else | ||
@msg = Rho::RhoError.err_message(Rho::RhoError::ERR_UNATHORIZED) unless @msg && @msg.length > 0 | ||
render :action => :login | ||
end | ||
end | ||
|
||
def logout | ||
SyncEngine.logout | ||
@msg = "You have been logged out." | ||
render :action => :login | ||
end | ||
|
||
def reset | ||
render :action => :reset | ||
end | ||
|
||
def do_reset | ||
Rhom::Rhom.database_full_reset | ||
SyncEngine.dosync | ||
@msg = "Database has been reset." | ||
redirect :action => :index, :query => {:msg => @msg} | ||
end | ||
|
||
def do_sync | ||
SyncEngine.dosync | ||
@msg = "Sync has been triggered." | ||
redirect :action => :index, :query => {:msg => @msg} | ||
end | ||
|
||
def sync_notify | ||
status = @params['status'] ? @params['status'] : "" | ||
|
||
# un-comment to show a debug status pop-up | ||
#Alert.show_status( "Status", "#{@params['source_name']} : #{status}", Rho::RhoMessages.get_message('hide')) | ||
|
||
if status == "in_progress" | ||
# do nothing | ||
elsif status == "complete" | ||
WebView.navigate Rho::RhoConfig.start_path if @params['sync_type'] != 'bulk' | ||
elsif status == "error" | ||
|
||
if @params['server_errors'] && @params['server_errors']['create-error'] | ||
SyncEngine.on_sync_create_error( | ||
@params['source_name'], @params['server_errors']['create-error'].keys, :delete ) | ||
end | ||
|
||
if @params['server_errors'] && @params['server_errors']['update-error'] | ||
SyncEngine.on_sync_update_error( | ||
@params['source_name'], @params['server_errors']['update-error'], :retry ) | ||
end | ||
|
||
err_code = @params['error_code'].to_i | ||
rho_error = Rho::RhoError.new(err_code) | ||
|
||
@msg = @params['error_message'] if err_code == Rho::RhoError::ERR_CUSTOMSYNCSERVER | ||
@msg = rho_error.message unless @msg && @msg.length > 0 | ||
|
||
if rho_error.unknown_client?( @params['error_message'] ) | ||
Rhom::Rhom.database_client_reset | ||
SyncEngine.dosync | ||
elsif err_code == Rho::RhoError::ERR_UNATHORIZED | ||
WebView.navigate( | ||
url_for :action => :login, | ||
:query => {:msg => "Server credentials are expired"} ) | ||
elsif err_code != Rho::RhoError::ERR_CUSTOMSYNCSERVER | ||
WebView.navigate( url_for :action => :err_sync, :query => { :msg => @msg } ) | ||
end | ||
end | ||
end | ||
|
||
|
||
|
||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
<div data-role="page"> | ||
|
||
<div data-role="header" data-position="inline"> | ||
<h1>Sync error</h1> | ||
</div> | ||
|
||
<div data-role="content"> | ||
<div class="error-message"><%= @params['msg'] %></div> | ||
</div> | ||
|
||
</div> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
<div data-role="page"> | ||
|
||
|
||
<div data-role="header" data-position="inline"> | ||
<h1>Home</h1> | ||
<% if SyncEngine::logged_in > 0 %> | ||
<a href="<%= url_for :action => :do_sync %>" class="ui-btn-left" data-icon="refresh">Sync</a> | ||
<a href="<%= url_for :action => :logout %>" class="ui-btn-right" data-icon="star">Logout</a> | ||
<% else %> | ||
<a href="<%= url_for :action => :login %>" class="ui-btn-right" data-icon="star">Login</a> | ||
<% end %> | ||
</div> | ||
|
||
|
||
<div data-role="content"> | ||
<ul data-role="listview"> | ||
<li><a href="#">Add Links Here...</a></li> | ||
</ul> | ||
</div> | ||
|
||
</div> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
<div data-role="page"> | ||
|
||
<div data-role="header" data-position="inline"> | ||
<h1>Settings</h1> | ||
</div> | ||
|
||
<div data-role="content"> | ||
<ul data-role="listview"> | ||
<% if @msg %> | ||
<li class="error-message"><%= @msg %></li> | ||
<% end %> | ||
|
||
|
||
<li> | ||
<div class="itemLabel"> | ||
<span class="title">Client ID:</span> | ||
</div> | ||
<div class="itemValue"> | ||
<span class="clientID"><%= Rhom::Rhom::client_id %></span> | ||
</div> | ||
</li> | ||
|
||
<li><a href="<%= url_for :action => :reset %>">Reset Database</a></li> | ||
<li><a href="<%= url_for :action => :do_sync %>">Perform Sync</a></li> | ||
<% if SyncEngine::logged_in > 0 %> | ||
<li><a href="<%= url_for :action => :logout %>">Logout</a></li> | ||
<% else %> | ||
<li><a href="<%= url_for :action => :login %>">Login</a></li> | ||
<% end %> | ||
|
||
</ul> | ||
</div> | ||
</div> |
Oops, something went wrong.