lesli_calendar 0.2.0 → 0.2.2

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.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/lesli_calendar/application.js +1 -4658
  3. data/app/assets/stylesheets/lesli_calendar/application.css +1 -604
  4. data/app/controllers/lesli_calendar/agendas_controller.rb +60 -0
  5. data/app/controllers/lesli_calendar/calendars_controller.rb +1 -1
  6. data/app/helpers/lesli_calendar/agendas_helper.rb +4 -0
  7. data/app/models/lesli_calendar/agenda.rb +5 -0
  8. data/app/models/lesli_calendar/calendar.rb +1 -0
  9. data/app/models/lesli_calendar/event.rb +3 -2
  10. data/app/services/lesli_calendar/calendar_service.rb +14 -2
  11. data/app/services/lesli_calendar/event_service.rb +57 -0
  12. data/app/views/lesli_calendar/agendas/edit.html.erb +10 -0
  13. data/app/views/lesli_calendar/agendas/index.html.erb +14 -0
  14. data/app/views/lesli_calendar/agendas/new.html.erb +9 -0
  15. data/app/views/lesli_calendar/agendas/show.html.erb +1 -0
  16. data/app/views/lesli_calendar/partials/_engine-navigation.html.erb +3 -2
  17. data/config/locales/translations.en.yml +2 -0
  18. data/config/locales/translations.es.yml +2 -0
  19. data/config/locales/translations.fr.yml +2 -0
  20. data/config/locales/translations.it.yml +2 -0
  21. data/config/locales/translations.pt.yml +2 -0
  22. data/config/routes.rb +3 -0
  23. data/db/migrate/v1.0/0301110110_create_lesli_calendar_events.rb +3 -3
  24. data/db/seed/development.rb +58 -9
  25. data/db/seed/seeds.json +83 -0
  26. data/db/seeds.rb +1 -1
  27. data/lib/lesli_calendar/version.rb +2 -2
  28. data/lib/scss/agenda.scss +101 -0
  29. data/lib/scss/application.scss +11 -0
  30. data/lib/scss/calendar.scss +9 -55
  31. data/lib/scss/dashboard.scss +31 -0
  32. data/lib/vue/application.js +9 -1
  33. data/lib/vue/apps/agendas/show.vue +71 -0
  34. data/lib/vue/apps/calendars/show.vue +26 -20
  35. data/lib/vue/apps/dashboards/show.vue +102 -0
  36. data/lib/vue/components/agenda.vue +75 -54
  37. data/lib/vue/components/calendar.vue +38 -5
  38. data/lib/vue/stores/calendar.js +3 -19
  39. data/lib/vue/stores/translations.json +10 -0
  40. metadata +15 -4
  41. data/app/views/lesli_calendar/calendars/_calendar.html.erb +0 -2
  42. data/app/views/lesli_calendar/calendars/_form.html.erb +0 -17
@@ -0,0 +1,60 @@
1
+ module LesliCalendar
2
+ class AgendasController < ApplicationController
3
+ before_action :set_agenda, only: %i[ show edit update destroy ]
4
+
5
+ # GET /agendas
6
+ def index
7
+ @agendas = Agenda.all
8
+ end
9
+
10
+ # GET /agendas/1
11
+ def show
12
+ end
13
+
14
+ # GET /agendas/new
15
+ def new
16
+ @agenda = Agenda.new
17
+ end
18
+
19
+ # GET /agendas/1/edit
20
+ def edit
21
+ end
22
+
23
+ # POST /agendas
24
+ def create
25
+ @agenda = Agenda.new(agenda_params)
26
+
27
+ if @agenda.save
28
+ redirect_to @agenda, notice: "Agenda was successfully created."
29
+ else
30
+ render :new, status: :unprocessable_entity
31
+ end
32
+ end
33
+
34
+ # PATCH/PUT /agendas/1
35
+ def update
36
+ if @agenda.update(agenda_params)
37
+ redirect_to @agenda, notice: "Agenda was successfully updated.", status: :see_other
38
+ else
39
+ render :edit, status: :unprocessable_entity
40
+ end
41
+ end
42
+
43
+ # DELETE /agendas/1
44
+ def destroy
45
+ @agenda.destroy
46
+ redirect_to agendas_url, notice: "Agenda was successfully destroyed.", status: :see_other
47
+ end
48
+
49
+ private
50
+ # Use callbacks to share common setup or constraints between actions.
51
+ def set_agenda
52
+ #@agenda = Agenda.find(params[:id])
53
+ end
54
+
55
+ # Only allow a list of trusted parameters through.
56
+ def agenda_params
57
+ params.fetch(:agenda, {})
58
+ end
59
+ end
60
+ end
@@ -55,7 +55,7 @@ module LesliCalendar
55
55
  def set_calendar
56
56
 
57
57
  if params[:id].blank? || params[:id] == "default"
58
- @calendar = CalendarService.new(current_user).find_default
58
+ @calendar = CalendarService.new(current_user,query).find_default
59
59
  elsif params[:id]
60
60
  @calendar = CalendarService.new(current_user).find(params[:id])
61
61
  end
@@ -0,0 +1,4 @@
1
+ module LesliCalendar
2
+ module AgendasHelper
3
+ end
4
+ end
@@ -0,0 +1,5 @@
1
+
2
+ module LesliCalendar
3
+ class Agenda < ApplicationRecord
4
+ end
5
+ end
@@ -1,5 +1,6 @@
1
1
  module LesliCalendar
2
2
  class Calendar < ApplicationRecord
3
3
  belongs_to :account
4
+ has_many :events, foreign_key: "calendar_id"
4
5
  end
5
6
  end
@@ -1,4 +1,5 @@
1
1
  module LesliCalendar
2
- class Event < ApplicationRecord
3
- end
2
+ class Event < ApplicationRecord
3
+ belongs_to :calendar
4
+ end
4
5
  end
@@ -43,13 +43,25 @@ module LesliCalendar
43
43
  end
44
44
 
45
45
  def show()
46
+
46
47
  # Calendar data
47
48
  calendar_data = {
48
49
  id: self.resource.id,
49
50
  name: self.resource.name,
50
51
  user_id: self.resource.user_id,
51
- events: [],
52
- events_support: LesliSupport::TicketService.new(current_user).with_deadline
52
+ events: EventService.new(current_user, query).index(),
53
+ events_support: ::LesliSupport::TicketService.new(current_user, query)
54
+ .index_with_deadline.map do |ticket|
55
+ {
56
+ id: ticket.id,
57
+ title: ticket.subject,
58
+ deadline: ticket.deadline,
59
+ description: ticket.description,
60
+ date: ticket.deadline,
61
+ start: ticket.deadline,
62
+ classNames: 'lesli-support'
63
+ }
64
+ end
53
65
  }
54
66
  end
55
67
  end
@@ -0,0 +1,57 @@
1
+ =begin
2
+
3
+ Lesli
4
+
5
+ Copyright (c) 2023, Lesli Technologies, S. A.
6
+
7
+ This program is free software: you can redistribute it and/or modify
8
+ it under the terms of the GNU General Public License as published by
9
+ the Free Software Foundation, either version 3 of the License, or
10
+ (at your option) any later version.
11
+
12
+ This program is distributed in the hope that it will be useful,
13
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
+ GNU General Public License for more details.
16
+
17
+ You should have received a copy of the GNU General Public License
18
+ along with this program. If not, see http://www.gnu.org/licenses/.
19
+
20
+ Lesli · Ruby on Rails SaaS Development Framework.
21
+
22
+ Made with ♥ by https://www.lesli.tech
23
+ Building a better future, one line of code at a time.
24
+
25
+ @contact hello@lesli.tech
26
+ @website https://www.lesli.tech
27
+ @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
28
+
29
+ // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
30
+ // ·
31
+ =end
32
+
33
+ module LesliCalendar
34
+ class EventService < Lesli::ApplicationLesliService
35
+
36
+ def find calendar_id
37
+ #super(current_user.account.calendar.calendar.find_by(id: calendar_id))
38
+ super(current_user.account.calendar.calendars.first)
39
+ end
40
+
41
+ def index()
42
+ events = current_user.account.calendar.calendars.first.events
43
+ .select(
44
+ :id,
45
+ :title,
46
+ :description,
47
+ :date,
48
+ :start,
49
+ :end,
50
+ :url,
51
+ :location,
52
+ :status,
53
+ "'lesli-calendar' as classNames"
54
+ )
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,10 @@
1
+ <h1>Editing agenda</h1>
2
+
3
+ <%= render "form", agenda: @agenda %>
4
+
5
+ <br>
6
+
7
+ <div>
8
+ <%= link_to "Show this agenda", @agenda %> |
9
+ <%= link_to "Back to agendas", agendas_path %>
10
+ </div>
@@ -0,0 +1,14 @@
1
+ <p style="color: green"><%= notice %></p>
2
+
3
+ <h1>Agendas</h1>
4
+
5
+ <div id="agendas">
6
+ <% @agendas.each do |agenda| %>
7
+ <%= render agenda %>
8
+ <p>
9
+ <%= link_to "Show this agenda", agenda %>
10
+ </p>
11
+ <% end %>
12
+ </div>
13
+
14
+ <%= link_to "New agenda", new_agenda_path %>
@@ -0,0 +1,9 @@
1
+ <h1>New agenda</h1>
2
+
3
+ <%= render "form", agenda: @agenda %>
4
+
5
+ <br>
6
+
7
+ <div>
8
+ <%= link_to "Back to agendas", agendas_path %>
9
+ </div>
@@ -0,0 +1 @@
1
+ <router-view></router-view>
@@ -32,6 +32,7 @@ Building a better future, one line of code at a time.
32
32
  =end
33
33
  %>
34
34
 
35
- <%#= navigation_item(lesli_babel.dashboard_path, "Dashboard", "ri-dashboard-3-line"); %>
36
- <%= navigation_item(lesli_calendar.root_path, "Calendar", "ri-calendar-2-fill") %>
35
+ <%= navigation_item(lesli_calendar.root_path, "Dashboard", "ri-dashboard-3-line"); %>
36
+ <%= navigation_item(lesli_calendar.calendar_path, "Calendar", "ri-calendar-2-fill") %>
37
+ <%= navigation_item(lesli_calendar.agenda_path, "Agenda", "ri-calendar-todo-fill") %>
37
38
  <%= navigation_item(lesli_calendar.events_path, "Events", "ri-map-pin-2-line") %>
@@ -16,6 +16,8 @@
16
16
  button_settings: Settings
17
17
  button_show: Show
18
18
  toolbar_search: Search...
19
+ message_operation_success: Operation completed successfully
20
+ message_operation_error: Operation failed. Please try again.
19
21
  application:
20
22
  navigation_logout: Logout
21
23
  navigation_my_profile: My profile
@@ -16,6 +16,8 @@
16
16
  button_settings: Configuración
17
17
  button_show: Ver
18
18
  toolbar_search: Buscar...
19
+ message_operation_success: Operacion realizada satisfactoriamente
20
+ message_operation_error: Operación fallida. Por favor, inténtelo de nuevo.
19
21
  application:
20
22
  navigation_logout: Cerrar sesión
21
23
  navigation_my_profile: Mi perfil
@@ -16,6 +16,8 @@
16
16
  button_settings: ":lesli.shared.button_settings:"
17
17
  button_show: ":lesli.shared.button_show:"
18
18
  toolbar_search: ":lesli.shared.toolbar_search:"
19
+ message_operation_success: ":lesli.shared.message_operation_success:"
20
+ message_operation_error: ":lesli.shared.message_operation_error:"
19
21
  application:
20
22
  navigation_logout: ":lesli.application.navigation_logout:"
21
23
  navigation_my_profile: ":lesli.application.navigation_my_profile:"
@@ -16,6 +16,8 @@
16
16
  button_settings: ":lesli.shared.button_settings:"
17
17
  button_show: ":lesli.shared.button_show:"
18
18
  toolbar_search: ":lesli.shared.toolbar_search:"
19
+ message_operation_success: ":lesli.shared.message_operation_success:"
20
+ message_operation_error: ":lesli.shared.message_operation_error:"
19
21
  application:
20
22
  navigation_logout: ":lesli.application.navigation_logout:"
21
23
  navigation_my_profile: ":lesli.application.navigation_my_profile:"
@@ -16,6 +16,8 @@
16
16
  button_settings: ":lesli.shared.button_settings:"
17
17
  button_show: ":lesli.shared.button_show:"
18
18
  toolbar_search: ":lesli.shared.toolbar_search:"
19
+ message_operation_success: ":lesli.shared.message_operation_success:"
20
+ message_operation_error: ":lesli.shared.message_operation_error:"
19
21
  application:
20
22
  navigation_logout: ":lesli.application.navigation_logout:"
21
23
  navigation_my_profile: ":lesli.application.navigation_my_profile:"
data/config/routes.rb CHANGED
@@ -36,6 +36,9 @@ LesliCalendar::Engine.routes.draw do
36
36
  resource :calendar, only: [:show] do
37
37
  end
38
38
 
39
+ resource :agenda, only: [:show] do
40
+ end
41
+
39
42
  resources :events, only: [:index, :create] do
40
43
  end
41
44
  end
@@ -34,9 +34,9 @@ class CreateLesliCalendarEvents < ActiveRecord::Migration[6.0]
34
34
  create_table :lesli_calendar_events do |t|
35
35
  t.string :title, required: true
36
36
  t.string :description
37
- t.date :date
38
- t.time :start
39
- t.time :end
37
+ t.date :date # migrate to start column
38
+ t.datetime :start
39
+ t.datetime :end
40
40
  t.string :url
41
41
  t.string :location
42
42
  t.string :status # proposal, draft
@@ -1,17 +1,66 @@
1
1
  =begin
2
2
 
3
- Copyright (c) 2023, all rights reserved.
3
+ Lesli
4
4
 
5
- All the information provided by this platform is protected by international laws related to
6
- industrial property, intellectual property, copyright and relative international laws.
7
- All intellectual or industrial property rights of the code, texts, trade mark, design,
8
- pictures and any other information belongs to the owner of this platform.
5
+ Copyright (c) 2023, Lesli Technologies, S. A.
9
6
 
10
- Without the written permission of the owner, any replication, modification,
11
- transmission, publication is strictly forbidden.
7
+ This program is free software: you can redistribute it and/or modify
8
+ it under the terms of the GNU General Public License as published by
9
+ the Free Software Foundation, either version 3 of the License, or
10
+ (at your option) any later version.
12
11
 
13
- For more information read the license file including with this software.
12
+ This program is distributed in the hope that it will be useful,
13
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
+ GNU General Public License for more details.
14
16
 
15
- // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
17
+ You should have received a copy of the GNU General Public License
18
+ along with this program. If not, see http://www.gnu.org/licenses/.
19
+
20
+ Lesli · Ruby on Rails SaaS Development Framework.
21
+
22
+ Made with ♥ by https://www.lesli.tech
23
+ Building a better future, one line of code at a time.
24
+
25
+ @contact hello@lesli.tech
26
+ @website https://www.lesli.tech
27
+ @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
28
+
29
+ // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
16
30
  // ·
17
31
  =end
32
+
33
+
34
+ # ·
35
+ require "json"
36
+
37
+ # ·
38
+ file = File.open(LesliCalendar::Engine.root.join("db", "seed", "seeds.json")).read
39
+ seeds = JSON.parse(file)
40
+
41
+ # ·
42
+ current_user = ::Lesli::User.first
43
+ calendar = LesliCalendar::Calendar.first
44
+
45
+ # ·
46
+ seeds["events"].each_with_index do |event, index|
47
+
48
+ # Start events from 10 days ago
49
+ event_date = (index - 10).days.from_now
50
+
51
+ #
52
+ LesliCalendar::Event.create!({
53
+ title: event["title"],
54
+ description: event["description"],
55
+ date: event_date,
56
+ start: event_date,
57
+ end: event_date,
58
+ url: "",
59
+ location: event["location"],
60
+ status: "",
61
+ public: true,
62
+ calendar: calendar,
63
+ # user: current_user
64
+ })
65
+ end
66
+
@@ -0,0 +1,83 @@
1
+ {
2
+ "events": [{
3
+ "title": "Birthday party",
4
+ "description": "Join us to celebrate John's milestone 30th birthday! We'll have a fun-filled evening with music, games, delicious food, and great company. Don't miss out on the birthday cake and the chance to make unforgettable memories. Please RSVP by [RSVP Date] to let us know if you can make it. Looking forward to seeing you there!",
5
+ "location": "Guatemala"
6
+ }, {
7
+ "title": "Wedding Celebration",
8
+ "description": "Come and join us to celebrate the wedding of Alice and Bob! There will be a beautiful ceremony followed by a grand reception with dinner, dancing, and live music. Don't miss this special event and the opportunity to wish the couple a happy married life. Please RSVP by [RSVP Date].",
9
+ "location": "Paris, France"
10
+ }, {
11
+ "title": "Company Annual Meeting",
12
+ "description": "Attend the annual meeting of our company where we will discuss our achievements, future goals, and strategies. This is a great opportunity to meet and network with colleagues and industry experts. Refreshments will be provided. Please confirm your attendance by [RSVP Date].",
13
+ "location": "New York, USA"
14
+ }, {
15
+ "title": "Music Concert",
16
+ "description": "Experience an unforgettable night of live music at our annual concert event! Featuring performances by top artists and bands. There will be food trucks, merchandise stalls, and more. Grab your tickets now and join us for an evening of fantastic music and fun. Gates open at 6 PM.",
17
+ "location": "Los Angeles, USA"
18
+ }, {
19
+ "title": "Art Exhibition",
20
+ "description": "Join us for an exclusive preview of the new art exhibition at the city gallery. Discover stunning artworks from local and international artists. The event includes a welcome drink and a chance to meet the artists. RSVP by [RSVP Date] to secure your spot.",
21
+ "location": "London, UK"
22
+ }, {
23
+ "title": "Tech Conference",
24
+ "description": "Don't miss out on the biggest tech conference of the year! Connect with tech enthusiasts, professionals, and innovators. Attend keynote sessions, workshops, and panel discussions on the latest trends and technologies. Register by [RSVP Date] to secure your place.",
25
+ "location": "San Francisco, USA"
26
+ }, {
27
+ "title": "Charity Run",
28
+ "description": "Participate in our annual charity run to support a great cause! Choose between 5k, 10k, and half-marathon distances. All participants will receive a race pack and medal. Join us for a fun and rewarding day. Sign up by [RSVP Date] to participate.",
29
+ "location": "Sydney, Australia"
30
+ }, {
31
+ "title": "Cooking Workshop",
32
+ "description": "Join our cooking workshop to learn new recipes and cooking techniques from professional chefs. This hands-on experience will enhance your culinary skills and provide you with delicious dishes to take home. Limited spots available. RSVP by [RSVP Date].",
33
+ "location": "Rome, Italy"
34
+ }, {
35
+ "title": "Book Launch",
36
+ "description": "Be part of the exciting book launch event for our latest publication! Meet the author, get your copy signed, and enjoy a reading session followed by a Q&A. Refreshments will be served. Confirm your attendance by [RSVP Date] to join us.",
37
+ "location": "Toronto, Canada"
38
+ }, {
39
+ "title": "Science Fair",
40
+ "description": "Explore the wonders of science at our annual science fair! Engage with interactive exhibits, demonstrations, and experiments. Perfect for families and science enthusiasts of all ages. Entry is free, but please RSVP by [RSVP Date] to help us prepare.",
41
+ "location": "Berlin, Germany"
42
+ },{
43
+ "title": "Film Festival",
44
+ "description": "Join us for a week-long celebration of cinema at our annual film festival! Enjoy screenings of independent and international films, attend panel discussions, and meet the filmmakers. Don't miss the opening and closing night galas. RSVP by [RSVP Date].",
45
+ "location": "Cannes, France"
46
+ },{
47
+ "title": "Yoga Retreat",
48
+ "description": "Escape the hustle and bustle of daily life and join us for a rejuvenating yoga retreat. Experience daily yoga sessions, meditation, and wellness workshops in a serene environment. All levels are welcome. Please RSVP by [RSVP Date] to reserve your spot.",
49
+ "location": "Bali, Indonesia"
50
+ },{
51
+ "title": "Food Festival",
52
+ "description": "Indulge in a culinary adventure at our food festival! Sample dishes from around the world, enjoy live cooking demonstrations, and participate in food tasting sessions. There will be something for every food lover. RSVP by [RSVP Date] to join the feast.",
53
+ "location": "Barcelona, Spain"
54
+ },{
55
+ "title": "Photography Workshop",
56
+ "description": "Enhance your photography skills with our hands-on workshop led by professional photographers. Learn about composition, lighting, and editing techniques. Perfect for beginners and intermediate photographers. RSVP by [RSVP Date] to secure your spot.",
57
+ "location": "Tokyo, Japan"
58
+ },{
59
+ "title": "Marathon",
60
+ "description": "Challenge yourself by participating in our annual marathon! Choose from full marathon, half marathon, and 10k races. All participants will receive a race kit and finisher medal. Sign up by [RSVP Date] to join this exciting event.",
61
+ "location": "Boston, USA"
62
+ },{
63
+ "title": "Gardening Workshop",
64
+ "description": "Learn the secrets of successful gardening at our hands-on workshop. Topics include plant selection, soil preparation, and pest management. Perfect for novice and experienced gardeners alike. RSVP by [RSVP Date] to secure your place.",
65
+ "location": "Vancouver, Canada"
66
+ },{
67
+ "title": "Fashion Show",
68
+ "description": "Experience the latest trends and styles at our annual fashion show! See the newest collections from top designers and enjoy a night of glamour and entertainment. VIP packages available. RSVP by [RSVP Date] to attend this stylish event.",
69
+ "location": "Milan, Italy"
70
+ },{
71
+ "title": "Business Networking Event",
72
+ "description": "Expand your professional network at our business networking event. Meet industry leaders, exchange ideas, and build valuable connections. Refreshments will be served. RSVP by [RSVP Date] to confirm your attendance.",
73
+ "location": "Singapore"
74
+ },{
75
+ "title": "Science Fiction Convention",
76
+ "description": "Join fellow sci-fi enthusiasts at our annual science fiction convention. Enjoy panels, workshops, and meet-and-greet sessions with authors, actors, and creators. Don't miss the costume contest and merchandise stalls. RSVP by [RSVP Date].",
77
+ "location": "Las Vegas, USA"
78
+ },{
79
+ "title": "Charity Gala",
80
+ "description": "Attend our elegant charity gala to support a worthy cause. Enjoy a night of fine dining, live entertainment, and silent auctions. All proceeds go to our charitable foundation. RSVP by [RSVP Date] to reserve your seat.",
81
+ "location": "London, UK"
82
+ }]
83
+ }
data/db/seeds.rb CHANGED
@@ -21,7 +21,7 @@ For more information read the license file including with this software.
21
21
  # you must use the initializer method in the Engine account model
22
22
  if Rails.env.development?
23
23
  L2.msg(
24
- "Loading seeds for LesliCalendar environment",
24
+ "LesliCalendar",
25
25
  "Version: #{LesliCalendar::VERSION}",
26
26
  "Build: #{LesliCalendar::BUILD}")
27
27
  load LesliCalendar::Engine.root.join("db", "seed", "#{ Rails.env.downcase }.rb")
@@ -1,4 +1,4 @@
1
1
  module LesliCalendar
2
- VERSION = "0.2.0"
3
- BUILD = "1713121383"
2
+ VERSION = "0.2.2"
3
+ BUILD = "1728877698"
4
4
  end
@@ -0,0 +1,101 @@
1
+ /*
2
+
3
+ Lesli
4
+
5
+ Copyright (c) 2023, Lesli Technologies, S. A.
6
+
7
+ This program is free software: you can redistribute it and/or modify
8
+ it under the terms of the GNU General Public License as published by
9
+ the Free Software Foundation, either version 3 of the License, or
10
+ (at your option) any later version.
11
+
12
+ This program is distributed in the hope that it will be useful,
13
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
+ GNU General Public License for more details.
16
+
17
+ You should have received a copy of the GNU General Public License
18
+ along with this program. If not, see http://www.gnu.org/licenses/.
19
+
20
+ Lesli · Ruby on Rails SaaS Development Framework.
21
+
22
+ Made with ♥ by https://www.lesli.tech
23
+ Building a better future, one line of code at a time.
24
+
25
+ @contact hello@lesli.tech
26
+ @website https://www.lesli.tech
27
+ @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
28
+
29
+ // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
30
+ // ·
31
+ */
32
+
33
+
34
+ // ·
35
+ @import "Lesli/scss/templates/component";
36
+
37
+
38
+ // ·
39
+ $driver-color: #3689e6;
40
+ $focus-color: #28bca3;
41
+ $support-color: #a56de2;
42
+
43
+
44
+ // ·
45
+ .lesli-calendar-agenda {
46
+ background-color: white;
47
+
48
+ h3 {
49
+ color: lesli-css-color(silver, 900);
50
+ padding: 14px 0;
51
+ }
52
+
53
+ .event {
54
+ border-bottom: 1px solid lesli-css-color(silver, 300);
55
+ min-height: 100px;
56
+
57
+ .date {
58
+ flex: 0 0 70px;
59
+ text-align: center;
60
+ color: lesli-css-color(silver, 900);
61
+
62
+ .day-number {
63
+ font-weight: 700;
64
+ font-size: 1.2rem;
65
+ }
66
+ }
67
+
68
+ .description {
69
+ line-height: 1.2;
70
+ font-size: 0.9rem;
71
+
72
+ p:nth-child(odd) {
73
+ margin: 0;
74
+ font-weight: 700;
75
+ font-size: 0.9rem;
76
+ }
77
+
78
+ p:nth-child(even):not(:last-child) {
79
+ margin-bottom: 8px;
80
+ }
81
+
82
+ .lesli-calendar,
83
+ .lesli-support {
84
+ padding: 3px 0 3px 18px;
85
+ border-left: 3px solid lesli-css-color(silver);
86
+ }
87
+
88
+ .lesli-calendar {
89
+ border-left-color: $driver-color;
90
+ }
91
+
92
+ .lesli-support {
93
+ border-left-color: $support-color;
94
+ }
95
+
96
+ .cloud-focus-tasks {
97
+ border-left-color: $focus-color;
98
+ }
99
+ }
100
+ }
101
+ }
@@ -30,5 +30,16 @@ Building a better future, one line of code at a time.
30
30
  */
31
31
 
32
32
  body.lesli-calendar {
33
+ @import "./agenda.scss";
33
34
  @import "./calendar.scss";
35
+ @import "./dashboard.scss";
36
+ }
37
+
38
+ body.lesli-calendar-calendar {
39
+ @import "./calendar.scss";
40
+ @import "./agenda.scss";
41
+ }
42
+
43
+ body.lesli-calendar-agenda {
44
+ @import "./agenda.scss";
34
45
  }