mirror of https://github.com/halo-dev/halo
✨ 菜单添加可选择路径
parent
cdc9db0585
commit
a602e43c1b
|
@ -1,8 +1,11 @@
|
|||
package cc.ryanc.halo.web.controller.admin;
|
||||
|
||||
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.service.MenuService;
|
||||
import cc.ryanc.halo.service.PostService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
@ -12,6 +15,7 @@ import org.springframework.validation.ObjectError;
|
|||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
|
@ -29,13 +33,19 @@ public class MenuController {
|
|||
@Autowired
|
||||
private MenuService menuService;
|
||||
|
||||
@Autowired
|
||||
private PostService postService;
|
||||
|
||||
/**
|
||||
* 渲染菜单设置页面
|
||||
*
|
||||
* @param model model
|
||||
* @return 模板路径/admin/admin_menu
|
||||
*/
|
||||
@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";
|
||||
}
|
||||
|
||||
|
|
|
@ -67,8 +67,60 @@
|
|||
<small><@spring.message code='admin.menus.form.menu-name-tips' /></small>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="menuUrl"><@spring.message code='admin.menus.form.menu-url' /></label>
|
||||
<input type="text" class="form-control" id="menuUrl" name="menuUrl">
|
||||
<label for="menuUrlType">路径类型:</label>
|
||||
<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>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
@ -170,6 +222,24 @@
|
|||
</#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