vines-web 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. data/Gemfile +3 -0
  2. data/LICENSE +19 -0
  3. data/README.md +37 -0
  4. data/Rakefile +28 -0
  5. data/app/assets/javascripts/application.coffee +19 -0
  6. data/app/assets/javascripts/chat.coffee +362 -0
  7. data/app/assets/javascripts/lib/button.coffee +25 -0
  8. data/app/assets/javascripts/lib/contact.coffee +32 -0
  9. data/app/assets/javascripts/lib/filter.coffee +49 -0
  10. data/app/assets/javascripts/lib/index.coffee +1 -0
  11. data/app/assets/javascripts/lib/layout.coffee +30 -0
  12. data/app/assets/javascripts/lib/login.coffee +68 -0
  13. data/app/assets/javascripts/lib/logout.coffee +5 -0
  14. data/app/assets/javascripts/lib/navbar.coffee +84 -0
  15. data/app/assets/javascripts/lib/notification.coffee +14 -0
  16. data/app/assets/javascripts/lib/router.coffee +40 -0
  17. data/app/assets/javascripts/lib/session.coffee +229 -0
  18. data/app/assets/javascripts/lib/transfer.coffee +106 -0
  19. data/app/assets/javascripts/vendor/icons.js +110 -0
  20. data/app/assets/javascripts/vendor/index.js +1 -0
  21. data/app/assets/javascripts/vendor/jquery.js +4 -0
  22. data/app/assets/javascripts/vendor/raphael.js +6 -0
  23. data/app/assets/javascripts/vendor/strophe.js +1 -0
  24. data/app/assets/stylesheets/application.css +5 -0
  25. data/app/assets/stylesheets/base.scss +385 -0
  26. data/app/assets/stylesheets/chat.scss +144 -0
  27. data/app/assets/stylesheets/login.scss +68 -0
  28. data/bin/vines-web +63 -0
  29. data/config.ru +10 -0
  30. data/lib/vines/web/command/init.rb +34 -0
  31. data/lib/vines/web/command/install.rb +19 -0
  32. data/lib/vines/web/version.rb +5 -0
  33. data/lib/vines/web.rb +4 -0
  34. data/public/assets/application.css +598 -0
  35. data/public/assets/application.js +9 -0
  36. data/public/assets/lib.js +1 -0
  37. data/public/assets/vendor.js +8 -0
  38. data/public/images/dark-gray.png +0 -0
  39. data/public/images/default-user.png +0 -0
  40. data/public/images/light-gray.png +0 -0
  41. data/public/images/logo-large.png +0 -0
  42. data/public/images/logo-small.png +0 -0
  43. data/public/images/white.png +0 -0
  44. data/public/index.html +13 -0
  45. data/vines-web.gemspec +27 -0
  46. metadata +207 -0
@@ -0,0 +1,68 @@
1
+ #login-page {
2
+ background: -moz-radial-gradient(rgba(26, 55, 98, 0.8), rgba(12, 26, 45, 0.8)), url(../images/dark-gray.png);
3
+ background: -ms-radial-gradient(center, 500px 500px, rgba(26, 55, 98, 0.8), rgba(12, 26, 45, 0.8)), url(../images/dark-gray.png);
4
+ background: -o-radial-gradient(rgba(26, 55, 98, 0.8), rgba(12, 26, 45, 0.8)), url(../images/dark-gray.png);
5
+ background: -webkit-radial-gradient(center, 500px 500px, rgba(26, 55, 98, 0.8), rgba(12, 26, 45, 0.8)), url(../images/dark-gray.png);
6
+ }
7
+ #login-page #container {
8
+ height: 100%;
9
+ width: 100%;
10
+ text-align: center;
11
+ }
12
+ #login-page #login-form {
13
+ margin: 0 auto;
14
+ position: relative;
15
+ width: 640px;
16
+ }
17
+ #login-page #login-form h1 {
18
+ background: url(../images/logo-large.png) no-repeat;
19
+ color: transparent;
20
+ height: 82px;
21
+ line-height: 1;
22
+ margin: 0 auto 40px auto;
23
+ text-shadow: none;
24
+ width: 245px;
25
+ }
26
+ #login-page #jid,
27
+ #login-page #password {
28
+ margin: 0 auto;
29
+ margin-bottom: 10px;
30
+ width: 240px;
31
+ display: block;
32
+ }
33
+ #login-page #icon {
34
+ position: absolute;
35
+ left: 90px;
36
+ top: 0px;
37
+ width: 100px;
38
+ height: 80px;
39
+ }
40
+ #login-page #login-form-controls {
41
+ background: rgba(0, 0, 0, 0.2);
42
+ border: 1px solid rgba(0, 0, 0, 0.1);
43
+ border-bottom: 1px solid rgba(255, 255, 255, 0.06);
44
+ border-radius: 5px;
45
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.1) inset;
46
+ margin: 0 auto;
47
+ padding: 20px;
48
+ }
49
+ #login-page #start {
50
+ width: 100px;
51
+ margin-left: 0;
52
+ margin-bottom: 0;
53
+ }
54
+ #login-page #start:active {
55
+ box-shadow: inset 0 1px 7px #0c1a2d;
56
+ }
57
+ #login-page input[type="submit"] {
58
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.8), inset 0 1px 1px rgba(255, 255, 255, 0.5);
59
+ }
60
+ #login-page #error {
61
+ background: rgba(255, 255, 255, 0.05);
62
+ border-radius: 3px;
63
+ color: #4693FF;
64
+ font-size: 10pt;
65
+ margin: 20px auto;
66
+ text-shadow: 0 1px 1px #000;
67
+ width: 250px;
68
+ }
data/bin/vines-web ADDED
@@ -0,0 +1,63 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'optparse'
4
+ require 'vines/web'
5
+
6
+ COMMANDS = %w[init install]
7
+
8
+ def parse(args)
9
+ options = {}
10
+ parser = OptionParser.new do |opts|
11
+ opts.banner = "Usage: vines-web [options] #{COMMANDS.join('|')}"
12
+
13
+ opts.separator ""
14
+ opts.separator "Common options:"
15
+
16
+ opts.on('-h', '--help', 'Show this message') do |help|
17
+ options[:help] = help
18
+ end
19
+
20
+ opts.on('-v', '--version', 'Show version') do |version|
21
+ options[:version] = version
22
+ end
23
+ end
24
+
25
+ begin
26
+ parser.parse!(args)
27
+ rescue
28
+ puts parser
29
+ exit(1)
30
+ end
31
+
32
+ if options[:version]
33
+ puts Vines::Web::VERSION
34
+ exit
35
+ end
36
+
37
+ if options[:help]
38
+ puts parser
39
+ exit
40
+ end
41
+
42
+ command = args.shift
43
+ unless COMMANDS.include?(command)
44
+ puts parser
45
+ exit(1)
46
+ end
47
+
48
+ options.tap do |opts|
49
+ opts[:args] = args
50
+ opts[:command] = command
51
+ end
52
+ end
53
+
54
+ opts = parse(ARGV)
55
+ command = Vines::Web::Command.const_get(opts[:command].capitalize).new
56
+ begin
57
+ command.run(opts)
58
+ rescue SystemExit
59
+ # do nothing
60
+ rescue Exception => e
61
+ puts e.message
62
+ exit(1)
63
+ end
data/config.ru ADDED
@@ -0,0 +1,10 @@
1
+ require 'sprockets'
2
+
3
+ use Rack::Static, urls: ['/images'], root: 'public', index: 'index.html'
4
+
5
+ map '/assets' do
6
+ environment = Sprockets::Environment.new
7
+ environment.append_path 'app/assets/javascripts'
8
+ environment.append_path 'app/assets/stylesheets'
9
+ run environment
10
+ end
@@ -0,0 +1,34 @@
1
+ module Vines
2
+ module Web
3
+ module Command
4
+ class Init
5
+ def run(opts)
6
+ raise 'vines-web init <domain>' unless opts[:args].size == 1
7
+ raise 'vines gem required: gem install vines' unless vines_installed?
8
+
9
+ domain = opts[:args].first.downcase
10
+ base = File.expand_path(domain)
11
+
12
+ `vines init #{domain}` unless File.exists?(base)
13
+
14
+ web = File.expand_path('../../../../../public', __FILE__)
15
+ FileUtils.cp_r(Dir.glob("#{web}/*"), "#{domain}/web")
16
+
17
+ puts "Web assets installed: #{domain}"
18
+ puts "Run 'cd #{domain} && vines start' to begin"
19
+
20
+ `type open && open http://localhost:5280/`
21
+ end
22
+
23
+ private
24
+
25
+ def vines_installed?
26
+ require 'vines/version'
27
+ true
28
+ rescue LoadError
29
+ false
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,19 @@
1
+ module Vines
2
+ module Web
3
+ module Command
4
+ class Install
5
+ def run(opts)
6
+ raise 'vines-web install <dir>' unless opts[:args].size == 1
7
+
8
+ dir = opts[:args].first.downcase
9
+ dir = File.expand_path(dir)
10
+ Dir.mkdir(dir) unless File.exists?(dir)
11
+
12
+ web = File.expand_path("../../../../../public", __FILE__)
13
+ FileUtils.cp_r(Dir.glob("#{web}/*"), dir)
14
+ puts "Web assets installed: #{dir}"
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,5 @@
1
+ module Vines
2
+ module Web
3
+ VERSION = '0.1.0'
4
+ end
5
+ end
data/lib/vines/web.rb ADDED
@@ -0,0 +1,4 @@
1
+ require 'fileutils'
2
+ require 'vines/web/version'
3
+ require 'vines/web/command/init'
4
+ require 'vines/web/command/install'