ResultadosDigitais/matrix

Add room groups

phiter opened this issue · 1 comments

Feature Description

Add a feature enabling the admin to group rooms and separate them visually.

Problem

If you have too many rooms, matrix will end up having many unorganized rooms in the office page, and this can get too crowded very fast. So grouping these rooms could be a great feature since it can help organize the office.

Solution

In order to add this feature and not mess with the current json structure for the ROOMS_DATA variable, my suggestion is to simply add a group property to the json and use that to group the rooms. Rooms without this option will show up at the top of the office page without a group label.

I suppose room groups could also have an option to be expanded/closed, and this could be persisted in the localstorage, because I as a developer for example would rarely need to see who is in the "Marketing" group rooms.

At first this could be just a way to organize things visually but it could be enhanced to allow only people of certain departments to enter rooms in certain groups.

I started developing this feature, this is basically what I would have in mind:

image

JSON structure:

[
  {
    "id": "4d5ee6b0-be40-4201-897a-e3a903df6b95",
    "name": "Time A",
    "group": "Tecnologia da informação"
  },
  {
    "id": "00aa1849-6aa3-4a60-b635-8e1507c00196",
    "name": "Time B",
    "group": "Tecnologia da informação"
  },
  {
    "id": "06485e3f-90e6-4dd2-ac8c-0a750d683fbc",
    "name": "Time C",
    "group": "Tecnologia da informação"
  },
  {
    "id": "70860161-3b44-4c16-9420-bc8eaeedd531",
    "name": "Time D",
    "group": "Tecnologia da informação"
  },
  {
    "id": "f190f1cb-e23c-4169-b08b-55e390906e11",
    "name": "Café"
  },
  {
    "id": "0d655666-5dba-433a-843e-d6eebafe6b3f",
    "name": "Time E",
    "group": "Tecnologia da informação"
  },
  {
    "id": "377ae09b-e943-4d01-af6f-ddd967a19d60",
    "name": "Almoço"
  },
  {
    "id": "f190f1cb-e23c-4169-b08b-55e3909e11",
    "name": "Reunião externa"
  },
  {
    "id": "0d655666-5dba-433a-843e-d6ebafe6b3f",
    "name": "Time F",
    "group": "Tecnologia da informação"
  },
  {
    "id": "377ae09b-e943-4d01-af6f-ddd9679d60",
    "name": "Atendimento A",
    "group": "Atendimento"
  },
  {
    "id": "6548860c-4909-42a0-a2de-7eee235c51",
    "name": "Atendimento B",
    "group": "Atendimento"
  },
  {
    "id": "377ae09b-e943-4d01-af6f-ddd9679d60",
    "name": "Atendimento C",
    "group": "Atendimento"
  }
]

Just noticed this is a duplicate of #208 . I can work on this by referencing that issue.