Initial commit with current working version
This commit is contained in:
		
							
								
								
									
										195
									
								
								extension.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										195
									
								
								extension.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,195 @@
 | 
				
			|||||||
 | 
					const Main = imports.ui.main;
 | 
				
			||||||
 | 
					const MainLoop = imports.mainloop;
 | 
				
			||||||
 | 
					const Lang = imports.lang;
 | 
				
			||||||
 | 
					const PanelMenu = imports.ui.panelMenu;
 | 
				
			||||||
 | 
					const St = imports.gi.St;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const _minariSpecialDayNames = new Array(
 | 
				
			||||||
 | 
					    'Hëður',
 | 
				
			||||||
 | 
					    'Rideyy',
 | 
				
			||||||
 | 
					    'Morkh',
 | 
				
			||||||
 | 
					    'Morkh+',
 | 
				
			||||||
 | 
					    'Khmerd',
 | 
				
			||||||
 | 
					    'Chamog'
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const _minariWeekdayNames = new Array(
 | 
				
			||||||
 | 
					    'Ro\'unn',
 | 
				
			||||||
 | 
					    'Mïrdu',
 | 
				
			||||||
 | 
					    'Hëmi',
 | 
				
			||||||
 | 
					    'Drak',
 | 
				
			||||||
 | 
					    'Þodon',
 | 
				
			||||||
 | 
					    'Charm'
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const _minariMonthNames = new Array(
 | 
				
			||||||
 | 
					    null,
 | 
				
			||||||
 | 
					    'Mëbel',
 | 
				
			||||||
 | 
					    'Dirann',
 | 
				
			||||||
 | 
					    'Ma\'uþ',
 | 
				
			||||||
 | 
					    'Gerub',
 | 
				
			||||||
 | 
					    'Þrei',
 | 
				
			||||||
 | 
					    'Dimoc',
 | 
				
			||||||
 | 
					    'Xentor',
 | 
				
			||||||
 | 
					    'Mëðïr',
 | 
				
			||||||
 | 
					    'Draþ',
 | 
				
			||||||
 | 
					    'Quaden',
 | 
				
			||||||
 | 
					    'Ridïmel',
 | 
				
			||||||
 | 
					    'Rodom'
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					let _updateInterval = 5;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function MinariDate() {
 | 
				
			||||||
 | 
					    this._init();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MinariDate.prototype = {
 | 
				
			||||||
 | 
					    __proto__: PanelMenu.Button.prototype,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    _init: function() {
 | 
				
			||||||
 | 
					        PanelMenu.Button.prototype._init.call(this, 0.0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        this.label = new St.Label({ text: 'Initializing' });
 | 
				
			||||||
 | 
					        this.actor.add_actor(this.label);
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    _updateDate: function() {
 | 
				
			||||||
 | 
					        let today = new Date();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        today.setHours(0);
 | 
				
			||||||
 | 
					        today.setMinutes(0);
 | 
				
			||||||
 | 
					        today.setSeconds(0);
 | 
				
			||||||
 | 
					        today.setMilliseconds(0);
 | 
				
			||||||
 | 
					        today.setDate(today.getDate() + 11);
 | 
				
			||||||
 | 
					        let leapCheck = new Date(today.getFullYear(), 1, 29);
 | 
				
			||||||
 | 
					        let minariLeap = (leapCheck.getDate() == 29);
 | 
				
			||||||
 | 
					        let oneJan = new Date(today.getFullYear(), 0, 1);
 | 
				
			||||||
 | 
					        let doy = Math.ceil((today - oneJan) / 86400000);
 | 
				
			||||||
 | 
					        let minariYear = today.getFullYear() - 1873;
 | 
				
			||||||
 | 
					        let minariMonth = 0;
 | 
				
			||||||
 | 
					        let minariDoy = 0;
 | 
				
			||||||
 | 
					        let minariDay = 0;
 | 
				
			||||||
 | 
					        let minariWeekday = 0;
 | 
				
			||||||
 | 
					        let minariSpecialDay = -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        switch (doy) {
 | 
				
			||||||
 | 
					            case 0:
 | 
				
			||||||
 | 
					                minariMonth = 0;
 | 
				
			||||||
 | 
					                minariDay = 0;
 | 
				
			||||||
 | 
					                minariSpecialDay = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            case 91:
 | 
				
			||||||
 | 
					                minariMonth = 0;
 | 
				
			||||||
 | 
					                minariDay = 0;
 | 
				
			||||||
 | 
					                minariSpecialDay = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            case 182:
 | 
				
			||||||
 | 
					                minariMonth = 0;
 | 
				
			||||||
 | 
					                minariDay = 0;
 | 
				
			||||||
 | 
					                minariSpecialDay = 2;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            case 183:
 | 
				
			||||||
 | 
					                if (minariLeap) {
 | 
				
			||||||
 | 
					                    minariMonth = 0;
 | 
				
			||||||
 | 
					                    minariDay = 0;
 | 
				
			||||||
 | 
					                    minariSpecialDay = 3;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            case 273:
 | 
				
			||||||
 | 
					                if (!minariLeap) {
 | 
				
			||||||
 | 
					                    minariMonth = 0;
 | 
				
			||||||
 | 
					                    minariDay = 0;
 | 
				
			||||||
 | 
					                    minariSpecialDay = 4;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            case 274:
 | 
				
			||||||
 | 
					                if (minariLeap) {
 | 
				
			||||||
 | 
					                    minariMonth = 0;
 | 
				
			||||||
 | 
					                    minariDay = 0;
 | 
				
			||||||
 | 
					                    minariSpecialDay = 4;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            case 364:
 | 
				
			||||||
 | 
					                if (!minariLeap) {
 | 
				
			||||||
 | 
					                    minariMonth = 0;
 | 
				
			||||||
 | 
					                    minariDay = 0;
 | 
				
			||||||
 | 
					                    minariSpecialDay = 5;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            case 365:
 | 
				
			||||||
 | 
					                minariMonth = 0;
 | 
				
			||||||
 | 
					                minariDay = 0;
 | 
				
			||||||
 | 
					                minariSpecialDay = 5;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (minariSpecialDay == -1) {
 | 
				
			||||||
 | 
					            let decr = 0;
 | 
				
			||||||
 | 
					            minariDoy = doy;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (minariDoy > 0) {
 | 
				
			||||||
 | 
					                decr++;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (minariDoy > 91) {
 | 
				
			||||||
 | 
					                decr++;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (minariDoy > 182) {
 | 
				
			||||||
 | 
					                decr++;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if ((minariDoy > 183) && minariLeap) {
 | 
				
			||||||
 | 
					                decr++;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if ((minariDoy > 273) && !minariLeap) {
 | 
				
			||||||
 | 
					                decr++;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if ((minariDoy > 274) && minariLeap) {
 | 
				
			||||||
 | 
					                decr++;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            minariDoy = minariDoy - decr + 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            minariMonth = Math.ceil(minariDoy / 30);
 | 
				
			||||||
 | 
					            minariDay = minariDoy % 30;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (minariDay == 0) {
 | 
				
			||||||
 | 
					                minariDay = 30;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            minariWeekday = minariDay % 6;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        let new_text = minariYear + ' ' + ((minariSpecialDay == -1) ? _minariMonthNames[minariMonth] + ' ' + minariDay + ' (' + _minariWeekdayNames[minariWeekday] + ')' : _minariSpecialDayNames[minariSpecialDay]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        this.label.set_text(new_text);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        _timer = MainLoop.timeout_add_seconds(_updateInterval, Lang.bind(_indicator, _indicator._updateDate));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function init(metadata) {
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					let _indicator;
 | 
				
			||||||
 | 
					let _timer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function enable() {
 | 
				
			||||||
 | 
					    _indicator = new MinariDate;
 | 
				
			||||||
 | 
					    Main.panel.addToStatusArea('minari_date', _indicator, null, 'center');
 | 
				
			||||||
 | 
					    _indicator._updateDate();
 | 
				
			||||||
 | 
					    _timer = MainLoop.timeout_add_seconds(_updateInterval, Lang.bind(_indicator, _indicator._updateDate));
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										1
									
								
								metadata.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								metadata.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					{"shell-version": ["3.8.4", "3.10.2.1", "3.10.4"], "uuid": "MinariDate@gergely.polonkai.eu", "name": "Minari Date", "description": "Display current date according to the Minari calendar"}
 | 
				
			||||||
							
								
								
									
										9
									
								
								stylesheet.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								stylesheet.css
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					.helloworld-label {
 | 
				
			||||||
 | 
					    font-size: 36px;
 | 
				
			||||||
 | 
					    font-weight: bold;
 | 
				
			||||||
 | 
					    color: #ffffff;
 | 
				
			||||||
 | 
					    background-color: rgba(10,10,10,0.7);
 | 
				
			||||||
 | 
					    border-radius: 5px;
 | 
				
			||||||
 | 
					    padding: .5em;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user