Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

需要为 Gosol 中的 [目标] 提供移动操作 #12

Open
pimgeek opened this issue Jun 13, 2014 · 3 comments
Open

需要为 Gosol 中的 [目标] 提供移动操作 #12

pimgeek opened this issue Jun 13, 2014 · 3 comments

Comments

@pimgeek
Copy link

pimgeek commented Jun 13, 2014

经过近期的使用, 我认为需要为 gosol 提供目标移动操作了, 操作要求如下:

1 由使用者指定一个目标, 作为待移动的目标. (以下称作 src-goal)

2 由使用者指定不同于 src-goal 的另一个目标, 用于吸收移动过来的 src-goal. (以下称作 dest-goal). 这里需要说明的是, 目标之间不允许产生环, 如果 src-goal 已经是 dest-goal 的直接或者间接的子目标, 则禁止移动.

因为目标最终要从属于某个方案, 所以还需要指定移动到具体哪个点子下方的哪个方案下方.

3 如果 dest-goal 下方只有一个点子, 则直接选定这个点子; 如果 dest-goal 下方有超过一个点子, 则必须由使用者指定一个点子; 如果 dest-goal 下方没有任何点子, 则要求在 dest-goal 下方自动创建一个新点子, 并将其自动命名为 [待命名点子]. (以下称作 dest-idea)

4 如果 dest-idea 下方只有一个方案, 则直接选定这个方案; 如果 dest-idea 下方有超过一个方案, 则必须由使用者指定一个方案; 如果 dest-idea 下方没有任何方案, 则要求在 dest-idea 下方自动创建一个新方案, 并将其自动命名为 [待命名方案]. (以下称作 dest-plan)

5 当前面的 4 个步骤都顺利通过之后, 就可以移动目标了, 移动后的结果为:

dest-goal => dest-idea => dest-plan => src-goal

我举两个具体例子. 说明我这样做的场景和意图.


第一, 根目标太多了, 我希望把一部分根目标移动到 暂时搁置的目标 下方. 比如: 耶耶耶耶, 还可以吧, 我要睡觉! .... 等等

img

第一次移动后的效果应该是: (还可以吧, 我要睡觉!, 还需要再做两次移动)

暂时搁置的目标 => 待命名点子 => 待命名方案 => 耶耶耶耶


第二, 我希望把根目标 用 Ruby 实现整数数组的遍历 移动到 掌握 Ruby 语言的基本用法 下方. 因为这两者本身有从属关系

aaa

最终的效果是:

掌握 Ruby 语言的基本用法 => 从整数数组的遍历开始学习 => 学习计划: 数组遍历 => 屏幕打印 => 四则运算 => 用 Ruby 实现整数数组的遍历

@kaid
Copy link
Owner

kaid commented Jun 19, 2014

我觉得这个要做的比较方便的话,用一个树状图展示出来会比较好,目前我在用bootstrap修饰页面,以及尝试用d3.js来做整个树的展示和操作,预计需要时间会很长,最迟下周末前应该可以实现最终效果。现在实现了部分的展示,还未添加操作。当前效果如图:

@pimgeek
Copy link
Author

pimgeek commented Jun 19, 2014

往这个方向上做,肯定会超出我的预期,因为这个初步实现的效果已经很棒了。我对你在 [努力保证展现效果] 这个方向上投入大量努力,没有意见(只是要注意 inhouse 项目还是偶尔介入,要做好心理准备)。

我需要补充的有以下几点。在说明之前,提醒一下——你曾经跟我讲过 【想通业务逻辑】=>【设计数据模型】=>【实现代码逻辑】=>【实现前端页面】=>【反复重构】 的这个大概的开发落地流程。我下面的说法,就是以这个大概流程为上下文的:

1 这个 issue 所针对的主要是【挪动单个目标】这个业务逻辑
2 【挪动单个目标】这个业务逻辑背后,我想象的代码逻辑,就是简单的改变原先的父子关系。
3 【挪动单个目标】这个业务逻辑背后,我想象的前端页面,是简单的下拉列表,而不是对目标节点本身做拖拽。

为了避免在前端页面上花费过多时间,我加一个特殊说明:数据模型怎么修改,代码逻辑怎么修改,我都不介意;如果你想要实现拖拽动作的话,只求做到把 root 的儿子目标一步拖动到 +1 层的目标就够了,不求实现跨多个层次的拖动。

如果我这样说你能看懂,就回复 OK,不然就说明情况。 :)

@kaid
Copy link
Owner

kaid commented Jun 19, 2014

可以看懂,不过如果要拖拽的话,难度都是一样的,不论是单层还是多层。只为了单层拖动的话,需要写一些专门的页面来处理流程,这些页面在以后不可复用,所以才会考虑在前端用一个树状图来进行所有展示和操作。虽然增加了开发难度,但是为了确保代码持续可复用、并趋近理想效果,这么做是值得的。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants