<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance
  with the License.  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, either express or implied.  See the License for the
  specific language governing permissions and limitations
  under the License.
  -->

<menus xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://ofbiz.apache.org/Widget-Menu" xsi:schemaLocation="http://ofbiz.apache.org/Widget-Menu http://ofbiz.apache.org/dtds/widget-menu.xsd">
    <menu name="ViewEdit" default-title-style="tabButton" default-selected-style="tabButtonSelected" default-menu-item-name="all" orientation="horizontal" menu-width="100%" default-widget-style="tabButton" menu-container-style="blogmenuwrapper" title="" type="simple">
        <menu-item name="edit" title="${uiLabelMap.CommonEdit}">
            <condition>
                <or>
                    <if-has-permission permission="CONTENTMGR" action="UPDATE"/>
                    <if-entity-permission entity-id="${blog.contentId}" entity-name="Content" target-operation="CONTENT_UPDATE"/>
                </or>
            </condition>
            <link text="${uiLabelMap.CommonEdit}" target="EditBlogArticle" style="buttontext">
                <parameter param-name="contentId" from-field="blog.contentId"/>
                <parameter param-name="blogContentId" from-field="parameters.blogContentId"/>
            </link>
        </menu-item>
    </menu>
</menus>
