Giter Club home page Giter Club logo

collectives's Introduction

Collectives

Collectives is a Nextcloud App for activist and community projects to organize together. Come and gather in collectives to build shared knowledge.

  • 👥 Collective and non-hierarchical workflow by heart: Collectives are tied to a Nextcloud Team and owned by the collective.
  • 📝 Collaborative page editing like known from Etherpad thanks to the Text app.
  • 🔤 Well-known Markdown syntax for page formatting.
  • 🔎 Full-text search with automatic indexing to find content straight away.

Screenshot of Nextcloud Collectives Version 0.2.1

Installation

In your Nextcloud instance, simply navigate to »Apps«, find the »Teams« and »Collectives« apps and enable them.

Requirements

For full-text search to work the sqlite and pdo PHP extensions must be installed.

Documentation and help

Take a look at our online documentation.

Also, don't hesitate to ask the community for help in case of questions.

Developer documentation

Documentation for developers can be found at DEVELOPING.md.

Translations

Collectives translations are managed as part of the Nextcloud project on Transifex.

Maintainers

Licence

AGPL v3 or later. See COPYING for the full licence text.

The app logo and page icons were designed and contributed by Jörg Schmidt from Institut für Gebrauchsgrafik [email protected].

collectives's People

Contributors

azul avatar blizzz avatar comradekingu avatar dependabot[bot] avatar github-actions[bot] avatar grnd-alt avatar ikunya avatar jenspeternielsen avatar juliushaertl avatar larusalka avatar leocolman avatar leonardokr avatar marcotrevisan avatar max-nextcloud avatar mejo- avatar nathanbnm avatar nextcloud-bot avatar nextcloud-command avatar p-bo avatar pjrobertson avatar provokateurin avatar rajasekaran86 avatar raudius avatar renovate[bot] avatar rozenandrey avatar skjnldsv avatar susnux avatar urmatej avatar vfeshenko avatar weblate avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

collectives's Issues

Load markdown for wikis more dynamically

In GitLab by @azul on May 18, 2020, 16:04

Currently we simply fetch all the markdown for all wikis in one go.
We probably want to reduce this so large numbers of wiki pages are possible without too much aditional trafic.

For #17 it would be good if we can fetch markdown for a single wiki or maybe a list of wikis as well.

Update or remove database backend

The app currently still creates an empty database table (see lib/Migration/Version000000Date20200323224230.php) and it also still has code to store pages in the database (lib/Db/PageMapper.php).

The latter should be removed for sure. For the former, either we should update it to provide a metadata cache (see the Notes app for example) or completely remove all database-related code for now.

Display images with relative sources in text app

In GitLab by @azul on May 28, 2020, 08:24

In order to make use of images in the same folder it would be great if we could use relative links.
Ideally we'd fix this in nextcloud text itself.
Luckily there's already a pull request for it.

Follow up on the pull request and make it work.

As this is a complex topic especially taking into account access rights etc. try to focus on the basic rendering for now.

  • get back to julius in the pull request - propose to focus on display only first
  • rebase the pull request
  • try it out
  • fix whatever is missing

Easy way to create a wiki

In GitLab by @azul on Jul 30, 2020, 17:43

Click on plus sign and "Create a wiki... " opens breadcrumb with wiki name entry

replace app icon

`npm run dev` fails with: Error: No files matching the pattern "/nextcloud/server/apps-extra/wiki/**/*.s?(c|a)ss" were found.

Since 34e6c3b, I'm unable to build the assets with npm run dev:

$ npm run dev

> [email protected] dev /nextcloud/server/apps-extra/wiki
> NODE_ENV=development webpack --progress --config webpack.dev.js

Error: No files matching the pattern "/nextcloud/server/apps-extra/wiki/**/*.s?(c|a)ss" were found.
    at /nextcloud/server/apps-extra/wiki/node_modules/stylelint/lib/standalone.js:207:12
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] dev: `NODE_ENV=development webpack --progress --config webpack.dev.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] dev script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/vagrant/.npm/_logs/2020-06-05T11_01_09_720Z-debug.log

Only after manually downgrading stylelint to "^8.4.0", the error is gone:

NODE_ENV=development npm install stylelint@^8.4.0

Discuss (and possibly refactor) the relationship of `Fs::PageMapper` and `Service::PageService`

At the moment, Service::PageService is a simple wrapper class around Fs::PageMapper. I'm not sure whether this code structure makes sense or whether it would be better to merge both into one class Fs::PageService.

At least I don't expect us to add other backends (than the file backend), so I don't see why the abstraction should be helpful. The notes app also doesn't have this separation.

make relative links work in text app

In GitLab by @azul on May 28, 2020, 08:39

Similar to #21 but for links instead of image sources.

Not sure if we will use relative links ourselves. But it would be good to support them anyway.

  • Create an issue for this proposing basic functionality and additional file-id for later.
  • learn how the link rendering in the editor works
  • replace the link element for relative links
  • optionally add the file-id when editing such links
    for now one will have to link the file again
    But that should be easy to do. So no need for automation
  • make use of the file-id to resolve files in other directories when loading via url
  • make use of the file-id to resolve files in other directories when loading directly in the viewer

Sync preview markdown with edits

In GitLab by @azul on May 18, 2020, 15:56

Update the local currentPage state after changes have been commited in edit mode so that preview and edit mode are synchronized. At the moment, opening a page in preview mode after it has been edited results in the old version being loaded.

Missing from !17

Fallback to fileId for files that cannot be found

In GitLab by @azul on Jul 11, 2020, 10:06

Links in the same folder and subfolders should always be correct (unless the file was moved)
But absolute links on the same domain and relative links that navigate out of the folder
may differ for different users.
In order to prevent these inconsistencies from breaking links all the time
find the file by fileid and open it in the location it has from the perspective of the user browsing.

Remove `cancelNewPage()` logic from App.vue

My impression is that we no longer need the cancelNewPage() logic in App.vue as creating a new page results in really creating the file on the server immediately anyway, right?

Modal box for version view

  • Make version preview a modal to emphasize the fact that it's merely a preview
  • Allow to close the modal to get out of the preview
  • Add a big "restore to this version" button to this modal

Don't send page content in PageController

At the moment, our back-end PageController sends full pages with content as response to find and findAll. That's superfluous now that the Text app fetches the page content.

Make the find* functions in PageController send only pageTitle and pageID.

Open empty pages in edit mode

In GitLab by @azul on May 28, 2020, 14:46

If a new page is created one still has to click the edit toggle to start editing.
Open in edit mode by default.

synchronize view with server state

In GitLab by @azul on Aug 4, 2020, 10:16

We should update the list of pages with what is happening on the server:

  • When creating a new page as user1, user2 should see the new page pop up in the list
  • When renaming a page, other users should see the change without a reload
  • Editing a page should move it to the top for other users
  • it would be nice to see an last edited timestamp next to pages
  • it would be nice to see if an page is being edited right now.

Creating new wiki returns 500

In GitLab by @azul on Jul 30, 2020, 16:18

I fixed the this.wikiName issue.

However i am still seeing 500 response codes from the server.

Here's an excerpt from the logs:

proxy_1              | nginx.1    | nextcloud.local 192.168.15.1 - - [30/Jul/2020:14:11:20 +0000] "POST /index.php/apps/wiki/_wikis HTTP/1.1" 500 2
nextcloud_1          | {"reqId":"yYp2hkhou2olwy9LEKzD","level":2,"time":"2020-07-30T14:11:20+00:00","remoteAddr":"192.168.15.6","user":"admin","app":"no app in context","method":"POST","url":"/index.php/apps/wiki/_wikis","message":"Host nextcloud.local was not connected to because it violates local access rules"
nextcloud_1          | {"reqId":"yYp2hkhou2olwy9LEKzD","level":3,"time":"2020-07-30T14:11:20+00:00","remoteAddr":"192.168.15.6","user":"admin","app":"circles","method":"POST","url":"/index.php/apps/wiki/_wikis","message":"fail to initialise circle share to nextcloud.local for circle 6043978b90ec1b - {\"body\":{\"circleId\":\"6043978b90ec1b\",\"frameId\":\"3912d141d736f6967bb7b5a369d88717\"},\"timeout\":3,\"connect_timeout\":3} - Host violates local access rules"
nextcloud_1          | {"reqId":"yYp2hkhou2olwy9LEKzD","level":4,"time":"2020-07-30T14:11:20+00:00","remoteAddr":"192.168.15.6","user":"admin","app":"circles","method":"POST","url":"/index.php/apps/wiki/_wikis","message":"fail to create frame for circle 6043978b90ec1b - Host violates local access rules"

This looks familiar to me from when i first played with sharing via the circles App API. I thought i was doing sth. wrong so i did not report any issue. Funny thing also is... it seems to have worked never the less.

Have routes to specific pages using vue router

In GitLab by @azul on May 28, 2020, 08:15

  • make the server render the wiki page for all subpaths of the wiki app
  • add vue router and enable it
  • use vue router to display the content of a given page for a matching route
  • use vue links in the page list sidebar
  • test navigation and history

Deal with filename conflicts

We need a handler that deals with filename conflicts when creating/updating pages. The notes app transparantly generates a non-conflicting filename (by sanitizing the file name and optionally adding numbers). We probably should copy this behaviour.

Merge page filename and title

We decided to merge the meaning of page filename and page title.

  • Add an edit field for the page title above text editor.
    • Send request to update filename to back-end at or
    • Let back-end handle filename conflicts (already done)
    • Make the back-end replace '/' in title with -

Move edit toggle and page formatting toolbar into own header bar

The recommendation of a designer was to seperate the editor formatting toolbar from the content and instead put it into an own header bar along with the edit toggle.

That way, the content (title+page content) would be separated in a fixed area where nothing changes regardless of the view/edit mode.

Probably that's not easy to implement though given that we currently reuse the editor component from Text/Viewer apps.

Rename app

We should give the name a more specific name. I'm all for renaming it to Collective<Something>:

  • CollectiveWiki
  • CollectiveWhiteboard

I'd favour the first, but don't have strong feelings about it. @azul, what's your thoughts on it?

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.