GithubHelp home page GithubHelp logo

orionjs / orioncms Goto Github PK

View Code? Open in Web Editor NEW
716.0 716.0 129.0 2.44 MB

[Old] Orion is an open source framework built on Meteor that makes complex as well as simple apps possible with minimal effort.

Home Page: http://orionjs.org

License: MIT License

JavaScript 70.44% HTML 24.90% CSS 4.65%

orioncms's People

Contributors

avishaan avatar berkbadem avatar borisdamato avatar brajt avatar budickda avatar citronnade avatar dandv avatar demiters avatar dvc94ch avatar ericgiannini avatar frabrunelle avatar jameslefrere avatar joadr avatar jorisroling avatar loongmxbt avatar lukasvan3l avatar lulato avatar martin-mh avatar mloncaric avatar mraak avatar mylastcard avatar nicolaslopezj avatar pcorey avatar pem-- avatar pinguinosod avatar rwatts3 avatar ryanbuiltthat avatar sean-stanley avatar solcates avatar tomfreudenberg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

orioncms's Issues

Leverage defining user roles.

Would it be possible to leverage user roles, for instance if you want to assign a role of client , or blogger and give any user within that role default permissions.

alanning:roles is a great package to use as leverage.

So similar to how you did pages extension you could do roles extension, and have an entity that you can define presets based on a role.

Languages on dictionary and entities

OrionJS looks very promising, but AFAIK there is no easy way to have dictionary definitions on multiple languages. What about a tap:i18n dependency?

After a meteor update, admin area error

Hi all

I just did a meteor update and tried to reach the admin panel. The following arise when I open mywebsite/admin :

Couldn't find a template named "adminAccountsLogin" or "adminAccountsLogin". Are you sure you defined it?

Any idea what went wrong?

Passing defaults value to entitiies

I do like to pre-populate some of the fields with defaults values, with autoform you can do this ({{> afQuickField name="tag" value=valueHelper}}). How do achieve same with Orion? Thanks

Newsletter for major releases

I know that this is still young, but I think you would benefit from setting up something like a mailchimp for informing users of release updates. I just pulled your latest updates and was confused as to why my admin user was not longer and admin and saw that there is now an admin/setup (I realize theres not a lot of people actively playing with this as much as I am but big changes like this would be nice to know about). I would be interested in contributing to the newsletter releases as well.

License

There is no mention of what license this is released under. This can be problematic for people in certain (boring) sphere's. Has there been any thought into licensing and if so could you please add a license.md file/something similar.

Cheers,

Yaser

Best way to load a custom page in the admin panel.

Looked through the API and docs and I may have missed it. What is the best way to add a custom page to the admin panel. For instance if I want to add a button called Analytics. And I want to serve a custom page inside the admin panel that has charts and graphs about the sites analytics.

Maybe even render a custom docs page inside the admin area for new users.

Documentation on orion.users.configure

I am trying to understand the syntax such as entity.posts.personal, entity.posts.?
Is there documentation on the items that can be passed and the best syntax to use ?

Multipe Froala

Hi,

I am using multiple Froala Editors in an entity. Unfortunately when an admin updates the content of one editor the conent in the other editors is removed.

BR

useraccounts:bootstrap vs useraccounts:semantic-ui

Orion.js depends on useraccounts:bootstrap but I use semantic-ui on frontend and thus would like to use useraccounts:semantic-ui for users to sign up/in. When I add the latter, it conflicts with the bootstrap version. How can I solve it without forking Orion.js and making new package?

Alternative to s3

What is the alternative to s3 I cannot and would prefer not to use s3 to store files, would rather store them locally.

How do you actually start this CMS? Starter Theme?

I spun up a fresh meteor app, added your package and all I have is the same old basic meteor starter app. The routing that is supposed to work out of the box doesn't, is the api.addFiles supposed to build files into the apps root directory? If so that doesn't seem to be working for me.

I also tried cloning parts of this repo to my root meteor directory but couldn't get it to spin up correctly. Is there a meteor starter app that is attached to the cms package I'm not aware of?

Issue using admin panel after update to 0.5.5.

Recently updated to orionjs:core and Meteor 1.0.4.1, console returning this now:

Route dispatch never rendered. Did you forget to call this.next() in an onBeforeAction?
debug.js:41 Received error from server:  Malformed subscription
debug.js:43 For:  Object {msg: "sub", id: "PBsrZTQZmiyQzD4vm", name: Object, params: Array[0]}id: "PBsrZTQZmiyQzD4vm"msg: "sub"name: Objectparams: Array[0]__proto__: Object

How to determine if a user isAdmin on the front end ?

In conjunction with a previous issue I submitted I would like to know what is the easiest way to run an if within the template to determine if the user is an admin or has permissions to do something.

For instance I would like to say
{{#if isAdmin}} display something that only a user with admin permissions would be able to see, however on the front end. {{/if}}

Exception in template helper: TypeError: Cannot read property 'objectKeys' of null

http://cl.ly/image/381p443H473x

Exception in template helper: TypeError: Cannot read property 'objectKeys' of null
    at Object.autoFormFieldNames (http://localhost:3000/packages/aldeed_autoform.js?238705d312ed82aff928668af1316ae1b2d7ed2a:1383:19)
    at http://localhost:3000/packages/blaze.js?4e49999979a58da0e2265f7bd3f5910f9901b07b:2786:16
    at http://localhost:3000/packages/blaze.js?4e49999979a58da0e2265f7bd3f5910f9901b07b:1607:16
    at http://localhost:3000/packages/blaze.js?4e49999979a58da0e2265f7bd3f5910f9901b07b:2834:66
    at Function.Template._withTemplateInstanceFunc (http://localhost:3000/packages/blaze.js?4e49999979a58da0e2265f7bd3f5910f9901b07b:3382:12)
    at http://localhost:3000/packages/blaze.js?4e49999979a58da0e2265f7bd3f5910f9901b07b:2833:27
    at Spacebars.call (http://localhost:3000/packages/spacebars.js?7bafbe05ec09b6bbb6a3b276537e4995ab298a2f:172:18)
    at Spacebars.mustacheImpl (http://localhost:3000/packages/spacebars.js?7bafbe05ec09b6bbb6a3b276537e4995ab298a2f:109:25)
    at Object.Spacebars.dataMustache (http://localhost:3000/packages/spacebars.js?7bafbe05ec09b6bbb6a3b276537e4995ab298a2f:141:39)
    at http://localhost:3000/packages/aldeed_autoform.js?238705d312ed82aff928668af1316ae1b2d7ed2a:6292:22

Enhancement: Move views out of core

This is a very promising suite of packages, and i definitely agree with you that the dictionary has huge value as a CMS.

I am setting up a project with orionjs and i found myself cloning both core and styles locally to modify a bit the look and feel.

What are your thoughts on moving views out of core and just have the core package with funcitonality (similar to useraccounts:core) and then have orionjs:bootstrap, orionjs:semantic, orionjs:polymer etc etc

Spiderable issues?

Hey just wondering if you've played around with spiderable with any of the orion builds, I have tried to strip some of my sites down and resolve the issues (my own fault for not firing up spiderable initially). But having trouble getting it resolve correctly on both my orion sites.

Improve documentation site

What do you think about the current documentation site?
Would you prefer that the docs is on orion.meteor.com or github?

Create Home link in the admin area.

Similar to how you've done the Logout button. I believe it would be efficient for a Home or Site button to be created in the admin section. Once clicked it will take you to the home page of the site so the user doesn't always have to remove \admin\ from the url to get to the home page.

Any ideas on the best way to implement this?

Local Filesystem

Cool package. I saw a section about Filesystems, but it only showed S3 and no clear description of how to use it for local filesystems. Please add this to the docs or show me an example here.

404 at /admin and conflict with onCreateUser function

  1. When I first added orionjs:core and orionjs:styles to my app that I already developed, it did not crush but /admin was unavailable (error 404). Then I tried to install orion on a fresh app and it worked OK. I noticed that more dependencies were installed that time. Then I ran meteor update on the 1st app and indeed it added some dependencies that were not added before.
  2. Ok, I ran meteor and there was an error can only call onCreateUser once. I used onCreateUser function to add some additional fields inside users' profile field. So, I commented the function out , ran meteor again, the app opened OK and /admin was accessible.

So, all is solved except inability of onCreateUser usage. Maybe I can add new fields to users from the orion config? I did not find any clue in http://orion.meteor.com/docs/accounts . Should I add new fields by means of useraccounts-core package?(it was added as one of dependencies)

Use plugin version of ensureSignedIn

This message can be seen in the browser console:

[UserAccounts] AccountsTemplates.ensureSignedIn will be deprecated soon, please use the plugin version
               see https://github.com/meteor-useraccounts/core/blob/master/Guide.md#content-protection

Potential bug on /admin/dictionary

How to reproduce :

Go on the dictionnary page in the admin area and refresh your browser (tested on Google Chrome).

Error :

Uncaught TypeError: Cannot read property 'hasPermission' of undefined

Complete logs :

Uncaught TypeError: Cannot read property 'hasPermission' of undefinedcommon.js:74 (anonymous function)common.js:73 orion.dictionary.getDefaultCategoryroutes.js:96 Router.route.datacontroller.js:13 bindDatadynamic_template.js:108 DynamicTemplate.datadynamic_template.js:141 (anonymous function)builtins.js:22 (anonymous function)view.js:179 (anonymous function)view.js:414 Blaze._withCurrentViewview.js:178 viewAutoruntracker.js:263 Tracker.Computation._computetracker.js:181 Tracker.Computationtracker.js:454 Tracker.autorunview.js:177 Blaze.View.autorunbuiltins.js:21 (anonymous function)view.js:206 fireCallbackstracker.js:480 Tracker.nonreactiveview.js:203 (anonymous function)view.js:414 Blaze._withCurrentViewview.js:202 Blaze._fireCallbacksview.js:220 Blaze._createViewview.js:224 Blaze._materializeViewmaterializer.js:117 Blaze._DOMMaterializer.def.visitObjectvisitors.js:61 HTML.Visitor.def.visitview.js:242 doMaterializetracker.js:480 Tracker.nonreactiveview.js:240 doRenderview.js:179 (anonymous function)view.js:414 Blaze._withCurrentViewview.js:178 viewAutoruntracker.js:263 Tracker.Computation._computetracker.js:181 Tracker.Computationtracker.js:454 Tracker.autorunview.js:177 Blaze.View.autorunview.js:231 (anonymous function)tracker.js:480 Tracker.nonreactiveview.js:230 Blaze._materializeViewview.js:513 Blaze.renderdynamic_template.js:411 DynamicTemplate.insertrouter_client.js:42 Router.insertrouter_client.js:32 maybeAutoInsertRouter

Error is on comon.js file line 74 :

/**
 * Returns the default category of the dictionary
 */
orion.dictionary.getDefaultCategory = function() {
    if (!Meteor.userId()) {
        return _.first(_.keys(this.categories));
    }
    var found = null;
    _.keys(this.categories).map(function(category) {
// error on this line
        if (Meteor.user().hasPermission('dictionary.' + category)) {
            found = category
        }
    })
    return found;
};

Documentation for creating extensions for Orionjs

Is there any documentation or a guide for creating Orionjs extensions, for instances how you created orionjs:pages , orionjs:s3 . etc.

I would like to start contributing by building extensions. Also are extensions the same thing as orion.attribute ?

Pages

Hi @nicolaslopezj,

I have enjoyed testing orion and wondered if you have plans to implement routing that is not declared within the code of the app? I.e. the ability to create and remove pages via the admin panel.

Thanks!

Property-level access control on entities

I offer an idea to add a function on entities to determine if a property has Read or Write access for the current user. Here is an example for a hypothetical Event entity, which has some public properties, some config properties, and some read-only properties:

checkPropertyAccess: function(propName, accessType) {
    accessTypes = []; 
    configurationProps = ['invitationEmailTemplate', "reminderEmailTemplate"]
    readOnlyProps = ['rsvpYesReplies', 'rsvpNoReplies', 'rsvpMaybeReplies']
    //grant READ access depending on property and role
    if (!configProps.contains(propName) || currentUser.hasRole('ADMIN') || this.eventAdmins.contains(currentUser.id)) {
      accessTypes.push('READ') 
    }
    //grant WRITE access if eventAdmin, for all except readOnly props
    if (this.eventAdmins.contains(currentUser.id) && !readOnlyProps.contains(propName)) {
      accessTypes.push('WRITE')
    } 
    //grant superuser WRITE access to any prop
    else if (currentUser.hasRole('ADMIN')) {
      accessTypes.push('WRITE')
    }
    return accessTypes.contains( accessType);
  }

Note: this is pseudo-code, I don't know how to access the currentUser or how to define roles, etc.

dict usage with html code in value display html

Got a small problam after changed the dict fields am using. Now the field's HTML content, which was initially a textarea, displays the HTML code. It's not rendered.

Is there a way to correct this?

Use this.userId instead of Meteor.userId in add.js

When doing my own serverside Collection.insert({}) I get this issue because there's problems adding the defaultSchema attributes?

Error: Meteor.userId can only be invoked in method calls. Use this.userId in publish functions.
at Object.Meteor.userId (packages/accounts-base/accounts_server.js:19:1)
at Object.defaultSchema.createdBy.autoValue (packages/orionjs:core/lib/entities/add.js:75:1)

Entity index table structure does not change when navigating between different entities

I have a few entities defined and each has its own individual structure for its index table.
This is an entity named 'sports' -
screenshot from 2015-01-16 20 09 32

This is another entity named 'events' -
screenshot from 2015-01-16 20 10 07

If I select 'sports' first and then switch to 'events' the index table ends up looking like this -
screenshot from 2015-01-16 20 12 27

No console error messages are shown.
screenshot from 2015-01-16 20 15 18

This only happens when navigating between entities.
Any idea why?

Seeding dictionary with defaultValue to avoid empty initial fields in admin interface

Dictionary entries should be seeded (database prepopulated), I felt. This way, the admin users won't be met with empty fields when first using the admin interface. Having an empty field there meant they'd have to go to the home page, copy the HTML of the field in question, paste it in admin and tweak it from there.

Seeding the defaultValue from the dict_seed helper makes the first-ever edit of a dictionary field smoother for the admins.

This might not be for everybody, and there certainly might be a more elegant solution. A major drawback of this solution is that A) the site needs to be visited in order for the value to be seeded (because dict_seed needs to run for every dictionary entry), and B) that there might be a performance hit when running the template helper.

if Meteor.isClient
  Template.registerHelper "dict_seed", (name, seedValue) ->
    if orion.dictionary.get(name) is '' and seedValue
      dictionary_id = orion.dictionary.collection.findOne()?._id
      if dictionary_id
        to_set = {}
        to_set[name] = seedValue
        orion.dictionary.collection.update(dictionary_id, $set: to_set)
        log "Reset dictionary definition value for #{name} to seedValue"
    orion.dictionary.get(name)

For reference, this is the original dict helper:

Template.registerHelper('dict', function(name, defaultValue) {
    return orion.dictionary.get(name, defaultValue);
});

Entities subscription

Hi ! First, thank you for this great project. I was making something similar but switched to yours which is really nice. I'll have some contributions very soon (like in-situ editing for dictionary values).

On the website, the suggested way to subscribe to entities is:

orion.subs.subscribe('posts');

However, that's not how it works, you must do:

orion.subs.subscribe('entity', 'posts');

Collapsable Admin Dropdown

Instead of having the admin dropdown remain fully in tact when viewing on a mobile device, The dropdown should actually collapse to the hamburger like the native bootstrap navbar does. I'm finding it to be a little difficult to demo Orion to potential mobile users due to the fact that the entities and nav links are always tall.

By doing this we would be able to have full view of the current form that we are working with and easily use the hamburger nav to switch between entities.

Realtionships

Is there a plan to enable relationships with Entities? Like having 1-1, 1-N and N-N relationships between them?

That'd be a very nice step ahead and be very helpful to build more complex data structure.

Setup Orion for editing the users collection, causes fail.

Hello.

I am trying to setup orion for the users collection, that is a special case if meteor.users exists (accounts package).

Since the AddEntity will internally do Meteor.Collection (and new SimpleSchema), the "error '/users/insert' is already defined" will show up.

It should check if the collection is "users", and if so, use Meteor.users instead of new Mongo.Collection like I do in my app:

            var col;
            if(collectionName === "users")
                col = TSW.Collections[collectionName] = Meteor.users;
            else
                col = TSW.Collections[collectionName] = new Mongo.Collection(collectionName);

If we use SimpleSchema on our app, it will also cause problems since orion also creates a new SimpleSchema object.

I can for example compromise my design to receive a SimpleSchema object from orion.addEntity, in that case, I can then check, hey do we have an orionOptions object? if so, then addEntity and use the return for our SimpleSchema, if not then just create a new SimpleSchema.

PS: For completeness, here is the code I am using : http://pastebin.com/dFk5nCvj
PS2: Using Mongo.Collection because the docs state it should now be used like that, is suspect Meteor.Collection will be depreciated soon.

Orion entities relationships via autoform afFieldInput multiple (select)

Hi all

Am trying to link 2 entities together via it's ID, via a 1-N (one to many) relationship (should be simple).

So I have pages1 and pages2, and I want page1 to have many page2 linked. So I put in page2 a field parent and use a select (via autoform) to link it.

Problem: cannot make it work. First the type of object wasn't accepted. Now this code is the closest I can get, but my meteor app doesn't update/save anything and there are no error message.

Here is the pages1.js and pages2.js entities declaration files :

page1.js

// 1st level pages
orion.addEntity('pages1', {
    title: {
        type: String,
        label: "Titre"
    },
    content: orion.attribute('froala', {
        label: "Contenu"
    })
}, {
    icon: 'bookmark',
    sidebarName: 'Page niveau 1',
    pluralName: 'Pages1',
    singularName: 'Page1',
    tableColumns: [
        { data:'title', title: 'Titre' },
        { data:'content', title: 'Contenu' }
    ]
});

page2.js

// 2nd level pages
orion.addEntity('pages2', {
    title: {
      type: String,
      label: "Titre"
    },
    content: orion.attribute('froala', {
      label: "Contenu"
    }),
    image: orion.attribute('file', {
      label: 'Image',
      optional: true
    }),
    liens: {
      type: [String],
      label: "Liens",
      optional: true
    },
    articles: orion.attribute('file', {
      label: 'Article',
      optional: true
    }),
    parent: {
      type: [Object],
      autoform: {
        // type: "select2", // FIXME: specifying SELECT2 type makes an error
        afFieldInput: {
          multiple: true
        },
        options : function() {
          return orion.entities.pages1.collection.find().map(function (obj)  {
            return {
              label: obj.title,
              value: obj._id
            };
          });
        },
      },
      label: 'Parent',
      optional: true
    }
}, {
    icon: 'bookmark',
    sidebarName: 'Page niveau 2',
    pluralName: 'Pages2',
    singularName: 'Page2',
    tableColumns: [
        { data:'title', title: 'Titre' },
        { data:'content', title: 'Contenu' }
    ]
});

Do you have any idea why this ain't working? Maybe a better way to make relationships like this work?

Thanks in advance for your help and advice!

Cheers

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.