git clone https://github.com/rdewolff/temple.git
cd temple
npm install
npm start
- Languages : 2 letter code separated by coma. Example : FR, DE, EN
to complete
collection {
id
accessionNr
title
yearFrom
publish
materialTechnique
description
file [
{
id:
fileOriginalFilename:
fileName:
fileSize:
}
]
}
artist {
id
firstname
lastname
domain
gender
lastname
birthday
birthcountry
birthplace
deathday
address
citizenship
}
collectionArtist {
collection_id
artist_id
}
_session.search
:
- dynamic page loading. Pseudo code :
controller
for each view
app.get(/auto/{view.location})
subscribe to {view.data}
todo: filter, paging
function label(field)
view
label('fieldname')
data('fieldname')
- remove delete button on edit form when adding new object
- build guided tour of temple
- improve collection - artist link (on private collection edit page) to work with reactive function. Or better way?
- check if the various reactive function are not causing problems with similar names (getCollectionArtistLinkedIds())
- add a global debug param or use the one for the environment provided by js/derby
- rename 'app' to 'private'
Cf. specification document [https://docs.google.com/document/d/1LaTlhE7MRqVQabxxX4uBnHOJha9I_-ZU1Y43ri5kXmI]
mongod --dbpath /Users/rdewolff/Data/mongodb
Backup the wanted database in specific directory :
mongodump -d <our database name> -o <directory_backup>
Restore the backed up database from specific directory :
mongorestore <our database directory> --drop
Note: the --drop
option will empty the database first.
mongoexport -d temple -c collection -o data.json
mongoimport -d temple -c artist data.json
To use your standard mongodb database with livedb, you need to ad a few info in the database. That's why the tool IGOR has been created.
Temple use NPM for it's npm dependencies and bower.
Actual version :
- node v0.10.31
- npm v1.4.24
Mac OS X : to update node and npm to last stable version, run :
brew update && brew upgrade node && npm update npm -g
For more info, refer to the package.json
file.
- Keypress : http://dmauro.github.io/Keypress/
public/component/sidr/stylesheets/jquery.sidr.light.css : removed the following styles :
font-family:"lucida grande",tahoma,verdana,arial,sans-serif;font-size:15px;
To avoid collision with bootstrap in the left menu
- If you change page while the temple-panel is still open, it won't ropen. You have to reload the whole page for it to work again.
- pass data to view : how to do it properly?
- split logic
- file upload
- list of reserved keyword not to use in our source code var name or function name
- list of properties like $render.ns that we can use
- component event list (init, etc..?)
- understand client vs server side rendering
- schema illustrating derby, components, etc... one image = 1000 words :)
- component interaction : use the model? exchange other info?
- do component share external JS like jQuery?
- how to use other external JS libs? Can I include them in my views? Should I "browserify" them?
- good practice
- I feel like I have done many mistakes because there are multiple way to do things and the error are not very expressfull. So sometimes you can end up doing stuff that works (partially?) but not in the good way. And that's usually later that you discover your mistakes and you have to rewrite part of your app. Having a "Good practice" section in the doc would help newbies to get started and take the good road directly!
- model.query() : when no query object passed in parameter, error should be more expressfull
- how does the
<includes:>
link with{{@static}}/file
work? - serving static content in components (like with the codemirror) is really a mess.. any way to make that better in the futur?
- most common type of object used in derby and their methods and properties ! this is a must have!
- should components have a static content path?
- can we do model.ref() in component or that does make no sense? Do we have to use the modle.set() to handle data in our components? Seems not the case.
- can we call model.on() in a composant create methode or that would register many times the same trigger?
- how to pass parameter from a view to a component index.js ?
- No distinct query in Derby/Racer ?
- wrong model events don't necesserly show error when not used correctly. they simply die silently. TODO: example.
- how to query the model in the app.get() controller, and then re-run the query on change of something? Should we share object? Simply re run a new query, subscribe again to it and ref() it ? What's the best practice??? Am struggling to try to do this properly to filter a collection displayed based on the user input.
- How to use the RefList correctly? Can we use it for a N to N relationship between 2 collections?
- Can we clone an object with object.at('col.'+id) and then change it's ID with new model.id() and add it? or can that cause strange behaviors?
- Dropdown don't get selected when used in a loop (example in Admin Fields Views)
- Problem converting db with Igor. Cf new thread started 20.8.2014 : https://groups.google.com/forum/#!topic/derbyjs/S4pPpk_Djik
- What happen if you subscribe to one collection in one place, and then, on some user action, you want to update the data displayed and re-subscribe to the same collection with different criteria?? Does Derby handle this correctly or will the system crash at some point?
In reply to : https://groups.google.com/forum/#!topic/derbyjs/tcj4Ezeh2-A
Hi all
Thanks for the great feedback. Appreciate to be able to follow up.
Concerning the knowledge gaps, I have been fighting with a few problems and will
try to resume them here. I know these gaps don't concern only Derby.js. But if
you want to make people use your framework and love it and participate in it's
development, you have to help them come to you :)
Knowledge Gaps
Here a few elements I could write down
List of all the properties we can use (like <view name="{{$render.ns}}"/>)
Docs : have a doc in http://devdocs.io/ !
Common error page would be helpfull
Status: actually working on it
Hi all
While making much progress in the last few days, I think I've run through a bug in Derby 0.6.
The actual app is an app to manage art objects and artists. One part of the app
is the "private" one (backend) and the other is the public one (front end). In the
backend, I can edit a collection object using model.at('collection.'+params.id)
.
That was working fine, until... I added the same method to display the collection
object detail with the same method : model.at('collection.'+params.id)
. When
I added this second method, doing the same thing with a different route for my
second app :
- I lost data!! That's the worst part. All the object I tried to view in details where wipped form the database. The object still exist, but all the records have been deleted!
- The system now crash with the following error code :