larrow/shelter

控制面板界面设计

qinix opened this issue · 2 comments

qinix commented

如何设计优化控制面板界面? @fsword

做了一下UI改造,作为feature进行开发中,主要内容包括:

  • 面板页面改造,显示用户所有groups中最新的两个repository
  • 重新设计主菜单:面板、镜像、管理员入口
  • 为避免占用根路由,使用 /n 作为namespace管理的路由前缀
resources :namespaces, path: '/n'
  • 为避免占用namespace的/路由,使用 /r 作为镜像管理的路由前缀

遗留问题

  • namespace为当前用户名称时,点击协作者出现错误 Couldn't find Group
    • 问题在于这里的namespace对应的是user而不是group,因此自然couldnt find
    • 进一步讨论,我们是否需要允许user这个namespace下面也有member管理的场景?
      • 如果不是,那么界面上可以直接屏蔽掉tab项目 - 方案1
      • 如果是,那么需要调整user的模型,使之支持member关联表 - 方案2
        • 还可以干脆一点,直接将group和namespace合并,user创建group的操作就变成仅仅在一个表上添加一条记录 - 方案3
    • 方案3可以兼容方案1,所以如果用方案3,那么可以先封掉user类namespace对member的管理能力,以后根据对需求理解的加深再做决定

关于上述遗留问题,我想让group和namespace合并,新模型可以叫group,也可以叫namespace,感觉这样比较简单,梳理了一下思路,主要涉及如下变化(假定新模型叫namespace):

  1. group代码的内容基本都移入namespace
  2. group_member改名为member,直接belongs_to namespace
  3. namespace拥有一个owner(但是依然拥有多个developer和viewer)
  4. user自己的namespace中,暂不能添加其它member,但这是业务层限制,数据库模型不做约束,以便于未来打开这个限制

看看这样合理不