From 5716e8732ea05f7aea565a2a6a62dd1dc175b87d Mon Sep 17 00:00:00 2001 From: Kadir ERDOGAN Date: Sat, 17 Oct 2015 15:06:54 +0300 Subject: [PATCH 1/5] Admin example with materializecss --- .../README.md | 49 +++ ...example-admin-materializecss-sidemenu.json | 297 ++++++++++++++++ ...example-admin-materializecss-sidemenu.yaml | 331 ++++++++++++++++++ example-admin-materializecss/README.md | 49 +++ .../example-admin-materializecss.json | 291 +++++++++++++++ .../example-admin-materializecss.yaml | 328 +++++++++++++++++ 6 files changed, 1345 insertions(+) create mode 100644 example-admin-materializecss-sidemenu/README.md create mode 100644 example-admin-materializecss-sidemenu/example-admin-materializecss-sidemenu.json create mode 100644 example-admin-materializecss-sidemenu/example-admin-materializecss-sidemenu.yaml create mode 100644 example-admin-materializecss/README.md create mode 100644 example-admin-materializecss/example-admin-materializecss.json create mode 100644 example-admin-materializecss/example-admin-materializecss.yaml diff --git a/example-admin-materializecss-sidemenu/README.md b/example-admin-materializecss-sidemenu/README.md new file mode 100644 index 0000000..ff8fafc --- /dev/null +++ b/example-admin-materializecss-sidemenu/README.md @@ -0,0 +1,49 @@ +Admin panel example +=================== + +This input file for Meteor Kitchen will build meteor application with user account system and admin panel. + +To generate and run application, inside this directory type: + +``` +meteor-kitchen ./example-admin-materializecss-sidemenu.json ./example-admin-materializecss-sidemenu +cd ./example-admin-materializecss-sidemenu +meteor +``` + +**JSON** and **YAML** files are the same example in different formats. + +Meteor-kitchen natively supports input files written in **JSON**. To use the **YAML** example you'll need to have js-yaml converter installed. The following is the most common example of how to accomplish this: + +``` +npm install -g js-yaml +``` + +How to use application +---------------------- + +When you start the application and register, your user account will have role "user" by default and you will not be able to see admin panel. + +To make yourself admin, you first need to find your user ID. Open mongo shell and type: + +``` +db.users.find().pretty() +``` + +Copy your user id and then type: + +``` +db.users.update({ _id: "YOUR_USER_ID" }, { $set: { roles: ["admin"] } }) +``` + +Now, you have admin panel in your application and you can manage users. + +This example has three user roles: + +- `user` can login but cannot access admin panel + +- `admin` can access admin panel + +- `blocked` user is blocked and cannot login + +That's it :) diff --git a/example-admin-materializecss-sidemenu/example-admin-materializecss-sidemenu.json b/example-admin-materializecss-sidemenu/example-admin-materializecss-sidemenu.json new file mode 100644 index 0000000..a1c7cd0 --- /dev/null +++ b/example-admin-materializecss-sidemenu/example-admin-materializecss-sidemenu.json @@ -0,0 +1,297 @@ + { + "application": { + "title": "Example application", + "frontend": "materialize", + "roles": [ "admin", "user" ], + "default_role": "user", + "send_verification_email": true, + + "collections": [ + { + "name": "customers" + } + ], + + "queries": [ + { + "name": "admin_users", + "collection": "users", + "filter": {} + }, + { + "name": "admin_user", + "collection": "users", + "filter": { "_id": ":userId" }, + "find_one": true + }, + { + "name": "users_null", + "collection": "users", + "filter": { "_id": null }, + "find_one": true + }, + { + "name": "current_user_data", + "collection": "users", + "filter": { "_id": "Meteor.userId()" }, + "find_one": true + } + ], + + "public_zone": { + "layout": "sidemenu", + "pages": [ + { + "name": "home_public", + "title": "", + "components": [ + { + "name": "home_jumbotron", + "title": "Example application", + "type": "jumbotron", + "text": "This is example application built with meteor-kitchen code generator without manual coding.
It demonstrates simple application with user account system and admin panel.
Source code (input file for generator) is here.", + "button_title": "Continue »", + "button_route": "login" + } + ] + }, + { "name": "login", "template": "login" }, + { "name": "register", "template": "register" }, + { "name": "verify_email", "template": "verify_email", "route_params": ["verifyEmailToken"] }, + { "name": "forgot_password", "template": "forgot_password" }, + { "name": "reset_password", "template": "reset_password", "route_params": ["resetPasswordToken"] } + ], + + "components": [ + { + "name": "left_menu", + "type": "menu", + "template":"sidemenu", + "class": "", + "title": "Left menu", + "dest_selector": "#menu", + "items": [ + { "title": "Home", "route": "home_public","icon_class":"store" } + ] + }, + + { + "name": "right_menu", + "type": "menu", + "template":"sidemenu", + "class": "", + "dest_selector": "#menu", + "title": "Right menu", + "items": [ + { "title": "Register", "route": "register","icon_class":"assignment_ind" }, + { "title": "Login", "route": "login","icon_class":"lock_open" } + ] + } + ] + }, + + "private_zone": { + "layout":"sidemenu", + "pages": [ + { "name": "home_private", "title": "Welcome {{userFullName}}!" }, + + + { + "name": "admin", + "roles": ["admin"], + "pages": [ + { + "name": "users", + "components": [ + { + "name": "view", + "type": "data_view", + "title": "Users", + "text_if_empty": "No users yet", + "query_name": "admin_users", + "query_params": [], + + "fields": [ + { "name": "profile.name", "title": "Name"}, + { "name": "profile.email", "title": "E-mail" }, + { "name": "roles", "title": "Role" } + ], + + "insert_route": "admin.users.insert", + + "edit_route": "admin.users.edit", + "edit_route_params": [ + { "name": "userId", "value": "this._id" } + ], + + "details_route": "admin.users.details", + "details_route_params": [ + { "name": "userId", "value": "this._id" } + ] + } + ], + "pages": [ + { + "name": "details", + "route_params": ["userId"], + "components": [ + { + "name": "details_form", + "type": "form", + "mode": "read_only", + "title": "User details", + "query_name": "admin_user", + "query_params": [], + "fields": [ + { "name": "profile.name", "title": "Name"}, + { "name": "profile.email", "title": "E-mail", "type": "email" }, + { "name": "roles", "title": "Role" } + ], + "close_route": "admin.users", + "back_route": "admin.users" + } + ] + }, + { + "name": "insert", + "components": [ + { + "name": "insert_form", + "type": "form", + "mode": "insert", + "title": "Add new user", + "submit_route": "admin.users", + "cancel_route": "admin.users", + "query_name": "users_null", + "query_params": [], + "fields": [ + { "name": "profile.name", "title": "Name", "required": true }, + { "name": "profile.email", "title": "E-mail", "type": "email", "required": true }, + { "name": "password", "title": "Password", "input": "password", "required": true } + ] + } + ] + }, + { + "name": "edit", + "route_params": ["userId"], + "components": [ + { + "name": "edit_form", + "type": "form", + "mode": "update", + "title": "Edit user", + "submit_route": "admin.users", + "cancel_route": "admin.users", + "query_name": "admin_user", + "query_params": [], + "fields": [ + { "name": "profile.name", "title": "Name", "required": true }, + { "name": "profile.email", "title": "E-mail", "type": "email", "required": true }, + { + "name": "roles", + "type": "array", + "title": "Role", + "input": "radio", + "input_items": [ + { "value": "user", "title": "User" }, + { "value": "admin", "title": "Admin" }, + { "value": "blocked", "title": "Blocked" } + ] + } + ] + } + ] + } + ] + } + + ], + + "components": [ + { + "name": "side_menu", + "type": "menu", + "class": "nav nav-stacked nav-pills", + "items": [ + { "title": "Users", "route": "admin.users" } + ] + } + ] + }, + + { + "name": "user_settings", + "roles": ["user", "admin"], + "pages": [ + { + "name": "profile", + "components": [ + { + "name": "edit_form", + "type": "form", + "mode": "update", + "title": "Edit your profile", + "submit_route": "user_settings.profile", + "query_name": "current_user_data", + "query_params": [], + "fields": [ + { "name": "profile.name", "title": "Name", "required": true }, + { "name": "profile.email", "title": "E-mail", "type": "email", "required": true }, + { "name": "profile.facebook", "title": "Facebook URL" }, + { "name": "profile.google", "title": "Google+ URL" }, + { "name": "profile.twitter", "title": "Twitter ID" }, + { "name": "profile.website", "title": "Website URL" } + ] + } + ] + }, + + { "name": "change_pass", "template": "change_pass" } + ], + + "components": [ + { + "name": "side_menu", + "type": "menu", + "class": "ui vertical menu", + "items": [ + { "title": "Profile", "route": "user_settings.profile" }, + { "title": "Change password", "route": "user_settings.change_pass" } + ] + } + ] + }, + + { "name": "logout", "template": "logout" } + ], + + "components": [ + { + "name": "left_menu", + "type": "menu", + "title": "Left menu", + "template":"sidemenu", + "class": "", + "dest_selector": "#menu", + "items": [ + { "title": "Home", "route": "home_private", "icon_class": "home" } + ] + }, + { + "name": "right_menu", + "type": "menu", + "title": "Right menu", + "template":"sidemenu", + "class": "", + "dest_selector": "#menu", + "items": [ + { "title": "Admin", "route": "admin", "icon_class": "brightness_auto" }, + { "title": "Settings", "route": "user_settings","icon_class":"settings" }, + { "title": "Logout", "route": "logout","icon_class":"power_settings_new" } + ] + } + ] + } + } +} diff --git a/example-admin-materializecss-sidemenu/example-admin-materializecss-sidemenu.yaml b/example-admin-materializecss-sidemenu/example-admin-materializecss-sidemenu.yaml new file mode 100644 index 0000000..497368c --- /dev/null +++ b/example-admin-materializecss-sidemenu/example-admin-materializecss-sidemenu.yaml @@ -0,0 +1,331 @@ +--- + application: + title: "Example application" + frontend: "materialize" + roles: + - "admin" + - "user" + default_role: "user" + send_verification_email: true + collections: + - + name: "customers" + queries: + - + name: "admin_users" + collection: "users" + filter: {} + - + name: "admin_user" + collection: "users" + filter: + _id: ":userId" + find_one: true + - + name: "users_null" + collection: "users" + filter: + _id: null + find_one: true + - + name: "current_user_data" + collection: "users" + filter: + _id: "Meteor.userId()" + find_one: true + public_zone: + layout: "sidemenu" + pages: + - + name: "home_public" + title: "" + components: + - + name: "home_jumbotron" + title: "Example application" + type: "jumbotron" + text: "This is example application built with meteor-kitchen code generator without manual coding.
It demonstrates simple application with user account system and admin panel.
Source code (input file for generator) is here." + button_title: "Continue »" + button_route: "login" + - + name: "login" + template: "login" + - + name: "register" + template: "register" + - + name: "verify_email" + template: "verify_email" + route_params: + - "verifyEmailToken" + - + name: "forgot_password" + template: "forgot_password" + - + name: "reset_password" + template: "reset_password" + route_params: + - "resetPasswordToken" + components: + - + name: "left_menu" + type: "menu" + template: "sidemenu" + class: "" + title: "Left menu" + dest_selector: "#menu" + items: + - + title: "Home" + route: "home_public" + icon_class: "store" + - + name: "right_menu" + type: "menu" + template: "sidemenu" + class: "" + dest_selector: "#menu" + title: "Right menu" + items: + - + title: "Register" + route: "register" + icon_class: "assignment_ind" + - + title: "Login" + route: "login" + icon_class: "lock_open" + private_zone: + layout: "sidemenu" + pages: + - + name: "home_private" + title: "Welcome {{userFullName}}!" + - + name: "admin" + roles: + - "admin" + pages: + - + name: "users" + components: + - + name: "view" + type: "data_view" + title: "Users" + text_if_empty: "No users yet" + query_name: "admin_users" + query_params: [] + fields: + - + name: "profile.name" + title: "Name" + - + name: "profile.email" + title: "E-mail" + - + name: "roles" + title: "Role" + insert_route: "admin.users.insert" + edit_route: "admin.users.edit" + edit_route_params: + - + name: "userId" + value: "this._id" + details_route: "admin.users.details" + details_route_params: + - + name: "userId" + value: "this._id" + pages: + - + name: "details" + route_params: + - "userId" + components: + - + name: "details_form" + type: "form" + mode: "read_only" + title: "User details" + query_name: "admin_user" + query_params: [] + fields: + - + name: "profile.name" + title: "Name" + - + name: "profile.email" + title: "E-mail" + type: "email" + - + name: "roles" + title: "Role" + close_route: "admin.users" + back_route: "admin.users" + - + name: "insert" + components: + - + name: "insert_form" + type: "form" + mode: "insert" + title: "Add new user" + submit_route: "admin.users" + cancel_route: "admin.users" + query_name: "users_null" + query_params: [] + fields: + - + name: "profile.name" + title: "Name" + required: true + - + name: "profile.email" + title: "E-mail" + type: "email" + required: true + - + name: "password" + title: "Password" + input: "password" + required: true + - + name: "edit" + route_params: + - "userId" + components: + - + name: "edit_form" + type: "form" + mode: "update" + title: "Edit user" + submit_route: "admin.users" + cancel_route: "admin.users" + query_name: "admin_user" + query_params: [] + fields: + - + name: "profile.name" + title: "Name" + required: true + - + name: "profile.email" + title: "E-mail" + type: "email" + required: true + - + name: "roles" + type: "array" + title: "Role" + input: "radio" + input_items: + - + value: "user" + title: "User" + - + value: "admin" + title: "Admin" + - + value: "blocked" + title: "Blocked" + components: + - + name: "side_menu" + type: "menu" + class: "nav nav-stacked nav-pills" + items: + - + title: "Users" + route: "admin.users" + - + name: "user_settings" + roles: + - "user" + - "admin" + pages: + - + name: "profile" + components: + - + name: "edit_form" + type: "form" + mode: "update" + title: "Edit your profile" + submit_route: "user_settings.profile" + query_name: "current_user_data" + query_params: [] + fields: + - + name: "profile.name" + title: "Name" + required: true + - + name: "profile.email" + title: "E-mail" + type: "email" + required: true + - + name: "profile.facebook" + title: "Facebook URL" + - + name: "profile.google" + title: "Google+ URL" + - + name: "profile.twitter" + title: "Twitter ID" + - + name: "profile.website" + title: "Website URL" + - + name: "change_pass" + template: "change_pass" + components: + - + name: "side_menu" + type: "menu" + class: "ui vertical menu" + items: + - + title: "Profile" + route: "user_settings.profile" + - + title: "Change password" + route: "user_settings.change_pass" + - + name: "logout" + template: "logout" + components: + - + name: "left_menu" + type: "menu" + title: "Left menu" + template: "sidemenu" + class: "" + dest_selector: "#menu" + items: + - + title: "Home" + route: "home_private" + icon_class: "home" + - + name: "right_menu" + type: "menu" + title: "Right menu" + template: "sidemenu" + class: "" + dest_selector: "#menu" + items: + - + title: "Admin" + route: "admin" + icon_class: "brightness_auto" + - + title: "Settings" + route: "user_settings" + icon_class: "settings" + - + title: "Logout" + route: "logout" + icon_class: "power_settings_new" + diff --git a/example-admin-materializecss/README.md b/example-admin-materializecss/README.md new file mode 100644 index 0000000..2099ea4 --- /dev/null +++ b/example-admin-materializecss/README.md @@ -0,0 +1,49 @@ +Admin panel example +=================== + +This input file for Meteor Kitchen will build meteor application with user account system and admin panel. + +To generate and run application, inside this directory type: + +``` +meteor-kitchen ./example-admin-materializecss.json ./example-admin-materializecss +cd ./example-admin-materializecss +meteor +``` + +**JSON** and **YAML** files are the same example in different formats. + +Meteor-kitchen natively supports input files written in **JSON**. To use the **YAML** example you'll need to have js-yaml converter installed. The following is the most common example of how to accomplish this: + +``` +npm install -g js-yaml +``` + +How to use application +---------------------- + +When you start the application and register, your user account will have role "user" by default and you will not be able to see admin panel. + +To make yourself admin, you first need to find your user ID. Open mongo shell and type: + +``` +db.users.find().pretty() +``` + +Copy your user id and then type: + +``` +db.users.update({ _id: "YOUR_USER_ID" }, { $set: { roles: ["admin"] } }) +``` + +Now, you have admin panel in your application and you can manage users. + +This example has three user roles: + +- `user` can login but cannot access admin panel + +- `admin` can access admin panel + +- `blocked` user is blocked and cannot login + +That's it :) diff --git a/example-admin-materializecss/example-admin-materializecss.json b/example-admin-materializecss/example-admin-materializecss.json new file mode 100644 index 0000000..dc8e0f4 --- /dev/null +++ b/example-admin-materializecss/example-admin-materializecss.json @@ -0,0 +1,291 @@ + { + "application": { + "title": "Example application", + "frontend": "materialize", + "roles": [ "admin", "user" ], + "default_role": "user", + "send_verification_email": true, + + "collections": [ + { + "name": "customers" + } + ], + + "queries": [ + { + "name": "admin_users", + "collection": "users", + "filter": {} + }, + { + "name": "admin_user", + "collection": "users", + "filter": { "_id": ":userId" }, + "find_one": true + }, + { + "name": "users_null", + "collection": "users", + "filter": { "_id": null }, + "find_one": true + }, + { + "name": "current_user_data", + "collection": "users", + "filter": { "_id": "Meteor.userId()" }, + "find_one": true + } + ], + + "public_zone": { + "pages": [ + { + "name": "home_public", + "title": "", + "components": [ + { + "name": "home_jumbotron", + "title": "Example application", + "type": "jumbotron", + "text": "This is example application built with meteor-kitchen code generator without manual coding.
It demonstrates simple application with user account system and admin panel.
Source code (input file for generator) is here.", + "button_title": "Continue »", + "button_route": "login" + } + ] + }, + { "name": "login", "template": "login" }, + { "name": "register", "template": "register" }, + { "name": "verify_email", "template": "verify_email", "route_params": ["verifyEmailToken"] }, + { "name": "forgot_password", "template": "forgot_password" }, + { "name": "reset_password", "template": "reset_password", "route_params": ["resetPasswordToken"] } + ], + + "components": [ + { + "name": "left_menu", + "type": "menu", + "class": "", + "title": "Left menu", + "dest_selector": "#menu", + "items": [ + { "title": "Home", "route": "home_public","icon_class":"store" } + ] + }, + + { + "name": "right_menu", + "type": "menu", + "class": "right", + "dest_selector": "#menu", + "title": "Right menu", + "items": [ + { "title": "Register", "route": "register","icon_class":"assignment_ind" }, + { "title": "Login", "route": "login","icon_class":"lock_open" } + ] + } + ] + }, + + "private_zone": { + "pages": [ + { "name": "home_private", "title": "Welcome {{userFullName}}!" }, + + + { + "name": "admin", + "roles": ["admin"], + "pages": [ + { + "name": "users", + "components": [ + { + "name": "view", + "type": "data_view", + "title": "Users", + "text_if_empty": "No users yet", + "query_name": "admin_users", + "query_params": [], + + "fields": [ + { "name": "profile.name", "title": "Name"}, + { "name": "profile.email", "title": "E-mail" }, + { "name": "roles", "title": "Role" } + ], + + "insert_route": "admin.users.insert", + + "edit_route": "admin.users.edit", + "edit_route_params": [ + { "name": "userId", "value": "this._id" } + ], + + "details_route": "admin.users.details", + "details_route_params": [ + { "name": "userId", "value": "this._id" } + ] + } + ], + "pages": [ + { + "name": "details", + "route_params": ["userId"], + "components": [ + { + "name": "details_form", + "type": "form", + "mode": "read_only", + "title": "User details", + "query_name": "admin_user", + "query_params": [], + "fields": [ + { "name": "profile.name", "title": "Name"}, + { "name": "profile.email", "title": "E-mail", "type": "email" }, + { "name": "roles", "title": "Role" } + ], + "close_route": "admin.users", + "back_route": "admin.users" + } + ] + }, + { + "name": "insert", + "components": [ + { + "name": "insert_form", + "type": "form", + "mode": "insert", + "title": "Add new user", + "submit_route": "admin.users", + "cancel_route": "admin.users", + "query_name": "users_null", + "query_params": [], + "fields": [ + { "name": "profile.name", "title": "Name", "required": true }, + { "name": "profile.email", "title": "E-mail", "type": "email", "required": true }, + { "name": "password", "title": "Password", "input": "password", "required": true } + ] + } + ] + }, + { + "name": "edit", + "route_params": ["userId"], + "components": [ + { + "name": "edit_form", + "type": "form", + "mode": "update", + "title": "Edit user", + "submit_route": "admin.users", + "cancel_route": "admin.users", + "query_name": "admin_user", + "query_params": [], + "fields": [ + { "name": "profile.name", "title": "Name", "required": true }, + { "name": "profile.email", "title": "E-mail", "type": "email", "required": true }, + { + "name": "roles", + "type": "array", + "title": "Role", + "input": "radio", + "input_items": [ + { "value": "user", "title": "User" }, + { "value": "admin", "title": "Admin" }, + { "value": "blocked", "title": "Blocked" } + ] + } + ] + } + ] + } + ] + } + + ], + + "components": [ + { + "name": "side_menu", + "type": "menu", + "class": "collection", + "items": [ + { "title": "Users", "route": "admin.users","class": "collection-item"} + ] + } + ] + }, + + { + "name": "user_settings", + "roles": ["user", "admin"], + "pages": [ + { + "name": "profile", + "components": [ + { + "name": "edit_form", + "type": "form", + "mode": "update", + "title": "Edit your profile", + "submit_route": "user_settings.profile", + "query_name": "current_user_data", + "query_params": [], + "fields": [ + { "name": "profile.name", "title": "Name", "required": true }, + { "name": "profile.email", "title": "E-mail", "type": "email", "required": true }, + { "name": "profile.facebook", "title": "Facebook URL" }, + { "name": "profile.google", "title": "Google+ URL" }, + { "name": "profile.twitter", "title": "Twitter ID" }, + { "name": "profile.website", "title": "Website URL" } + ] + } + ] + }, + + { "name": "change_pass", "template": "change_pass" } + ], + + "components": [ + { + "name": "side_menu", + "type": "menu", + "class": "collection", + "items": [ + { "title": "Profile", "route": "user_settings.profile","class":"collection-item" }, + { "title": "Change password", "route": "user_settings.change_pass","class":"collection-item" } + ] + } + ] + }, + + { "name": "logout", "template": "logout" } + ], + + "components": [ + { + "name": "left_menu", + "type": "menu", + "title": "Left menu", + "class": "", + "dest_selector": "#menu", + "items": [ + { "title": "Home", "route": "home_private", "icon_class": "home" } + ] + }, + { + "name": "right_menu", + "type": "menu", + "title": "Right menu", + "class": "right", + "dest_selector": "#menu", + "items": [ + { "title": "Admin", "route": "admin", "icon_class": "brightness_auto" }, + { "title": "Settings", "route": "user_settings","icon_class":"settings" }, + { "title": "Logout", "route": "logout","icon_class":"power_settings_new" } + ] + } + ] + } + } +} diff --git a/example-admin-materializecss/example-admin-materializecss.yaml b/example-admin-materializecss/example-admin-materializecss.yaml new file mode 100644 index 0000000..babab3e --- /dev/null +++ b/example-admin-materializecss/example-admin-materializecss.yaml @@ -0,0 +1,328 @@ +--- + application: + title: "Example application" + frontend: "materialize" + roles: + - "admin" + - "user" + default_role: "user" + send_verification_email: true + collections: + - + name: "customers" + queries: + - + name: "admin_users" + collection: "users" + filter: {} + - + name: "admin_user" + collection: "users" + filter: + _id: ":userId" + find_one: true + - + name: "users_null" + collection: "users" + filter: + _id: null + find_one: true + - + name: "current_user_data" + collection: "users" + filter: + _id: "Meteor.userId()" + find_one: true + public_zone: + pages: + - + name: "home_public" + title: "" + components: + - + name: "home_jumbotron" + title: "Example application" + type: "jumbotron" + text: "This is example application built with meteor-kitchen code generator without manual coding.
It demonstrates simple application with user account system and admin panel.
Source code (input file for generator) is here." + button_title: "Continue »" + button_route: "login" + - + name: "login" + template: "login" + - + name: "register" + template: "register" + - + name: "verify_email" + template: "verify_email" + route_params: + - "verifyEmailToken" + - + name: "forgot_password" + template: "forgot_password" + - + name: "reset_password" + template: "reset_password" + route_params: + - "resetPasswordToken" + components: + - + name: "left_menu" + type: "menu" + class: "" + title: "Left menu" + dest_selector: "#menu" + items: + - + title: "Home" + route: "home_public" + icon_class: "store" + - + name: "right_menu" + type: "menu" + class: "right" + dest_selector: "#menu" + title: "Right menu" + items: + - + title: "Register" + route: "register" + icon_class: "assignment_ind" + - + title: "Login" + route: "login" + icon_class: "lock_open" + private_zone: + pages: + - + name: "home_private" + title: "Welcome {{userFullName}}!" + - + name: "admin" + roles: + - "admin" + pages: + - + name: "users" + components: + - + name: "view" + type: "data_view" + title: "Users" + text_if_empty: "No users yet" + query_name: "admin_users" + query_params: [] + fields: + - + name: "profile.name" + title: "Name" + - + name: "profile.email" + title: "E-mail" + - + name: "roles" + title: "Role" + insert_route: "admin.users.insert" + edit_route: "admin.users.edit" + edit_route_params: + - + name: "userId" + value: "this._id" + details_route: "admin.users.details" + details_route_params: + - + name: "userId" + value: "this._id" + pages: + - + name: "details" + route_params: + - "userId" + components: + - + name: "details_form" + type: "form" + mode: "read_only" + title: "User details" + query_name: "admin_user" + query_params: [] + fields: + - + name: "profile.name" + title: "Name" + - + name: "profile.email" + title: "E-mail" + type: "email" + - + name: "roles" + title: "Role" + close_route: "admin.users" + back_route: "admin.users" + - + name: "insert" + components: + - + name: "insert_form" + type: "form" + mode: "insert" + title: "Add new user" + submit_route: "admin.users" + cancel_route: "admin.users" + query_name: "users_null" + query_params: [] + fields: + - + name: "profile.name" + title: "Name" + required: true + - + name: "profile.email" + title: "E-mail" + type: "email" + required: true + - + name: "password" + title: "Password" + input: "password" + required: true + - + name: "edit" + route_params: + - "userId" + components: + - + name: "edit_form" + type: "form" + mode: "update" + title: "Edit user" + submit_route: "admin.users" + cancel_route: "admin.users" + query_name: "admin_user" + query_params: [] + fields: + - + name: "profile.name" + title: "Name" + required: true + - + name: "profile.email" + title: "E-mail" + type: "email" + required: true + - + name: "roles" + type: "array" + title: "Role" + input: "radio" + input_items: + - + value: "user" + title: "User" + - + value: "admin" + title: "Admin" + - + value: "blocked" + title: "Blocked" + components: + - + name: "side_menu" + type: "menu" + class: "collection" + items: + - + title: "Users" + route: "admin.users" + class: "collection-item" + - + name: "user_settings" + roles: + - "user" + - "admin" + pages: + - + name: "profile" + components: + - + name: "edit_form" + type: "form" + mode: "update" + title: "Edit your profile" + submit_route: "user_settings.profile" + query_name: "current_user_data" + query_params: [] + fields: + - + name: "profile.name" + title: "Name" + required: true + - + name: "profile.email" + title: "E-mail" + type: "email" + required: true + - + name: "profile.facebook" + title: "Facebook URL" + - + name: "profile.google" + title: "Google+ URL" + - + name: "profile.twitter" + title: "Twitter ID" + - + name: "profile.website" + title: "Website URL" + - + name: "change_pass" + template: "change_pass" + components: + - + name: "side_menu" + type: "menu" + class: "collection" + items: + - + title: "Profile" + route: "user_settings.profile" + class: "collection-item" + - + title: "Change password" + route: "user_settings.change_pass" + class: "collection-item" + - + name: "logout" + template: "logout" + components: + - + name: "left_menu" + type: "menu" + title: "Left menu" + class: "" + dest_selector: "#menu" + items: + - + title: "Home" + route: "home_private" + icon_class: "home" + - + name: "right_menu" + type: "menu" + title: "Right menu" + class: "right" + dest_selector: "#menu" + items: + - + title: "Admin" + route: "admin" + icon_class: "brightness_auto" + - + title: "Settings" + route: "user_settings" + icon_class: "settings" + - + title: "Logout" + route: "logout" + icon_class: "power_settings_new" + From de57e49a5b23728226dbb754022652ac22683ff4 Mon Sep 17 00:00:00 2001 From: Kadir ERDOGAN Date: Sat, 17 Oct 2015 16:16:45 +0300 Subject: [PATCH 2/5] Admin example with semantic-ui --- example-admin-semanticui-sidemenu/README.md | 49 +++ .../example-admin-semanticui-sidemenu.json | 295 ++++++++++++++++ .../example-admin-semanticui-sidemenu.yaml | 329 ++++++++++++++++++ example-admin-semanticui/README.md | 49 +++ .../example-admin-semanticui.json | 295 ++++++++++++++++ .../example-admin-semanticui.yaml | 320 +++++++++++++++++ 6 files changed, 1337 insertions(+) create mode 100644 example-admin-semanticui-sidemenu/README.md create mode 100644 example-admin-semanticui-sidemenu/example-admin-semanticui-sidemenu.json create mode 100644 example-admin-semanticui-sidemenu/example-admin-semanticui-sidemenu.yaml create mode 100644 example-admin-semanticui/README.md create mode 100644 example-admin-semanticui/example-admin-semanticui.json create mode 100644 example-admin-semanticui/example-admin-semanticui.yaml diff --git a/example-admin-semanticui-sidemenu/README.md b/example-admin-semanticui-sidemenu/README.md new file mode 100644 index 0000000..6df37a7 --- /dev/null +++ b/example-admin-semanticui-sidemenu/README.md @@ -0,0 +1,49 @@ +Admin panel example +=================== + +This input file for Meteor Kitchen will build meteor application with user account system and admin panel. + +To generate and run application, inside this directory type: + +``` +meteor-kitchen ./example-admin-semanticui-sidemenu.json ./example-admin-semanticui-sidemenu +cd ./example-admin-semanticui-sidemenu +meteor +``` + +**JSON** and **YAML** files are the same example in different formats. + +Meteor-kitchen natively supports input files written in **JSON**. To use the **YAML** example you'll need to have js-yaml converter installed. The following is the most common example of how to accomplish this: + +``` +npm install -g js-yaml +``` + +How to use application +---------------------- + +When you start the application and register, your user account will have role "user" by default and you will not be able to see admin panel. + +To make yourself admin, you first need to find your user ID. Open mongo shell and type: + +``` +db.users.find().pretty() +``` + +Copy your user id and then type: + +``` +db.users.update({ _id: "YOUR_USER_ID" }, { $set: { roles: ["admin"] } }) +``` + +Now, you have admin panel in your application and you can manage users. + +This example has three user roles: + +- `user` can login but cannot access admin panel + +- `admin` can access admin panel + +- `blocked` user is blocked and cannot login + +That's it :) diff --git a/example-admin-semanticui-sidemenu/example-admin-semanticui-sidemenu.json b/example-admin-semanticui-sidemenu/example-admin-semanticui-sidemenu.json new file mode 100644 index 0000000..8ed74e7 --- /dev/null +++ b/example-admin-semanticui-sidemenu/example-admin-semanticui-sidemenu.json @@ -0,0 +1,295 @@ + { + "application": { + "title": "Example application", + "frontend": "semantic-ui", + "roles": [ "admin", "user" ], + "default_role": "user", + "send_verification_email": true, + + "collections": [ + { + "name": "customers" + } + ], + + "queries": [ + { + "name": "admin_users", + "collection": "users", + "filter": {} + }, + { + "name": "admin_user", + "collection": "users", + "filter": { "_id": ":userId" }, + "find_one": true + }, + { + "name": "users_null", + "collection": "users", + "filter": { "_id": null }, + "find_one": true + }, + { + "name": "current_user_data", + "collection": "users", + "filter": { "_id": "Meteor.userId()" }, + "find_one": true + } + ], + + "public_zone": { + "layout": "sidemenu", + "footer_class": "sticky_footer", + "pages": [ + { + "name": "home_public", + "title": "", + "components": [ + { + "name": "home_jumbotron", + "title": "Example application", + "type": "jumbotron", + "text": "This is example application built with meteor-kitchen code generator without manual coding.
It demonstrates simple application with user account system and admin panel.
Source code (input file for generator) is here.", + "button_title": "Continue »", + "button_route": "login" + } + ] + }, + { "name": "login", "template": "login" }, + { "name": "register", "template": "register" }, + { "name": "verify_email", "template": "verify_email", "route_params": ["verifyEmailToken"] }, + { "name": "forgot_password", "template": "forgot_password" }, + { "name": "reset_password", "template": "reset_password", "route_params": ["resetPasswordToken"] } + ], + + "components": [ + { + "name": "left_menu", + "type": "menu", + "template":"sidemenu", + "class": "ui icon left inline vertical sidebar menu left_menu", + "dest_selector": "#menu", + "items": [ + { "title": "Home", "route": "home_public","icon_class":"blue home icon" } + ] + }, + + { + "name": "right_menu", + "type": "menu", + "template":"sidemenu", + "class": "ui icon right inline vertical sidebar menu right_menu", + "dest_selector": "#menu", + "items": [ + { "title": "Register", "route": "register","icon_class":"orange add user icon" }, + { "title": "Login", "route": "login","icon_class":"blue sign in icon" } + ] + } + ] + }, + + "private_zone": { + "layout":"sidemenu", + "footer_class": "sticky_footer", + "pages": [ + { "name": "home_private", "title": "Welcome {{userFullName}}!" }, + + + { + "name": "admin", + "roles": ["admin"], + "pages": [ + { + "name": "users", + "components": [ + { + "name": "view", + "type": "data_view", + "title": "Users", + "text_if_empty": "No users yet", + "query_name": "admin_users", + "query_params": [], + + "fields": [ + { "name": "profile.name", "title": "Name"}, + { "name": "profile.email", "title": "E-mail" }, + { "name": "roles", "title": "Role" } + ], + + "insert_route": "admin.users.insert", + + "edit_route": "admin.users.edit", + "edit_route_params": [ + { "name": "userId", "value": "this._id" } + ], + + "details_route": "admin.users.details", + "details_route_params": [ + { "name": "userId", "value": "this._id" } + ] + } + ], + "pages": [ + { + "name": "details", + "route_params": ["userId"], + "components": [ + { + "name": "details_form", + "type": "form", + "mode": "read_only", + "title": "User details", + "query_name": "admin_user", + "query_params": [], + "fields": [ + { "name": "profile.name", "title": "Name"}, + { "name": "profile.email", "title": "E-mail", "type": "email" }, + { "name": "roles", "title": "Role" } + ], + "close_route": "admin.users", + "back_route": "admin.users" + } + ] + }, + { + "name": "insert", + "components": [ + { + "name": "insert_form", + "type": "form", + "mode": "insert", + "title": "Add new user", + "submit_route": "admin.users", + "cancel_route": "admin.users", + "query_name": "users_null", + "query_params": [], + "fields": [ + { "name": "profile.name", "title": "Name", "required": true }, + { "name": "profile.email", "title": "E-mail", "type": "email", "required": true }, + { "name": "password", "title": "Password", "input": "password", "required": true } + ] + } + ] + }, + { + "name": "edit", + "route_params": ["userId"], + "components": [ + { + "name": "edit_form", + "type": "form", + "mode": "update", + "title": "Edit user", + "submit_route": "admin.users", + "cancel_route": "admin.users", + "query_name": "admin_user", + "query_params": [], + "fields": [ + { "name": "profile.name", "title": "Name", "required": true }, + { "name": "profile.email", "title": "E-mail", "type": "email", "required": true }, + { + "name": "roles", + "type": "array", + "title": "Role", + "input": "radio", + "input_items": [ + { "value": "user", "title": "User" }, + { "value": "admin", "title": "Admin" }, + { "value": "blocked", "title": "Blocked" } + ] + } + ] + } + ] + } + ] + } + + ], + + "components": [ + { + "name": "side_menu", + "type": "menu", + "class": "nav nav-stacked nav-pills", + "items": [ + { "title": "Users", "route": "admin.users" } + ] + } + ] + }, + + { + "name": "user_settings", + "roles": ["user", "admin"], + "pages": [ + { + "name": "profile", + "components": [ + { + "name": "edit_form", + "type": "form", + "mode": "update", + "title": "Edit your profile", + "submit_route": "user_settings.profile", + "query_name": "current_user_data", + "query_params": [], + "fields": [ + { "name": "profile.name", "title": "Name", "required": true }, + { "name": "profile.email", "title": "E-mail", "type": "email", "required": true }, + { "name": "profile.facebook", "title": "Facebook URL" }, + { "name": "profile.google", "title": "Google+ URL" }, + { "name": "profile.twitter", "title": "Twitter ID" }, + { "name": "profile.website", "title": "Website URL" } + ] + } + ] + }, + + { "name": "change_pass", "template": "change_pass" } + ], + + "components": [ + { + "name": "side_menu", + "type": "menu", + "class": "ui vertical menu", + "items": [ + { "title": "Profile", "route": "user_settings.profile" }, + { "title": "Change password", "route": "user_settings.change_pass" } + ] + } + ] + }, + + { "name": "logout", "template": "logout" } + ], + + "components": [ + { + "name": "left_menu", + "type": "menu", + "template":"sidemenu", + "class": "ui icon left inline vertical sidebar menu left_menu", + "dest_selector": "#menu", + "items": [ + { "title": "Home", "route": "home_private", "icon_class": "home icon" } + ] + }, + { + "name": "right_menu", + "type": "menu", + "template":"sidemenu", + "class": "ui icon right inline vertical sidebar menu right_menu", + "dest_selector": "#menu", + "items": [ + { "title": "Admin", "route": "admin", "icon_class": "blue spy icon" }, + { "title": "Settings", "route": "user_settings","icon_class":"orange settings icon" }, + { "title": "Logout", "route": "logout","icon_class":"red sign out icon" } + ] + } + ] + } + } +} diff --git a/example-admin-semanticui-sidemenu/example-admin-semanticui-sidemenu.yaml b/example-admin-semanticui-sidemenu/example-admin-semanticui-sidemenu.yaml new file mode 100644 index 0000000..16b408c --- /dev/null +++ b/example-admin-semanticui-sidemenu/example-admin-semanticui-sidemenu.yaml @@ -0,0 +1,329 @@ +--- + application: + title: "Example application" + frontend: "semantic-ui" + roles: + - "admin" + - "user" + default_role: "user" + send_verification_email: true + collections: + - + name: "customers" + queries: + - + name: "admin_users" + collection: "users" + filter: {} + - + name: "admin_user" + collection: "users" + filter: + _id: ":userId" + find_one: true + - + name: "users_null" + collection: "users" + filter: + _id: null + find_one: true + - + name: "current_user_data" + collection: "users" + filter: + _id: "Meteor.userId()" + find_one: true + public_zone: + layout: "sidemenu" + footer_class: "sticky_footer" + pages: + - + name: "home_public" + title: "" + components: + - + name: "home_jumbotron" + title: "Example application" + type: "jumbotron" + text: "This is example application built with meteor-kitchen code generator without manual coding.
It demonstrates simple application with user account system and admin panel.
Source code (input file for generator) is here." + button_title: "Continue »" + button_route: "login" + - + name: "login" + template: "login" + - + name: "register" + template: "register" + - + name: "verify_email" + template: "verify_email" + route_params: + - "verifyEmailToken" + - + name: "forgot_password" + template: "forgot_password" + - + name: "reset_password" + template: "reset_password" + route_params: + - "resetPasswordToken" + components: + - + name: "left_menu" + type: "menu" + template: "sidemenu" + class: "ui icon left inline vertical sidebar menu left_menu" + dest_selector: "#menu" + items: + - + title: "Home" + route: "home_public" + icon_class: "blue home icon" + - + name: "right_menu" + type: "menu" + template: "sidemenu" + class: "ui icon right inline vertical sidebar menu right_menu" + dest_selector: "#menu" + items: + - + title: "Register" + route: "register" + icon_class: "orange add user icon" + - + title: "Login" + route: "login" + icon_class: "blue sign in icon" + private_zone: + layout: "sidemenu" + footer_class: "sticky_footer" + pages: + - + name: "home_private" + title: "Welcome {{userFullName}}!" + - + name: "admin" + roles: + - "admin" + pages: + - + name: "users" + components: + - + name: "view" + type: "data_view" + title: "Users" + text_if_empty: "No users yet" + query_name: "admin_users" + query_params: [] + fields: + - + name: "profile.name" + title: "Name" + - + name: "profile.email" + title: "E-mail" + - + name: "roles" + title: "Role" + insert_route: "admin.users.insert" + edit_route: "admin.users.edit" + edit_route_params: + - + name: "userId" + value: "this._id" + details_route: "admin.users.details" + details_route_params: + - + name: "userId" + value: "this._id" + pages: + - + name: "details" + route_params: + - "userId" + components: + - + name: "details_form" + type: "form" + mode: "read_only" + title: "User details" + query_name: "admin_user" + query_params: [] + fields: + - + name: "profile.name" + title: "Name" + - + name: "profile.email" + title: "E-mail" + type: "email" + - + name: "roles" + title: "Role" + close_route: "admin.users" + back_route: "admin.users" + - + name: "insert" + components: + - + name: "insert_form" + type: "form" + mode: "insert" + title: "Add new user" + submit_route: "admin.users" + cancel_route: "admin.users" + query_name: "users_null" + query_params: [] + fields: + - + name: "profile.name" + title: "Name" + required: true + - + name: "profile.email" + title: "E-mail" + type: "email" + required: true + - + name: "password" + title: "Password" + input: "password" + required: true + - + name: "edit" + route_params: + - "userId" + components: + - + name: "edit_form" + type: "form" + mode: "update" + title: "Edit user" + submit_route: "admin.users" + cancel_route: "admin.users" + query_name: "admin_user" + query_params: [] + fields: + - + name: "profile.name" + title: "Name" + required: true + - + name: "profile.email" + title: "E-mail" + type: "email" + required: true + - + name: "roles" + type: "array" + title: "Role" + input: "radio" + input_items: + - + value: "user" + title: "User" + - + value: "admin" + title: "Admin" + - + value: "blocked" + title: "Blocked" + components: + - + name: "side_menu" + type: "menu" + class: "nav nav-stacked nav-pills" + items: + - + title: "Users" + route: "admin.users" + - + name: "user_settings" + roles: + - "user" + - "admin" + pages: + - + name: "profile" + components: + - + name: "edit_form" + type: "form" + mode: "update" + title: "Edit your profile" + submit_route: "user_settings.profile" + query_name: "current_user_data" + query_params: [] + fields: + - + name: "profile.name" + title: "Name" + required: true + - + name: "profile.email" + title: "E-mail" + type: "email" + required: true + - + name: "profile.facebook" + title: "Facebook URL" + - + name: "profile.google" + title: "Google+ URL" + - + name: "profile.twitter" + title: "Twitter ID" + - + name: "profile.website" + title: "Website URL" + - + name: "change_pass" + template: "change_pass" + components: + - + name: "side_menu" + type: "menu" + class: "ui vertical menu" + items: + - + title: "Profile" + route: "user_settings.profile" + - + title: "Change password" + route: "user_settings.change_pass" + - + name: "logout" + template: "logout" + components: + - + name: "left_menu" + type: "menu" + template: "sidemenu" + class: "ui icon left inline vertical sidebar menu left_menu" + dest_selector: "#menu" + items: + - + title: "Home" + route: "home_private" + icon_class: "home icon" + - + name: "right_menu" + type: "menu" + template: "sidemenu" + class: "ui icon right inline vertical sidebar menu right_menu" + dest_selector: "#menu" + items: + - + title: "Admin" + route: "admin" + icon_class: "blue spy icon" + - + title: "Settings" + route: "user_settings" + icon_class: "orange settings icon" + - + title: "Logout" + route: "logout" + icon_class: "red sign out icon" + diff --git a/example-admin-semanticui/README.md b/example-admin-semanticui/README.md new file mode 100644 index 0000000..6b34dac --- /dev/null +++ b/example-admin-semanticui/README.md @@ -0,0 +1,49 @@ +Admin panel example +=================== + +This input file for Meteor Kitchen will build meteor application with user account system and admin panel. + +To generate and run application, inside this directory type: + +``` +meteor-kitchen ./example-admin-semanticui.json ./example-admin-semanticui +cd ./example-admin-semanticui +meteor +``` + +**JSON** and **YAML** files are the same example in different formats. + +Meteor-kitchen natively supports input files written in **JSON**. To use the **YAML** example you'll need to have js-yaml converter installed. The following is the most common example of how to accomplish this: + +``` +npm install -g js-yaml +``` + +How to use application +---------------------- + +When you start the application and register, your user account will have role "user" by default and you will not be able to see admin panel. + +To make yourself admin, you first need to find your user ID. Open mongo shell and type: + +``` +db.users.find().pretty() +``` + +Copy your user id and then type: + +``` +db.users.update({ _id: "YOUR_USER_ID" }, { $set: { roles: ["admin"] } }) +``` + +Now, you have admin panel in your application and you can manage users. + +This example has three user roles: + +- `user` can login but cannot access admin panel + +- `admin` can access admin panel + +- `blocked` user is blocked and cannot login + +That's it :) diff --git a/example-admin-semanticui/example-admin-semanticui.json b/example-admin-semanticui/example-admin-semanticui.json new file mode 100644 index 0000000..235dfc2 --- /dev/null +++ b/example-admin-semanticui/example-admin-semanticui.json @@ -0,0 +1,295 @@ + { + "application": { + "title": "Example application", + "frontend": "semantic-ui", + + "roles": [ "admin", "user" ], + "default_role": "user", + "send_verification_email": true, + + "collections": [ + { + "name": "customers" + } + ], + + "queries": [ + { + "name": "admin_users", + "collection": "users", + "filter": {} + }, + { + "name": "admin_user", + "collection": "users", + "filter": { "_id": ":userId" }, + "find_one": true + }, + { + "name": "users_null", + "collection": "users", + "filter": { "_id": null }, + "find_one": true + }, + { + "name": "current_user_data", + "collection": "users", + "filter": { "_id": "Meteor.userId()" }, + "find_one": true + } + ], + + "public_zone": { + "pages": [ + { + "name": "home_public", + "title": "", + "components": [ + { + "name": "home_jumbotron", + "title": "Example application", + "type": "jumbotron", + "text": "This is example application built with meteor-kitchen code generator without manual coding.
It demonstrates simple application with user account system and admin panel.
Source code (input file for generator) is here.", + "button_title": "Continue »", + "button_route": "login" + } + ] + }, + { "name": "login", "template": "login" }, + { "name": "register", "template": "register" }, + { "name": "verify_email", "template": "verify_email", "route_params": ["verifyEmailToken"] }, + { "name": "forgot_password", "template": "forgot_password" }, + { "name": "reset_password", "template": "reset_password", "route_params": ["resetPasswordToken"] } + ], + + "components": [ + { + "name": "left_menu", + "type": "menu", + "class": "nav navbar-nav", + "dest_selector": "#menu", + "items": [ + { "title": "Home", "route": "home_public" } + ] + }, + + { + "name": "right_menu", + "type": "menu", + "class": "right menu", + "dest_selector": "#menu", + "items": [ + { "title": "Register", "route": "register" }, + { "title": "Login", "route": "login" } + ] + } + ] + }, + + "private_zone": { + "pages": [ + { "name": "home_private", "title": "Welcome {{userFullName}}!" }, + + + { + "name": "admin", + "roles": ["admin"], + "pages": [ + { + "name": "users", + "components": [ + { + "name": "view", + "type": "data_view", + "title": "Users", + "text_if_empty": "No users yet", + "query_name": "admin_users", + "query_params": [], + + "fields": [ + { "name": "profile.name", "title": "Name"}, + { "name": "profile.email", "title": "E-mail" }, + { "name": "roles", "title": "Role" } + ], + + "insert_route": "admin.users.insert", + + "edit_route": "admin.users.edit", + "edit_route_params": [ + { "name": "userId", "value": "this._id" } + ], + + "details_route": "admin.users.details", + "details_route_params": [ + { "name": "userId", "value": "this._id" } + ] + } + ], + "pages": [ + { + "name": "details", + "route_params": ["userId"], + "components": [ + { + "name": "details_form", + "type": "form", + "mode": "read_only", + "title": "User details", + "query_name": "admin_user", + "query_params": [], + "fields": [ + { "name": "profile.name", "title": "Name"}, + { "name": "profile.email", "title": "E-mail", "type": "email" }, + { "name": "roles", "title": "Role" } + ], + "close_route": "admin.users", + "back_route": "admin.users" + } + ] + }, + { + "name": "insert", + "components": [ + { + "name": "insert_form", + "type": "form", + "mode": "insert", + "title": "Add new user", + "submit_route": "admin.users", + "cancel_route": "admin.users", + "query_name": "users_null", + "query_params": [], + "fields": [ + { "name": "profile.name", "title": "Name", "required": true }, + { "name": "profile.email", "title": "E-mail", "type": "email", "required": true }, + { "name": "password", "title": "Password", "input": "password", "required": true } + ] + } + ] + }, + { + "name": "edit", + "route_params": ["userId"], + "components": [ + { + "name": "edit_form", + "type": "form", + "mode": "update", + "title": "Edit user", + "submit_route": "admin.users", + "cancel_route": "admin.users", + "query_name": "admin_user", + "query_params": [], + "fields": [ + { "name": "profile.name", "title": "Name", "required": true }, + { "name": "profile.email", "title": "E-mail", "type": "email", "required": true }, + { + "name": "roles", + "type": "array", + "title": "Role", + "input": "radio", + "input_items": [ + { "value": "user", "title": "User" }, + { "value": "admin", "title": "Admin" }, + { "value": "blocked", "title": "Blocked" } + ] + } + ] + } + ] + } + ] + } + + ], + + "components": [ + { + "name": "side_menu", + "type": "menu", + "class": "nav nav-stacked nav-pills", + "items": [ + { "title": "Users", "route": "admin.users" } + ] + } + ] + }, + + { + "name": "user_settings", + "roles": ["user", "admin"], + "pages": [ + { + "name": "profile", + "components": [ + { + "name": "edit_form", + "type": "form", + "mode": "update", + "title": "Edit your profile", + "submit_route": "user_settings.profile", + "query_name": "current_user_data", + "query_params": [], + "fields": [ + { "name": "profile.name", "title": "Name", "required": true }, + { "name": "profile.email", "title": "E-mail", "type": "email", "required": true }, + { "name": "profile.facebook", "title": "Facebook URL" }, + { "name": "profile.google", "title": "Google+ URL" }, + { "name": "profile.twitter", "title": "Twitter ID" }, + { "name": "profile.website", "title": "Website URL" } + ] + } + ] + }, + + { "name": "change_pass", "template": "change_pass" } + ], + + "components": [ + { + "name": "side_menu", + "type": "menu", + "class": "ui vertical menu", + "items": [ + { "title": "Profile", "route": "user_settings.profile" }, + { "title": "Change password", "route": "user_settings.change_pass" } + ] + } + ] + }, + + { "name": "logout", "template": "logout" } + ], + + "components": [ + { + "name": "left_menu", + "type": "menu", + "class": "nav navbar-nav", + "dest_selector": "#menu", + "items": [ + { "title": "Home", "route": "home_private", "icon_class": "fa fa-home" } + ] + }, + { + "name": "right_menu", + "type": "menu", + "class": "right menu", + "dest_selector": "#menu", + "items": [ + { "title": "Admin", "route": "admin", "icon_class": "fa fa-wrench" }, + + { + "title": "{{userEmail}}", + "items": [ + { "title": "Settings", "route": "user_settings" }, + { "title": "Logout", "route": "logout" } + ], + "icon_class": "fa fa-cog" + } + ] + } + ] + } + } +} diff --git a/example-admin-semanticui/example-admin-semanticui.yaml b/example-admin-semanticui/example-admin-semanticui.yaml new file mode 100644 index 0000000..bd51cd9 --- /dev/null +++ b/example-admin-semanticui/example-admin-semanticui.yaml @@ -0,0 +1,320 @@ +--- + application: + title: "Example application" + frontend: "semantic-ui" + roles: + - "admin" + - "user" + default_role: "user" + send_verification_email: true + collections: + - + name: "customers" + queries: + - + name: "admin_users" + collection: "users" + filter: {} + - + name: "admin_user" + collection: "users" + filter: + _id: ":userId" + find_one: true + - + name: "users_null" + collection: "users" + filter: + _id: null + find_one: true + - + name: "current_user_data" + collection: "users" + filter: + _id: "Meteor.userId()" + find_one: true + public_zone: + pages: + - + name: "home_public" + title: "" + components: + - + name: "home_jumbotron" + title: "Example application" + type: "jumbotron" + text: "This is example application built with meteor-kitchen code generator without manual coding.
It demonstrates simple application with user account system and admin panel.
Source code (input file for generator) is here." + button_title: "Continue »" + button_route: "login" + - + name: "login" + template: "login" + - + name: "register" + template: "register" + - + name: "verify_email" + template: "verify_email" + route_params: + - "verifyEmailToken" + - + name: "forgot_password" + template: "forgot_password" + - + name: "reset_password" + template: "reset_password" + route_params: + - "resetPasswordToken" + components: + - + name: "left_menu" + type: "menu" + class: "nav navbar-nav" + dest_selector: "#menu" + items: + - + title: "Home" + route: "home_public" + - + name: "right_menu" + type: "menu" + class: "right menu" + dest_selector: "#menu" + items: + - + title: "Register" + route: "register" + - + title: "Login" + route: "login" + private_zone: + pages: + - + name: "home_private" + title: "Welcome {{userFullName}}!" + - + name: "admin" + roles: + - "admin" + pages: + - + name: "users" + components: + - + name: "view" + type: "data_view" + title: "Users" + text_if_empty: "No users yet" + query_name: "admin_users" + query_params: [] + fields: + - + name: "profile.name" + title: "Name" + - + name: "profile.email" + title: "E-mail" + - + name: "roles" + title: "Role" + insert_route: "admin.users.insert" + edit_route: "admin.users.edit" + edit_route_params: + - + name: "userId" + value: "this._id" + details_route: "admin.users.details" + details_route_params: + - + name: "userId" + value: "this._id" + pages: + - + name: "details" + route_params: + - "userId" + components: + - + name: "details_form" + type: "form" + mode: "read_only" + title: "User details" + query_name: "admin_user" + query_params: [] + fields: + - + name: "profile.name" + title: "Name" + - + name: "profile.email" + title: "E-mail" + type: "email" + - + name: "roles" + title: "Role" + close_route: "admin.users" + back_route: "admin.users" + - + name: "insert" + components: + - + name: "insert_form" + type: "form" + mode: "insert" + title: "Add new user" + submit_route: "admin.users" + cancel_route: "admin.users" + query_name: "users_null" + query_params: [] + fields: + - + name: "profile.name" + title: "Name" + required: true + - + name: "profile.email" + title: "E-mail" + type: "email" + required: true + - + name: "password" + title: "Password" + input: "password" + required: true + - + name: "edit" + route_params: + - "userId" + components: + - + name: "edit_form" + type: "form" + mode: "update" + title: "Edit user" + submit_route: "admin.users" + cancel_route: "admin.users" + query_name: "admin_user" + query_params: [] + fields: + - + name: "profile.name" + title: "Name" + required: true + - + name: "profile.email" + title: "E-mail" + type: "email" + required: true + - + name: "roles" + type: "array" + title: "Role" + input: "radio" + input_items: + - + value: "user" + title: "User" + - + value: "admin" + title: "Admin" + - + value: "blocked" + title: "Blocked" + components: + - + name: "side_menu" + type: "menu" + class: "nav nav-stacked nav-pills" + items: + - + title: "Users" + route: "admin.users" + - + name: "user_settings" + roles: + - "user" + - "admin" + pages: + - + name: "profile" + components: + - + name: "edit_form" + type: "form" + mode: "update" + title: "Edit your profile" + submit_route: "user_settings.profile" + query_name: "current_user_data" + query_params: [] + fields: + - + name: "profile.name" + title: "Name" + required: true + - + name: "profile.email" + title: "E-mail" + type: "email" + required: true + - + name: "profile.facebook" + title: "Facebook URL" + - + name: "profile.google" + title: "Google+ URL" + - + name: "profile.twitter" + title: "Twitter ID" + - + name: "profile.website" + title: "Website URL" + - + name: "change_pass" + template: "change_pass" + components: + - + name: "side_menu" + type: "menu" + class: "ui vertical menu" + items: + - + title: "Profile" + route: "user_settings.profile" + - + title: "Change password" + route: "user_settings.change_pass" + - + name: "logout" + template: "logout" + components: + - + name: "left_menu" + type: "menu" + class: "nav navbar-nav" + dest_selector: "#menu" + items: + - + title: "Home" + route: "home_private" + icon_class: "fa fa-home" + - + name: "right_menu" + type: "menu" + class: "right menu" + dest_selector: "#menu" + items: + - + title: "Admin" + route: "admin" + icon_class: "fa fa-wrench" + - + title: "{{userEmail}}" + items: + - + title: "Settings" + route: "user_settings" + - + title: "Logout" + route: "logout" + icon_class: "fa fa-cog" + From 981e004db4280dd1da408e177cb72e5a38db0026 Mon Sep 17 00:00:00 2001 From: Kadir ERDOGAN Date: Sat, 17 Oct 2015 16:23:08 +0300 Subject: [PATCH 3/5] Added framework urls --- example-admin-materializecss-sidemenu/README.md | 6 ++++-- example-admin-materializecss/README.md | 4 ++-- example-admin-semanticui-sidemenu/README.md | 6 ++++-- example-admin-semanticui/README.md | 4 ++-- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/example-admin-materializecss-sidemenu/README.md b/example-admin-materializecss-sidemenu/README.md index ff8fafc..49cb412 100644 --- a/example-admin-materializecss-sidemenu/README.md +++ b/example-admin-materializecss-sidemenu/README.md @@ -1,5 +1,7 @@ -Admin panel example -=================== +Admin panel sidemnu example with materializecss (http://materializecss.com/) +============================================================================ + +This example shows the usage of sidemenu layout and component. This input file for Meteor Kitchen will build meteor application with user account system and admin panel. diff --git a/example-admin-materializecss/README.md b/example-admin-materializecss/README.md index 2099ea4..549eb11 100644 --- a/example-admin-materializecss/README.md +++ b/example-admin-materializecss/README.md @@ -1,5 +1,5 @@ -Admin panel example -=================== +Admin panel example with materializecss (http://materializecss.com/) +==================================================================== This input file for Meteor Kitchen will build meteor application with user account system and admin panel. diff --git a/example-admin-semanticui-sidemenu/README.md b/example-admin-semanticui-sidemenu/README.md index 6df37a7..33404aa 100644 --- a/example-admin-semanticui-sidemenu/README.md +++ b/example-admin-semanticui-sidemenu/README.md @@ -1,5 +1,7 @@ -Admin panel example -=================== +Admin panel sidemenu example with semantic-ui (http://semantic-ui.com/) +======================================================================= + +This example shows the usage of sidemenu layout and component. This input file for Meteor Kitchen will build meteor application with user account system and admin panel. diff --git a/example-admin-semanticui/README.md b/example-admin-semanticui/README.md index 6b34dac..c497664 100644 --- a/example-admin-semanticui/README.md +++ b/example-admin-semanticui/README.md @@ -1,5 +1,5 @@ -Admin panel example -=================== +Admin panel example with semantic-ui (http://semantic-ui.com/) +============================================================== This input file for Meteor Kitchen will build meteor application with user account system and admin panel. From fd354aac68882f5741a4e0b4e5e2532a57f5db59 Mon Sep 17 00:00:00 2001 From: Kadir ERDOGAN Date: Sat, 17 Oct 2015 16:25:03 +0300 Subject: [PATCH 4/5] Fixed a typo --- example-admin-materializecss-sidemenu/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/example-admin-materializecss-sidemenu/README.md b/example-admin-materializecss-sidemenu/README.md index 49cb412..83a648c 100644 --- a/example-admin-materializecss-sidemenu/README.md +++ b/example-admin-materializecss-sidemenu/README.md @@ -1,4 +1,4 @@ -Admin panel sidemnu example with materializecss (http://materializecss.com/) +Admin panel sidemenu example with materializecss (http://materializecss.com/) ============================================================================ This example shows the usage of sidemenu layout and component. From d4ae2f1b8a1d14e25fd09fb87b4d78ed0e157add Mon Sep 17 00:00:00 2001 From: Kadir ERDOGAN Date: Mon, 19 Oct 2015 10:27:39 +0300 Subject: [PATCH 5/5] Fixed menus --- .../example-admin-materializecss.json | 14 +++++++++----- .../example-admin-materializecss.yaml | 18 +++++++++++------- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/example-admin-materializecss/example-admin-materializecss.json b/example-admin-materializecss/example-admin-materializecss.json index dc8e0f4..28a3897 100644 --- a/example-admin-materializecss/example-admin-materializecss.json +++ b/example-admin-materializecss/example-admin-materializecss.json @@ -65,7 +65,7 @@ { "name": "left_menu", "type": "menu", - "class": "", + "class": "left", "title": "Left menu", "dest_selector": "#menu", "items": [ @@ -90,8 +90,6 @@ "private_zone": { "pages": [ { "name": "home_private", "title": "Welcome {{userFullName}}!" }, - - { "name": "admin", "roles": ["admin"], @@ -281,8 +279,14 @@ "dest_selector": "#menu", "items": [ { "title": "Admin", "route": "admin", "icon_class": "brightness_auto" }, - { "title": "Settings", "route": "user_settings","icon_class":"settings" }, - { "title": "Logout", "route": "logout","icon_class":"power_settings_new" } + { + "title": "{{userEmail}}", + "items": [ + { "title": "Settings", "route": "user_settings","icon_class":"settings" }, + { "title": "Logout", "route": "logout","icon_class":"power_settings_new" } + ], + "icon_class": "settings" + } ] } ] diff --git a/example-admin-materializecss/example-admin-materializecss.yaml b/example-admin-materializecss/example-admin-materializecss.yaml index babab3e..9e8c255 100644 --- a/example-admin-materializecss/example-admin-materializecss.yaml +++ b/example-admin-materializecss/example-admin-materializecss.yaml @@ -69,7 +69,7 @@ - name: "left_menu" type: "menu" - class: "" + class: "left" title: "Left menu" dest_selector: "#menu" items: @@ -318,11 +318,15 @@ route: "admin" icon_class: "brightness_auto" - - title: "Settings" - route: "user_settings" + title: "{{userEmail}}" + items: + - + title: "Settings" + route: "user_settings" + icon_class: "settings" + - + title: "Logout" + route: "logout" + icon_class: "power_settings_new" icon_class: "settings" - - - title: "Logout" - route: "logout" - icon_class: "power_settings_new"