菜单添加可选择路径

pull/137/head
ruibaby 2019-03-08 15:46:40 +08:00
parent cdc9db0585
commit a602e43c1b
2 changed files with 83 additions and 3 deletions

View File

@ -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";
}

View File

@ -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");
}
}
/**
* 保存
*/