summaryrefslogtreecommitdiff
path: root/code_backend_theme/static/src/js/chrome
diff options
context:
space:
mode:
Diffstat (limited to 'code_backend_theme/static/src/js/chrome')
-rw-r--r--code_backend_theme/static/src/js/chrome/sidebar.js44
-rw-r--r--code_backend_theme/static/src/js/chrome/sidebar_menu.js108
2 files changed, 152 insertions, 0 deletions
diff --git a/code_backend_theme/static/src/js/chrome/sidebar.js b/code_backend_theme/static/src/js/chrome/sidebar.js
new file mode 100644
index 0000000..6506f33
--- /dev/null
+++ b/code_backend_theme/static/src/js/chrome/sidebar.js
@@ -0,0 +1,44 @@
+odoo.define('code_backend_theme.SideBar', function (require) {
+ "use strict";
+
+ var Widget = require('web.Widget');
+ var SideBar = Widget.extend({
+ events: _.extend({}, Widget.prototype.events, {
+ 'click .nav-link': '_onAppsMenuItemClicked',
+ }),
+ template: "code_backend_theme.Sidebar",
+
+ init: function (parent, menuData) {
+ this._super.apply(this, arguments);
+ this._apps = _.map(menuData.children, function (appMenuData) {
+ return {
+ actionID: parseInt(appMenuData.action.split(',')[1]),
+ menuID: appMenuData.id,
+ name: appMenuData.name,
+ xmlID: appMenuData.xmlid,
+ web_icon_data: appMenuData.web_icon_data,
+ };
+ });
+ },
+
+ getApps: function () {
+ return this._apps;
+ },
+
+ _openApp: function (app) {
+ this.trigger_up('app_clicked', {
+ action_id: app.actionID,
+ menu_id: app.menuID,
+ });
+ },
+
+ _onAppsMenuItemClicked: function (ev) {
+ var $target = $(ev.currentTarget);
+ var actionID = $target.data('action-id');
+ var menuID = $target.data('menu-id');
+ var app = _.findWhere(this._apps, { actionID: actionID, menuID: menuID });
+ this._openApp(app);
+ },
+ });
+ return SideBar;
+}); \ No newline at end of file
diff --git a/code_backend_theme/static/src/js/chrome/sidebar_menu.js b/code_backend_theme/static/src/js/chrome/sidebar_menu.js
new file mode 100644
index 0000000..7858ad1
--- /dev/null
+++ b/code_backend_theme/static/src/js/chrome/sidebar_menu.js
@@ -0,0 +1,108 @@
+odoo.define('code_backend_theme.SidebarMenu', function (require) {
+ "use strict";
+
+ const config = require("web.config");
+ const Menu = require("web.Menu");
+ const SideBar = require("code_backend_theme.SideBar");
+
+ Menu.include({
+ start() {
+ var res = this._super.apply(this, arguments);
+ this.sidebar_apps = this.$('.sidebar_panel');
+ this._sideBar = new SideBar(this, this.menu_data);
+ var sideBar = this._sideBar.appendTo(this.sidebar_apps);
+
+ return res, sideBar
+ },
+ });
+
+ //sidebar toggle effect
+ $(document).on("click", "#closeSidebar", function(event){
+ $("#closeSidebar").hide();
+ $("#openSidebar").show();
+ });
+ $(document).on("click", "#openSidebar", function(event){
+ $("#openSidebar").hide();
+ $("#closeSidebar").show();
+ });
+ $(document).on("click", "#openSidebar", function(event){
+ $("#sidebar_panel").css({'display':'block'});
+ $(".o_action_manager").css({'margin-left': '200px','transition':'all .1s linear'});
+ $(".top_heading").css({'margin-left': '180px','transition':'all .1s linear'});
+
+ //add class in navbar
+ var navbar = $(".o_main_navbar");
+ var navbar_id = navbar.data("id");
+ $("nav").addClass(navbar_id);
+ navbar.addClass("small_nav");
+
+ //add class in action-manager
+ var action_manager = $(".o_action_manager");
+ var action_manager_id = action_manager.data("id");
+ $("div").addClass(action_manager_id);
+ action_manager.addClass("sidebar_margin");
+
+ //add class in top_heading
+ var top_head = $(".top_heading");
+ var top_head_id = top_head.data("id");
+ $("div").addClass(top_head_id);
+ top_head.addClass("sidebar_margin");
+ });
+ $(document).on("click", "#closeSidebar", function(event){
+ $("#sidebar_panel").css({'display':'none'});
+ $(".o_action_manager").css({'margin-left': '0px'});
+ $(".top_heading").css({'margin-left': '0px'});
+
+ //remove class in navbar
+ var navbar = $(".o_main_navbar");
+ var navbar_id = navbar.data("id");
+ $("nav").removeClass(navbar_id);
+ navbar.removeClass("small_nav");
+
+ //remove class in action-manager
+ var action_manager = $(".o_action_manager");
+ var action_manager_id = action_manager.data("id");
+ $("div").removeClass(action_manager_id);
+ action_manager.removeClass("sidebar_margin");
+
+ //remove class in top_heading
+ var top_head = $(".top_heading");
+ var top_head_id = top_head.data("id");
+ $("div").removeClass(top_head_id);
+ top_head.removeClass("sidebar_margin");
+ });
+
+ $(document).on("click", ".sidebar a", function(event){
+ var menu = $(".sidebar a");
+ var $this = $(this);
+ var id = $this.data("id");
+ $("header").removeClass().addClass(id);
+ menu.removeClass("active");
+ $this.addClass("active");
+
+ //sidebar close on menu-item click
+ $("#sidebar_panel").css({'display':'none'});
+ $(".o_action_manager").css({'margin-left': '0px'});
+ $(".top_heading").css({'margin-left': '0px'});
+ $("#closeSidebar").hide();
+ $("#openSidebar").show();
+
+ //remove class in navbar
+ var navbar = $(".o_main_navbar");
+ var navbar_id = navbar.data("id");
+ $("nav").removeClass(navbar_id);
+ navbar.removeClass("small_nav");
+
+ //remove class in action-manager
+ var action_manager = $(".o_action_manager");
+ var action_manager_id = action_manager.data("id");
+ $("div").removeClass(action_manager_id);
+ action_manager.removeClass("sidebar_margin");
+
+ //remove class in top_heading
+ var top_head = $(".top_heading");
+ var top_head_id = top_head.data("id");
+ $("div").removeClass(top_head_id);
+ top_head.removeClass("sidebar_margin");
+ });
+}); \ No newline at end of file