Giter VIP home page Giter VIP logo

infcloud's Introduction

This is a personal fork for minor tweaks. It is not intended for parallel development. The infcloud developers do not merge material from here. It is public because some may have a use for my minor tweaks.

infcloud's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

infcloud's Issues

addressbook not activated

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.

Clarification for the relation between this fork and the original upstream project

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!

Select box (drop-down menu) usage

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:

  • radio button group: Availability, Status, Privacy, Priority (option 1)
  • labeled range state: Priority (option 2)

The labels for the values could be icons as in the task list.

  • one or more checkboxes:
    • Type: one checkbox for each of ‘start’ and ‘due’
    • Alert: a checkbox for ‘message’

tmpParts2 not assigned / activeaddressbooks can't be loaded - login not possible

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:

  • ubuntu server 14.04.2 LTS
  • mariadb 5.5.44
  • apache 2.4.7
  • php 5.5.9-1ubuntu4.11
  • sabredav 2.1.3 (with the hack you provide to save settings in the principals properties)
  • tested on Firefox 38.0.5 and Chromium 44.0.2395.0 (64-bit)

My issue was the following:

  • first logon is fine
  • first logoff seems fine
  • second logon: fails in the middle of the loading phase, with a message depending on the browser, but always saying that there is something wrong with the saved setting for activeaddressbooks (like "unable to evaluate tmpParts2 which is not assigned" or so, tmpParts2 being a substring of the mentioned setting)

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!

FN not editable

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).

Recurring tasks

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?

allow arbitrary date to be selected

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.

summary box does not always appear on hover

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.

list of all events

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.

Add field for DEATHDATE

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.

Human-readable (relative) dates and times

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.

Full width note field

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.

Date+time in BDAY property

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.

In-place editing

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/.

Recurring JavaScript error "not well-formed"

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:

  • first test in other browsers,
  • find out if other users also encounter this.

config.js lines are very long

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.

Linking relations to contacts

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.

sabredav: event autosync not working - REPORT request not supported - error 415

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.

Free/busy shown incorrectly in summary

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’.

multi-week view: allow choice of number of weeks to show

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.

Compatibility with password manager

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.

403 Forbidden error when connecting to Baïkal 0.2.7 server

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.

Task list checkbox and icon usage

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.

Linking views less closely to editing forms

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).

support all fields for ADR property

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).

URL field not linked

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.

Use scroll wheel for moving in time

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.