MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.

    Calendar / CalendarExt3 Font-Color and Symbol

    Scheduled Pinned Locked Moved Unsolved Troubleshooting
    13 Posts 3 Posters 11.2k Views 3 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • S Offline
      svenpisa
      last edited by

      Do you mean that what I have entered in the standard calendar module can simply be entered in the Ext3 module in Config.js? That simple?

      						customEvents: [{keyword: "Gelber Sack", symbol: "arrow-spin", color: "yellow"},
      						{keyword: "Hausmüll", symbol: "trash-can", color: "green"}],
      
      S M 2 Replies Last reply Reply Quote 0
      • S Offline
        sdetweil @svenpisa
        last edited by sdetweil

        @svenpisa no… similar but different

        in Ext3 is a function instead of a black of values

        eventTransformer: (ev) => {
          if (ev.title.search("Gelber Sack") > -1) ev.color = 'yellow'  // you would need a line like this for each color thing u want to change
        // and symbol
          return ev
        }
        

        Sam

        How to add modules

        learning how to use browser developers window for css changes

        1 Reply Last reply Reply Quote 0
        • S Offline
          svenpisa
          last edited by

          Good morning,
          I worked on it again last night and the colors are now partially working… ;-).
          But I still can’t see any symbols.

          My Config.js now looks like this

          eventTransformer: (ev) => {
          				if (ev.title.search("Gelber Sack") > -1) ev.color = 'yellow' 
          				if (ev.title.search("Gelber Sack") > -1) ev.symbol = ['trash-can']
          				if (ev.title.search("Blaue Tonne") > -1) ev.color = 'blue'
          				if (ev.title.search("Fitness") > -1) ev.color = 'pink' 
          				return ev
          				}
          

          But now I get the following result

          f1536d33-a302-4f2c-8906-19754804eb5b-image.png

          The following problems occur.

          1. all-day event such as “Gelber Sack” is well colored yellow. Everything is fine.
          2. if I use ev.sybol = ‘trash-can’ my calendar module is no longer displayed, but if I use ev.symbol = [‘trash-can’] the entry is displayed without a symbol.
          3. for “Fitness” I have selected the color “pink”. However, the “Fitness” entry is not colored pink, only the symbol. How do I make the font pink?

          And finally, one more question:

          If I abbreviate a birthday with “Geb.” and want to see the “birthday-cake” symbol instead of “Geb.”, how would I have to execute the “Replace” entry?

          M 1 Reply Last reply Reply Quote 0
          • M Offline
            MMRIZE @svenpisa
            last edited by MMRIZE

            @svenpisa

            {
            	module: "MMM-CalendarExt3",
            	position: "bottom_bar",
            	config: {
            		... // other configs...
            		eventTransformer: (ev) => {
            			const customEvents = [
            				{ keyword: "Gelber Sack", symbol: "fas fa-arrows-spin", color: "yellow" },
            				{ keyword: "Hausmüll", symbol: "fas fa-trash-can", color: "green" },
            			]
            			const found = customEvents.find((condition) => {
            				return ev.title.search(condition.keyword) !== -1
            			})
            			if (found) {
            				ev.icon = [ found.symbol ]
            				ev.color = found.color
            			}
            			return ev
            		},
            	}
            },
            

            PS. It was a somewhat late answer. For your new questions, I’ll reply again.

            S 1 Reply Last reply Reply Quote 0
            • M Offline
              MMRIZE @svenpisa
              last edited by

              @svenpisa

              if I use ev.sybol = ‘trash-can’ my calendar module is no longer displayed, but if I use ev.symbol = [‘trash-can’] the entry is displayed without a symbol.

              Broadcasted events information from default calendar module is not so well-formed. You should use like this.

              ["fa-solid fa-trash-can"]
              

              I’m not sure somebody fix this issue, I reported long days ago. Anyway, until fix, use that way.

              for “Fitness” I have selected the color “pink”. However, the “Fitness” entry is not colored pink, only the symbol. How do I make the font pink?

              That was my intention. (I hate colored text. :D)

              If you really want colored text, append belows into your css/custom.css

              /* custom.css */
              .CX3 .event.singleday .headline .title {
                color: var(--calendarColor);
              }
              

              If I abbreviate a birthday with “Geb.” and want to see the “birthday-cake” symbol instead of “Geb.”, how would I have to execute the “Replace” entry?

              Maybe this… (not tested)

              ...
              if (ev.title.search('Geb.') !== -1) {
                ev.title = ev.title.replace('Geb.', '')
                ev.symbol = ["fas fa-birthday-cake"]
              }
              ...
              
              1 Reply Last reply Reply Quote 0
              • S Offline
                svenpisa @MMRIZE
                last edited by

                @MMRIZE Many thanks for the quick reply, but unfortunately that didn’t work either.

                This is how I stored it in Config.js

                		{
                			module: "MMM-CalendarExt3",
                			position: "bottom_bar",
                			title: "Kalender",
                			config: {
                				mode: "week",
                				useSymbol: true,
                				eventTransformer: (ev) => {
                						const customEvents = [
                							{ keyword: "Gelber Sack", symbol: ["fa-solid fa-arrows-spin"], color: "yellow" },
                							{ keyword: "Hausmüll", symbol: ["fa-regular fa-trash-can"], color: "green" },
                							{ keyword: "Fitness", symbol: ["fa-solid fa-dumbbell"], color: "pink" },
                						]
                						const found = customEvents.find((condition) => {
                							return ev.title.search(condition.keyword) !== -1
                						})
                						if (found) {
                								ev.icon = [ found.symbol ]
                								ev.color = found.color
                						}
                						return ev
                				},
                			}
                		},
                

                result
                d2d16f9c-4869-49b6-92cd-47cd356ef3af-image.png

                The all-day events are yellow and green.
                I can understand the colorful font, but then I’ll see how I can get it into the .CX3. Can you do it there only for the keywords or only completely? I just want Fitness to be pink but everything else to stay black or white.

                Unfortunately, the desired symbols are still not displayed.
                They still remain at "arrow-right as I set it in the module: “Calendar”.
                I have tried it in the config with [] and also without. Both here the same result.

                I’ll try the “replace” later. Thank you! :-)

                M 1 Reply Last reply Reply Quote 0
                • M Offline
                  MMRIZE @svenpisa
                  last edited by MMRIZE

                  @svenpisa

                  Original. (All these test events are from the same calendar)
                  ffaa57a1-97e3-42b5-97a4-3d8bfffc40e8-image.png

                  eventTransformer: (ev) => {
                  	if (ev.title.search('Fitness') !== -1) {
                  		ev.symbol = [ 'fa-solid fa-dumbbell' ]
                  		if (!ev.isFullday) ev.title = ev.title.replace('Fitness', '<font color="pink">Fitness</font>')
                  	}
                  	return ev
                  }
                  
                  

                  After.
                  d05f254f-10a4-4774-9665-253af9dd4d3c-image.png

                  S 1 Reply Last reply Reply Quote 0
                  • S Offline
                    svenpisa @MMRIZE
                    last edited by

                    @MMRIZE Awesome!!!

                    It’s awesome!!! Thank you very very much. It works perfectly.
                    Since I use both CalendarExt3 and CalendarExt3 Agenda, I have stored the key lines and if lines in both modules in the config.

                    For all-day events, the symbols are displayed in the calendar, but not in the agenda. And only for all-day events. But I don’t care. I’m happy.
                    Just in case you want to make an improvement here or I have made a mistake!!!

                    So thank you very much. I will post my project soon in the forum under “Show my Mirror” incl. all information from the config and custom.
                    Maybe someone will be interested… :-)

                    1 Reply Last reply Reply Quote 0
                    • J justme2024 referenced this topic on
                    • 1
                    • 2
                    • 2 / 2
                    • First post
                      Last post
                    Enjoying MagicMirror? Please consider a donation!
                    MagicMirror created by Michael Teeuw.
                    Forum managed by Sam, technical setup by Karsten.
                    This forum is using NodeBB as its core | Contributors
                    Contact | Privacy Policy