equaeghe / infcloud Goto Github PK
View Code? Open in Web Editor NEWA personal fork of Inf-It's InfCloud JS Cal+CardDAV client
Home Page: https://www.inf-it.com/open-source/clients/infcloud/
License: GNU Affero General Public License v3.0
A personal fork of Inf-It's InfCloud JS Cal+CardDAV client
Home Page: https://www.inf-it.com/open-source/clients/infcloud/
License: GNU Affero General Public License v3.0
It seems the FN
property of the vcards is not editable in the interface. In the config.js
it is possible to determine how it is generated from the N
property. It would be useful to allow editing this property directly, because it is difficult to create a general rule for transforming N
into FN
given that this may differ between contacts (work vs.family vs friends). It is a good idea however, to let this field be generated automatically from the N
field.
Possible modification: add a field for this at the top of the contact form similar to the Name field for events and todos. This would also increase the consistency between these forms (but not just for the sake of consistency).
Allow datetime in the field for the BDAY
property; this would allow one to record the actual birth time. (The RFC actually allows for this, and also for plain text values.)
This is clearly a frivolous a feauture, but perhaps easy to implement, and something some fresh parents would find nice.
Selection and copying of text seems to not be possible in events and todos. It would be useful to be able to do this.
When people think about events and tasks, it is often more important to quickly see what the duration is between the current time and the event or due date than the exact time and date itself. Calculating this duration is a mental task that software should handle for people. This is relevant for the task list and the event list, and also for dates in contacts: e.g., age as calculated from birthday. Such a human-readable date and time could be used as a replacement for or additionally to the exact date and time.
There are existing JavaScript libraries that handle this, http://momentjs.com/ for example.
The multi-week view seems to be hardcoded to three weeks anchored relative to ‘today’. The month view seems to be a six-week view anchored relative to ‘first week of the month’. It could be useful to optimize workspace usage to be able to select the number of weeks to show in the multi-week view. This could be a configuration option in config.js
or a selection that can be made, e.g., by clicking on the multi-week button a second time.
In RFC6474 date and place of birth and death is added to the properties of vcards. Especially the DEATHDATE
field is useful, to remember when a loved one or a contact's loved one passed away.
Hi there,
Since version 2.1.0alpha1, sabredav replies to an unsupported REPORT request with error code 415 instead of 403.
This error code is currently not handled in the webdav_protocol.js file, although the REPORT request sent by infcloud when it tries to synchronize events is not supported by sabredav, which results in an error being thrown out, related to CalDAVnetLoadCollection.
You can see a little hazard sign next to all available calendar when the sync fails.
To solve this, all you need is to add the 415 code in the list of handled exceptions on the very line mentioned above:
before:
if((objAJAXRequest.status==400 /* bad request */ || objAJAXRequest.status==403 /* forbidden (for stupid servers) */ || objAJAXRequest.status==501 /* unimplemented */) && inputCollection.forceSyncPROPFIND!=true /* prevent recursion */)
after:
if((objAJAXRequest.status==400 /* bad request */ || objAJAXRequest.status==403 /* forbidden (for stupid servers) */ || objAJAXRequest.status==415 /* sabredav: REPORT request not supported */ || objAJAXRequest.status==501 /* unimplemented */) && inputCollection.forceSyncPROPFIND!=true /* prevent recursion */)
The CalDAVnetLoadCollection then automatically uses a PROPFIND request as a replacement for the REPORT one, which settles the issue.
If I have time, I'll create pull requests for this and the other issue I opened earlier today.
Hi there,
TL; DR:
Replace erroneous index 2 in the last square bracket (after the split function) of this line with correct index 1 to prevent the corruption of the user settings which would prevent any further logon.
Long story:
First off, thanks a lot for this very nice piece of software you have built!
I just installed it on my vps as a replacement for the long not updated agendav, and I was surprised of the progress made since 2013.
I think this issue is really a coding error and doesn't depend of the setup, but my setup is the following:
My issue was the following:
From this point, the browser is stucked and the profile corrupt, there is no way to log in again unless you clear the wrong setting directly in the database.
I noticed that, indeed, the form of the members of the setting called "activeaddressbookcollections" in the database was "https://undefined", which was weird...
I investigated further and found that one rule in the saving of the mentioned setting at logout is not correct: the index 2 it recovers does not exist in the split function, which can only have two members, the last one with index 1.
With this corrected, the profile is correctly saved and the profile safe!
In the task list there is a control that looks like a checkbox but acts like a radio-button toggle. That is a confusing UI choice. Moreover, the toggle modifies an icon (for Status) on the same line (but not next to the checkbox). It would be more direct to let these icons act like the toggle button. Some overlay could be used in case a ‘not yet synced’ state should be communicated to the user.
The idea of being able to directly modify some key characteristics of a list item is very nice: it allows the user to avoid many keystrokes. So perhaps it should also be considered for other key properties such as Priority, an icon for which is also present in the task list.
Currently, the views of contacts, events, and tasks very much mimic the forms to edit these. This sometimes causes more space to be used than necessary. For example, addresses can be represented more compactly (on single line) than when reusing the editing form. Empty fields and strongly delineated field boxes leads to space loss and may hamper readability.
ownCloud and Google contacts for example, expand property fields into their structured editing boxes. It seems such an approach is facilitated by in-place editing (cf. issue #19).
I have a single addressbook; I've added it to globalActiveAddressbookCollections
and globalLoadedAddressbookCollections
, but it does not activate on load: I have to click the checkbox to do so on each login. I have settingsAccount=true
.
It would be useful to be able to access a searchable list of all events, e.g., to look up a detail about an event long ago in the past. Probably that would require an extra view next to the month, week,... views.
In the summary box that appears when one hovers over an event in the calendar, I seem to get ‘Free’ also when in the event it is marked ‘Busy’.
Normally, when hovering over some event, a useful summary box appears. However, it seems that there are situations where the box does not appear on hover, although the cursor does change appearance from hand to cursor after a short while. I mostly encountered this with events in the top-right area in the multi-week view, but also in the week view with an event located in the middle of the window . Perhaps the box does not appear when there is not enough space according to the placement algorithm used.
Currently, it does not seems to set a Post Office Box or Extended Address part of an ADR
property. These address parts, although probably the least common, do come up quite often. For example, in the Netherlands, it is typical for companies and institutes to have a Post Office Box.
The necessary modification would be to add the necessary fields to the interface. A judgment that this would make the interface too heavy would imply that some redesign is necessary (which may not be trivial).
I tried the demo with the credentials of my nextcloud server. I cant login...
It would be nice to be able to link a relation mentioned in one contact to the contact with that name. (Such functionality exists in the Android contacts app.) Because names are not necessarily unique, one could, instead of linking, apply a filter with the relation name (or whatever is in the relation field) to the contacts list.
Browsers can auto-fill username/password fields from secure storage. This does not (seem to) work with infcloud. (Tested on Firefox and Chromium with 0.12.1) It would be convenient if it did.
First of all, thanks for your work on infcloud and please excuse my earlier issue "hijacking". If you feel that the following question deserves its own issue then it should have it.
So, I love to see infcloud on GitHub. But could you please clarify, maybe in the README, the relation between this project here and the original upstream project? This could motivate contributions to this repository here. Do you plan to develop your own fork, indepedently, or do you have an agreement with the original developers in the following sense: are the changes proposed here likely to be merged into upstream? Do the original developers look at the issues reported here?
Especially, I am wondering whether it makes sense to invest into this repository by submitting issues or even pull requests when I eventually would like to influence the upstream project, or if that does not seem likely.
Thanks for clarification!
It seems that continuously (on syncing of data?) something triggers a JavaScript error not well-formed
, as is visible in the JavaScript console of Firefox. This appears to be deterministic. For example, the number of occurrences on login is almost the same as the number of calendars. This error does not seem to be related to a ‘real’ problem (data loss,...).
Todo:
Not sure if this is still active, but I really like everything about this except the fact that I miss being able to set recurring tasks. Is this possible to get?
The lines in the configuration file config.js
are very long. This hampers readability.
Suggested modification: split up lines, add white space, and use more block comments.
In the month and multi-week views, it would be convenient to have the scrollwheel act like the forward and backward buttons at the top of the interface. In the multi-week view, one could let a single scroll step correspond to a single week shift, to allow fine-grained control of the weeks shown.
Currently, to edit a contact, event, or task, a button has to be clicked at the bottom of the editing box. This button may be ‘far’ when, e.g., there is a large note, which may cause it to fall outside of the viewport.
One option is to move the editing/saving/... buttons to a bar at the top or bottom which never scrolls away.
One option is to make the note box scrollable and try to fit everything on one screen, but that may be futile given the large variety in screen sizes and the possibility of many fields in a contact. Another option is to make editing a more local thing. There may be practical objections that this would require many syncs with the server, but this may perhaps be worked around by grouping those. A nice JavaScript library for in-place editing is https://vitalets.github.io/x-editable/.
The interface does not seem to allow to directly jump to an arbitrary date. This may be useful when one wishes to add an event relatively far in the future. A possible way to implement this would be to make the date (range) at the top open a date selection popup when clicked.
It seems the URL field of events and todos is not linked to the url pointed to, as is the case for urls in contacts.
In the task and event editors, select boxes are copiously used. For some properties, other form controls would be more appropriate or natural. The most obvious candidates:
The labels for the values could be icons as in the task list.
From time to time, when connecting to a Baïkal 0.2.7 server, I get the error
REPORT https://baikal.<domain>/calcard.php/<resource type>/<username>/<resourcename>/ [HTTP/1.1 403 Forbidden <duration>ms]
This appears to be random and not have any repercussions.
Todo: find out whether this also happens with other servers.
Currently, the note field for tasks and events has the same width as the other fields. As large notes with non-short lines are not uncommon, this creates a suboptimal view of the note as a thin column of text.
Suggested modification: make the Note field appearance consistent with the one for contacts, i.e., almost the full width of the enclosing box, with the label above.
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.