igniterealtime / pade

Pàdé (Yoruba word for Meet) is a browser extension (Chrome/Edge) based unified communications desktop client for Openfire.
https://igniterealtime.github.io/pade/
Apache License 2.0
105 stars 47 forks source link

Support the tasks and note feature of Spark #119

Closed deleolajide closed 5 years ago

deleolajide commented 5 years ago

Spark uses private data storage to store to-do tasks and notes on Openfire.

image

and

image

Add support for this feature in Converse using the info panel and modal dialog boxes from the info plugin to implement the UI.

An example stream or XMPP stanzas to get and set notes and tasks is shown below.

<iq id="gZNg0-77" type="get">
  <query xmlns="jabber:iq:private">
    <scratchpad xmlns="scratchpad:tasks"/>
  </query>
</iq>

<iq to="stan@desktop-545pc5b/Spark" id="gZNg0-77" type="result">
  <query xmlns="jabber:iq:private">
    <scratchpad xmlns="scratchpad:tasks">
      <tasks showAll="true">
        <task>
          <title>wake up</title>
          <dueDate>1549756800000</dueDate>
          <creationDate>1549713959173</creationDate>
          <completed>true</completed>
        </task>
      </tasks>
    </scratchpad>
  </query>
</iq>

<iq id="gZNg0-79" type="set">
  <query xmlns="jabber:iq:private">
    <scratchpad xmlns="scratchpad:tasks">
      <tasks showAll="true">
        <task>
          <title>wake up</title>
          <dueDate>1549756800000</dueDate>
          <creationDate>1549713959173</creationDate>
        </task>
        <task>
          <title>brush my teeth</title>
          <dueDate>1549756800000</dueDate>
          <creationDate>1549717232967</creationDate>
        </task>
      </tasks>
    </scratchpad>
  </query>
</iq>

<iq to="stan@desktop-545pc5b/Spark" id="gZNg0-79" type="result"/>

<iq id="gZNg0-81" type="get">
  <query xmlns="jabber:iq:private">
    <scratchpad xmlns="scratchpad:notes"/>
  </query>
</iq>

<iq to="stan@desktop-545pc5b/Spark" id="gZNg0-81" type="result">
  <query xmlns="jabber:iq:private">
    <scratchpad xmlns="scratchpad:notes">
      <text>one, two, buckle my shoes
three, four lay them straight
</text>
    </scratchpad>
  </query>
</iq>

<iq id="gZNg0-83" type="set">
  <query xmlns="jabber:iq:private">
    <scratchpad xmlns="scratchpad:notes">
      <text>one, two, buckle my shoes
three, four, open the door
five, six, pick up sticks
</text>
    </scratchpad>
  </query>
</iq>

<iq to="stan@desktop-545pc5b/Spark" id="gZNg0-83" type="result"/>
deleolajide commented 5 years ago

Use this codepen - https://codepen.io/Develonaut/pen/XJyzeZ or https://github.com/Linda-Ikechukwu/Todo-App for inspiration or as a template for the to-do list UI

deleolajide commented 5 years ago

Started work on this using a Kanban board in the style of Trello

image

wrooot commented 5 years ago

This looks too different to Spark's tasks now :) Or is this going be compatible somehow?

deleolajide commented 5 years ago

It will be backward compatible with Spark. The plan is to extend the data model. In Spark every task will belong to a single default list while in Pade we can have multiple lists and a task item can have a description.

image

wrooot commented 5 years ago

I see this in the changelog, but i don't see how to access tasks.

deleolajide commented 5 years ago

It has to be enabled in preferences

image

and then the icon shows on the toolbar of a groupchat

image

wrooot commented 5 years ago

Notes button in group chat shows some shared notepad that anyone can open and edit. I don't know how to open my personal notepad (as i see in Spark).

Tasks are not very compatible with Spark. Sometimes it works kind of. But after a few logins and log out i now have every task showing twice in Spark. If i mark a task as complete in Spark, this doesn't reflect in Pade. If i delete a task in Spark, it still shows up in Pade (have tried to restart completely). I don't think one can use both systems at the same time (not that i believe someone will, Spark's version is too limited for real task management).