{
  "Media_Tree": {
    "layout":"form",
    "table":"",
    "actions":"BIUD",
    "roles": {"AUTHOR": "BIUD","PUBLISHER": "BIUD","VIEWER":"B"},
    "title":"Media",
    "caption":["Media","Media"],
    "unbound":true,
    "menu":"jsHarmonyCMS/Media_Listing",
    "breadcrumbs":"#CMS_BRANCH_BREADCRUMBS",
    "buttons":[
      { "name": "addFile", "link":"js:_this.addFile();","icon":"add","text":"Add File", "roles": {"AUTHOR": "I","PUBLISHER": "I"} },
      { "name": "search", "link":"update:Media_Listing","icon":"search","text":"Search","bindings":{} },
      { "name": "toggleSidebar", "link":"js:_this.toggleSidebar();","icon":"sidebar","text":"Toggle Sidebar" },
      { "name": "sortFileName", "link":"js:_this.setSort('filename');","icon":"bullet","text":"File Name","group":"Sort By" },
      { "name": "sortDate", "link":"js:_this.setSort('date');","icon":"bullet","text":"Date","group":"Sort By" },
      { "name": "sortDescription", "link":"js:_this.setSort('description');","icon":"bullet","text":"Description","group":"Sort By" },
      { "name": "sortSize", "link":"js:_this.setSort('size');","icon":"bullet","text":"Size","group":"Sort By" },
      { "name": "sortType", "link":"js:_this.setSort('type');","icon":"bullet","text":"Type","group":"Sort By" },
      { "name": "viewTiles", "link":"js:_this.setView('tiles');","icon":"tiles","text":"Tiles","group":"View" },
      { "name": "viewDetails", "link":"js:_this.setView('details');","icon":"list","text":"Details","group":"View" }
    ],
    "hide_system_buttons" : ["print","export","help","delete"], 
    "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;'>&#x1f6c8;</span> Right-click folders and files for options :: Drag to reorder</div>",
      ]},
	    {"control": "html", "value": "<div class=\"clear\"></div><div class='<%=model.class%>_browser'>" },
      {"name": "media_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(media_folder,'') when '' then '/' else media_folder end) as code_val, null as code_txt, 'folder' as code_icon from {schema}.v_my_media order by (case $ifnull(media_folder,'') when '' then '/' else media_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 File", "command": "_this.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.media_folder_onmove(dragval, dropval, anchor, e);",
          "ondrop": "return _this.media_folder_ondrop(dropval, anchor, e);",
          "drag_anchor_settings": { "anchors": ["full"] }
        },
        "onchange": "_this.media_folder_onchange(obj,newval);"
      },
      {"control":"html","value":"<div class='<%=model.class%>_file_listing'></div>"},
      {"control":"html","value":"<div class='<%=model.class%>_file_info'></div>"},
      {"control":"html", "value": "</div>"},
      {"name": "media_type", "control":"hidden", "lov": { "code": "media_type", "schema": "{schema}", "blank": true } },
      {"name": "revision_media_key", "control":"hidden"},
      {"name": "revision_media_id", "control":"hidden"},
      {"name": "revision_media","unbound":true,"control":"hidden","bindings":{"revision_media_key":"revision_media_key"},
        "popuplov": {"target": "Media_Revision_Listing", "code_val": "media_id", "popupstyle": "height:400px;width:770px;", "popupiconstyle": "display:none;"}
      }
	  ]
  },
  "Media_Tree_File_Listing": {
    "layout": "exec",
    "title": "Media File Listing",
    "actions": "U",
    "roles": {"AUTHOR": "U","PUBLISHER": "U","VIEWER":"U"},
    "sqlexec": [
      "select media_key, media_file_id, media_id, media_desc, media_path, media_folder, media_filename, media_tags, media_type, media_ext, media_size, media_width, media_height, media_uptstmp, jsharmony.my_db_user_fmt(media_upuser) media_upuser_fmt, media_mtstmp, jsharmony.my_db_user_fmt(media_muser) media_muser_fmt from {schema}.v_my_media where media_folder=@media_folder and media_file_id is not null order by media_filename, media_key"
    ],
    "fields": [
      {"name":"media_folder", "actions":"U", "type":"varchar", "length": 2048, "caption":"Media Folder", "validate": ["Required"]}
    ]
  },
  "Media_Revision_Update": {
    "layout": "exec",
    "title": "Update Media Revision",
    "actions": "U",
    "roles": {"AUTHOR": "U","PUBLISHER": "U"},
    "sqlexec": [
      "update {schema}.branch_media set media_id=@media_id,branch_media_action=(case branch_media_action when 'ADD' then 'ADD' else 'UPDATE' end) where media_key=@media_key and branch_id={schema}.my_current_branch_id();"
    ],
    "fields": [
      {"name":"media_key", "actions":"U", "type":"bigint", "caption":"Media Key", "validate": ["Required"]},
      {"name":"media_id", "actions":"U", "type":"bigint", "caption":"Media ID", "validate": ["Required"]}
    ]
  },
  "Media_Tree_Folder_Add": {
    "layout": "exec",
    "title": "Add Media Folder",
    "actions": "U",
    "roles": {"AUTHOR": "U","PUBLISHER": "U"},
    "sqlexec": [
      "insert into {schema}.v_my_media(media_path,media_is_folder) values(@media_path,1);"
    ],
    "fields": [
      {"name":"media_path", "actions":"U", "type":"varchar", "length": 2048, "caption":"Media Folder", "validate": ["Required"]}
    ]
  },
  "Media_Tree_Folder_Move": {
    "layout": "exec",
    "title": "Move Media Folder",
    "actions": "U",
    "roles": {"AUTHOR": "U","PUBLISHER": "U"},
    "sqlexec": [
      [
        "update {schema}.v_my_media set media_path = concat(@new_media_folder,substr(media_path,length(@old_media_folder)+1)) where media_folder like concat(@old_media_folder,'%');"
      ]
    ],
    "fields": [
      {"name":"old_media_folder", "actions":"U", "type":"varchar", "length": 2048, "caption":"Media Folder", "validate": ["Required"]},
      {"name":"new_media_folder", "actions":"U", "type":"varchar", "length": 2048, "caption":"Media Folder", "validate": ["Required"]}
    ]
  },
  "Media_Tree_Folder_Delete": {
    "layout": "exec",
    "title": "Delete Media Folder",
    "actions": "U",
    "roles": {"AUTHOR": "U","PUBLISHER": "U"},
    "sqlexec": [
      [
        "delete from {schema}.v_my_media where media_folder like concat(@media_folder,'%');"
      ]
    ],
    "fields": [
      {"name":"media_folder", "actions":"U", "type":"varchar", "length": 2048, "caption":"Media Folder", "validate": ["Required"]}
    ]
  },
  "Media_Browser": {
    "inherits": "Media_Tree",
    "title": "",
    "css": [
      ".xbody_<%=model.class%> .bcrumbs { width: auto; display:inline-block; }",
      ".<%=model.class%>_file_info { display:none; }"
    ],
    "js": "jsh.App[modelid].isInEditor = true;",
    "popup": [1000, 600],
    "buttons":[
      { "name": "search", "__REMOVE__": true }
    ],
    "fields":[
      {"name":"form_instructions","__REMOVE__":true},
    ]
  },
  "Media_Browser_Tab": {
    "inherits": "Media_Browser",
    "fields": [
      {"control":"html","value":"<h1>Media</h1>","__AFTER__":"__START__"}
    ]
  }
}