From 5bc77597a498ee263a569026405aad211ea3557c Mon Sep 17 00:00:00 2001 From: Edin Dazdarevic Date: Tue, 24 Mar 2015 06:18:27 +0100 Subject: [PATCH] menu -> submenu backend --- back-office/app/models/menu_item.rb | 3 +++ back-office/app/models/menu_sub_item.rb | 3 +++ front-api/controllers/menu_item.rb | 4 ++++ .../migrate/20150324044115_create_menu_items.rb | 9 +++++++++ .../20150324044314_create_menu_sub_items.rb | 10 ++++++++++ front-api/db/schema.rb | 15 ++++++++++++++- front-api/models/menu_item.rb | 3 +++ front-api/models/menu_sub_item.rb | 3 +++ front-ui/app/models/menuItem.js | 13 +++++++++++++ front-ui/app/models/menuItemCollection.js | 10 ++++++++++ 10 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 back-office/app/models/menu_item.rb create mode 100644 back-office/app/models/menu_sub_item.rb create mode 100644 front-api/controllers/menu_item.rb create mode 100644 front-api/db/migrate/20150324044115_create_menu_items.rb create mode 100644 front-api/db/migrate/20150324044314_create_menu_sub_items.rb create mode 100644 front-api/models/menu_item.rb create mode 100644 front-api/models/menu_sub_item.rb create mode 100644 front-ui/app/models/menuItem.js create mode 100644 front-ui/app/models/menuItemCollection.js diff --git a/back-office/app/models/menu_item.rb b/back-office/app/models/menu_item.rb new file mode 100644 index 0000000..10de537 --- /dev/null +++ b/back-office/app/models/menu_item.rb @@ -0,0 +1,3 @@ +class MenuItem < ActiveRecord::Base + has_many :menu_sub_items +end diff --git a/back-office/app/models/menu_sub_item.rb b/back-office/app/models/menu_sub_item.rb new file mode 100644 index 0000000..081dc23 --- /dev/null +++ b/back-office/app/models/menu_sub_item.rb @@ -0,0 +1,3 @@ +class MenuSubItem < ActiveRecord::Base + belongs_to :menu_item +end diff --git a/front-api/controllers/menu_item.rb b/front-api/controllers/menu_item.rb new file mode 100644 index 0000000..63e0955 --- /dev/null +++ b/front-api/controllers/menu_item.rb @@ -0,0 +1,4 @@ +get '/menuitem' do + # list all menu items + MenuItem.eager_load(:menu_sub_items).order("menu_items.ordinal, menu_sub_items.ordinal").to_json(:include => [:menu_sub_items]) +end diff --git a/front-api/db/migrate/20150324044115_create_menu_items.rb b/front-api/db/migrate/20150324044115_create_menu_items.rb new file mode 100644 index 0000000..123f886 --- /dev/null +++ b/front-api/db/migrate/20150324044115_create_menu_items.rb @@ -0,0 +1,9 @@ +class CreateMenuItems < ActiveRecord::Migration + def change + create_table :menu_items do |t| + t.string :title + t.string :url + t.integer :ordinal + end + end +end diff --git a/front-api/db/migrate/20150324044314_create_menu_sub_items.rb b/front-api/db/migrate/20150324044314_create_menu_sub_items.rb new file mode 100644 index 0000000..738359d --- /dev/null +++ b/front-api/db/migrate/20150324044314_create_menu_sub_items.rb @@ -0,0 +1,10 @@ +class CreateMenuSubItems < ActiveRecord::Migration + def change + create_table :menu_sub_items do |t| + t.string :title + t.string :url + t.integer :ordinal + t.integer :menu_item_id + end + end +end diff --git a/front-api/db/schema.rb b/front-api/db/schema.rb index e7fa267..59ad6a6 100644 --- a/front-api/db/schema.rb +++ b/front-api/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20150322044941) do +ActiveRecord::Schema.define(version: 20150324044314) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -150,6 +150,19 @@ ActiveRecord::Schema.define(version: 20150322044941) do t.string "name" end + create_table "menu_items", force: :cascade do |t| + t.string "title" + t.string "url" + t.integer "ordinal" + end + + create_table "menu_sub_items", force: :cascade do |t| + t.string "title" + t.string "url" + t.integer "ordinal" + t.integer "menu_item_id" + end + create_table "multi_media_descriptions", force: :cascade do |t| t.string "url" t.integer "item_id" diff --git a/front-api/models/menu_item.rb b/front-api/models/menu_item.rb new file mode 100644 index 0000000..10de537 --- /dev/null +++ b/front-api/models/menu_item.rb @@ -0,0 +1,3 @@ +class MenuItem < ActiveRecord::Base + has_many :menu_sub_items +end diff --git a/front-api/models/menu_sub_item.rb b/front-api/models/menu_sub_item.rb new file mode 100644 index 0000000..081dc23 --- /dev/null +++ b/front-api/models/menu_sub_item.rb @@ -0,0 +1,3 @@ +class MenuSubItem < ActiveRecord::Base + belongs_to :menu_item +end diff --git a/front-ui/app/models/menuItem.js b/front-ui/app/models/menuItem.js new file mode 100644 index 0000000..eb5a8cb --- /dev/null +++ b/front-ui/app/models/menuItem.js @@ -0,0 +1,13 @@ +var Backbone = require('backbone'); +var Globals = require('../globals'); +var MenuItem = Backbone.Model.extend({ + urlRoot : Globals.ApiUrl + '/menu_item', + defaults: { + title: '', + url: '', + sub_menu_items : [] + } +}); + +module.exports = MenuItem; + diff --git a/front-ui/app/models/menuItemCollection.js b/front-ui/app/models/menuItemCollection.js new file mode 100644 index 0000000..674eb36 --- /dev/null +++ b/front-ui/app/models/menuItemCollection.js @@ -0,0 +1,10 @@ +var Backbone = require('backbone'), + MenuItem = require('./menuItem'), + Globals = require('../globals'); + +var MenuItemCollection = Backbone.Collection.extend({ + model: MenuItem, + url: Globals.ApiUrl + '/menu_item' +}); + +module.exports = MenuItemCollection;