gadicc / meteor-famous-views

Famous, the Meteor Way (with Reactive Blaze Templates/Views)
http://famous-views.meteor.com/
GNU Lesser General Public License v3.0
333 stars 27 forks source link

Famo.us university lessons in Meteor with famous-views and Jade #119

Open gadicc opened 9 years ago

gadicc commented 9 years ago

Originally discussed in https://github.com/gadicc/meteor-famous-views/issues/110#issuecomment-61077989 and this gist - thanks @PEM-- ! Let's continue the discussion here for future issues (now that Modifier and eval are taken care of).

PEM-- commented 9 years ago

What is missing is a code editor that could embed some of the Meteor components. Editor and rendered are isolated as iframe therefore they do not share the libraries added in the main project. It is doable via the imports of packages but that would take some time to set up such a work.

I really like the idea. The best editor are ACE and CodeMirror. The later seems the fastest one for embedding it.

One way of circumventing the package import could be to edit client side, synchronized on the server side as new page and code (maybe a specific Meteor instance). This would render a page using the hotcode push capability of Meteor and this page would be embedded as an iframe in the main page of the site.

gadicc commented 9 years ago

Good idea. How's this?

PEM-- commented 9 years ago

Pure genious. I tested it this morning but I was a bit late for reporting back.

On Chrome on OSX, it works like a charm. On iPas iOS8 with mobile Safari, the rotation is leaking. The whole screen starts to turn. It reminds me of the behavior that @truskr was reporting on his Nexus 5. There is something odd here. I will try to pinpoint you on what is the cause of this issue.

gadicc commented 9 years ago

That's super weird. Can you send me a screenshot? I don't even see how that's possible. A rotation INSIDE AN IFRAME should not be able to control the whole browser window. But sure if you have time to investigate this that's great. I hope to have most of the core features I had planned for this ready for or by the end of, the weekend. Having said that, there is no priority for this website to work in the full screen template on mobile devices - not enough real estate and weird coding on soft keyboard - but there will be an embedded view where only one pane is shown at a time with tabs/links to switch between. Eventually! hehe

gadicc commented 9 years ago

Still have quite a bit I want to do, features and some bugs, but it's kinda useable :) No coffeescript yet. https://fview-lab.meteor.com/pads/9bYaFneL5pA587cCb

PEM-- commented 9 years ago

Wahou, just incredible. 5 stars :stars: :stars: :stars: :stars: :stars:

Sorry for the screenshot, I was full of meeting since Monday + I'm banging my head on a weird case with the FlexGrid. The sequenceFrom is either receiving an empty array as content of the famousEach or an array of famousViews instead of the expected Surfaces. I will try to sort this out this evening.

gadicc commented 9 years ago

Haha thanks. No rush, take your time. I'm all done for today :> Happy to help as usual, could take a precursory look out for anything obvious tonight or in depth look tomorrow. Pleasure as always :)

PEM-- commented 9 years ago

Well, I'm blushing. This should be a walk in the park. My weirdo sequenceFrom is here: https://github.com/PEM--/fview-flexgrid/blob/master/fview-flexgrid.coffee#L74

It got to be an elephant in a corridor... In the subs, I was checking the GridLayout's code. I can't see what I've missed. The worst is that it works perfectly on CodePen.

gadicc commented 9 years ago

Heh. Yeah, not sure how that function can be wrong at all, lol. So nothing from me for now, but I'll very interested to know what it was when you solve it :> And happy to take a more in depth look tomorrow if you don't come right.

PEM-- commented 9 years ago

I've just start using fview-lab. It's magical.

PEM-- commented 9 years ago

I've just put an iPad just aside my laptop. Seeing the reactivity in action is like seing spooky action from a distance.

There's a lot of edge cases but, man, this is amazing. It's christmas before christmas. It's hanoucca with a thousand candles.

If you don't mind, I'm starting a list (and try help you after, I've stopped making my head like a cube on a poor sequenceFrom/commit and create the fview-map for Lauricio):

gadicc commented 9 years ago

Haha thanks for all the kind words, you're very descriptive :) It's great hearing that my hard work is magical!

Yeah, the reactivity is all comes from Meteor without any thought from me (yet). Well, very little. I'll need to turn reactivity off if someone has made changes to the pad of course.

Sure, list is good. Still have a long list my side to get through. Quick note on Chrome javascript console, there'll eventually be a guide about this I guess. You'll see a dropdown menu that says <top frame>, you should change this to the iframe (...) to work in the sandbox/results pane. Likewise with the Show all messages checkbox.

And yeah, useraccounts will come. The drop down navbar component is in beta, I couldn't get it working, well, not quickly at least. Just needed basic account support working, will get to proper styling with time :>

splendido commented 9 years ago

I'd be glad to help with useraccounts if you wish! I'm honored you considered the option :-)

...the truth? That's exactly the first thing I thought about when I first saw it ;-)

Btw, magical work indeed!

gadicc commented 9 years ago

Thanks :> Yeah don't worry, you were there since the beginning, but I just needed basic account stuff working so I could develop the core features and will come back to layout when I can. I did see in the docs though that the {{>atNavButton}} is still in experimental stage, any word on that? Will be a while before I get to back this type of UI stuff but I do quite like how simple and quick it is there on the navbar.

splendido commented 9 years ago

experimental may not be the right wording, but it means there might be edge cases for which it is not as configurable as it could be expected...

At the moment, if you configure standard routes, in particular atSignIn, the normal way like here you should get no problems! ;-)

gadicc commented 9 years ago

Ok it's been just over a week but I have a lot to report. Still no focus on UI yet (just click the 'info' button on a pad you own, or embed a pad, to see what I mean), but functionality and features are coming along nicely!

  1. The leaky modifier/iframe issue PEM-- mentioned is fixed.
  2. There some hints/help in the github repo, linked from "Help" in top right hand corner.
  3. Jade & CoffeeScript are in and working (but currently embed still requires JS+Spacebars)
  4. Reactivity & HCP will no longer "overwrite" unsaved work (and we have some nice hints for that now); you can also "fork and save" unsaved changes.
  5. CSS is still the only styling language, BUT, cssc-* are now added as sandbox packages so you can write your CSS in CS (or I guess, JS).
  6. Re fview = FView.byId('surf'); console.log('FView', fview); being sometimes null, it related to the famousContext stuff, we have a new pattern for it now.

Still to come from the rest of PEM--'s list:

  • Speaking of splendido, I think you should use his package for the account management.
  • The theme should be the same as famous-views so that when we will review the theme or integrate the fview-lab, it will be easy as pie.
  • You should be able to choose which pane could be shown on a lesson. Empty source pane is blurring user's view.
  • Touch events doesn't work on tablets which could be interesting for fast reproducing an issue.