Fix #6545 - cms issues with add / delete
authorAlan Knowles <alan@roojs.com>
Thu, 14 Jan 2021 01:58:08 +0000 (09:58 +0800)
committerAlan Knowles <alan@roojs.com>
Thu, 14 Jan 2021 01:58:08 +0000 (09:58 +0800)
DataObjects/Cms_page.php
Pman.Tab.CmsBlog.bjs
Pman.Tab.CmsBlog.js

index 33e2351..d4cd5fa 100644 (file)
@@ -94,7 +94,8 @@ class Pman_Cms_DataObjects_Cms_page extends DB_DataObject
             
         }
         // default is to hide deleted entries... (we show deleted and not-deleted if _show_Deleted is set.)
-        if (empty($q['_show_deleted'])) {
+        // not filtering if we are doing an update...
+        if (empty($q['_show_deleted']) && empty($q['_is_update_request'])) {
             $this->is_deleted =  0 ;
         }
         
index b989277..5b1a86a 100644 (file)
       },
       {
        "xtype" : "LayoutRegion",
-       "$ xns" : "Roo",
        "width" : 320,
+       "$ xns" : "Roo",
        "split" : true,
        "titlebar" : false,
        "* prop" : "west"
       },
       {
        "Boolean collapsed" : false,
-       "String collapsedTitle" : "Child Elements",
        "xtype" : "LayoutRegion",
+       "String collapsedTitle" : "Child Elements",
        "width" : 500,
        "$ xns" : "Roo",
        "Boolean collapsible" : true,
@@ -80,8 +80,8 @@
         "|activate" : "function() {\n    _this.panel = this;\n    if (_this.grid) {\n        _this.grid.footer.onClick('first');\n    }\n    \n}"
        },
        "bool background" : false,
-       "region" : "center",
        "fitToframe" : true,
+       "region" : "center",
        "title" : "Pages, Menu and Blog Entries",
        "xtype" : "GridPanel",
        "fitContainer" : true,
@@ -91,8 +91,8 @@
         {
          "listeners" : {
           "rowdblclick" : "function (_self, rowIndex, e)\n{\n    var s = this.dataSource.getAt(rowIndex);\n    /*  \n    if (s.data.language.length) {\n        Roo.log('in lang');\n        _this.dialog.show({ id : s.data.parent_id } , function() {\n            _this.grid.footer.onClick('refresh');\n        });\n        return;\n    }*/\n    if (s.data.is_deleted) {\n        Roo.MessageBox.alert(\"Undelete this\", \"You need to un-delete this item before you can edit it\");\n        return;\n    }\n    \n    \n    \n    _this.dialog.show(s.data, function() {\n        _this.grid.footer.onClick('refresh');\n    }); \n    \n}\n",
-          "|render" : "function() \n{\n   _this.grid = this; \n    _this.dialog = Pman.Dialog.CmsBlog;\n    if (_this.panel.active) {\n       this.footer.onClick('first');\n    }\n}",
           "cellclick" : "function (g, ri,ci, e)\r\n{\n    var h = this.colModel.getDataIndex(ci);\n    \r\n    if (h != 'is_draft') {\r\n        return;\r\n    }\r\n    var rec = g.ds.getAt(ri);\n    \n    if(rec.data.is_system_page * 1 == 1){\n        Roo.MessageBox.alert('Error', 'You cannot de-active the system page');\n        return;\n    }\r\n    rec.set('is_draft', rec.data.is_draft ? 0 : 1);\r\n    rec.commit();\r\n}",
+          "|render" : "function() \n{\n   _this.grid = this; \n    _this.dialog = Pman.Dialog.CmsBlog;\n    if (_this.panel.active) {\n       this.footer.onClick('first');\n    }\n}",
           "rowclick" : "function (_self, rowIndex, e)\n{\n    var s = this.dataSource.getAt(rowIndex);\n\n    _this.prepanel.el.dom.innerHTML = '';\n    \n    if(s.data.id * 1 < 1){\n        return;\r\n    }\n    if (s.data.is_deleted) {\n        _this.deleteBtn.setText(\"Un-delete\");\n    } else {\n        _this.deleteBtn.setText(\"Delete\");\n    } \n    \n    \n    _this.prepanel.el.dom.src =  baseURL + '/Cms/PageThumb/' +  s.data.id;\n    \n    _this.targetData = s;\n    \n    _this.child_element_grid.footer.onClick('first');\n    \n}"
          },
          "autoExpandColumn" : "title",
            "items" : [
             {
              "$ url" : "baseURL + '/Roo/cms_page.php'",
-             "xtype" : "HttpProxy",
              "method" : "GET",
+             "xtype" : "HttpProxy",
              "$ xns" : "Roo.data",
              "* prop" : "proxy"
             },
             },
             {
              "listeners" : {
-              "|click" : "function()\n{\n    var ds = false;\n    \n    \n    if(_this.grid.selModel.getSelections().length == 1){\n       ds = _this.grid.selModel.getSelected().data;\n    }\n    \n    var page_type_id = 0;\n    var page_type_id_name = '';\n    var page_type_id_display_name = '';\n    \n    var sel = _this.category_grid.getSelectionModel().getSelected();\n    \n    if(!ds && sel && sel.data.pid * 1 > 0 && sel.data.type == 'page_type'){\n        page_type_id = sel.data.pid;\n        page_type_id_name = sel.data.name;\n        page_type_id_display_name = sel.data.display_name;\n        \n        if(sel.data.name == 'page'){\n            page_type_id_display_name = 'Pages';\n        }\n        \n        if(sel.data.name == 'blog'){\n            page_type_id_display_name = 'Blog Entries';\n        }\n        \n    }\n    var pid = '';\n    if(sel.data.name != 'blog'){\n        pid = ds.id;\n    }\n        \n    /*\n    var s = _this.page_type.selectedData;\n    \n    if(!ds){\n        page_type_id = s.id;\n        page_type_id_name = s.name;\n        page_type_id_display_name = s.display_name;\n        \n        if(s.name == 'page'){\n            page_type_id_display_name = 'Pages';\n        }\n    }\n   */\n   \n    var q =   {\n        id : 0,\n        parent_id : pid,\n        parent_id_title : ds ? ds.title : '',\n        page_link : ds && !ds.is_element ? (ds.page_link + '/') : '',\n        page_type_id : ds ? ds.page_type_id : page_type_id,\n        page_type_id_name : ds ? ds.page_type_id_name : page_type_id_name,\n        page_type_id_display_name : ds ? ds.page_type_id_display_name : page_type_id_display_name\n    };\n   \n   _this.dialog.show( q, function() {\n     _this.grid.footer.onClick('first');\n   });\n}\n"
+              "|click" : "function()\n{\n    var ds = false;\n    \n    \n    if(_this.grid.selModel.getSelections().length == 1){\n       ds = _this.grid.selModel.getSelected().data;\n    } \n    \n    var page_type_id = 0;\n    var page_type_id_name = '';\n    var page_type_id_display_name = '';\n    \n    var sel = _this.category_grid.getSelectionModel().getSelected();\n    \n    if (!ds && !sel) {\n        Roo.MessageBox.alert(\"Select Type\", \"Select Type of page on the left (category)\");\n        return;\n    }\n    \n    if(!ds && sel && sel.data.pid * 1 > 0 && sel.data.type == 'page_type'){\n        page_type_id = sel.data.pid;\n        page_type_id_name = sel.data.name;\n        page_type_id_display_name = sel.data.display_name;\n        \n        if(ds && sel.data.name == 'page'){\n            page_type_id_display_name = 'Pages';\n        }\n        \n        if(sel.data.name == 'blog'){\n            page_type_id_display_name = 'Blog Entries';\n        }\n        \n    }\n    var pid = '';\n    if(sel.data.name != 'blog'){\n        pid = ds.id;\n    }\n        \n    /*\n    var s = _this.page_type.selectedData;\n    \n    if(!ds){\n        page_type_id = s.id;\n        page_type_id_name = s.name;\n        page_type_id_display_name = s.display_name;\n        \n        if(s.name == 'page'){\n            page_type_id_display_name = 'Pages';\n        }\n    }\n   */\n   \n    var q =   {\n        id : 0,\n        parent_id : pid,\n        parent_id_title : ds ? ds.title : '',\n        page_link : ds && !ds.is_element ? (ds.page_link + '/') : '',\n        page_type_id : ds ? ds.page_type_id : page_type_id,\n        page_type_id_name : ds ? ds.page_type_id_name : page_type_id_name,\n        page_type_id_display_name : ds ? ds.page_type_id_display_name : page_type_id_display_name\n    };\n   \n   _this.dialog.show( q, function() {\n     _this.grid.footer.onClick('first');\n   });\n}\n"
              },
              "text" : "Add",
              "xtype" : "Button",
           },
           {
            "xtype" : "ColumnModel",
-           "width" : 75,
            "header" : "Active",
+           "width" : 75,
            "$ renderer" : "function(v,x,r) {\n    \n    if (r.data.is_deleted) {\n        return 'DELETED';\n    }\n    \n    var state = v> 0 ?  '' : '-checked';\n\n    return '<img class=\"x-grid-check-icon' + state + '\" src=\"' + Roo.BLANK_IMAGE_URL + '\"/>';\n}",
            "$ xns" : "Roo.grid",
            "* prop" : "colModel[]",
           },
           {
            "xtype" : "ColumnModel",
-           "width" : 75,
            "header" : "Created",
+           "width" : 75,
            "$ renderer" : "function(v) { return v? v.format('d/M/Y') : '--' }",
            "$ xns" : "Roo.grid",
            "* prop" : "colModel[]",
           },
           {
            "xtype" : "ColumnModel",
-           "width" : 75,
            "header" : "Published",
+           "width" : 75,
            "$ renderer" : "function(v,x,r) { \n    if (r.data.is_draft) { \n        return '[DRAFT]';\n    }\n\n    return v? v.format('d/M/Y') : '--' \n}",
            "$ xns" : "Roo.grid",
            "* prop" : "colModel[]",
           },
           {
            "xtype" : "ColumnModel",
-           "width" : 150,
            "header" : "Page link / Name / Order",
+           "width" : 150,
            "$ renderer" : "function(v,x,r) { \n\n    if (r.data.page_type_id_name == 'page') {\n        return String.format('{0}', v); \n        \n    }\n    \n    if (r.data.page_type_id_name == 'blog') {\n        return String.format('{0}', v); \n    }\n    // what about categories.??\n    \n    // menu, or elements.. ??\n    \n    var d = r.json.depth || 0;\n    var pr = ''; \n    for (i = 0; i < d; i++) {\n      pr += ' ..  ';\n    }\n    if (r.data.page_type_id_name == 'element') {    \n        return String.format('{0}<i>{1}</i>', pr,  v);     \n    }\n    // menu..\n    return String.format('{0}{1}', pr,  v);\n    \n    \n}",
            "$ xns" : "Roo.grid",
            "* prop" : "colModel[]",
           },
           {
            "xtype" : "ColumnModel",
-           "width" : 200,
            "header" : "Title",
+           "width" : 200,
            "$ renderer" : "function(v,x,r) { \n\n    var d = r.json.tree_depth || 0;\n    var pr = ''; \n    for (i = 0; i < d; i++) {\n      pr += ' ..  ';\n    }\n    \n    var fmt = '<span style=\"color:blue\">{2}{3}</span>' + \n            (r.data.is_draft ? '<s>{0}</s> <b style=\"color:#a94442;\">{1}</b>' : '{0} <b style=\"color:#a94442;\">{1}</b>');\n    \n    return String.format( fmt,\n        pr + v,\n        (r.data.has_child * 1 > 0) ? '[has child]' : '',\n        \n        (r.data.page_type_id_name == 'menu'  ? '('+r.data.seq_id +')' : ''),\n        (r.data.category_page_id *1 ? ( '[' + r.data.category_page_id_title +'] ' ): '')\n        );\n        \n }",
            "$ xns" : "Roo.grid",
            "* prop" : "colModel[]",
           },
           {
            "xtype" : "ColumnModel",
-           "width" : 75,
            "header" : "Layout",
+           "width" : 75,
            "$ renderer" : "function(v) { return String.format('{0}', v  || ''); }",
            "$ xns" : "Roo.grid",
            "* prop" : "colModel[]",
           },
           {
            "xtype" : "ColumnModel",
-           "width" : 100,
            "header" : "Type",
+           "width" : 100,
            "$ renderer" : "function(v, x, r) \n{\n    var ret = [];\n    \n    if (r.data.language.length) {\n        ret.push('&gt;&gt; ' + Pman.I18n.toName('l', r.data.language));\n    }\n    \n    if(r.data.translation_type.length){\n    \n        var types = r.data.translation_type.split(',');\n        \n        Roo.each(types, function(t){\n            ret.push('&gt;&gt; ' + Pman.I18n.toName('l', t));\n        });\n    }\n    \n    return ret.join(\"<br/>\");\n    \n    /*\n    if (r.data.language.length) {\n        return '&gt;&gt; ' + Pman.I18n.toName('l', r.data.language);\n    }\n    */\n    \n  /*  if (r.data.in_rss) {\n        return String.format('{0}', v); \n    }\n    if (r.data.is_element) {\n        return String.format('[Element:{0}]', r.data.element_id_name.length ? r.data.element_id_name : ''); \n    }\n    */\n\n}",
            "$ xns" : "Roo.grid",
            "* prop" : "colModel[]",
           },
           {
            "xtype" : "ColumnModel",
-           "width" : 200,
            "header" : "Links to",
+           "width" : 200,
            "$ renderer" : "function(v,x,r) { \n\n   if (r.data.is_attachment) {\n        return \"[ATTACHMENT]\";\n    }\n   return String.format('{0}', v); \n }",
            "$ xns" : "Roo.grid",
            "* prop" : "colModel[]",
           },
           {
            "xtype" : "ColumnModel",
-           "width" : 75,
            "header" : "Author",
+           "width" : 75,
            "$ renderer" : "function(v) { return String.format('{0}', v); }",
            "$ xns" : "Roo.grid",
            "* prop" : "colModel[]",
           },
           {
            "xtype" : "ColumnModel",
-           "width" : 25,
            "header" : "Ex?",
+           "width" : 25,
            "$ renderer" : "function(v) { return String.format('{0}', v); }",
            "$ xns" : "Roo.grid",
            "* prop" : "colModel[]",
           },
           {
            "xtype" : "ColumnModel",
-           "width" : 25,
            "header" : "C#",
+           "width" : 25,
            "$ renderer" : "function(v) { return String.format('{0}', v); }",
            "$ xns" : "Roo.grid",
            "* prop" : "colModel[]",
           },
           {
            "xtype" : "ColumnModel",
-           "header" : "Postion",
            "width" : 50,
+           "header" : "Postion",
            "$ renderer" : "function(v,x,r) \n{ \n    \n    return v *1;\n    \n}",
            "$ xns" : "Roo.grid",
            "* prop" : "colModel[]",
             "|activate" : "function() {\n\n    _this.category_panel = this;\n    \n    if (_this.category_grid) {\n        _this.category_grid.ds.load({});\n    }\n}"
            },
            "bool background" : true,
-           "fitToframe" : true,
            "region" : "center",
+           "fitToframe" : true,
            "title" : "Category",
            "xtype" : "GridPanel",
            "fitContainer" : true,
                "items" : [
                 {
                  "$ url" : "baseURL + '/Roo/cms_page_category.php'",
-                 "method" : "GET",
                  "xtype" : "HttpProxy",
+                 "method" : "GET",
                  "$ xns" : "Roo.data",
                  "* prop" : "proxy"
                 },
               },
               {
                "xtype" : "ColumnModel",
-               "header" : "Category",
                "width" : 200,
+               "header" : "Category",
                "$ renderer" : "function(v,x,r) \n{ \n    if(r.data.category_id_is_draft * 1 == 1){\n        return String.format('<span style=\"text-decoration:line-through\">{0}</span>', v ? v : ''); \n    }\n    \n    return String.format('{0}', v ? v : '');\n}",
                "$ xns" : "Roo.grid",
                "* prop" : "colModel[]",
             "render" : "function (_self)\n{\n    _this.prepanel = _self;\n    \n    this.el.dom.onload = function(){\n    \n        if(\n            !_this.targetData || \n            !_this.targetData.data.page_link.length ||\n            !uiConfig || \n            typeof(uiConfig.cms_page_preview_base) == 'undefined'\n        ){\n            return;\n        }\n        \n        Roo.get(this.contentDocument.body).on('click', function(){\n            var url = uiConfig.cms_page_preview_base + _this.targetData.data.page_link;\n            window.open(url);\n        });\n    }\n}"
            },
            "$ Boolean/Object autoCreate" : "{ tag: 'iframe', src : 'about:blank' }",
-           "fitToFrame" : true,
            "region" : "south",
+           "fitToFrame" : true,
            "title" : "Preview (resize by dragging next to this bar)",
            "xtype" : "ContentPanel",
            "fitContainer" : true,
         "|activate" : "function() {\n    _this.child_element_panel = this;\n    if (_this.child_element_grid) {\n        //_this.child_element_grid.footer.onClick('first');\n    }\n    \n}"
        },
        "bool background" : false,
-       "fitToframe" : true,
        "region" : "east",
+       "fitToframe" : true,
        "title" : "Child Elements",
        "xtype" : "GridPanel",
        "fitContainer" : true,
         {
          "listeners" : {
           "rowdblclick" : "function (_self, rowIndex, e)\n{\n    var s = this.dataSource.getAt(rowIndex);\n    \n    _this.dialog.show(s.data, function() {\n        _this.child_element_grid.footer.onClick('refresh');\n    }); \n    \n}\n",
-          "cellclick" : "function (g, ri,ci, e)\r\n{\n    var h = this.colModel.getDataIndex(ci);\n    \n    \n    if(h == 'seq_id'){\n        _this.child_element_grid.trigger_link_click(g, ri, ci, e);\n        return;\n    }\n    \n    \r\n    if (h != 'is_draft') {\r\n        return;\r\n    }\n    \r\n    var rec = g.ds.getAt(ri);\n    \r\n    rec.set('is_draft', rec.data.is_draft ? 0 : 1);\r\n    rec.commit();\n    \r\n}",
-          "|render" : "function() \n{\n   _this.child_element_grid = this; \n    if (_this.child_element_panel.active) {\n      // this.footer.onClick('first');\n    }\n}"
+          "|render" : "function() \n{\n   _this.child_element_grid = this; \n    if (_this.child_element_panel.active) {\n      // this.footer.onClick('first');\n    }\n}",
+          "cellclick" : "function (g, ri,ci, e)\r\n{\n    var h = this.colModel.getDataIndex(ci);\n    \n    \n    if(h == 'seq_id'){\n        _this.child_element_grid.trigger_link_click(g, ri, ci, e);\n        return;\n    }\n    \n    \r\n    if (h != 'is_draft') {\r\n        return;\r\n    }\n    \r\n    var rec = g.ds.getAt(ri);\n    \r\n    rec.set('is_draft', rec.data.is_draft ? 0 : 1);\r\n    rec.commit();\n    \r\n}"
          },
          "autoExpandColumn" : "title",
          "| function trigger_link_click" : "function(g, rowIndex, columnIndex, e) \n{ \n    e.preventDefault();\n    \n    var target = e.getTarget();\n    \n    if(target.nodeName.toLowerCase() != 'a'){\n        return;\n    }\n    \n    var rec = _this.grid.ds.getAt(rowIndex);\n    \n    var el = Roo.get(target);\n    \n    if(!el.hasClass('down') && !el.hasClass('up')){\n        return;\n    }\n    \n    var s = this.dataSource.getAt(rowIndex);\n    \n    if(!s || s.data.id * 1 < 1){\n        return;\n    }\n    \n    new Pman.Request({\n        method : 'POST',\n        url : baseURL + '/Roo/cms_page',\n        params : {\n            id : s.data.id,\n            _move : el.hasClass('down') ? 'down' : 'up'\n        },\n        success : function() { \n            _this.child_element_grid.footer.onClick('refresh');\n        }\n    });\n    \n    return;\n    \n}",
            "items" : [
             {
              "$ url" : "baseURL + '/Roo/cms_page.php'",
-             "method" : "GET",
              "xtype" : "HttpProxy",
+             "method" : "GET",
              "$ xns" : "Roo.data",
              "* prop" : "proxy"
             },
           },
           {
            "xtype" : "ColumnModel",
-           "header" : "Image",
            "width" : 50,
+           "header" : "Image",
            "$ renderer" : "function(v,x,r) \n{ \n    if(!v){\n        return '';\n    }\n    \n    return String.format('<img src=\"{0}/Images/Thumb/40/{1}\" width=\"40\">', baseURL, v); \n}",
            "$ xns" : "Roo.grid",
            "* prop" : "cm[]",
           },
           {
            "xtype" : "ColumnModel",
-           "header" : "Active",
            "width" : 40,
+           "header" : "Active",
            "$ renderer" : "function(v,x,r) {\n     \n    var state = v> 0 ?  '' : '-checked';\n\n    return '<img class=\"x-grid-check-icon' + state + '\" src=\"' + Roo.BLANK_IMAGE_URL + '\"/>';\n}",
            "$ xns" : "Roo.grid",
            "* prop" : "cm[]",
           },
           {
            "xtype" : "ColumnModel",
-           "header" : "Location",
            "width" : 100,
+           "header" : "Location",
            "$ renderer" : "function(v,x,r) { \n\n    var fmt = '';\n    \n    if(r.data.template_id_template.length){\n        \n        fmt = (r.data.is_deleted ? '<s>{0}<br/>{1}</s>' : '{0}<br/>{1}');\n        \n        return String.format(fmt, v, r.data.template_id_template);\n    }\n    \n    fmt = (r.data.is_deleted ? '<s>{0}</s>' : '{0}');\n    \n    return String.format( fmt, v);\n    \n    \n }",
            "$ xns" : "Roo.grid",
            "* prop" : "cm[]",
           },
           {
            "xtype" : "ColumnModel",
-           "width" : 75,
            "header" : "Title",
+           "width" : 75,
            "$ renderer" : "function(v,x,r) { \n\n    var fmt = (r.data.is_deleted ? '<s>{0}</s>' : '{0}');\n    \n    return String.format( fmt, v);\n }",
            "$ xns" : "Roo.grid",
            "* prop" : "cm[]",
           },
           {
            "xtype" : "ColumnModel",
-           "header" : "Type",
            "width" : 75,
+           "header" : "Type",
            "$ renderer" : "function(v, x, r) \n{\n    var ret = [];\n    \n    if (r.data.language.length) {\n        ret.push('&gt;&gt; ' + Pman.I18n.toName('l', r.data.language));\n    }\n    \n    if(r.data.translation_type.length){\n    \n        var types = r.data.translation_type.split(',');\n        \n        Roo.each(types, function(t){\n            ret.push('&gt;&gt; ' + Pman.I18n.toName('l', t));\n        });\n    }\n    \n    return ret.join(\"<br/>\");\n    \n}",
            "$ xns" : "Roo.grid",
            "* prop" : "cm[]",
           },
           {
            "xtype" : "ColumnModel",
-           "header" : "Postion",
            "width" : 75,
+           "header" : "Postion",
            "$ renderer" : "function(v,x,r) \n{ \n    \n    var fmt = String.format(\n                '<a href=\"#\" class=\"down\" style=\"font-weight: bold; font-size: 20px; text-decoration: none;\" tooltip=\"Down\">&uarr;</a>' +\n                '<a href=\"#\" class=\"up\" style=\"font-weight: bold; font-size: 20px; text-decoration: none; margin-left: 15px;\" tooltip=\"Up\">&darr;</a>'\n            );\n            \n    return fmt;\n    \n}",
            "$ xns" : "Roo.grid",
            "* prop" : "cm[]",
           },
           {
            "xtype" : "ColumnModel",
-           "width" : 30,
            "header" : "Postion",
+           "width" : 30,
            "$ renderer" : "function(v,x,r) \n{ \n    \n    return v *1;\n    \n}",
            "$ xns" : "Roo.grid",
            "* prop" : "cm[]",
index bc4dee5..f029bcd 100644 (file)
@@ -343,7 +343,7 @@ Pman.Tab.CmsBlog = new Roo.XComponent({
                 
                 if(_this.grid.selModel.getSelections().length == 1){
                    ds = _this.grid.selModel.getSelected().data;
-                }
+                } 
                 
                 var page_type_id = 0;
                 var page_type_id_name = '';
@@ -351,12 +351,17 @@ Pman.Tab.CmsBlog = new Roo.XComponent({
                 
                 var sel = _this.category_grid.getSelectionModel().getSelected();
                 
+                if (!ds && !sel) {
+                    Roo.MessageBox.alert("Select Type", "Select Type of page on the left (category)");
+                    return;
+                }
+                
                 if(!ds && sel && sel.data.pid * 1 > 0 && sel.data.type == 'page_type'){
                     page_type_id = sel.data.pid;
                     page_type_id_name = sel.data.name;
                     page_type_id_display_name = sel.data.display_name;
                     
-                    if(sel.data.name == 'page'){
+                    if(ds && sel.data.name == 'page'){
                         page_type_id_display_name = 'Pages';
                     }