❤️ Coding ❤️
- 💙 TypeScript
- 💚 Vue
- 💚 MongoDB
- 🤎 Rust
- 🎮 Video Games
A planner for the OCLM meetings of Jehovah's Witnesses
License: GNU General Public License v3.0
Except maybe the chairman, as they tend to do one item in the week
The single password login was only meant to be used in development, we actually need user based logins. This way we can restrict actions based on roles as well as track what changes have been made.
I'm debating the method to use for this, I thought about the user access that Netlify provides but what we'd have to end up doing is allowing anyone to create an account, and then them requesting privileges afterwards and tracking what users are granted these privileges...
What would be easier is rolling a custom user system. This would be per congregation, starting off with simple roles for now and expanding to track all changes based on role.
I’m thinking of a toggle in the dropdown.
This would need another Boolean on the week.
Should probably remove all assignees too, and warn that will happen.
The only real change will be the schedule pdf needs to be blocked out somehow.
There are some students who only like to be used in the second school. Add an option on each congregation member of which school is preferred, 1, 2, or null
for any. Then filter the assignee dropdown based on that.
I've only seen this in a dev environment but it seems sometimes the store doesn't replace existing weeks when they've been updated, causing 2 separate versions of the week to exist.
This may just be a side effect of hot reloading but noting it here in case it crops up again.
My quickest fix for this was to clear the weeks from the store when navigating away from the schedule which isn't a terrible idea and at least provides a way to recover from this. But there should be some safety net that checks for multiple copies of the same week when trying to load, and if there are multiple copies then delete them and fetch a fresh copy again.
It may also be worth thinking about putting some sort of expiry on a week's information in this case, or polling them again after a certain interval. I'm worried about the brothers leaving the page open for days and then coming back to see outdated information. Then that raises the possibility of things like websockets and so on, it depends how far we want to take this.
Have some view to see what assignments a congregation member has had over a period of time.
Just dims the screen then immediately disappears, no console error.
I’m thinking an option in the week’s settings dropdown.
Would need 2 more fields on the week, the Boolean for this and the name of the CO.
An idea proposed is to have a dropdown arrow next to the assignee name on the main schedule which just shows the dropdown
Probably another URL change...
As much as I like Vue's logo, probably best to make a custom one.
Apply as a favicon, on the interface somewhere and also in the README.
This is because there is no schedule for that week, it's memorial week.
We may need to add another week type for that... it would be good if the scraper could somehow figure out that was the reason it failed too.
It will be nice to have an always visible dropdown in the toolbar of the current language instead of an options list. This will have to be thought out for smaller screens too though.
Currently there is only support for one school. Add an option to have multiple schools.
This would require a little extra room on the schedule, maybe by moving the assignee/assistant
text above the column instead of alongside and then putting names there instead.
Especially if there's 2 long names for assignee/assistant talk, sometimes the second name is clipped because of the 'action' section.
Add a setting for each site as to what languages are available.
Make the homepage actually useful. Have some quick links depending on the logged in state.
Also an update history section with bullet points of features and fixes.
The full screen modal doesn't show completely and doesn't allow scrolling. It also appears squashed.
Proposed Solution
Move action buttons to top of the modal. Don’t make it full screen. Make it scrollable.
This would introduce a bunch of useful new features and update the design to be more appealing.
However there's a few steps needed in order to complete this:
A single A4 page of all the student talks for a month, namely the bibleReading
and studentTalk{1-3}
Only the assignee, assistant and study point are needed
Similar to #29
The opening song is scraped using another id
selector, namely #p3
, which seems to again be duplicated elsewhere for the Watchtower.
This also happens on the week of 4 Feb too.
Currently we store CO details as a sort-of meta field on the week.
If we actually created a custom assignment for the service talk and allowed them to be added as a special kind of congregation member, it's going to avoid all the extra workarounds we need as well as make it easier to inherit the week for the CO visit.
Bear in mind it would be annoying to show the name for all weeks, so maybe a special exception for the AssigneeSelect is that it only shows their name on CO weeks.
Small issue of showing the wrong color for the dots on the schedule.
oclm-planner/src/plugins/pdfMake.js
Line 352 in 342b30c
Seeing as we only use a name to identify someone, it will become confusing if 2 people have the same name.
Warn of duplicates when uploading, adding & editing members.
Related to #21
Suggested that being able to see a brief history of an assignee's last few assignments as well as other details (such as counsel point) is helpful
The alert that shows when an assignee is on multiple items in the same evening doesn't take into account assistants in student talks.
This check should take both into account using the same alert.
Though they’re normally ok, weeks like the CO week may have different songs to the schedule
Both the preview and the download link do not work on Edge
Apparently using a data-uri
is not allowed, maybe using a Blob instead would be better
Not entirely sure on the best way to do this, I think showing the change log on the Home page would be nice in addition to having a dedicated place for it elsewhere.
As for versioning, keeping semver would be good if anyone did want to roll their own version.
Although the official design doesn't include one, it's nicer to have the heads up
Currently the selector is just on a p
with an id
of 2, evidently that's not specific enough because the Watchtower sections also have the same id
for some reason.
Find a more specific selector for scraping that info.
It seems that even longer names can fit in the printed schedule. And the full name can be edited to be shorter if needs be as it's only for display purposes.
It's going to be easier to add and check for duplicates if we compare on one field rather than two.
Just start a timer on the Congregation and Schedule pages when loaded that after 30 minutes shows a small alert at the top of the screen, along the lines of Page has not been refreshed in over 30 mins, click here to refresh
which does a simple fetch of the list/schedule information.
This is mainly to catch the case if the page was left open for a long time and come back to the next day for example. Simply refreshing every X minutes is gonna eat function calls up.
I was thinking this timer should reset after any API calls but returned API data tends to only affect a portion of what is visible. It shouldn't take anyone more than 30 minutes to accomplish what they need anyway.
Probably all we need here is an FAQ section with expansion panels.
Shows an error that the month is incomplete but seems that the assignments
are not created on one week
Replace mocha/chai with Jest and start writing some tests
For example, chairman is normally assigned to just elders. Brothers have different available privileges to sisters. So some way of organising them into what they should be allowed to do may make it easier to assign.
I was thinking of removing the options altogether but sometimes privileges can be given in non-standard ways.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.