You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@whimsical.apache.org by Sam Ruby <ru...@apache.org> on 2015/12/18 14:31:15 UTC
[whimsy.git] [1/1] Commit b7deb67: initial version of checkmail button
Commit b7deb6714d445bcd6d4ed44cd18d68c9e6d016b4:
initial version of checkmail button
Branch: refs/heads/secmail
Author: Sam Ruby <ru...@intertwingly.net>
Committer: Sam Ruby <ru...@intertwingly.net>
Pusher: rubys <ru...@apache.org>
------------------------------------------------------------
www/secmail/Gemfile | + -
www/secmail/Rakefile | ++++++
www/secmail/server.rb | +++++
www/secmail/views/actions/check-mail.json.rb | ++++
www/secmail/views/index.js.rb | +++++++++ --
------------------------------------------------------------
28 changes: 25 additions, 3 deletions.
------------------------------------------------------------
diff --git a/www/secmail/Gemfile b/www/secmail/Gemfile
index 7acaa05..75bdfd5 100644
--- a/www/secmail/Gemfile
+++ b/www/secmail/Gemfile
@@ -6,7 +6,7 @@ gem 'zip'
gem 'whimsy-asf'
gem 'sinatra'
gem 'sanitize'
-gem 'wunderbar', '~> 1.0.10'
+gem 'wunderbar', '~> 1.0.11'
gem 'ruby2js', '~> 2.0.11'
gem 'execjs'
diff --git a/www/secmail/Rakefile b/www/secmail/Rakefile
index 33e2fc8..fb0d600 100644
--- a/www/secmail/Rakefile
+++ b/www/secmail/Rakefile
@@ -33,6 +33,12 @@ end
desc 'WebServer that provides an interface to explore emails'
task :server => :bundle do
ENV['RACK_ENV']='production'
+
+ require 'wunderbar'
+ module Wunderbar::Listen
+ EXCLUDE = [ARCHIVE, 'public/assets']
+ end
+
require 'wunderbar/listen'
end
diff --git a/www/secmail/server.rb b/www/secmail/server.rb
index 26b7a6c..a03f32b 100644
--- a/www/secmail/server.rb
+++ b/www/secmail/server.rb
@@ -31,6 +31,11 @@
_html :message
end
+# posted actions
+post '/actions/:file' do
+ _json :"actions/#{params[:file]}"
+end
+
# mark a single message as deleted
delete %r{^/(\d+)/(\w+)/$} do |month, hash|
success = false
diff --git a/www/secmail/views/actions/check-mail.json.rb b/www/secmail/views/actions/check-mail.json.rb
new file mode 100644
index 0000000..625d557
--- /dev/null
+++ b/www/secmail/views/actions/check-mail.json.rb
@@ -0,0 +1,4 @@
+Mailbox.fetch @mbox
+Mailbox.new(@mbox).parse
+
+{success: true}
diff --git a/www/secmail/views/index.js.rb b/www/secmail/views/index.js.rb
index c9bd1da..a94e0da 100644
--- a/www/secmail/views/index.js.rb
+++ b/www/secmail/views/index.js.rb
@@ -7,6 +7,7 @@ def initialize
@selected = nil
@messages = []
@undoStack = []
+ @checking = false
end
def render
@@ -45,7 +46,7 @@ def render
end
_button.btn.btn_success 'check for new mail', onClick: self.refresh,
- disabled: true
+ disabled: @checking
unless @undoStack.empty?
_button.btn.btn_info 'undo delete', onClick: self.undo
@@ -81,7 +82,6 @@ def componentDidUpdate()
# fetch a month's worth of messages
def fetch_month()
- console.log @nextmbox
HTTP.get("/#{@nextmbox}", :json) do |response|
# update latest mbox
@nextmbox = response.mbox
@@ -121,6 +121,13 @@ def undo(event)
end
end
+ def refresh(event)
+ @checking = true
+ HTTP.post "actions/check-mail", mbox: @@mbox do |response|
+ location.reload()
+ end
+ end
+
# handle keyboard events
def keydown(event)
if event.keyCode == 38 # up