sinatra-hexacta 1.2.7 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7808918a2de90229a10a87b1d303e8a87243168d3cabc72bce7d2f129502f2a2
4
- data.tar.gz: a197ed23204c5c149ae6c611a05d4fd74c97ee9bc627b0a8d28395425e0f38bf
3
+ metadata.gz: 22856830fec4131abdb9b5038fc1e6862c053e11e1e0e47a90d238340512a678
4
+ data.tar.gz: 02adea101a40283d74e4f557b813db101e971fb02331e59d802bcfe2775164ad
5
5
  SHA512:
6
- metadata.gz: e38f8a4ab30b98ed8f45057add10149b86d2f789d9b60e53a45a8352187048413d84b70e6542eebb3716651fce8b03413e766c57d50995ea0e129fb60f300a6a
7
- data.tar.gz: 68da29820ec7eafed1783c32b63410f79ca6642ef0cf775bc7eed11ce29cc73951de82e9794565feab8b937c29a14b87018c53580790c21afc890a25e65e4c74
6
+ metadata.gz: a62841ea84938b005e46aa7fe7b78900f525cf09a00f3c33b9cb000406401a6b85ff8f2a0c5acab54880b05f27f7d75a473cc9c36f8ae12ad5e3939645537489
7
+ data.tar.gz: c5af975ac9d455609eca202196decc3dd5efa9e703e9a5f8cec16ac6491e3adb6b7bfaab9226953cb3ec19de964c3b3ae34495edd7e4643987f5eb5bde24df96
@@ -0,0 +1,22 @@
1
+ # encoding: utf-8
2
+ module Sinatra
3
+ module CrossOriginHandler
4
+ extend Hexacta
5
+
6
+ def enable_cross_origin
7
+ p "Enabling cross origin..."
8
+
9
+ configure do
10
+ enable :cross_origin
11
+ end
12
+
13
+ before do
14
+ response.headers['Access-Control-Allow-Origin'] = 'http://*.hexacta.com https://*.hexacta.com'
15
+ end
16
+
17
+ end
18
+
19
+ end
20
+ register CrossOriginHandler
21
+ end
22
+
@@ -6,3 +6,4 @@ require_relative 'reports'
6
6
  require_relative 'processes'
7
7
  require_relative 'constants'
8
8
  require_relative 'user_configurations'
9
+ require_relative 'cross_origin'
@@ -5,6 +5,52 @@ module Sinatra
5
5
 
6
6
  def enable_reports
7
7
  p "Enabling reports..."
8
+
9
+ #In order to enable file streaming
10
+ helpers do
11
+ def slim(template, options = {}, locals = {}, &block)
12
+ # Slim calls the option :streaming, but Sinatra has a #stream method
13
+ # so we also support the :stream option.
14
+ options[:streaming] ||= options.delete(:stream)
15
+
16
+ # We are not streaming. Call super implementation and
17
+ # just ensure that the @_out_buf is restored afterwards.
18
+ unless options[:streaming]
19
+ old = @_out_buf
20
+ begin
21
+ return super
22
+ ensure
23
+ @_out_buf = old
24
+ end
25
+ end
26
+
27
+ # We use the Temple generator without preamble and postamble
28
+ # which is suitable for streaming.
29
+ options[:generator] = Temple::Generator
30
+
31
+ # We are already streaming, continue!
32
+ return super if @_out_buf.is_a? Sinatra::Helpers::Stream
33
+
34
+ # Create a new stream
35
+ stream do |out|
36
+ @_out_buf = out
37
+
38
+ if options[:layout] == false
39
+ # No layout given, start rendering template
40
+ super
41
+ else
42
+ # Layout given
43
+ layout = options[:layout] == nil || options[:layout] == true ? :layout : options[:layout]
44
+
45
+ # Invert layout and template rendering order
46
+ super layout, options.merge(layout: false), locals do
47
+ super(template, options.merge(layout: false), locals, &block)
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
53
+
8
54
  before '/reports/*' do
9
55
  error(403) if authenticated(User).permissions.empty?
10
56
  end
@@ -18,7 +64,7 @@ module Sinatra
18
64
  date ||= Date.today
19
65
  headers "Content-Disposition" => "attachment;filename=#{report_name}.#{date}.xls",
20
66
  "Content-Type" => "application/octet-stream"
21
- slim "reports/#{report_name}".to_sym, locals: { :date => date }, :layout => false
67
+ slim "reports/#{report_name}".to_sym, locals: { :date => date }, :stream => true, :layout => false
22
68
  end
23
69
  end
24
70
 
@@ -14,7 +14,6 @@ module Sinatra
14
14
  p "Setting up user configurations directory..."
15
15
  setup_dir("/app/views/#{Hexacta::GEM_FILE_DIR}/user_configurations")
16
16
  copy_all_files("/lib/sinatra/views/user_configurations","/app/views/#{Hexacta::GEM_FILE_DIR}/user_configurations")
17
-
18
17
  end
19
18
 
20
19
  helpers UserConfigurationHelper
@@ -1,5 +1,6 @@
1
1
  # encoding: utf-8
2
2
  require 'sinatra/base'
3
+ require 'sinatra/cross_origin'
3
4
  require 'fileutils'
4
5
  require 'sucker_punch'
5
6
  require 'rufus-scheduler'
@@ -11,7 +11,7 @@ body.darkmode #header {
11
11
  background-color: rgba(40,40,40,0.9) !important;
12
12
  }
13
13
 
14
- #header .top-menu > li > a {
14
+ #header .top-menu > li > a, .actions > li > a > i, .actions > a > i {
15
15
  color: #047bf8;
16
16
  }
17
17
 
@@ -122,13 +122,8 @@ body {
122
122
  position: absolute;
123
123
  top: 0px;
124
124
  min-height: 700px;
125
- margin-top: 76px;
126
- width: 150px;
127
- -webkit-transform: translate3d(0, 0, 0);
128
- transform: translate3d(0, 0, 0);
129
- opacity: 1;
130
- filter: alpha(opacity=100);
131
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.15);
125
+ margin-top: 75px;
126
+ width: 200px;
132
127
  }
133
128
 
134
129
  .container .block-header h2 {
@@ -338,33 +333,6 @@ t-view:after {
338
333
  border-bottom: 0px !important;
339
334
  }
340
335
 
341
- @media (min-width: 1200px) {
342
- body #content {
343
- padding-left: 150px;
344
- }
345
- }
346
-
347
- @media (min-width: 1200px) {
348
- body #content > .container {
349
- width: calc(100% - 30px);
350
- }
351
- }
352
-
353
- @media (min-width: 1200px) {
354
- #header {
355
- padding-left: 15px;
356
- }
357
-
358
- #menu-trigger {
359
- display: none;
360
- }
361
- }
362
-
363
- body:not(.sw-toggled) #sidebar {
364
- box-shadow: none;
365
- }
366
-
367
-
368
336
  .lv-item span, .pt-inner .pti-header > h2 {
369
337
  color: #334152;
370
338
  font-weight: 700;
@@ -402,8 +370,8 @@ body:not(.sw-toggled) #sidebar {
402
370
 
403
371
  .modal .modal-header {
404
372
  padding: 23px 26px;
405
- border-bottom: 1px solid rgba(0,0,0,0.05);
406
- margin-bottom: 20px;
373
+ border-bottom: 0px;
374
+ margin-bottom: 0px;
407
375
  }
408
376
 
409
377
  .modal .modal-footer {
@@ -440,13 +408,12 @@ body:not(.sw-toggled) #sidebar {
440
408
  background: transparent;
441
409
  }
442
410
 
443
- .preloader {
411
+ #loader .preloader {
444
412
  background: rgba(255,255,255,0.5);
445
413
  border-radius: 100px;
446
- left: 8px !important;
414
+ left: 67px !important;
447
415
  top: 6px !important;
448
416
  }
449
-
450
417
  /* ----- Pegaso related ----- */
451
418
 
452
419
  .idx {
@@ -257,10 +257,6 @@ body {
257
257
  .profile-view {
258
258
  }
259
259
 
260
- a {
261
- color: white !important;
262
- }
263
-
264
260
  .listview:not(.lv-lg):not(.lv-message) .lv-item {
265
261
  border-bottom: 0px !important;
266
262
  }
@@ -0,0 +1,15 @@
1
+ class View {
2
+
3
+ static get(url,params,destination){
4
+ $(destination).html('<div class="text-center" style="padding:100px;"><div class="preloader pls-teal bgm-none"><svg class="pl-circular" viewBox="25 25 50 50"><circle class="plc-path" cx="50" cy="50" r="20"></circle></svg></div><h5>Cargando...</h5></div>');
5
+ $.ajax({
6
+ url: url,
7
+ type: 'GET',
8
+ data: params
9
+ }).done(function(result) {
10
+ $(destination).html(result);
11
+ }).error(function(result) {
12
+ $(destination).html('<div class="lv-item p-20 bgm-red m-b-5 animated fadeIn"><div class="media"><div class="pull-left"><i class="zmdi zmdi-hc-3x zmdi-alert-octagon c-white"></i></div><div class="media-body"><div class="lv-title c-white">Algo salió mal</div><small class="lv-small c-white">Los administradores acaban de ser informados de este error, ni bien tengan una solución se te notificará. Disculpá las molestias.</small></div></div></div>');
13
+ });
14
+ }
15
+ }
@@ -8,7 +8,9 @@
8
8
  - chosen = nil
9
9
  - unless defined? clazz
10
10
  - clazz = nil
11
-
11
+ -unless defined? readonly
12
+ -readonly = false
13
+
12
14
  -if required
13
15
  .form-group.has-success
14
16
  label #{placeholder}
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sinatra-hexacta
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.7
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marco Zanger
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-26 00:00:00.000000000 Z
11
+ date: 2021-03-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sucker_punch
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: 0.0.4
69
+ - !ruby/object:Gem::Dependency
70
+ name: sinatra-cross_origin
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.3.1
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 0.3.1
69
83
  description: A gem to support general functionality accross all apps
70
84
  email: mzanger@hexacta.com
71
85
  executables: []
@@ -84,6 +98,7 @@ files:
84
98
  - lib/sinatra/extensions/notification.rb
85
99
  - lib/sinatra/extensions/processmanager.rb
86
100
  - lib/sinatra/handlers/constants.rb
101
+ - lib/sinatra/handlers/cross_origin.rb
87
102
  - lib/sinatra/handlers/errors.rb
88
103
  - lib/sinatra/handlers/init.rb
89
104
  - lib/sinatra/handlers/notifications.rb
@@ -134,6 +149,7 @@ files:
134
149
  - lib/sinatra/public/fonts/roboto/Roboto-Thin-webfont.ttf
135
150
  - lib/sinatra/public/fonts/roboto/Roboto-Thin-webfont.woff
136
151
  - lib/sinatra/public/img/finder.png
152
+ - lib/sinatra/public/img/lightadmin.white.png
137
153
  - lib/sinatra/public/img/metronic.jpg
138
154
  - lib/sinatra/public/img/noimage.jpg
139
155
  - lib/sinatra/public/img/select.png
@@ -142,6 +158,7 @@ files:
142
158
  - lib/sinatra/public/js/app.js
143
159
  - lib/sinatra/public/js/finder.js
144
160
  - lib/sinatra/public/js/process.js
161
+ - lib/sinatra/public/js/view.js
145
162
  - lib/sinatra/public/vendors/animate.css/animate.min.css
146
163
  - lib/sinatra/public/vendors/bootstrap-validator/validator.js
147
164
  - lib/sinatra/public/vendors/bootstrap-year-calendar/bootstrap-year-calendar.es.js