kipr / harrogate

The IDE for the Wombat
GNU General Public License v3.0
5 stars 10 forks source link

User System and Filesystem Reorganization #44

Closed bmcdorman closed 8 years ago

bmcdorman commented 8 years ago

Apologies for the monolithic nature of this PR (and the commits contained). The user system and folder structure are highly related, so I rolled it into one.

✅ = done, ☑️ = in progress, ❌ = not started

✅ FS Reorganization (KISS/$User/$Project/[bin,src,include,etc]) ✅ User System integrated with project system ✅ Adding Users via frontend ☑️ Switching users via combo box (still need to autoselect added user upon creation) ✅ Deleting Users via frontend ✅ File addition (data, src, include) ☑️ Archival

Note: This deprecates the old "user" system. It should be renamed to something else, such as system prefs.

jsoutherland commented 8 years ago

Thanks @bmcdorman It makes sense that the user system and FS reorganization get added together.

I get an error when running gulp:

/home/kipr/got/harrogate/apps/programs/workspace.js:264
      programContent =  `#!/usr/bin/python
                        ^
SyntaxError: Unexpected token ILLEGAL
    at Module._compile (module.js:439:25)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/home/kipr/got/harrogate/apps/runner/exec.js:21:13)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)

It looks like it doesn't like the multi-line program templates.

bmcdorman commented 8 years ago

Multiline templates are an ES6 feature. I'm probably using a newer version of node than you. I'll roll them back today.

jsoutherland commented 8 years ago

@bmcdorman that makes sense, thanks

navzam commented 8 years ago

Finally! 👍 Will this be a breaking change on devices with user programs under the old file structure?

jsoutherland commented 8 years ago

@navzam possibly. We are fine with this being an "upgrade" and users migrate their projects (we can download them as a .zip now)... but @bmcdorman has been working on maybe using a default user to hold the old projects. That will mean keeping track of both directory structures in Harrogate and Botui going forward though.

navzam commented 8 years ago

Cool. Just wanted to make sure people didn't lose the ability to download old projects as zip b/c they disappear from the UI. Some kind of auto-migration could work too.

danielhonies commented 8 years ago

Pretty sure this would also solve #25

jsoutherland commented 8 years ago

@danielhonies Yep, this should take care of that. The new directory structure will be

navzam commented 8 years ago

And it'll take us one step closer to supporting version control for user projects. ( @bmcdorman our dream of git integration can be a reality!)

bmcdorman commented 8 years ago

deletion works now. Still need to validate that archival works.

jsoutherland commented 8 years ago

@bmcdorman deletion is working for me too.

I was going to test if archival still works and noticed that "+Add file" is breaking:

harrogate-index-app.js:15670 TypeError: Cannot read property 'href' of undefined
    at harrogate-index-app.js:332
    at processQueue (harrogate-index-app.js:18133)
    at harrogate-index-app.js:18149
    at Scope.$eval (harrogate-index-app.js:19432)
    at Scope.$digest (harrogate-index-app.js:19245)
    at Scope.$apply (harrogate-index-app.js:19540)
    at HTMLButtonElement.<anonymous> (harrogate-index-app.js:27640)
    at HTMLButtonElement.dispatch (jquery.min.js:3)
    at HTMLButtonElement.r.handle (jquery.min.js:3)

Archival (download as .zip) was working in 01d1f16de657e7e93b59e0e47fbcf5e008dd7bca

jsoutherland commented 8 years ago

@bmcdorman +Add file is working for the source directory, but not for include and data:

http://127.0.0.1:8888/api/fs/home/kipr/Documents/KISS/Josh/p1/include Failed to load resource: the server responded with a status of 404 (Not Found)

If I create those two directories by hand it works as expected.

Also, I tested download as a .zip and it worked.

jsoutherland commented 8 years ago

This shows the color scheme I get on the user box, showing a "Default User" and "Josh".

screenshot from 2016-08-25 19 36 58

bmcdorman commented 8 years ago

@jsoutherland I'd be interested to see if that graphical glitch could be replicated on a Windows computer. I can't easily replicate this. Could you open up the style editor (Right Click on the combo box, select Inspect) and try manually editing the CSS until you see the correct behavior? I can then copy that CSS. Otherwise I can install an ubuntu VM.

For reference, here is my output.

screen shot 2016-08-25 at 10 38 14 pm
jsoutherland commented 8 years ago

@bmcdorman it appears the same on a Windows 7 laptop in Chrome and Internet Explorer.

I will try modifying the CSS.

jsoutherland commented 8 years ago

@bmcdorman I found the field. I have two screenshots showing how it looks before and after inheriting the color but I'm not sure how to edit the CSS to do the same.

white_text black_text

jsoutherland commented 8 years ago

@bmcdorman The screenshot didn't capture my mouse location... the field I was toggling was

White text:

button, input, optgroup, select, textarea {
    margin: 0;
    font: inherit;
    color: inherit;
}

Black text:

button, input, optgroup, select, textarea {
    margin: 0;
    font: inherit;
    /* color: inherit; */
}
jsoutherland commented 8 years ago

@bmcdorman if we need to set it to an actual value it should probably be


button, input, optgroup, select, textarea {
    margin: 0;
    font: inherit;
    color: #333;
}
jsoutherland commented 8 years ago

@bmcdorman I noticed that you can compile programs on all users, but only the default user's programs show up on the Runner.

jsoutherland commented 8 years ago

Continued in #46