thecore_ui_commons 2.1.8 → 2.1.13

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: 3fd40fd31c7bf5f241d78e288df907c7edc2e936338724ce973ffefbafb1f902
4
- data.tar.gz: d12cadec8bdd5e5c5f6fe527c8a05fe08f03786b8f89416931a565c4b738a2c7
3
+ metadata.gz: 8e4ef3e895b0a8a8245042531114171c1a721e60a7fba2ad98cbebc8531a2938
4
+ data.tar.gz: 6e742cc4502f25b3de6d78c49ad831066843d70d013f76f15e98e1f9984947a3
5
5
  SHA512:
6
- metadata.gz: 14d108470825afc9750a84fd52294fbbc0e91a8490706d809d8023a61c7438175876a980036d1fed7545c5213459f868e734f8ba5f98330db778bfb0d96fbfa9
7
- data.tar.gz: 17ace0cb545b88c4cc5bc2782b9ba644283530aa228a690470c0b8af1a27e1804b10480d86f5f36bda1129bb008702ae6390c8e710eb17dbbf2a9365b4aeb3fd
6
+ metadata.gz: e2807aa12180045e572799d89a286dd9bb51f344855f286ed05a87135367f92228c0193a58c4b68bdfb5c76c887373b6fb174058ac6c0ca095fdab63b26a3154
7
+ data.tar.gz: ab43258f4bfcde3a1d4f01a8d6da881d13dd0d0c3ac720c3f6f20468c239a3a7f2993660913d9b5075012636ab8a601247d4d1a25c37113e0d31aaf35180f445
@@ -5,6 +5,4 @@
5
5
  //= require bootstrap
6
6
  //= require ie
7
7
  //= require timer
8
- //= require trix/dist/trix
9
- //= require @rails/actiontext
10
- //= require_tree .
8
+ //= require apexcharts
@@ -16,3 +16,7 @@
16
16
  *= require_self
17
17
  */
18
18
  @import 'actiontext.scss';
19
+
20
+ #new_user div {
21
+ margin-bottom: .5em;
22
+ }
@@ -1,26 +1,24 @@
1
1
  <div class="col-md-4 col-md-offset-4">
2
2
  <%= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| %>
3
3
  <div class="field">
4
- <%= f.label :login %><br />
5
- <%= f.text_field :login, autofocus: true, :class => "form-control" %>
4
+ <%= f.text_field :login, autofocus: true, :class => "form-control", placeholder: t("devise.sessions.new.login") %>
6
5
  </div>
7
6
 
8
7
  <div class="field">
9
- <%= f.label :password %><br />
10
- <%= f.password_field :password, autocomplete: "off", :class => "form-control" %>
8
+ <%= f.password_field :password, autocomplete: "off", :class => "form-control", placeholder: t("devise.sessions.new.password") %>
11
9
  </div>
12
10
 
13
11
  <% if devise_mapping.rememberable? -%>
14
- <div class="checkbox">
15
- <label>
16
- <%= f.check_box :remember_me %>
17
- <%=t "activerecord.attributes.user.remember_me" %>
18
- </label>
12
+ <div class="form-check">
13
+ <%= f.check_box :remember_me, class: "form-check-input" %>
14
+ <label class="form-check-label" for="defaultCheck1">
15
+ <%=t "activerecord.attributes.user.remember_me" %>
16
+ </label>
19
17
  </div>
20
18
  <% end -%>
21
19
 
22
20
  <div class="actions">
23
- <%= f.submit t("devise.sessions.new.sign_in"), :class => "btn btn-warning" %>
21
+ <%= f.submit t("devise.sessions.new.sign_in"), class: "btn" %>
24
22
 
25
23
  <%= render "devise/shared/links" %>
26
24
  </div>
@@ -12,8 +12,8 @@
12
12
 
13
13
  <%# Getting all the assets needed by thecore from all the gems %>
14
14
  <%= get_asset_tags_for("thecore")%>
15
- <%= stylesheet_link_tag('application', media: 'all', 'data-turbolinks-track' => true) if ::Rails.application.assets.find_asset("application.css")%>
16
- <%= javascript_include_tag('application', 'data-turbolinks-track' => true) if ::Rails.application.assets.find_asset("application.js") %>
15
+ <%= stylesheet_link_tag('application', media: 'all', 'data-turbolinks-track' => true) if (Rails.application.assets || ::Sprockets::Railtie.build_environment(Rails.application)).find_asset("application.css")%>
16
+ <%= javascript_include_tag('application', 'data-turbolinks-track' => true) if (Rails.application.assets || ::Sprockets::Railtie.build_environment(Rails.application)).find_asset("application.js") %>
17
17
 
18
18
  <%= favicon_link_tag 'apple-touch-icon.png', rel: 'apple-touch-icon', sizes: "180x180" %>
19
19
  <%= favicon_link_tag 'favicon-32x32.png', rel: 'icon', sizes: "32x32" %>
@@ -0,0 +1,45 @@
1
+ require 'date'
2
+ module Helpers
3
+ module ChartsHelper
4
+ def candlestick_data
5
+ @acc = rand(6570..6650)
6
+ 60.times.map {|i| [Date.today - 60 + i, ohlc] }.to_h
7
+ end
8
+
9
+ def ohlc
10
+ open = @acc + rand(-20..20)
11
+ high = open + rand(0..100)
12
+ low = open - rand(0..100)
13
+ @acc = close = open + rand(-((high-low)/3)..((high-low)/2))
14
+ [open, high, low, close]
15
+ end
16
+
17
+ ### HIGH PRIORITY CHARTS
18
+ def charts_high_pie_demo
19
+ pie_chart([{name: "Series A", data: 25},{name: "Series B", data: 100},{name: "Series C", data: 200},{name: "Series D", data: 125}], legend: "left")
20
+ end
21
+
22
+ def charts_high_candlestick_demo
23
+ candlestick_options = {plot_options: {candlestick: {colors: {upward: '#3C90EB',downward: '#DF7D46'}}}}
24
+ candlestick_chart(candlestick_data, candlestick_options)
25
+ end
26
+
27
+ ### MEDIUM PRIORITY CHARTS
28
+ def charts_medium_radar_demo
29
+ radar_series = [{name: "What it should be",data: { "Code review"=>10, "Issues"=>5, "Pull request"=>25, "Commits"=>60 }},{name: "What it really is",data: { "Code review"=>1, "Issues"=>3, "Pull request"=>7, "Commits"=>89 }}]
30
+ radar_chart(radar_series,{title: "GitHub Radar", markers: {size: 4}, theme: 'palette4'})
31
+ end
32
+
33
+ def charts_medium_bubble_demo
34
+ bubble_series = (1..4).map do |n|{name: "Bubble#{n}",data: 20.times.map{[rand(750),rand(10..60),rand(70)]}}end
35
+ bubble_chart(bubble_series, data_labels: false, theme: 'palette6')
36
+ end
37
+
38
+ def charts_medium_range_demo
39
+ range_bar_series = [{name: "Series A",data: {'A' => [1, 5],'B' => [4, 6],'C' => [5, 8],'D' => [3, 11]}}, {name: "Series B",data: {'A' => [2, 6],'B' => [1, 3],'C' => [7, 8],'D' => [5, 9]}}]
40
+ range_bar_chart(range_bar_series, theme: 'palette3')
41
+ end
42
+ end
43
+ end
44
+
45
+ ActiveSupport.on_load(:action_view) { include Helpers::ChartsHelper }
@@ -18,6 +18,9 @@ Rails.application.configure do
18
18
  config.assets.precompile += %w( thecore_ui_commons/thecore.css )
19
19
  # Very important, needed for trix (i.e.)
20
20
  config.assets.paths << root.join('node_modules')
21
+ # To store D3 Data
22
+ # https://medium.com/@hguotblog/use-d3-js-for-data-visualisation-with-rails-69b4f030e366
23
+ config.assets.paths << root.join('data')
21
24
  # Putting also a reference on the assets foldes in the paths, so to have the
22
25
  # stylesheet and javascript hack work proprly in layout
23
26
  # config.assets.paths <<
@@ -17,4 +17,6 @@ module Helpers
17
17
  base.first.split("/")[-2]
18
18
  end
19
19
  end
20
- end
20
+ end
21
+
22
+ ActiveSupport.on_load(:action_view) { include Helpers::ThecoreUiCommonsHelper }
@@ -1,33 +1,49 @@
1
- # Files in the config/locales directory are used for internationalization
2
- # and are automatically loaded by Rails. If you want to use locales other
3
- # than English, add the necessary files in this directory.
4
- #
5
- # To use the locales, use `I18n.t`:
6
- #
7
- # I18n.t 'hello'
8
- #
9
- # In views, this is aliased to just `t`:
10
- #
11
- # <%= t('hello') %>
12
- #
13
- # To use a different locale, set it with `I18n.locale`:
14
- #
15
- # I18n.locale = :es
16
- #
17
- # This would use the information in config/locales/es.yml.
18
- #
19
- # To learn more, please read the Rails Internationalization guide
20
- # available at http://guides.rubyonrails.org/i18n.html.
21
-
22
1
  en:
23
- current_user: Current user
24
- hello: "Hello world"
25
- dashboard: "Dashboard"
26
- contact: "Contact"
27
- manage: "Manage"
28
- sign_out: "Sign Out"
2
+ current_user: Current User
3
+ devise:
4
+ sessions:
5
+ new:
6
+ login: Login
7
+ password: Password
8
+ hello: Hello World
9
+ dashboard: Dashboard
10
+ contact: Help us
11
+ manage: Manage
12
+ sign_out: Sign Out
13
+ advanced: Advanced
14
+ main_records: Registries
15
+ errors:
16
+ messages:
17
+ invalid: Invalid characters
18
+ tiered_times:
19
+ dd:
20
+ zero: "0 Days"
21
+ one: "%{count} Day"
22
+ other: "%{count} Days"
23
+ hh:
24
+ zero: "0 Hours"
25
+ one: "%{count} Hour"
26
+ other: "%{count} Hours"
27
+ mm:
28
+ zero: "0 Minutes"
29
+ one: "%{count} Minute"
30
+ other: "%{count} Minutes"
31
+ ss:
32
+ zero: "0 Seconds"
33
+ one: "%{count} Second"
34
+ other: "%{count} Seconds"
29
35
  admin:
30
36
  links:
31
37
  label: Links
38
+ tools:
39
+ label: Tools
32
40
  settings:
41
+ label: Settings
33
42
  advanced: Advanced
43
+ registries: Registries
44
+ operations: Operations
45
+ actions:
46
+ charts:
47
+ menu: Analisys
48
+ title: Charts
49
+ breadcrumb: Charts
@@ -7,6 +7,11 @@ it:
7
7
  sign_out: "Uscita"
8
8
  advanced: Impostazioni
9
9
  main_records: Anagrafiche
10
+ devise:
11
+ sessions:
12
+ new:
13
+ login: Login
14
+ password: Password
10
15
  errors:
11
16
  messages:
12
17
  invalid: contiene caratteri invalidi
@@ -1,4 +1,43 @@
1
1
  class AddUsernameToUser < ActiveRecord::Migration[6.0]
2
+ class User < ApplicationRecord
3
+ # Include default devise modules. Others available are:
4
+ # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
5
+ devise :database_authenticatable, :trackable, :validatable
6
+ # TODO: If it works, these must be added to another gem one which deal
7
+ # more with sessions
8
+ # devise :database_authenticatable
9
+ # devise :rememberable
10
+ # devise :trackable
11
+ # devise :validatable
12
+ # devise :timeoutable, timeout_in: 30.minutes
13
+ # REFERENCES
14
+ has_many :role_users, dependent: :destroy, inverse_of: :user
15
+ has_many :roles, through: :role_users, inverse_of: :users
16
+ # VALIDATIONS
17
+ validates :email, uniqueness: { case_sensitive: false }, presence: true, format: { with: /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i }
18
+ validates :password, presence: true, on: :create
19
+ validates :password_confirmation, presence: true, on: :create
20
+ validate :check_password_and_confirmation_equal
21
+ validates_each :admin do |record, attr, value|
22
+ # Don't want admin == false if the current user is the only admin
23
+ record.errors.add(attr, I18n.t("validation.errors.cannot_unadmin_last_admin")) if record.admin_changed? && record.admin_was == true && User.where(admin: true).count == 1
24
+ end
25
+
26
+ def display_name
27
+ email
28
+ end
29
+
30
+ def has_role? role
31
+ roles.include? role
32
+ end
33
+
34
+ protected
35
+
36
+ def check_password_and_confirmation_equal
37
+ errors.add(:password, I18n.t("validation.errors.password_and_confirm_must_be_the_same")) unless password == password_confirmation
38
+ end
39
+ end
40
+
2
41
  def change
3
42
  add_column :users, :username, :string
4
43
  add_index :users, :username
@@ -5,6 +5,8 @@ module ThecoreUiCommonsUser
5
5
 
6
6
  included do
7
7
  devise :database_authenticatable, :trackable, :validatable, :rememberable, :timeoutable, timeout_in: 30.minutes, authentication_keys: [:login]
8
+ validates :username, uniqueness: { case_sensitive: false }, presence: true, length: { in: 4..15 }
9
+ validates_format_of :username, with: /\A[a-zA-Z0-9]*\z/, on: :create, message: "can only contain letters and digits"
8
10
 
9
11
  attr_writer :login
10
12
 
@@ -13,7 +15,6 @@ module ThecoreUiCommonsUser
13
15
  end
14
16
  # Use login
15
17
  def self.find_first_by_auth_conditions(warden_conditions)
16
- puts "################################ VIENE USATO? #####################################################"
17
18
  conditions = warden_conditions.dup
18
19
  if login = conditions.delete(:login)
19
20
  where(conditions.to_h).where(["lower(username) = :value OR lower(email) = :value", { :value => login.downcase }]).first
@@ -1,9 +1,14 @@
1
- require 'thecore_backend_commons'
1
+ require 'thecore_background_jobs' # This brings backend commons also.
2
2
  # Rails
3
3
  require 'serviceworker-rails'
4
+ require "groupdate"
5
+ require "apexcharts"
4
6
 
5
7
  require 'concerns/thecore_ui_commons_user'
6
8
 
9
+ # require 'helpers/thecore_ui_commons_helper'
10
+ # require 'helpers/charts_helper'
11
+
7
12
  require "thecore_ui_commons/engine"
8
13
 
9
14
  module ThecoreUiCommons
@@ -1,10 +1,5 @@
1
- require 'helpers/thecore_ui_commons_helper'
2
1
  module ThecoreUiCommons
3
2
  class Engine < ::Rails::Engine
4
- initializer "thecore_ui_commons.view_helpers" do
5
- ActiveSupport.on_load(:action_view) { include Helpers::ThecoreUiCommonsHelper }
6
- end
7
-
8
3
  initializer 'thecore_ui_commons.add_to_migrations' do |app|
9
4
  unless app.root.to_s.match root.to_s
10
5
  # APPEND TO MAIN APP MIGRATIONS FROM THIS GEM
@@ -1,3 +1,3 @@
1
1
  module ThecoreUiCommons
2
- VERSION = '2.1.8'
2
+ VERSION = '2.1.13'
3
3
  end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: thecore_ui_commons
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.8
4
+ version: 2.1.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gabriele Tassoni
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-19 00:00:00.000000000 Z
11
+ date: 2020-08-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: thecore_backend_commons
14
+ name: thecore_background_jobs
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '2.2'
19
+ version: '2.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '2.2'
26
+ version: '2.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: serviceworker-rails
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -38,6 +38,34 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0.5'
41
+ - !ruby/object:Gem::Dependency
42
+ name: groupdate
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '5.0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '5.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: apexcharts
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.1'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0.1'
41
69
  description: Engine to serve configurations and rails module useful for all the UIs.
42
70
  email:
43
71
  - gabriele.tassoni@gmail.com
@@ -97,7 +125,9 @@ files:
97
125
  - app/views/layouts/mailer.html.erb
98
126
  - app/views/layouts/mailer.text.erb
99
127
  - app/views/layouts/thecore.html.erb
128
+ - config/initializers/charts_helper.rb
100
129
  - config/initializers/thecore_ui_commons_application_config.rb
130
+ - config/initializers/thecore_ui_commons_helper.rb
101
131
  - config/locales/en.ra_settings.yml
102
132
  - config/locales/en.simple_form.yml
103
133
  - config/locales/en.yml
@@ -105,11 +135,9 @@ files:
105
135
  - config/locales/it.simple_form.yml
106
136
  - config/locales/it.yml
107
137
  - config/routes.rb
108
- - db/migrate/20190920115550_create_action_text_tables.action_text.rb
109
138
  - db/migrate/20200515070620_add_username_to_user.rb
110
139
  - db/migrate/20200515132932_add_rememberable_to_user.rb
111
140
  - lib/concerns/thecore_ui_commons_user.rb
112
- - lib/helpers/thecore_ui_commons_helper.rb
113
141
  - lib/tasks/thecore_ui_commons_tasks.rake
114
142
  - lib/thecore_ui_commons.rb
115
143
  - lib/thecore_ui_commons/engine.rb
@@ -1,14 +0,0 @@
1
- # This migration comes from action_text (originally 20180528164100)
2
- class CreateActionTextTables < ActiveRecord::Migration[6.0]
3
- def change
4
- create_table :action_text_rich_texts do |t|
5
- t.string :name, null: false
6
- t.text :body, size: :long
7
- t.references :record, null: false, polymorphic: true, index: false
8
-
9
- t.timestamps
10
-
11
- t.index [ :record_type, :record_id, :name ], name: "index_action_text_rich_texts_uniqueness", unique: true
12
- end
13
- end
14
- end