mirror of https://github.com/halo-dev/halo
✨ 菜单添加可选择路径
parent
cdc9db0585
commit
a602e43c1b
|
@ -1,8 +1,11 @@
|
||||||
package cc.ryanc.halo.web.controller.admin;
|
package cc.ryanc.halo.web.controller.admin;
|
||||||
|
|
||||||
import cc.ryanc.halo.model.domain.Menu;
|
import cc.ryanc.halo.model.domain.Menu;
|
||||||
|
import cc.ryanc.halo.model.domain.Post;
|
||||||
|
import cc.ryanc.halo.model.enums.PostTypeEnum;
|
||||||
import cc.ryanc.halo.model.support.JsonResult;
|
import cc.ryanc.halo.model.support.JsonResult;
|
||||||
import cc.ryanc.halo.service.MenuService;
|
import cc.ryanc.halo.service.MenuService;
|
||||||
|
import cc.ryanc.halo.service.PostService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
|
@ -12,6 +15,7 @@ import org.springframework.validation.ObjectError;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <pre>
|
* <pre>
|
||||||
|
@ -29,13 +33,19 @@ public class MenuController {
|
||||||
@Autowired
|
@Autowired
|
||||||
private MenuService menuService;
|
private MenuService menuService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private PostService postService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 渲染菜单设置页面
|
* 渲染菜单设置页面
|
||||||
*
|
*
|
||||||
|
* @param model model
|
||||||
* @return 模板路径/admin/admin_menu
|
* @return 模板路径/admin/admin_menu
|
||||||
*/
|
*/
|
||||||
@GetMapping
|
@GetMapping
|
||||||
public String menus() {
|
public String menus(Model model) {
|
||||||
|
List<Post> posts = postService.findAll(PostTypeEnum.POST_TYPE_PAGE.getDesc());
|
||||||
|
model.addAttribute("posts",posts);
|
||||||
return "/admin/admin_menu";
|
return "/admin/admin_menu";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -67,8 +67,60 @@
|
||||||
<small><@spring.message code='admin.menus.form.menu-name-tips' /></small>
|
<small><@spring.message code='admin.menus.form.menu-name-tips' /></small>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="menuUrl"><@spring.message code='admin.menus.form.menu-url' /></label>
|
<label for="menuUrlType">路径类型:</label>
|
||||||
<input type="text" class="form-control" id="menuUrl" name="menuUrl">
|
<select class="form-control" id="menuUrlType" name="menuUrlType" onchange="urlTypeChoice()">
|
||||||
|
<option value="0">自定义</option>
|
||||||
|
<option value="1">预设</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="form-group" id="customUrlGroup">
|
||||||
|
<label for="menuCustomUrl"><@spring.message code='admin.menus.form.menu-url' /></label>
|
||||||
|
<input type="text" class="form-control" id="menuCustomUrl" name="menuUrl">
|
||||||
|
<small><@spring.message code='admin.menus.form.menu-url-tips' /></small>
|
||||||
|
</div>
|
||||||
|
<div class="form-group" id="internalUrlGroup" style="display: none">
|
||||||
|
<label for="menuInternalUrl"><@spring.message code='admin.menus.form.menu-url' /></label>
|
||||||
|
<select class="form-control" id="menuInternalUrl" name="menuUrl" disabled="disabled">
|
||||||
|
<optgroup label="内置页面">
|
||||||
|
<option value="/">首页 ( / )</option>
|
||||||
|
<option value="/archives">归档 ( /archives )</option>
|
||||||
|
<option value="/links">友情链接 ( /links )</option>
|
||||||
|
<option value="/gallery">图库 ( /gallery )</option>
|
||||||
|
<option value="/categories">分类目录 ( /categories )</option>
|
||||||
|
<option value="/tags">标签 ( /tags )</option>
|
||||||
|
</optgroup>
|
||||||
|
<#if posts?? && posts?size gt 0>
|
||||||
|
<optgroup label="自定义页面">
|
||||||
|
<#list posts as post>
|
||||||
|
<option value="/p/${post.postUrl!}">${post.postTitle!} ( /p/${post.postUrl!} )</option>
|
||||||
|
</#list>
|
||||||
|
</optgroup>
|
||||||
|
</#if>
|
||||||
|
<@commonTag method = "categories">
|
||||||
|
<#if categories?? && categories?size gt 0>
|
||||||
|
<optgroup label="分类目录">
|
||||||
|
<#list categories as cate>
|
||||||
|
<option value="/categories/${cate.cateUrl!}">${cate.cateName!} ( /categories/${cate.cateUrl!} )</option>
|
||||||
|
</#list>
|
||||||
|
</optgroup>
|
||||||
|
</#if>
|
||||||
|
</@commonTag>
|
||||||
|
<@commonTag method = "tags">
|
||||||
|
<#if tags?? && tags?size gt 0>
|
||||||
|
<optgroup label="标签">
|
||||||
|
<#list tags as tag>
|
||||||
|
<option value="/tags/${tag.tagName!}">${tag.tagName!} ( /tags/${tag.tagName!} )</option>
|
||||||
|
</#list>
|
||||||
|
</optgroup>
|
||||||
|
</#if>
|
||||||
|
</@commonTag>
|
||||||
|
<optgroup label="其他">
|
||||||
|
<option value="/sitemap.xml">站点地图 ( /sitemap.xml )</option>
|
||||||
|
<option value="/sitemap.html">站点地图 ( /sitemap.html )</option>
|
||||||
|
<option value="/atom.xml">Atom 订阅 ( /atom.xml )</option>
|
||||||
|
<option value="/rss.xml">Rss 订阅 ( /rss.xml )</option>
|
||||||
|
</optgroup>
|
||||||
|
</select>
|
||||||
<small><@spring.message code='admin.menus.form.menu-url-tips' /></small>
|
<small><@spring.message code='admin.menus.form.menu-url-tips' /></small>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
|
@ -170,6 +222,24 @@
|
||||||
</#if>
|
</#if>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function urlTypeChoice() {
|
||||||
|
var customUrl = $("#menuCustomUrl");
|
||||||
|
var internalUrl = $("#menuInternalUrl");
|
||||||
|
var customUrlGroup = $("#customUrlGroup");
|
||||||
|
var internalUrlGroup = $("#internalUrlGroup");
|
||||||
|
if($("#menuUrlType").val() === "0"){
|
||||||
|
customUrlGroup.show();
|
||||||
|
customUrl.removeAttr("disabled");
|
||||||
|
internalUrlGroup.hide();
|
||||||
|
internalUrl.attr("disabled","disabled");
|
||||||
|
}else{
|
||||||
|
internalUrlGroup.show();
|
||||||
|
internalUrl.removeAttr("disabled");
|
||||||
|
customUrlGroup.hide();
|
||||||
|
customUrl.attr("disabled","disabled");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 保存
|
* 保存
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue