grasshopper-cms / grasshopper-admin Goto Github PK
View Code? Open in Web Editor NEWDeprecated. Use grasshopper-cms
Home Page: https://github.com/grasshopper-cms/grasshopper-cms
Deprecated. Use grasshopper-cms
Home Page: https://github.com/grasshopper-cms/grasshopper-cms
create a rich text field in a content type, create a content item and try to use the "source" option for the editor
This should be a simple node app, and it should also dump a test user and test config object into a the local db if those collections are empty.
http://screencast.com/t/lLvPYfIyaBK
Doesn't seem to have any effect on usability
the options needed are:
api endpoint
build directory path
custom plugin dirctory path
should be a multi task
The config page should be at .../admin/config
The api for the page should be something like .../admin/_config
Configs should be in a separate ghAdmin collection with _id config
seems like an intermitent bug that goes away and comes back - internal tracking at:
https://solidinteractive.atlassian.net/browse/GRAS-1418
Think the fact that it comes back and goes away, points to it being a OS issue... something similar is here: busterjs/buster#401 (comment)
probably if @altmind builds, it has windows line endings, if someone else builds it has linux line endings
I'll reopen 1418, reference this, and we can come up w a solution.
Saving content that has a content-type containing "Allow Multiple" with no value does not save the empty array back to the database.
Example:
{
"hidden" : true,
"producers" : [ ],
"releaseyear" : "2013",
"writers" : [ ]
}
After saving both producers and writers are not in the data.
Search box is there but it does nothing
Since in pretty much all projects we are referencing an S3 bucket, it would be nice to have this done automatically. In every project I've seen there is some middleware that adds the S3 bucket reference to the file refs. Automatic would save a lot of dev time
Have to figure out how exactly this would work, but thinking it would be a conditional field type. In it you would pick an existing type and add a condition.
Creating folders in the admin section is a useful way of organizing content, however I cannot move content / files once they have been put into a specific folder
Reproduced on several implementations of admin, so it must be a lib bug.
Notice the text field is up to date, but the embedded field has the value it had after the first save.
Trying to upload an 8Mb video the upload fails silently
v confusing
OTS parsing error: invalid version tag
jquery.ui.accordion.js:564Uncaught TypeError: Cannot read property 'className' of undefined
at $.(anonymous function).(anonymous function)._toggleComplete (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:55946:53)
at $.(anonymous function).(anonymous function)._toggleComplete (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:53475:25)
at HTMLDivElement.complete (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:55889:10)
at HTMLDivElement.opt.complete (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:15807:12)
at fire (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:12219:30)
at Object.fireWith [as resolveWith] (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:12331:7)
at tick (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:15682:14)
at Function.jQuery.fx.tick (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:15972:9)
at raf (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:49635:19)
jquery.ui.accordion.js:564Uncaught TypeError: Cannot read property 'className' of undefined
at $.(anonymous function).(anonymous function)._toggleComplete (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:55946:53)
at $.(anonymous function).(anonymous function)._toggleComplete (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:53475:25)
at HTMLDivElement.complete (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:55889:10)
at HTMLDivElement.opt.complete (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:15807:12)
at fire (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:12219:30)
at Object.fireWith [as resolveWith] (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:12331:7)
at tick (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:15682:14)
at Function.jQuery.fx.tick (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:15972:9)
at raf (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:49635:19)
https://nicerink.thinksolid.com/api/user Failed to load resource: the server responded with a status of 502 (Bad Gateway)
https://nicerink.thinksolid.com/api/contenttypes Failed to load resource: the server responded with a status of 502 (Bad Gateway)
https://nicerink.thinksolid.com/api/token/logout Failed to load resource: the server responded with a status of 502 (Bad Gateway)
/admin/login:1 Mixed Content: The page at 'https://nicerink.thinksolid.com/admin/login' was loaded over HTTPS, but requested an insecure image 'http://www.gravatar.com/avatar/?s=24&d=mm'. This content should also be served over HTTPS.
/admin/items:1 Mixed Content: The page at 'https://nicerink.thinksolid.com/admin/items' was loaded over HTTPS, but requested an insecure image 'http://www.gravatar.com/avatar/a6f53d9acd3a29af6798bd267bfc7fef?s=24&d=mm'. This content should also be served over HTTPS.
jquery.ui.accordion.js:564Uncaught TypeError: Cannot read property 'className' of undefined
at $.(anonymous function).(anonymous function)._toggleComplete (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:55946:53)
at $.(anonymous function).(anonymous function)._toggleComplete (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:53475:25)
at HTMLDivElement.complete (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:55889:10)
at HTMLDivElement.opt.complete (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:15807:12)
at fire (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:12219:30)
at Object.fireWith [as resolveWith] (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:12331:7)
at tick (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:15682:14)
at Function.jQuery.fx.tick (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:15972:9)
at raf (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:49635:19)
jquery.ui.accordion.js:564Uncaught TypeError: Cannot read property 'className' of undefined
at $.(anonymous function).(anonymous function)._toggleComplete (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:55946:53)
at $.(anonymous function).(anonymous function)._toggleComplete (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:53475:25)
at HTMLDivElement.complete (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:55889:10)
at HTMLDivElement.opt.complete (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:15807:12)
at fire (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:12219:30)
at Object.fireWith [as resolveWith] (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:12331:7)
at tick (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:15682:14)
at Function.jQuery.fx.tick (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:15972:9)
at raf (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:49635:19)
jquery.ui.accordion.js:564Uncaught TypeError: Cannot read property 'className' of undefined
at $.(anonymous function).(anonymous function)._toggleComplete (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:55946:53)
at $.(anonymous function).(anonymous function)._toggleComplete (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:53475:25)
at HTMLDivElement.complete (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:55889:10)
at HTMLDivElement.opt.complete (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:15807:12)
at fire (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:12219:30)
at Object.fireWith [as resolveWith] (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:12331:7)
at tick (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:15682:14)
at Function.jQuery.fx.tick (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:15972:9)
at raf (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:49635:19)
jquery.ui.accordion.js:564Uncaught TypeError: Cannot read property 'className' of undefined
at $.(anonymous function).(anonymous function)._toggleComplete (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:55946:53)
at $.(anonymous function).(anonymous function)._toggleComplete (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:53475:25)
at HTMLDivElement.complete (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:55889:10)
at HTMLDivElement.opt.complete (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:15807:12)
at fire (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:12219:30)
at Object.fireWith [as resolveWith] (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:12331:7)
at tick (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:15682:14)
at Function.jQuery.fx.tick (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:15972:9)
at raf (https://nicerink.thinksolid.com/admin/main.84d46eb6.js:49635:19)
2https://nicerink.thinksolid.com/api/node/585ad281e83d957c04d783ec/assets Failed to load resource: the server responded with a status of 500 (Internal Server Error)
A page should show:
db.getCollectionNames().forEach(function(collection) {
indexes = db[collection].getIndexes();
print("Indexes for " + collection + ":");
printjson(indexes);
});
and this should be configurable.
Currently only _id
is indexed by default. Would be nice to add / list indices from admin.
control of editing a piece of content should be available to only one user at a time.
work for this is well on the way here:
https://github.com/Solid-Interactive/grasshopper-api-js/tree/feature/modular-admin/lib/routes/admin
I have an embedded field type with 2 boolean values, I have noticed that the behaviour is inconsistent when trying to toggle these values.
This link shows a video of me changing the value, clicking save and then refreshing the page to see if the value has updated correctly. It didn't in this case, but if I repeat the operation is will most likely work. Very confusing
The Grasshopper Admin & API works fine when I configure with Localhost MongoDB, but I configure remote MongoDB
I get following error
The User is admin
, and has DB Admin Access on all databases
Unhandled rejection MongoError: not authorized on sandbox-db to execute command { listIndexes: "sessions", cursor: {} }
at Function.MongoError.create (/Users/nikhil/grass/node_modules/mongodb-core/lib/error.js:30:11)
at queryCallback (/Users/nikhil/grass/node_modules/mongodb-core/lib/cursor.js:213:36)
at /Users/nikhil/grass/node_modules/mongodb-core/lib/connection/pool.js:456:18
at nextTickCallbackWith0Args (node.js:433:9)
at process._tickCallback (node.js:362:13)
STR
dump hundreds of images into a folder, now try and browse it with the asset selector
paging or lazy load?
The Grasshopper Admin & API works fine when I configure with Localhost MongoDB, but I configure remote MongoDB
I get following error
The User is admin
, and has DB Admin Access on all databases
Unhandled rejection MongoError: not authorized on sandbox-db to execute command { listIndexes: "sessions", cursor: {} }
at Function.MongoError.create (/Users/nikhil/grass/node_modules/mongodb-core/lib/error.js:30:11)
at queryCallback (/Users/nikhil/grass/node_modules/mongodb-core/lib/cursor.js:213:36)
at /Users/nikhil/grass/node_modules/mongodb-core/lib/connection/pool.js:456:18
at nextTickCallbackWith0Args (node.js:433:9)
at process._tickCallback (node.js:362:13)
When you select Embedded Type, you should be able to select one, multiple, or all types to use.
Content types are required to have a text field as the first field, if they do not a warning shows.
There are many instances where a content type does not need a text field, but one has to be added anyway resulting in a confusing extra field
It would be nice to run raw Mongo queries a la PHPMyAdmin and MySql. This would reduce the need to drop into a shell when running a custom query or etc.
If I upload a file to a content type it doesnt appear for selection unless I open the selection popup a second time
http://screencast.com/t/9DHFgjpgxz4i
as far as I can see, all of these requests are identical
Create a content type with 2 drop downs
save and refresh the page
visit the page again, and the choices in the 1st drop down will show the choices from the second drop down
Lets say you have a contenttype of book and it has fields Title and Author.
It'd be nice to be able to create a type called Biography, extend book and add the field Subject to end up with fields Title, Author and Subject.
The current workaround is to embed the book type in the Biography type, or just manual recreation of fields.... so not a huge deal, but would be good.
STR:
start with an empty install with only 1 user
create a node
click on node
expected:
can look at node (for example to add assets)
actual:
stays on home page until at least one content type is created
Would expect either a warning or a rename.
You get a 200 but the new file is not added.
When you have a large number of files uploaded to a particular folder the page loading takes a very long time. This could be solved with pagination
I upgraded my node version to the latest and now there are some dependencies that probably need to be updated.
I've included my logs here. All the dependencies should probably be updated.
npm install [email protected]
npm WARN deprecated [email protected]: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated [email protected]: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated [email protected]: graceful-fs v3.0.0 and before will fail on node releases >= v7.0. Please update to graceful-fs@^4.0.0 as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.
npm WARN deprecated [email protected]: Use the globby package instead
npm WARN deprecated [email protected]: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated [email protected]: use [cross-spawn](https://github.com/IndigoUnited/node-cross-spawn) or [cross-spawn-async](https://github.com/IndigoUnited/node-cross-spawn-async) instead.
> [email protected] preinstall /Users/travman/Development/grasshopper-core-nodejs/node_modules/.staging/typechecker-532510cb
> node ./cyclic.js
> [email protected] preinstall /Users/travman/Development/grasshopper-core-nodejs/node_modules/.staging/js2coffee-eaa61c14
> node ./cyclic.js
> [email protected] preinstall /Users/travman/Development/grasshopper-core-nodejs/node_modules/.staging/cson-bba0104d
> node ./cyclic.js
npm WARN prefer global [email protected] should be installed with -g
> [email protected] postinstall /Users/travman/Development/grasshopper-core-nodejs/node_modules/gifsicle
> node index.js
path.js:7
throw new TypeError('Path must be a string. Received ' + inspect(path));
^
TypeError: Path must be a string. Received { url: 'https://raw.github.com/imagemin/gifsicle-bin/v0.1.7/vendor/osx/gifsicle',
name: 'gifsicle',
os: 'darwin' }
at assertPath (path.js:7:11)
at Object.basename (path.js:1355:5)
at /Users/travman/Development/grasshopper-core-nodejs/node_modules/download/index.js:35:43
at each (/Users/travman/Development/grasshopper-core-nodejs/node_modules/each-async/each-async.js:63:4)
at module.exports (/Users/travman/Development/grasshopper-core-nodejs/node_modules/download/index.js:33:5)
at /Users/travman/Development/grasshopper-core-nodejs/node_modules/bin-wrapper/index.js:108:20
at /Users/travman/Development/grasshopper-core-nodejs/node_modules/bin-wrapper/index.js:141:24
at /Users/travman/Development/grasshopper-core-nodejs/node_modules/bin-check/index.js:30:20
at /Users/travman/Development/grasshopper-core-nodejs/node_modules/executable/index.js:39:20
at FSReqWrap.oncomplete (fs.js:123:15)
> [email protected] postinstall /Users/travman/Development/grasshopper-core-nodejs/node_modules/jpegtran-bin
> node index.js
> [email protected] postinstall /Users/travman/Development/grasshopper-core-nodejs/node_modules/optipng-bin
> node index.js
path.js:7
throw new TypeError('Path must be a string. Received ' + inspect(path));
^
TypeError: Path must be a string. Received { url: 'https://raw.github.com/imagemin/optipng-bin/v0.3.11/vendor/osx/optipng',
name: 'optipng',
os: 'darwin' }
at assertPath (path.js:7:11)
at Object.basename (path.js:1355:5)
at /Users/travman/Development/grasshopper-core-nodejs/node_modules/download/index.js:35:43
at each (/Users/travman/Development/grasshopper-core-nodejs/node_modules/each-async/each-async.js:63:4)
at module.exports (/Users/travman/Development/grasshopper-core-nodejs/node_modules/download/index.js:33:5)
at /Users/travman/Development/grasshopper-core-nodejs/node_modules/bin-wrapper/index.js:108:20
at /Users/travman/Development/grasshopper-core-nodejs/node_modules/bin-wrapper/index.js:141:24
at /Users/travman/Development/grasshopper-core-nodejs/node_modules/bin-check/index.js:30:20
at /Users/travman/Development/grasshopper-core-nodejs/node_modules/executable/index.js:39:20
at FSReqWrap.oncomplete (fs.js:123:15)
> [email protected] postinstall /Users/travman/Development/grasshopper-core-nodejs/node_modules/pngquant-bin
> node index.js
path.js:7
throw new TypeError('Path must be a string. Received ' + inspect(path));
^
TypeError: Path must be a string. Received { url: 'https://raw.github.com/imagemin/pngquant-bin/v0.3.5/vendor/osx/pngquant',
name: 'pngquant',
os: 'darwin' }
at assertPath (path.js:7:11)
at Object.basename (path.js:1355:5)
at /Users/travman/Development/grasshopper-core-nodejs/node_modules/download/index.js:35:43
at each (/Users/travman/Development/grasshopper-core-nodejs/node_modules/each-async/each-async.js:63:4)
at module.exports (/Users/travman/Development/grasshopper-core-nodejs/node_modules/download/index.js:33:5)
at /Users/travman/Development/grasshopper-core-nodejs/node_modules/bin-wrapper/index.js:108:20
at /Users/travman/Development/grasshopper-core-nodejs/node_modules/bin-wrapper/index.js:141:24
at /Users/travman/Development/grasshopper-core-nodejs/node_modules/bin-check/index.js:30:20
at /Users/travman/Development/grasshopper-core-nodejs/node_modules/executable/index.js:39:20
at FSReqWrap.oncomplete (fs.js:123:15)
[email protected] /Users/travman/Development/grasshopper-core-nodejs
├─┬ [email protected]
│ ├── [email protected]
│ ├─┬ [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├── [email protected]
│ │ │ ├─┬ [email protected]
│ │ │ │ ├── [email protected]
│ │ │ │ ├─┬ [email protected]
│ │ │ │ │ └── [email protected]
│ │ │ │ └── [email protected]
│ │ │ └─┬ [email protected]
│ │ │ ├── [email protected]
│ │ │ └─┬ [email protected]
│ │ │ └── [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├── [email protected]
│ │ │ ├── [email protected]
│ │ │ └── [email protected]
│ │ └── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├─┬ [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├── [email protected]
│ │ │ └── [email protected]
│ │ ├─┬ [email protected]
│ │ │ └── [email protected]
│ │ └─┬ [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├── [email protected]
│ │ │ └── [email protected]
│ │ └─┬ [email protected]
│ │ └─┬ [email protected]
│ │ └─┬ [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ └── [email protected]
│ ├─┬ [email protected]
│ │ ├── [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├── [email protected]
│ │ │ └── [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├─┬ [email protected]
│ │ │ │ └── [email protected]
│ │ │ ├─┬ [email protected]
│ │ │ │ ├── [email protected]
│ │ │ │ ├── [email protected]
│ │ │ │ ├── [email protected]
│ │ │ │ ├── [email protected]
│ │ │ │ ├── [email protected]
│ │ │ │ ├── [email protected]
│ │ │ │ ├── [email protected]
│ │ │ │ ├── [email protected]
│ │ │ │ └── [email protected]
│ │ │ ├─┬ [email protected]
│ │ │ │ └─┬ [email protected]
│ │ │ │ ├─┬ [email protected]
│ │ │ │ │ └─┬ [email protected]
│ │ │ │ │ ├─┬ [email protected]
│ │ │ │ │ │ ├── [email protected]
│ │ │ │ │ │ ├─┬ [email protected]
│ │ │ │ │ │ │ ├─┬ [email protected]
│ │ │ │ │ │ │ │ └─┬ [email protected]
│ │ │ │ │ │ │ │ └── [email protected]
│ │ │ │ │ │ │ └── [email protected]
│ │ │ │ │ │ ├── [email protected]
│ │ │ │ │ │ ├── [email protected]
│ │ │ │ │ │ ├── [email protected]
│ │ │ │ │ │ ├─┬ [email protected]
│ │ │ │ │ │ │ └── [email protected]
│ │ │ │ │ │ └─┬ [email protected]
│ │ │ │ │ │ ├── [email protected]
│ │ │ │ │ │ └─┬ [email protected]
│ │ │ │ │ │ └─┬ [email protected]
│ │ │ │ │ │ └── [email protected]
│ │ │ │ │ ├── [email protected]
│ │ │ │ │ ├── [email protected]
│ │ │ │ │ ├── [email protected]
│ │ │ │ │ ├── [email protected]
│ │ │ │ │ └─┬ [email protected]
│ │ │ │ │ ├── [email protected]
│ │ │ │ │ └─┬ [email protected]
│ │ │ │ │ └── [email protected]
│ │ │ │ ├─┬ [email protected]
│ │ │ │ │ ├─┬ [email protected]
│ │ │ │ │ │ └── [email protected]
│ │ │ │ │ └── [email protected]
│ │ │ │ └── [email protected]
│ │ │ ├─┬ [email protected]
│ │ │ │ ├── [email protected]
│ │ │ │ └─┬ [email protected]
│ │ │ │ ├─┬ [email protected]
│ │ │ │ │ └── [email protected]
│ │ │ │ ├── [email protected]
│ │ │ │ ├── [email protected]
│ │ │ │ └── [email protected]
│ │ │ ├── [email protected]
│ │ │ ├── [email protected]
│ │ │ ├─┬ [email protected]
│ │ │ │ └── [email protected]
│ │ │ └── [email protected]
│ │ └── [email protected]
│ ├─┬ [email protected]
│ │ └─┬ [email protected]
│ │ ├─┬ [email protected]
│ │ │ └─┬ [email protected]
│ │ │ └── [email protected]
│ │ ├─┬ [email protected]
│ │ │ └── [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├── [email protected]
│ │ │ ├── [email protected]
│ │ │ ├─┬ [email protected]
│ │ │ │ └─┬ [email protected]
│ │ │ │ ├── [email protected]
│ │ │ │ └── [email protected]
│ │ │ └── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ └── [email protected]
│ ├─┬ [email protected]
│ │ └── [email protected]
│ ├─┬ [email protected]
│ │ ├── [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├── [email protected]
│ │ │ ├─┬ [email protected]
│ │ │ │ └── [email protected]
│ │ │ ├── [email protected]
│ │ │ └── [email protected]
│ │ ├── [email protected]
│ │ └── [email protected]
│ ├─┬ [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├── [email protected]
│ │ │ └── [email protected]
│ │ └── [email protected]
│ ├─┬ [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├─┬ [email protected]
│ │ │ │ ├─┬ [email protected]
│ │ │ │ │ ├── [email protected]
│ │ │ │ │ └── [email protected]
│ │ │ │ ├─┬ [email protected]
│ │ │ │ │ └── [email protected]
│ │ │ │ ├─┬ [email protected]
│ │ │ │ │ └── [email protected]
│ │ │ │ ├─┬ [email protected]
│ │ │ │ │ ├─┬ [email protected]
│ │ │ │ │ │ └── [email protected]
│ │ │ │ │ ├── [email protected]
│ │ │ │ │ ├── [email protected]
│ │ │ │ │ └── [email protected]
│ │ │ │ └── [email protected]
│ │ │ ├─┬ [email protected]
│ │ │ │ ├─┬ [email protected]
│ │ │ │ │ └── [email protected]
│ │ │ │ └── [email protected]
│ │ │ └── [email protected]
│ │ └─┬ [email protected]
│ │ ├── [email protected]
│ │ └── [email protected]
│ ├─┬ [email protected]
│ │ └── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├─┬ [email protected]
│ │ ├── [email protected]
│ │ └── [email protected]
│ ├── [email protected]
│ └── [email protected]
└─┬ [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├─┬ [email protected]
│ ├─┬ [email protected]
│ │ └── [email protected]
│ └── [email protected]
├── [email protected]
├─┬ [email protected]
│ ├── [email protected]
│ └── [email protected]
├─┬ [email protected]
│ ├─┬ [email protected]
│ │ ├── [email protected]
│ │ └── [email protected]
│ ├── [email protected]
│ └── [email protected]
├─┬ [email protected]
│ ├── [email protected]
│ └── [email protected]
├── [email protected]
├── [email protected]
├─┬ [email protected]
│ ├─┬ [email protected]
│ │ ├── [email protected]
│ │ └── [email protected]
│ └── [email protected]
├── [email protected]
├─┬ [email protected]
│ ├── [email protected]
│ └── [email protected]
├─┬ [email protected]
│ └── [email protected]
├── [email protected]
├── [email protected]
└── [email protected]
This would make moving nodes simpler.
Currently many docs have to be updated if a node is moved from one parent node to another.
Would also simplify the permissions cascading.
These should be method calls with window.gh.modal(...), window.gh.alert(...), window.gh.growl(...)
Promise based
modals and growls can be chained - alerts can only be done one at a time
i believe the error has to do with the new rivets cleanup tasks.
the memory usage seems improved w the latest masseuse, but there are occasional errors probably related to the rivets binders
str
load latest masseuse
go to a page that show breadcrumbs
click on the home breadcrumb
node v6.3.0
Building grasshopper-admin. Please wait, this can take a few minutes. ・・・●・exec error: Error: Command failed: /Users/marco/Programmierung/node/grasshopper/test/node_modules/.bin/grasshopper build bower contextjs#* invalid-meta for:/var/folders/3s/8b9ykjsn3h10_92mxnvx7kt40000gp/T/marco/bower/ae69027d30342cb2fa72e08c02cc227b-78167-opDeRM/bower.json bower contextjs#* invalid-meta The "name" is recommended to be lowercase, can contain digits, dots, dashes bower SparkMD5#* invalid-meta for:/var/folders/3s/8b9ykjsn3h10_92mxnvx7kt40000gp/T/marco/bower/78d00e710581a3a6aea4f00a933ab0f7-78167-HKe5J4/bower.json bower SparkMD5#* invalid-meta The "name" is recommended to be lowercase, can contain digits, dots, dashes bower jquery-placeholder#~2.0.7 mismatch Version declared in the json (2.0.8) is different than the resolved one (2.0.9) bower ckeditor#4.3.5 retry Download of https://github.com/ckeditor/ckeditor-releases/archive/4.3.5.tar.gz failed with ETIMEDOUT, retrying in 1.7s bower ace#1.1.3 ECMDERR Failed to execute "git ls-remote --tags --heads https://github.com/ajaxorg/ace.git", exit code of #128 fatal: unable to access 'https://github.com/ajaxorg/ace.git/': Failed to connect to github.com port 443: Operation timed out Additional error details: fatal: unable to access 'https://github.com/ajaxorg/ace.git/': Failed to connect to github.com port 443: Operation timed out
Currently our code makes reference to mongo IDs or meta.labels in order to correctly filter content
This is time consuming and not great practice as IDs are not human readable and meta.labels are neither unique nor immutable - If I change a content type label in Cambium or Gerber it will break the site going forward in a way that is difficult to debug
I added functionality for .getBySlug to nodes and contenttypes as part of GH Ecomm but did not change the admin to make use of this.
Once we get this in place we will be closer to being able to define contenttypes in the codebase rather than in the database which is almost essential for creating plugins
The steps to reproduce seems to be save some right text, refresh the page, click source, modify source, click save.
expected: newly edited source saves
actualy: previous content still visible
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.