Pman.Tab.CmsBlog.bjs
authoredward <edward@roojs.com>
Thu, 19 Apr 2018 07:00:21 +0000 (15:00 +0800)
committeredward <edward@roojs.com>
Thu, 19 Apr 2018 07:00:21 +0000 (15:00 +0800)
Pman.Tab.CmsBlog.js

Pman.Tab.CmsBlog.bjs
Pman.Tab.CmsBlog.js

index 23fcd8f..33ba0e2 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"
             },
           },
           {
            "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"
             },
              "id" : "id",
              "root" : "data",
              "xtype" : "JsonReader",
-             "$ fields" : "[\n    {\n        'name': 'id',\n        'type': 'int'\n    },\n    {\n        'name': 'title',\n        'type': 'string'\n    },\n    {\n        'name': 'element_id_name',\n        'type': 'string'\n    },\n    {\n        'name': 'seq_id',\n        'type': 'int'\n    },\n    {\n        'name': 'is_draft',\n        'type': 'int'\n    },\n    {\n        'name': 'is_deleted',\n        'type': 'int'\n    },\n    {\n        'name': 'language',\n        'type': 'string'\n    },\n    {\n        'name': 'translation_type',\n        'type': 'string'\n    },\n    {\n        'name': 'primary_image_id',\n        'type': 'int'\n    }\n]",
+             "$ fields" : "[\n    {\n        'name': 'id',\n        'type': 'int'\n    },\n    {\n        'name': 'title',\n        'type': 'string'\n    },\n    {\n        'name': 'element_id_name',\n        'type': 'string'\n    },\n    {\n        'name': 'seq_id',\n        'type': 'int'\n    },\n    {\n        'name': 'is_draft',\n        'type': 'int'\n    },\n    {\n        'name': 'is_deleted',\n        'type': 'int'\n    },\n    {\n        'name': 'language',\n        'type': 'string'\n    },\n    {\n        'name': 'translation_type',\n        'type': 'string'\n    },\n    {\n        'name': 'primary_image_id',\n        'type': 'int'\n    },\n    {\n        'name': 'template_id_template',\n        'type': 'string'\n    }\n]",
              "$ xns" : "Roo.data",
              "* prop" : "reader",
              "totalProperty" : "total"
           },
           {
            "xtype" : "ColumnModel",
-           "header" : "Image",
            "width" : 75,
+           "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" : 50,
+           "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 = (r.data.is_deleted ? '<s>{0}</s>' : '{0}');\n    \n    return String.format( fmt, v);\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" : 100,
+           "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" : 50,
            "header" : "Postion",
+           "width" : 50,
            "$ renderer" : "function(v,x,r) \n{ \n    \n    return v *1;\n    \n}",
            "$ xns" : "Roo.grid",
            "* prop" : "cm[]",
index 506d177..568e2a6 100644 (file)
@@ -1874,6 +1874,10 @@ Pman.Tab.CmsBlog = new Roo.XComponent({
              {
                  'name': 'primary_image_id',
                  'type': 'int'
+             },
+             {
+                 'name': 'template_id_template',
+                 'type': 'string'
              }
          ],
          id : 'id',