Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Nov 13 23:45
    tim-evans closed #745
  • Aug 25 18:10

    nicolasbadia on master

    Prevent a potential crash if me… Improve insertAt and removeAt e… (compare)

  • Aug 25 17:57
    Travis sproutcore/sproutcore (team/nicolasbadia/detach-view) passed (1947)
  • Aug 25 17:53
    nicolasbadia synchronize #1401
  • Aug 25 17:53

    nicolasbadia on nicolasbadia

    Fixes an issue where attached h… Do nothing in _parentDidHideInD… (compare)

  • Aug 25 17:45
  • Aug 25 17:45
    Travis sproutcore/sproutcore (team/nicolasbadia/grid-horiz) still failing (1944)
  • Aug 25 17:45

    nicolasbadia on master

    Fixes visibility state change f… Merge pull request #1392 from s… (compare)

  • Aug 25 17:45
    nicolasbadia closed #1392
  • Aug 25 17:41
    nicolasbadia synchronize #1282
  • Aug 25 17:41

    nicolasbadia on nicolasbadia

    Adds horizontal layout support … (compare)

  • Aug 25 17:34
    Travis sproutcore/sproutcore (team/nicolasbadia/flex-grid) still failing (1942)
  • Aug 25 17:34
  • Aug 25 17:29
    nicolasbadia synchronize #1123
  • Aug 25 17:29

    nicolasbadia on nicolasbadia

    Adds a new child layout plugin:… Fixes typo in SC.View.FLEX_GRID Adds unit tests for FLEX_GRID and 1 more (compare)

  • Aug 25 17:20
    nicolasbadia closed #1184
  • Aug 25 17:20
    nicolasbadia commented #1184
  • Aug 25 17:19

    nicolasbadia on master

    Made becomeFirstResponder accep… (compare)

  • Aug 25 16:58

    nicolasbadia on master

    Add an SC.set method (compare)

  • Aug 25 16:56
    Travis sproutcore/sproutcore (team/nicolasbadia/websocket-exp) passed (1938)
ycxu@bupt.edu.cn
@buptycxu11
@mauritslamers Cool!!! Thank you very much!!!!!!!!!!! After configured the httpd.conf file (i.e restore the nodes value of DocumentRoot&Directory), it worked.
Maurits Lamers
@mauritslamers
Great that it worked now :) Very welcome!
ycxu@bupt.edu.cn
@buptycxu11
How could I learn SproutCore in all details?
How to read the website of a new framework(like SproutCore) to get the most important information?
I want to be able to solve bugs instead of just being dizzy.
ycxu@bupt.edu.cn
@buptycxu11
@mauritslamers Could you give me a hand? I really appreciate it.
Maurits Lamers
@mauritslamers
@ycxu-bupt The best thing for the moment is to follow the guides. What makes SproutCore quite different from more recent 'frameworks' such as Vue, React and Angular is that it is much more like a desktop framework than a web-framework
It is modelled after Cocoa, the OSX desktop framework
SproutCore has a rather strict MVC, where the View only talks to the Controller, and Controllers talk to the model layer, which is provided by the datastore framework
Maurits Lamers
@mauritslamers
@nicolasbadia Question regarding the Aki theme: when aki is generated as @2x, shouldn't that also mean that some pixel sizes should be doubled? I was reviewing the TodosThree example application and noticed that with Aki (as well as with Ace btw) the texts belonging to the list items as well as the checkbox on top is rather off. Currently it is indicated to be left: 22px, but it only looks ok when I make it left: 44px, and then I also have to lower it by 10 px; in order to be aligned with the checkbox
TodosThree.png
Image is with the Ace theme, but the Aki theme suffers from the same problem.
Actually, this also happens with the 'normal' css...
Maurits Lamers
@mauritslamers
Ah, nevermind, it seems to have been change in the way css classes have been added, where the css files of the todos three app still used the old ones.
Maurits Lamers
@mauritslamers
@nicolasbadia Different question: I have been hunting down something from the todos_three application that I didn't understand why it didn't work. It has to do with the special stateObserves method which allows observing of something but will only trigger when that state is the current state. In the todos_three app, the enterState method is used to fire off some queries, and there is a didLoad stateObserves observer which should be fired whenever the status of the targeted controller changes. However, it never fires. I found that the reason for this is that any observer is only activated after the enterState function has been run. This is asking for a race condition and I would find it much more logical if any observers were already listening before the enterState function is called. This would mean that the call this._setupAllStateObserveHandlers() at https://github.com/sproutcore/sproutcore/blob/master/frameworks/statechart/system/state.js#L1237 would move to the method stateWillBecomeEntered. What is your gutfeeling about this?
Nicolas Badia
@nicolasbadia
@mauritslamers Hi, looks good to me, did the change on my project and no issue so far. Would it makes sense to also call _teardownAllStateObserveHandlers in stateDidBecomeExited?
Maurits Lamers
@mauritslamers
@nicolasbadia I am trying to run through the different scenarios. My change catches state observable triggers which happens as a result of what is done while the enterState is being executed. This is kind of what you expect when running the enterState: the state is essentially ready to respond to events. I would think that the opposite is true of exitState: you expect the state to have stopped responding to events, and the exitState is used to clean up afterwards. Having state observers trigger during the exitState is going to make things much more difficult to predict.
Maurits Lamers
@mauritslamers
in addition: I think the original idea behind this was that any kind of async action would go through this.performAsync('method'). Getting data from the store is such an action. The method called asynchronously is called after the observers are attached. I think it is telling that in this example app it is already not done that way.Especially regarding the recent JS developments (async await etc) it makes sense to have the observers attached as early as possible.
Also: I am updating the guides to use the NodeJS BT, as well as installing sproutcore in the project/frameworks folder by default. There is no real benefit in having some old SC floating around on the system.
Maurits Lamers
@mauritslamers
There is more peculiar behavior in the TodosThree app: whenever you add a todo item, at least one of the items in the list gets unmarked, and the same happens when one or two items get offscreen.
Maurits Lamers
@mauritslamers
@nicolasbadia any clue where this might come from? I can trace it back as far as that suddently the content binding is returning false where it was true before...
Maurits Lamers
@mauritslamers
@nicolasbadia I finally figured out why this regression occurred: it was the very change of moving the stateObserves.
So I will roll back the change on master, it causes loads of issues
Maurits Lamers
@mauritslamers
@nicolasbadia I have noticed that using the selectsearch view with records from the store causes records being set editable (and locked because of that) as soon as the mouse hovers over the option in the menu. The cause is that the menu pane will select the item on mouse-over. While this behavior is required in order to display a submenu, in a menu without submenus the same visual effect could be created through CSS. The main issue with selecting the record/menuitem is that this action locks the record in the (nested) store, and consequently prevents any updates pushed into the store through pushRetrieve to display in the app, even if the record itself has never really been displayed in the app.
I created a workaround in my app now, which checks for the combination of SC.Record.READY_CLEAN and the editable state, and force-update the store if that is the case. Of course this is not something to keep doing.
Nicolas Badia
@nicolasbadia
@mauritslamers Did you try to use the last commit from this PR: sproutcore/sproutcore#1443 ?
Also, notice that when I add the 'needs review' label to a PR, it means to me it is ready to be merged to master and someone other than me should review it and merge it if it looks good.
Maurits Lamers
@mauritslamers
You are completely right, I will try to spend some time on it. Things have been hectic here (too many different projects). Btw what is the problem behind the selected_item tests fail?
ycxu@bupt.edu.cn
@buptycxu11
What if this error?
ERROR: Cannot compute the buildNumber as buildNumberPath is not defined for the app 'TodosOne'.
Maurits Lamers
@mauritslamers
You can ignore that.
The build system supports a custom build number which is kept in a separate file.
The default configuration should not use that, but complains about it anyway
Ghost
@ghost~5cd13079d73408ce4fbf94cb
Hi there. I'd like to report a vulnerability I've found on sproutcore.com. Who should I talk to?
Ghost
@ghost~5cd13079d73408ce4fbf94cb
I'm not going to stay on the Gitter channel, so get in touch with me on Twitter for more details, if you want.
Maurits Lamers
@mauritslamers
@nicolasbadia a few things: I had to move and convert the sproutcore blog @blog.sproutcore.com to github pages (https://github.com/sproutcore-blog/sproutcore-blog) because the hosting contract stopped and I didn't want to pay $16 a month for something we could easily get for free using github.
I recreated the sproutcore blog layout with jekyll so it would be more or less the same. The only thing that might not have survived is the hardlinks, but I didn't test that.
I also wrote the first part of a series of blog posts about how we could get SC to a more modern version of JS, and what kind of issues there are. Also gives a nice insight in how the runtime framework and the inheritance scheme works.
And thinking about my development process I suddenly realized that half of the time I am searching in a complex app where I left the controller responsible for certain actions. This in turn brought me to the project folder structure: what if we started to organise things according to state instead?
Maurits Lamers
@mauritslamers
I will have a go at working out that idea to see what kind if issues that might bring.
Nicolas Badia
@nicolasbadia
@mauritslamers Nice work with the blog. It's also nice to see the blog live again :-)
Nicolas Badia
@nicolasbadia
About statechart and controllers, most of my code still seat in the controllers. It might have to do that when I started designing my app, statechart was not there yet. I now maintain states for each page in my app, and the few handlers in it mostly call methods which are defined in my controllers. My controllers are responsible of creating, updating and deleting records, managing selection, reordering, table columns... It feel to me all of this best fit in the controller.
I mostly have one array controller and one object controller per record type, but several states may relates to a record type.
Maurits Lamers
@mauritslamers
Clear, we should perhaps at some point walk through my biggest application to see what the problem is exactly. Suffice to say that for every page I have a separate state which allows certain actions. Some of these pages are not accessible by all users, and because there are around 9 pages with at least 4 controllers per page the location of that controller, and also it's exact definition and location gets a bit complex.
ericepalmer
@ericepalmer
Hi -- I need to update some of my sproutcore apps (and it has been a while). I have to use a new computer, so I have to install sproutcore from scratch. However, it fails to install. Running Mac OS 10.14.5 on a Late 2013 MacPro.
Using: sudo npm install -g sproutcore
Unable to save binary /usr/local/lib/node_modules/sproutcore/node_modules/node-sass/vendor/darwin-x64-64 : { Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/sproutcore/node_modules/node-sass/vendor'
at Object.mkdirSync (fs.js:757:3)
at sync (/usr/local/lib/node_modules/sproutcore/node_modules/mkdirp/index.js:71:13)
at Function.sync (/usr/local/lib/node_modules/sproutcore/node_modules/mkdirp/index.js:77:24)
at checkAndDownloadBinary (/usr/local/lib/node_modules/sproutcore/node_modules/node-sass/scripts/install.js:114:11)
at Object.<anonymous> (/usr/local/lib/node_modules/sproutcore/node_modules/node-sass/scripts/install.js:157:1)
at Module._compile (internal/modules/cjs/loader.js:776:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
errno: -13,
syscall: 'mkdir',
code: 'EACCES',
path:
'/usr/local/lib/node_modules/sproutcore/node_modules/node-sass/vendor' }
(and others following). I tried making the directories by hand and didn't have a problem, but the error persisted.
ericepalmer
@ericepalmer
-- Nevermind. I fixed /usr/local/lib (chown)
Ben
@bszyman

Hello SproutCore Friends!

I made this with your framework: https://www.classicmacfinder.com/server-admin/

I do have to say that even though I really like Vue, SproutCore is a lot of fun and surprisingly very productive... especially for a mostly-backend guy. I made that whole Server Admin clone in about a months time, learning as I went, so I won’t pretend to really know SC in/out, but I am happy to help contribute to the project if I can.

Nicolas Badia
@nicolasbadia
Hi Ben, glad to hear that. You are welcome in the Sproutcore community. It is nice to see new people seeing the value of Sproutcore.