jsharmony-cms
Version:
160 lines • 8.49 kB
JSON
{
"Page_Tree": {
"layout":"form",
"table":"",
"actions":"BIUD",
"roles": {"AUTHOR": "BIUD","PUBLISHER": "BIUD","VIEWER":"B"},
"title":"Pages (Folder View)",
"caption":["Page","Pages"],
"unbound":true,
"menu":"jsHarmonyCMS/Page_Listing",
"breadcrumbs":"#CMS_BRANCH_BREADCRUMBS",
"buttons":[
{ "name": "addPage", "actions": "I", "link":"js:jsh.App[jsh.XBase['jsHarmonyCMS/Page_Tree_Listing'][0]].addFile();","icon":"add","text":"Add Page","roles": { "AUTHOR": "B", "PUBLISHER": "B" } },
{ "name": "search", "link":"Page_Search","icon":"search","text":"Search","roles": { "AUTHOR": "B", "PUBLISHER": "B", "VIEWER":"B" }, "bindings": {} },
{ "name": "review", "link":"Page_Listing","icon":"export","text":"Review","roles": { "AUTHOR": "B", "PUBLISHER": "B", "VIEWER":"B" }, "bindings": {} }
],
"hide_system_buttons" : ["print","export"],
"oninit": "_this.oninit();",
"onload": "_this.onload();",
"ongetstate": "return _this.ongetstate(xmodel);",
"onloadstate": "_this.onloadstate(xmodel, state);",
"fields":[
{"name":"form_instructions","control":"html","roles": {"AUTHOR": "B","PUBLISHER": "B"},"value":[
"<div style='position:relative;top:-4px;'><span style='font-size:1.3em;position:relative;top:1px;margin-right:2px;margin-left:4px;'>🛈</span> Manage pages in the Folder View :: Right-click folders and pages for options :: Drag to reorder</div>",
]},
{"control": "html", "value": "<div class=\"clear\"></div><div class='<%=model.class%>_browser'>" },
{"name": "page_folder", "actions": "BIUD","foreignkey":1,"caption": "","control": "tree",
"unbound": 1, "always_editable":1,
"default": "/",
"lov": {
"sql": "select distinct null as code_id, null as code_parent_id, (case $ifnull(page_folder,'') when '' then '/' else page_folder end) as code_val, null as code_txt, 'folder' as code_icon from {schema}.v_my_page order by (case $ifnull(page_folder,'') when '' then '/' else page_folder end)",
"post_process": "jsh.generateLOVTree(values, { root_txt: '%%%ROOT%%%', new_code_val: function(patharr){ var rslt = patharr.join('/'); if(!rslt) return '/'; return '/'+rslt+'/'; } });"
},
"controlparams": {
"expand_all": true,
"item_context_menu": [
{ "icon": "add", "text": "Add Page", "command": "jsh.App[jsh.XBase['jsHarmonyCMS/Page_Tree_Listing'][0]].addFile(context_item);","actions":"I" },
{ "icon": "add", "text": "Add Subfolder", "command": "_this.addFolder(context_item);","actions":"I" },
{ "icon": "edit", "text": "Rename Folder", "command": "_this.renameFolder(context_item);","actions":"U" },
{ "icon": "export", "text": "Move Folder", "command": "_this.moveFolder(context_item);","actions":"U" },
{ "icon": "delete", "text": "Delete Folder", "command": "_this.deleteFolder(context_item);","actions":"D" }
],
"item_dropdown": { "caption": "Actions" },
"onmove": "return _this.page_folder_onmove(dragval, dropval, anchor, e);",
"drag_anchor_settings": { "anchors": ["full"] }
},
"onchange": "_this.page_folder_onchange(obj,newval);"
},
{"control":"html", "value": "<div class='<%=model.class%>_page_listing_container'>" },
{"control":"html", "value": "<div class='<%=model.class%>_page_listing_header'>Current Folder: <span class='<%=model.class%>_page_listing_header_path'></span></div>" },
{
"name": "Page_Tree_Listing",
"control": "subform",
"target": "Page_Tree_Listing",
"bindings": { "page_folder": "page_folder" },
"caption": "",
"actions": "BIUD",
"controlparams":{ "grid_save_before_update": true }
},
{"control":"html", "value": "</div>" },
{"control":"html", "value": "</div>"},
"#CMS_SITE_EDITOR_LOV",
{"name":"revision_page","unbound":true,"control":"hidden","bindings":{"revision_page_key":"js:if(xmodel) return jsh.App[xmodel.id].revision_page_key;"},
"popuplov": {"target": "Page_Revision_Listing", "code_val": "page_id", "popupstyle": "height:400px;width:770px;", "popupiconstyle": "display:none;"}
}
]
},
"Page_Browser": {
"inherits": "Page_Tree",
"title": "",
"buttons": [ { "__REMOVEALL__": true } ],
"actions":"B",
"css": [
".xbody_<%=model.class%> .bcrumbs { width: auto; display:inline-block; }"
],
"js": "jsh.App[modelid].isInEditor = true;",
"popup": [1000, 600],
"fields":[
{"name":"form_instructions","__REMOVE__":true},
{"name":"page_folder",
"lov": { "sql": "select distinct null as code_id, null as code_parent_id, (case $ifnull(page_folder,'') when '' then '/' else page_folder end) as code_val, null as code_txt, 'folder' as code_icon from {schema}.v_my_page where page_template_id <> '<Standalone>' order by (case $ifnull(page_folder,'') when '' then '/' else page_folder end)" },
"controlparams":{ "item_context_menu":[] }
},
{"name":"Page_Tree_Listing","target":"Page_Browser_Listing"}
]
},
"Page_Browser_Tab": {
"inherits": "Page_Browser",
"fields": [
{"control":"html","value":"<h1>Pages</h1>","__AFTER__":"__START__"}
]
},
"Page_Revision_Update": {
"layout": "exec",
"title": "Update Page Revision",
"actions": "U",
"roles": {"AUTHOR": "U","PUBLISHER": "U"},
"sqlexec": [
"update {schema}.branch_page set page_id=@page_id,branch_page_action=(case branch_page_action when 'ADD' then 'ADD' else 'UPDATE' end) where page_key=@page_key and branch_id={schema}.my_current_branch_id();"
],
"fields": [
{"name":"page_key", "actions":"U", "type":"bigint", "caption":"Page Key", "validate": ["Required"]},
{"name":"page_id", "actions":"U", "type":"bigint", "caption":"Page ID", "validate": ["Required"]}
]
},
"Page_Tree_File_Duplicate": {
"layout": "exec",
"title": "Duplicate File",
"actions": "U",
"roles": {"AUTHOR": "U","PUBLISHER": "U"},
"sqlexec": [
"insert into {schema}.v_my_page(page_path, page_file_id, page_title, page_template_id, page_template_path, page_seo_title, page_seo_canonical_url, page_seo_metadesc, page_seo_keywords, page_lang) select @page_path, page_file_id, page_title, page_template_id, page_template_path, page_seo_title, page_seo_canonical_url, page_seo_metadesc, page_seo_keywords, page_lang from {schema}.v_my_page where page_key=@page_key;"
],
"fields": [
{"name":"page_key", "actions":"U", "type":"bigint", "caption":"Page Key", "validate": ["Required"]},
{"name":"page_path", "actions":"U", "type":"varchar", "length": 2048, "caption":"Page Folder", "validate": ["Required"]}
]
},
"Page_Tree_Folder_Add": {
"layout": "exec",
"title": "Add Page Folder",
"actions": "U",
"roles": {"AUTHOR": "U","PUBLISHER": "U"},
"sqlexec": [
"insert into {schema}.v_my_page(page_path,page_is_folder) values(@page_path,1);"
],
"fields": [
{"name":"page_path", "actions":"U", "type":"varchar", "length": 2048, "caption":"Page Folder", "validate": ["Required"]}
]
},
"Page_Tree_Folder_Move": {
"layout": "exec",
"title": "Move Page Folder",
"actions": "U",
"roles": {"AUTHOR": "U","PUBLISHER": "U"},
"sqlexec": [
[
"update {schema}.v_my_page set page_path = concat(@new_page_folder,substr(page_path,length(@old_page_folder)+1)) where page_folder like concat(@old_page_folder,'%');"
]
],
"fields": [
{"name":"old_page_folder", "actions":"U", "type":"varchar", "length": 2048, "caption":"Page Folder", "validate": ["Required"]},
{"name":"new_page_folder", "actions":"U", "type":"varchar", "length": 2048, "caption":"Page Folder", "validate": ["Required"]}
]
},
"Page_Tree_Folder_Delete": {
"layout": "exec",
"title": "Delete Page Folder",
"actions": "U",
"roles": {"AUTHOR": "U","PUBLISHER": "U"},
"sqlexec": [
[
"delete from {schema}.v_my_page where page_folder like concat(@page_folder,'%');"
]
],
"fields": [
{"name":"page_folder", "actions":"U", "type":"varchar", "length": 2048, "caption":"Page Folder", "validate": ["Required"]}
]
}
}