sinatra-hexacta 1.2.6 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 45d80ce0e0132669ec6d45b9c750216f0e7c8155e012b991a66761880ff6ca8d
4
- data.tar.gz: 575459075130c4f03a2c11483006aed700af6ba1c7d52e8c97cb1e0438e75669
3
+ metadata.gz: 2f0b5543f96de1b88e37c6eaf7bc8cfcf61a3419fda741a9597f333a49f4ec1b
4
+ data.tar.gz: 4224a9d29c78106f70fcef411891a9d54efbe62025becd73201d0740198e4d20
5
5
  SHA512:
6
- metadata.gz: c2a4b2e7bfdac4c828e286ddfba6736604513a84eddcf32082a02f552fd3de0e60f7009d68393bc5ce0c1313625fe0b617dffebccc0f0426d7cb7e22e62bd5a4
7
- data.tar.gz: d1101956aea331d5ef3e41898332939aa21670211bf7c146ccd36ca24ab75e1f844c879d34e825adf77a55eb1481a84ecd8b036db930882441a28eb9c1238878
6
+ metadata.gz: e22aa655547b0c55ab14163e7043dbf4e4fee7d321d51e99ccc7823dff01cda2139df7fd7fc7b68d51f999453239fc199d7af663109ab32283d5069e1c1ab473
7
+ data.tar.gz: 885f0a1b6b4d3324217067cee4e976b25a967e7888b8ce5404c9a46c80c3e1faef444462bc409f1b85836f598d877b491633f1443cedca776858a47a3bd26d52
@@ -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
 
@@ -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 {
@@ -285,7 +280,7 @@ body {
285
280
  .footer-text .text, .actions > li > a:before,
286
281
  .actions > a:before, .pagination > li > a, .pagination > li > span,
287
282
  #header input[type="text"], #header .results, .dropdown.open .dropdown-menu,
288
- .modal .modal-content, .profile-view .pv-header > .pv-main, .pt-inner .pti-header, .ptih-title,
283
+ .modal .modal-content, .pt-inner .pti-header, .ptih-title,
289
284
  .card .tab-nav, .dash-widget-item {
290
285
  border-radius: 6px;
291
286
  }
@@ -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;
@@ -395,17 +363,57 @@ body:not(.sw-toggled) #sidebar {
395
363
  background-size: 100% 70%;
396
364
  }
397
365
 
366
+ .modal .modal-footer .btn-link {
367
+ font-weight: 700 !important;
368
+ color: #047bf8;
369
+ }
370
+
371
+ .modal .modal-header {
372
+ padding: 23px 26px;
373
+ border-bottom: 0px;
374
+ margin-bottom: 0px;
375
+ }
376
+
377
+ .modal .modal-footer {
378
+ border-top: 1px solid rgba(0,0,0,0.05);
379
+ }
380
+
381
+ .modal .modal-content {
382
+ box-shadow: 0 25px 65px rgba(15,24,33,0.29);
383
+ }
384
+
385
+ .modal-title {
386
+ font-weight: 700 !important;
387
+ }
388
+
389
+ .modal-backdrop {
390
+ background-color:#235a94;
391
+ }
392
+
393
+ .modal.fade .modal-dialog
394
+ {
395
+ -moz-transition: none !important;
396
+ -o-transition: none !important;
397
+ -webkit-transition: none !important;
398
+ transition: none !important;
399
+
400
+ -moz-transform: none !important;
401
+ -ms-transform: none !important;
402
+ -o-transform: none !important;
403
+ -webkit-transform: none !important;
404
+ transform: none !important;
405
+ }
406
+
398
407
  .form-control {
399
408
  background: transparent;
400
409
  }
401
410
 
402
- .preloader {
411
+ #loader .preloader {
403
412
  background: rgba(255,255,255,0.5);
404
413
  border-radius: 100px;
405
- left: 8px !important;
414
+ left: 67px !important;
406
415
  top: 6px !important;
407
416
  }
408
-
409
417
  /* ----- Pegaso related ----- */
410
418
 
411
419
  .idx {
@@ -421,4 +429,5 @@ body:not(.sw-toggled) #sidebar {
421
429
  font-size: 14pt;
422
430
  height: 38px;
423
431
  border-radius: 100px;
424
- padding-top: 9px;}
432
+ padding-top: 9px;
433
+ }
@@ -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.6
4
+ version: 1.3.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
@@ -134,6 +134,7 @@ files:
134
134
  - lib/sinatra/public/fonts/roboto/Roboto-Thin-webfont.ttf
135
135
  - lib/sinatra/public/fonts/roboto/Roboto-Thin-webfont.woff
136
136
  - lib/sinatra/public/img/finder.png
137
+ - lib/sinatra/public/img/lightadmin.white.png
137
138
  - lib/sinatra/public/img/metronic.jpg
138
139
  - lib/sinatra/public/img/noimage.jpg
139
140
  - lib/sinatra/public/img/select.png
@@ -142,6 +143,7 @@ files:
142
143
  - lib/sinatra/public/js/app.js
143
144
  - lib/sinatra/public/js/finder.js
144
145
  - lib/sinatra/public/js/process.js
146
+ - lib/sinatra/public/js/view.js
145
147
  - lib/sinatra/public/vendors/animate.css/animate.min.css
146
148
  - lib/sinatra/public/vendors/bootstrap-validator/validator.js
147
149
  - lib/sinatra/public/vendors/bootstrap-year-calendar/bootstrap-year-calendar.es.js