1、已解决左侧菜单当前操作菜单无选中样式;
2、已解决左侧菜单搜索功能无效; 3、已解决主界面左上角菜单导航未正确标记当前菜单位置; 4、已解决主界面的搜索条件区域,必须点开“筛选”,才能找到搜索按钮;
This commit is contained in:
@@ -11,7 +11,7 @@ officeManage=office management
|
||||
userManage=user management
|
||||
notify=my notify
|
||||
help=help
|
||||
home=home
|
||||
home=Home
|
||||
panel=my panel
|
||||
userInfo=personal information
|
||||
updatePwd=update password
|
||||
|
||||
@@ -11,7 +11,7 @@ officeManage=office management
|
||||
userManage=user management
|
||||
notify=my notify
|
||||
help=help
|
||||
home=home
|
||||
home=Home
|
||||
panel=my panel
|
||||
userInfo=personal information
|
||||
updatePwd=update password
|
||||
|
||||
@@ -11,7 +11,7 @@ officeManage=\u673a\u6784\u7ba1\u7406
|
||||
userManage=\u7528\u6237\u7ba1\u7406
|
||||
notify=\u6211\u7684\u540c\u5fd7
|
||||
help=\u5173\u4e8e\u5e2e\u52a9
|
||||
home=\u5b98\u65b9\u9996\u9875
|
||||
home=\u9996\u9875
|
||||
panel=\u6211\u7684\u9762\u677f
|
||||
userInfo=\u4e2a\u4eba\u4fe1\u606f
|
||||
updatePwd=\u4fee\u6539\u5bc6\u7801
|
||||
|
||||
@@ -47,6 +47,10 @@
|
||||
|
||||
<script src="${pageContext.request.contextPath}/static/global/plugins/jquery-jbox/2.3/jquery.jBox-2.3.src.js" type="text/javascript"></script>
|
||||
<script src="${pageContext.request.contextPath}/static/global/plugins/My97DatePicker/WdatePicker.js" type="text/javascript"></script>
|
||||
|
||||
<script src="${pageContext.request.contextPath}/static/global/plugins/bootstrap-typeahead/bootstrap3-typeahead.min.js" type="text/javascript"></script>
|
||||
<script src="${pageContext.request.contextPath}/static/global/plugins/unicodes.js" type="text/javascript"></script>
|
||||
|
||||
<!-- END CORE PLUGINS -->
|
||||
|
||||
|
||||
|
||||
@@ -7,16 +7,17 @@
|
||||
<c:forEach items="${fns:getLeftMenuTreeList()}" var="menu" varStatus="idxStatus">
|
||||
|
||||
<ul id="menu_${menu.id }" class="hide accordion page-sidebar-menu page-header-fixed page-sidebar-menu-light"
|
||||
data-keep-expanded="false" data-auto-scroll="true" data-slide-speed="200">
|
||||
data-keep-expanded="false" data-auto-scroll="true" data-slide-speed="200"
|
||||
menu-id="${menu.id }" menu-name="<spring:message code="${menu.code}"></spring:message>" >
|
||||
|
||||
<c:if test="${not empty menu.children }">
|
||||
<c:forEach items="${menu.children}" var="secondMenu" varStatus="secondStatus">
|
||||
|
||||
<li class="nav-item <c:if test="${secondStatus.index==0 }"> active open</c:if>">
|
||||
<li class="nav-item" id="menu_${secondMenu.id }" menu-id="${secondMenu.id }" menu-name="<spring:message code="${secondMenu.code}"></spring:message>" >
|
||||
|
||||
<a class="nav-link nav-toggle"
|
||||
<c:if test="${secondMenu.href != null && secondMenu.href != ''}" var="secondHref">
|
||||
href="${ctx}/${secondMenu.href }" target="mainFrame" >
|
||||
href="javascript:;" onclick="page_turn('${secondMenu.id }','1','','${ctx}/${secondMenu.href }',this)" target="mainFrame" >
|
||||
</c:if>
|
||||
<c:if test="${!secondHref }">
|
||||
href="javascript:;" class="nav-link nav-toggle">
|
||||
@@ -26,7 +27,7 @@
|
||||
<span class="title">
|
||||
<%-- ${secondMenu.name } --%> <spring:message code="${secondMenu.code}"></spring:message></span>
|
||||
<c:if test="${not empty secondMenu.children }" var="secondClid">
|
||||
<span class="arrow open"></span>
|
||||
<span class="arrow "></span>
|
||||
</c:if>
|
||||
</a>
|
||||
|
||||
@@ -37,11 +38,12 @@
|
||||
<c:forEach items="${secondMenu.children}" var="thirdMenu" varStatus="thirdStatus">
|
||||
|
||||
|
||||
<li class="nav-item <c:if test="${not empty thirdMenu.children && thirdStatus.index==0}">active open</c:if>">
|
||||
<li class="nav-item" id="menu_${thirdMenu.id }" menu-id="${thirdMenu.id }" menu-name="<spring:message code="${thirdMenu.code}"></spring:message>">
|
||||
|
||||
<a class="nav-link nav-toggle"
|
||||
<c:if test="${thirdMenu.href != null && thirdMenu.href != ''}" var="thirdHref">
|
||||
href="${ctx}/${thirdMenu.href }" target="mainFrame" >
|
||||
href="javascript:;" onclick="page_turn('${thirdMenu.id }','2','','${ctx}/${thirdMenu.href }',this)" target="mainFrame" >
|
||||
|
||||
</c:if>
|
||||
<c:if test="${!thirdHref }">
|
||||
href="javascript:;" class="nav-link nav-toggle">
|
||||
@@ -50,15 +52,17 @@
|
||||
<span class="title">
|
||||
<%-- ${thirdMenu.name } --%><spring:message code="${thirdMenu.code}"></spring:message></span>
|
||||
<c:if test="${not empty thirdMenu.children }" var="thiredClid">
|
||||
<span class="arrow open"></span>
|
||||
<span class="arrow "></span>
|
||||
</c:if>
|
||||
</a>
|
||||
|
||||
<c:if test="${thiredClid}">
|
||||
<ul class="sub-menu">
|
||||
<c:forEach items="${thirdMenu.children}" var="fourthMenu">
|
||||
<li class="nav-item">
|
||||
<a href="${ctx}/${fourthMenu.href }" target="mainFrame" class="nav-link ">
|
||||
<li class="nav-item" id="menu_${fourthMenu.id }" menu-id="${fourthMenu.id }" menu-name="<spring:message code="${fourthMenu.code}"></spring:message>" >
|
||||
<a href="javascript:;"
|
||||
onclick="page_turn('${fourthMenu.id }','3','','${ctx}/${fourthMenu.href }',this)" target="mainFrame"
|
||||
class="nav-link ">
|
||||
<%-- ${fourthMenu.name } --%> <spring:message code="${fourthMenu.code}"></spring:message>
|
||||
<!-- <span class="badge badge-danger">1</span> -->
|
||||
</a>
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
|
||||
<script src="${pageContext.request.contextPath}/static/pages/scripts/home.js" type="text/javascript"></script>
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
|
||||
@@ -28,9 +29,43 @@
|
||||
$obj.parent("li").addClass("hide");
|
||||
|
||||
|
||||
|
||||
|
||||
// === Search input typeahead === //
|
||||
$('#searchText').typeahead({
|
||||
source: function(query,process) {
|
||||
|
||||
var sourceArray = new Array();
|
||||
$(".accordion:visible a[target='mainFrame']").each(function(){
|
||||
|
||||
sourceArray.push($(this).parents("li").attr("menu-name")+"_"+$(this).parents("li").attr("menu-id"));
|
||||
})
|
||||
|
||||
return process(sourceArray)
|
||||
},
|
||||
setValue:function(item){
|
||||
},
|
||||
items: 8,
|
||||
matcher:function(term){
|
||||
var mod1 = pinyin.getPY_Header(term);
|
||||
var mod2 = pinyin.getPY_All(term);
|
||||
var mod3 = term;
|
||||
var s1 = mod1.toUpperCase().indexOf(this.query.toUpperCase())!=-1;
|
||||
var s2 = mod2.toUpperCase().indexOf(this.query.toUpperCase())!=-1;
|
||||
var s3 = mod3.toUpperCase().indexOf(this.query.toUpperCase())!=-1;
|
||||
|
||||
return (s1||s2||s3);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
$("#searchText").click(function(){
|
||||
$(this).val("");
|
||||
});
|
||||
|
||||
});
|
||||
//面包屑导航
|
||||
$(function(){
|
||||
/* $(function(){
|
||||
|
||||
$("div ul li a").click(function(){
|
||||
if(typeof $(this).attr("id") !='undefined'){
|
||||
@@ -43,7 +78,61 @@
|
||||
// var ur="${ctx}"+urlto.split("nis")[1];
|
||||
// $("#menutwo").attr("href",ur);
|
||||
})
|
||||
})
|
||||
}) */
|
||||
|
||||
//页面跳转函数 level:级别,1顶级,2有子级。name:菜单名称,有多级#间隔。url:访问路径。object:点击元素对象。
|
||||
function page_turn(id, level, name, url,obj){
|
||||
var $object = $("#menu_"+id);//点击当前级别
|
||||
$(".page-sidebar li").filter(".active,.open").removeClass("active open");//删除选中样式
|
||||
|
||||
var $header = $(".page-breadcrumb");//添加头部信息
|
||||
$(".page-breadcrumb").empty();
|
||||
|
||||
|
||||
var parent_li = $object.parents("li");
|
||||
var parent_parent_li = $object.parents("li").parents("li");
|
||||
|
||||
var breadcrumb = $(".accordion:visible").attr("menu-name");
|
||||
if(level==1){//一级菜单
|
||||
breadcrumb += "#"+$object.attr("menu-name");
|
||||
}else if(level==2){//二级菜单
|
||||
parent_li.addClass("active open");
|
||||
breadcrumb += "#"+parent_li.attr("menu-name")+"#"+$object.attr("menu-name");
|
||||
}else if(level==3){//三级
|
||||
parent_li.addClass("active open");
|
||||
parent_parent_li.addClass("active open");
|
||||
breadcrumb += "#"+parent_parent_li.attr("menu-name")+"#"+parent_li.attr("menu-name")+"#"+$object.attr("menu-name");
|
||||
}
|
||||
$object.addClass("active");
|
||||
|
||||
|
||||
|
||||
$header.append("<li><a href='index.html'><spring:message code='home'></spring:message></a> <i class='fa fa-circle'></i></li>");
|
||||
var breadcrumbs = breadcrumb.split("#");
|
||||
for(var i=0;i<breadcrumbs.length;i++) {
|
||||
var circle="";
|
||||
if(i!=breadcrumbs.length-1) {
|
||||
circle = " <i class='fa fa-circle'></i>";
|
||||
}
|
||||
$header.append("<li><a href='javascript:void(0);'>"+breadcrumbs[i]+"</a>"+circle+"</li>");
|
||||
}
|
||||
|
||||
//调入页面
|
||||
window.frames['mainFrame'].location=url;
|
||||
|
||||
App.scrollTo()
|
||||
|
||||
}
|
||||
|
||||
function searchMenu() {
|
||||
var search_txt = $("#searchText").val();
|
||||
if(search_txt.indexOf('_')!=-1){
|
||||
search_txt = search_txt.substring(search_txt.lastIndexOf('_'));
|
||||
$("#menu"+search_txt+" >a").trigger('click');
|
||||
}else {
|
||||
alert('未找到该菜单!');
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
</head>
|
||||
@@ -193,14 +282,13 @@
|
||||
</li>
|
||||
|
||||
<li class="sidebar-search-wrapper">
|
||||
<form class="sidebar-search " action="page_general_search_3.html"
|
||||
method="POST">
|
||||
<form class="sidebar-search">
|
||||
<a href="javascript:;" class="remove"> <i class="icon-close"></i>
|
||||
</a>
|
||||
<div class="input-group">
|
||||
<input class="form-control" placeholder="Search..." type="text">
|
||||
<input class="form-control" autocomplete="off" spellcheck="false" placeholder="Search..." type="text" id="searchText">
|
||||
<span class="input-group-btn"> <a href="javascript:;"
|
||||
class="btn submit"> <i class="icon-magnifier"></i>
|
||||
class="btn" onclick="searchMenu();"> <i class="icon-magnifier"></i>
|
||||
</a>
|
||||
</span>
|
||||
</div>
|
||||
@@ -225,10 +313,7 @@
|
||||
|
||||
<div class="page-bar">
|
||||
<ul class="page-breadcrumb">
|
||||
<li><a href="index.html">Home</a> <i class="fa fa-circle"></i>
|
||||
</li>
|
||||
<li><a href="#" id="menutwo" target="mainFrame">Tables</a> <i class="fa fa-circle"></i></li>
|
||||
<li><span id="menuthree">Datatables</span></li>
|
||||
<li><a href="index.html"><spring:message code="home"></spring:message></a> <i class="fa fa-circle"></i></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -0,0 +1,254 @@
|
||||
Bootstrap 3 Typeahead
|
||||
=====================
|
||||
|
||||
For simple autocomplete use cases there seems to be nothing wrong with the dropped typeahead plugin. Here you will find the typeahead autocomplete plugin for Twitter's Bootstrap 2 ready to use with Twitter's Bootstrap 3. The original code is written by [@mdo](http://twitter.com/mdo) and [@fat](http://twitter.com/fat).
|
||||
|
||||
Users who migrate their website or app from Twitter's Bootstrap 2 to Bootstrap 3 can also use this plugin to keep their current autocomplete functions. See for a complete list of migrations steps: [Migrate your templates from Twitter Bootstrap 2.x to Twitter Bootstrap 3](http://bassjobsen.weblogs.fm/migrate-your-templates-from-twitter-bootstrap-2-x-to-twitter-bootstrap-3/)
|
||||
|
||||
With Twitter Bootstrap 3 the typeahead plugin had been dropped. [@mdo](http://twitter.com/mdo) says: "in favor of folks using [Twitter's typeahead](https://github.com/twitter/typeahead.js). Twitter's typeahead has more features than the old bootstrap-typeahead.js and less bugs." Twitter's typeahead don't work direct with Bootstrap 3. The DOM structure of the dropdown menu used by `typeahead.js` differs from the DOM structure of the Bootstrap dropdown menu. You'll need to load some additional CSS in order to get the `typeahead.js` dropdown menu to fit the default Bootstrap theme. Try [extended Bootstrap LESS](https://github.com/bassjobsen/typeahead.js-bootstrap-css) or if your are looking for a more extended version try: [typeahead.js-bootstrap3.less](https://github.com/hyspace/typeahead.js-bootstrap3.less/blob/master/typeahead.less).
|
||||
|
||||
~~`Typeahead.js` doesn't seem ready for the new Twitter Bootstrap 3 at the moment. Code is not up to date and fixes are needed. See also:
|
||||
[Typeahead problems with Bootstrap 3.0 RC1](http://stackoverflow.com/questions/18167246/typeahead-problems-with-bootstrap-3-0-rc1).~~
|
||||
|
||||
Download
|
||||
========
|
||||
|
||||
- Download the latest [bootstrap3-typeahead.js](https://github.com/bassjobsen/Bootstrap-3-Typeahead/blob/master/bootstrap3-typeahead.js) or [bootstrap3-typeahead.min.js](https://github.com/bassjobsen/Bootstrap-3-Typeahead/blob/master/bootstrap3-typeahead.min.js).
|
||||
|
||||
- Include it in your source after jQuery and Bootstrap's JavaScript.
|
||||
|
||||
Full integration with Bootstrap 3 Typeahead
|
||||
-------------------------------------------
|
||||
Download the latest version of Boostrap from [Bootstrap](https://github.com/twbs/bootstrap/archive/master.zip). Copy `bootstrap3-typeahead.js` to the js/ folder. Edit `gruntfile.js` and add `bootstrap3-typeahead.js` to the plugins list.
|
||||
Build your own version with typeahead with `grunt dist`.
|
||||
|
||||
CSS
|
||||
===
|
||||
There is no additional CSS required to use the plugin. Bootstrap's CSS contains all required styles in the `.dropdown-menu` class. The original CSS adds a `z-index` of 1051 to the dropdownmenu via the typeahead class. You could add this if you need it.
|
||||
`.typeahead { z-index: 1051; }` (less or css).
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
<input type="text" data-provide="typeahead">
|
||||
|
||||
You'll want to set `autocomplete="off"` to prevent default browser menus from appearing over the Bootstrap typeahead dropdown.
|
||||
|
||||
Via data attributes
|
||||
-------------------
|
||||
Add data attributes to register an element with typeahead functionality as shown in the example above.
|
||||
|
||||
Via JavaScript
|
||||
--------------
|
||||
|
||||
Call the typeahead manually with:
|
||||
|
||||
$('.typeahead').typeahead()
|
||||
|
||||
Destroys previously initialized typeaheads. This entails reverting DOM modifications and removing event handlers:
|
||||
|
||||
$('.typeahead').typeahead('destroy')
|
||||
|
||||
Javascript Example
|
||||
=============
|
||||
|
||||
Loading a collection
|
||||
--------------------
|
||||
|
||||
$.get('example_collection.json', function(data){
|
||||
$("#name").typeahead({ source:data });
|
||||
},'json');
|
||||
//example_collection.json
|
||||
// ["item1","item2","item3"]
|
||||
|
||||
Using JSON objects instead of simple strings
|
||||
--------------------------------------------
|
||||
|
||||
You can add all the properties you wish on your objects, as long as you provide a "name" attribute OR you provide your own displayText method. The other values allow you to match the selected item with something in your model.
|
||||
|
||||
var $input = $('.typeahead');
|
||||
$input.typeahead({source:[{id: "someId1", name: "Display name 1"},
|
||||
{id: "someId2", name: "Display name 2"}],
|
||||
autoSelect: true});
|
||||
$input.change(function() {
|
||||
var current = $input.typeahead("getActive");
|
||||
if (current) {
|
||||
// Some item from your model is active!
|
||||
if (current.name == $input.val()) {
|
||||
// This means the exact match is found. Use toLowerCase() if you want case insensitive match.
|
||||
} else {
|
||||
// This means it is only a partial match, you can either add a new item
|
||||
// or take the active if you don't want new items
|
||||
}
|
||||
} else {
|
||||
// Nothing is active so it is a new value (or maybe empty value)
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Options
|
||||
=======
|
||||
|
||||
Options can be passed via data attributes or JavaScript. For data attributes, append the option name to `data-`, as in `data-source=""`.
|
||||
|
||||
<table class="table table-bordered table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 100px;">Name</th>
|
||||
<th style="width: 50px;">Type</th>
|
||||
<th style="width: 100px;">Default</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>source</td>
|
||||
<td>array, function</td>
|
||||
<td>[ ]</td>
|
||||
<td>The data source to query against. May be an array of strings, an array of JSON object with a name property or a function. The function accepts two arguments, the <code>query</code> value in the input field and the <code>process</code> callback. The function may be used synchronously by returning the data source directly or asynchronously via the <code>process</code> callback's single argument.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>items</td>
|
||||
<td>number</td>
|
||||
<td>8</td>
|
||||
<td>The max number of items to display in the dropdown. Can also be set to 'all'</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>minLength</td>
|
||||
<td>number</td>
|
||||
<td>1</td>
|
||||
<td>The minimum character length needed before triggering autocomplete suggestions. You can set it to 0 so suggestion are shown even when there is no text when lookup function is called.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>showHintOnFocus</td>
|
||||
<td>boolean</td>
|
||||
<td>false</td>
|
||||
<td>If hints should be shown when applicable as soon as the input gets focus.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>scrollHeight</td>
|
||||
<td>number, function</td>
|
||||
<td>0</td>
|
||||
<td>Number of pixels the scrollable parent container scrolled down (scrolled out the viewport).</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>matcher</td>
|
||||
<td>function</td>
|
||||
<td>case insensitive</td>
|
||||
<td>The method used to determine if a query matches an item. Accepts a single argument, the <code>item</code> against which to test the query. Access the current query with <code>this.query</code>. Return a boolean <code>true</code> if query is a match.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>sorter</td>
|
||||
<td>function</td>
|
||||
<td>exact match,<br> case sensitive,<br> case insensitive</td>
|
||||
<td>Method used to sort autocomplete results. Accepts a single argument <code>items</code> and has the scope of the typeahead instance. Reference the current query with <code>this.query</code>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>updater</td>
|
||||
<td>function</td>
|
||||
<td>returns selected item</td>
|
||||
<td>The method used to return selected item. Accepts a single argument, the <code>item</code> and has the scope of the typeahead instance.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>highlighter</td>
|
||||
<td>function</td>
|
||||
<td>highlights all default matches</td>
|
||||
<td>Method used to highlight autocomplete results. Accepts a single argument <code>item</code> and has the scope of the typeahead instance. Should return html.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>displayText</td>
|
||||
<td>function</td>
|
||||
<td>item.name || item</td>
|
||||
<td>Method used to get textual representation of an item of the sources. Accepts a single argument <code>item</code> and has the scope of the typeahead instance. Should return a String.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>autoSelect</td>
|
||||
<td>boolean</td>
|
||||
<td>true</td>
|
||||
<td>Allows you to dictate whether or not the first suggestion is selected automatically. Turning autoselect off also means that the input won't clear if nothing is selected and <kbd>enter</kbd> or <kbd>tab</kbd> is hit.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>afterSelect</td>
|
||||
<td>function</td>
|
||||
<td>$.noop()</td>
|
||||
<td>Call back function to execute after selected an item. It gets the current active item in parameter if any.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>delay</td>
|
||||
<td>integer</td>
|
||||
<td>0</td>
|
||||
<td>Adds a delay between lookups.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<tr>
|
||||
<td>addItem</td>
|
||||
<td>JSON object</td>
|
||||
<td>false</td>
|
||||
<td>Adds an item to the end of the list, for example "New Entry". This could be used, for example, to pop a dialog when an item is not found in the list of data. Example: <a href="http://cl.ly/image/2u170I1q1G3A/addItem.png">http://cl.ly/image/2u170I1q1G3A/addItem.png</a></td>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
Methods
|
||||
=======
|
||||
|
||||
.typeahead(options): Initializes an input with a typeahead.
|
||||
.lookup: To trigger the lookup function externally
|
||||
.getActive: To get the currently active item, you will get a String or a JSOn object depending on how you initialized typeahead. Works only for the first match.
|
||||
|
||||
|
||||
|
||||
Bower
|
||||
=====
|
||||
|
||||
To use with [Bower](http://bower.io/). Add to your bower.json file:
|
||||
|
||||
|
||||
{
|
||||
"name": "MyProject",
|
||||
"dependencies": {
|
||||
"bootstrap3-typeahead": "git@github.com:bassjobsen/Bootstrap-3-Typeahead.git#master"
|
||||
}
|
||||
}
|
||||
|
||||
Bloodhound
|
||||
==========
|
||||
[Bloodhound](https://github.com/twitter/typeahead.js/blob/master/doc/bloodhound.md) is the [typeahead.js](https://github.com/twitter/typeahead.js) suggestion engine, since version 0.10.0. Bloodhound is robust, flexible, and offers advanced functionalities such as prefetching, intelligent caching, fast lookups, and backfilling with remote data. To use Bloodhound with Bootstrap-3-Typeahead:
|
||||
|
||||
// instantiate the bloodhound suggestion engine
|
||||
var numbers = new Bloodhound({
|
||||
datumTokenizer: Bloodhound.tokenizers.whitespace,
|
||||
queryTokenizer: Bloodhound.tokenizers.whitespace,
|
||||
local: ["(A)labama","Alaska","Arizona","Arkansas","Arkansas2","Barkansas"]
|
||||
});
|
||||
|
||||
// initialize the bloodhound suggestion engine
|
||||
numbers.initialize();
|
||||
|
||||
$('.typeahead').typeahead(
|
||||
{
|
||||
items: 4,
|
||||
source:numbers.ttAdapter()
|
||||
});
|
||||
|
||||
|
||||
Bootstrap Tags Input
|
||||
====================
|
||||
[Bootstrap Tags Input](http://timschlechter.github.io/bootstrap-tagsinput/examples/) is a jQuery plugin providing a Twitter Bootstrap user interface for managing tags. Bootstrap Tags Input has a typeahead option which allows you to set the source:
|
||||
|
||||
$('input').tagsinput({
|
||||
typeahead: {
|
||||
source: ['Amsterdam', 'Washington', 'Sydney', 'Beijing', 'Cairo']
|
||||
}
|
||||
});
|
||||
|
||||
or
|
||||
|
||||
$('input').tagsinput({
|
||||
typeahead: {
|
||||
source: function(query) {
|
||||
return $.get('http://someservice.com');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
See also: https://github.com/bassjobsen/Bootstrap-3-Typeahead/issues/40
|
||||
1
src/main/webapp/static/global/plugins/bootstrap-typeahead/bootstrap3-typeahead.min.js
vendored
Normal file
1
src/main/webapp/static/global/plugins/bootstrap-typeahead/bootstrap3-typeahead.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
@@ -1,19 +0,0 @@
|
||||
Copyright (c) 2013-2014 Twitter, Inc
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
@@ -1,188 +0,0 @@
|
||||
[](http://travis-ci.org/twitter/typeahead.js)
|
||||
[](http://gruntjs.com/)
|
||||
|
||||
|
||||
[typeahead.js][gh-page]
|
||||
=======================
|
||||
|
||||
Inspired by [twitter.com]'s autocomplete search functionality, typeahead.js is
|
||||
a flexible JavaScript library that provides a strong foundation for building
|
||||
robust typeaheads.
|
||||
|
||||
The typeahead.js library consists of 2 components: the suggestion engine,
|
||||
[Bloodhound], and the UI view, [Typeahead].
|
||||
The suggestion engine is responsible for computing suggestions for a given
|
||||
query. The UI view is responsible for rendering suggestions and handling DOM
|
||||
interactions. Both components can be used separately, but when used together,
|
||||
they can provide a rich typeahead experience.
|
||||
|
||||
<!-- section links -->
|
||||
|
||||
[gh-page]: http://twitter.github.io/typeahead.js/
|
||||
[twitter.com]: https://twitter.com
|
||||
[Bloodhound]: https://github.com/twitter/typeahead.js/blob/master/doc/bloodhound.md
|
||||
[Typeahead]: https://github.com/twitter/typeahead.js/blob/master/doc/jquery_typeahead.md
|
||||
|
||||
Getting Started
|
||||
---------------
|
||||
|
||||
How you acquire typeahead.js is up to you.
|
||||
|
||||
Preferred method:
|
||||
* Install with [Bower]: `$ bower install typeahead.js`
|
||||
|
||||
Other methods:
|
||||
* [Download zipball of latest release][zipball].
|
||||
* Download the latest dist files individually:
|
||||
* *[bloodhound.js]* (standalone suggestion engine)
|
||||
* *[typeahead.jquery.js]* (standalone UI view)
|
||||
* *[typeahead.bundle.js]* (*bloodhound.js* + *typeahead.jquery.js*)
|
||||
* *[typeahead.bundle.min.js]*
|
||||
|
||||
**Note:** both *bloodhound.js* and *typeahead.jquery.js* have a dependency on
|
||||
[jQuery] 1.9+.
|
||||
|
||||
<!-- section links -->
|
||||
|
||||
[Bower]: http://bower.io/
|
||||
[zipball]: http://twitter.github.com/typeahead.js/releases/latest/typeahead.js.zip
|
||||
[bloodhound.js]: http://twitter.github.com/typeahead.js/releases/latest/bloodhound.js
|
||||
[typeahead.jquery.js]: http://twitter.github.com/typeahead.js/releases/latest/typeahead.jquery.js
|
||||
[typeahead.bundle.js]: http://twitter.github.com/typeahead.js/releases/latest/typeahead.bundle.js
|
||||
[typeahead.bundle.min.js]: http://twitter.github.com/typeahead.js/releases/latest/typeahead.bundle.min.js
|
||||
[jQuery]: http://jquery.com/
|
||||
|
||||
Documentation
|
||||
-------------
|
||||
|
||||
* [Typeahead Docs]
|
||||
* [Bloodhound Docs]
|
||||
|
||||
[Typeahead Docs]: https://github.com/twitter/typeahead.js/blob/master/doc/jquery_typeahead.md
|
||||
[Bloodhound Docs]: https://github.com/twitter/typeahead.js/blob/master/doc/bloodhound.md
|
||||
|
||||
Examples
|
||||
--------
|
||||
|
||||
For some working examples of typeahead.js, visit the [examples page].
|
||||
|
||||
<!-- section links -->
|
||||
|
||||
[examples page]: http://twitter.github.io/typeahead.js/examples
|
||||
|
||||
Browser Support
|
||||
---------------
|
||||
|
||||
* Chrome
|
||||
* Firefox 3.5+
|
||||
* Safari 4+
|
||||
* Internet Explorer 7+
|
||||
* Opera 11+
|
||||
|
||||
**NOTE:** typeahead.js is not tested on mobile browers.
|
||||
|
||||
Customer Support
|
||||
----------------
|
||||
|
||||
For general questions about typeahead.js, tweet at [@typeahead].
|
||||
|
||||
For technical questions, you should post a question on [Stack Overflow] and tag
|
||||
it with [typeahead.js][so tag].
|
||||
|
||||
<!-- section links -->
|
||||
|
||||
[Stack Overflow]: http://stackoverflow.com/
|
||||
[@typeahead]: https://twitter.com/typeahead
|
||||
[so tag]: http://stackoverflow.com/questions/tagged/typeahead.js
|
||||
|
||||
Issues
|
||||
------
|
||||
|
||||
Discovered a bug? Please create an issue here on GitHub!
|
||||
|
||||
https://github.com/twitter/typeahead.js/issues
|
||||
|
||||
Versioning
|
||||
----------
|
||||
|
||||
For transparency and insight into our release cycle, releases will be numbered
|
||||
with the follow format:
|
||||
|
||||
`<major>.<minor>.<patch>`
|
||||
|
||||
And constructed with the following guidelines:
|
||||
|
||||
* Breaking backwards compatibility bumps the major
|
||||
* New additions without breaking backwards compatibility bumps the minor
|
||||
* Bug fixes and misc changes bump the patch
|
||||
|
||||
For more information on semantic versioning, please visit http://semver.org/.
|
||||
|
||||
Testing
|
||||
-------
|
||||
|
||||
Tests are written using [Jasmine] and ran with [Karma]. To run
|
||||
the test suite with PhantomJS, run `$ npm test`.
|
||||
|
||||
<!-- section links -->
|
||||
|
||||
[Jasmine]: http://pivotal.github.com/jasmine/
|
||||
[Karma]: http://karma-runner.github.io/
|
||||
|
||||
Developers
|
||||
----------
|
||||
|
||||
If you plan on contributing to typeahead.js, be sure to read the
|
||||
[contributing guidelines]. A good starting place for new contributors are issues
|
||||
labeled with [entry-level]. Entry-level issues tend to require minor changes
|
||||
and provide developers a chance to get more familiar with typeahead.js before
|
||||
taking on more challenging work.
|
||||
|
||||
In order to build and test typeahead.js, you'll need to install its dev
|
||||
dependencies (`$ npm install`) and have [grunt-cli]
|
||||
installed (`$ npm install -g grunt-cli`). Below is an overview of the available
|
||||
Grunt tasks that'll be useful in development.
|
||||
|
||||
* `grunt build` – Builds *typeahead.js* from source.
|
||||
* `grunt lint` – Runs source and test files through JSHint.
|
||||
* `grunt watch` – Rebuilds *typeahead.js* whenever a source file is modified.
|
||||
* `grunt server` – Serves files from the root of typeahead.js on localhost:8888.
|
||||
Useful for using *test/playground.html* for debugging/testing.
|
||||
* `grunt dev` – Runs `grunt watch` and `grunt server` in parallel.
|
||||
|
||||
<!-- section links -->
|
||||
|
||||
[contributing guidelines]: https://github.com/twitter/typeahead.js/blob/master/CONTRIBUTING.md
|
||||
[entry-level]: https://github.com/twitter/typeahead.js/issues?&labels=entry-level&state=open
|
||||
[grunt-cli]: https://github.com/gruntjs/grunt-cli
|
||||
|
||||
Maintainers
|
||||
-----------
|
||||
|
||||
* **Jake Harding**
|
||||
* [@JakeHarding](https://twitter.com/JakeHarding)
|
||||
* [GitHub](https://github.com/jharding)
|
||||
|
||||
* **You?**
|
||||
|
||||
Authors
|
||||
-------
|
||||
|
||||
* **Jake Harding**
|
||||
* [@JakeHarding](https://twitter.com/JakeHarding)
|
||||
* [GitHub](https://github.com/jharding)
|
||||
|
||||
* **Veljko Skarich**
|
||||
* [@vskarich](https://twitter.com/vskarich)
|
||||
* [GitHub](https://github.com/vskarich)
|
||||
|
||||
* **Tim Trueman**
|
||||
* [@timtrueman](https://twitter.com/timtrueman)
|
||||
* [GitHub](https://github.com/timtrueman)
|
||||
|
||||
License
|
||||
-------
|
||||
|
||||
Copyright 2013 Twitter, Inc.
|
||||
|
||||
Licensed under the MIT License
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,68 +0,0 @@
|
||||
.twitter-typeahead {
|
||||
width: 100%;
|
||||
display: table !important;
|
||||
}
|
||||
|
||||
.twitter-typeahead .form-control {
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
.tt-hint,
|
||||
.tt-input {
|
||||
color: #999;
|
||||
font-size: 14px;
|
||||
height: 34px;
|
||||
padding: 6px 12px;
|
||||
font-size: 14px;
|
||||
line-height: 1.428571429;
|
||||
width: 100%;
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.tt-hint[disabled] {
|
||||
background-color: #fff !important;
|
||||
}
|
||||
|
||||
|
||||
.tt-menu {
|
||||
min-width: 160px;
|
||||
margin-top: 2px;
|
||||
padding: 5px 0;
|
||||
background-color: #fff;
|
||||
border: 1px solid #ebebeb;
|
||||
-webkit-background-clip: padding-box;
|
||||
-moz-background-clip: padding;
|
||||
background-clip: padding-box;
|
||||
width: 100%;
|
||||
overflow-y: auto;
|
||||
max-height: 250px;
|
||||
}
|
||||
|
||||
.tt-menu h3 {
|
||||
margin: 5px 0;
|
||||
padding: 6px 12px;
|
||||
font-size: 18px;
|
||||
font-weight: 700;
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
|
||||
.modal-open .tt-menu {
|
||||
z-index: 10055 !important;
|
||||
}
|
||||
|
||||
.tt-suggestion {
|
||||
padding: 6px 12px;
|
||||
font-size: 14px;
|
||||
line-height: 16px;
|
||||
}
|
||||
|
||||
.tt-suggestion:hover {
|
||||
cursor: pointer;
|
||||
background: #eee;
|
||||
}
|
||||
|
||||
.tt-suggestion p {
|
||||
margin: 0;
|
||||
}
|
||||
187
src/main/webapp/static/global/plugins/unicodes.js
Normal file
187
src/main/webapp/static/global/plugins/unicodes.js
Normal file
File diff suppressed because one or more lines are too long
@@ -325,13 +325,13 @@ function filterActionInit() {
|
||||
|
||||
function fiterPanleShow() {
|
||||
$("#filter-btn").find("i").removeClass("fa-angle-double-down").addClass("fa-angle-double-up");
|
||||
$(".btn-search").addClass("hide");
|
||||
//$(".btn-search").addClass("hide");
|
||||
$(".filter-action-select-panle").removeClass("hide");
|
||||
}
|
||||
|
||||
function fiterPanleHide() {
|
||||
$("#filter-btn").find("i").removeClass("fa-angle-double-up").addClass("fa-angle-double-down");
|
||||
$(".btn-search").removeClass("hide");
|
||||
//$(".btn-search").removeClass("hide");
|
||||
$(".filter-action-select-panle").addClass("hide");
|
||||
}
|
||||
|
||||
|
||||
@@ -945,7 +945,7 @@
|
||||
background:0 0;
|
||||
margin:0;
|
||||
padding:0;
|
||||
margin-top:1px!important
|
||||
margin-top:2px!important
|
||||
}
|
||||
.page-sidebar .page-sidebar-menu .sub-menu li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li>a {
|
||||
display:block;
|
||||
@@ -968,7 +968,8 @@
|
||||
.page-sidebar .page-sidebar-menu .sub-menu li>.sub-menu>li>.sub-menu,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li>.sub-menu>li>.sub-menu {
|
||||
margin:0
|
||||
}
|
||||
.page-sidebar .page-sidebar-menu .sub-menu li>.sub-menu>li>.sub-menu>li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li>.sub-menu>li>.sub-menu>li>a {
|
||||
.page-sidebar .page-sidebar-menu .sub-menu li>.sub-menu>li>.sub-menu>li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li>.su
|
||||
b-menu>li>.sub-menu>li>a {
|
||||
padding-left:80px
|
||||
}
|
||||
.page-sidebar .page-sidebar-menu .sub-menu.always-open,.page-sidebar .page-sidebar-menu li.active>.sub-menu,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu.always-open,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li.active>.sub-menu {
|
||||
@@ -989,7 +990,7 @@
|
||||
padding-bottom:8px
|
||||
}
|
||||
.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu li:first-child,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu li:first-child {
|
||||
margin-top:0!important
|
||||
|
||||
}
|
||||
.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li>a,.page-sidebar-reversed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li>a {
|
||||
padding-left:15px;
|
||||
|
||||
@@ -260,8 +260,9 @@
|
||||
/* All links */ }
|
||||
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li > a,
|
||||
.page-sidebar .page-sidebar-menu > li > a {
|
||||
border-top: 1px solid #484848;
|
||||
color: #d9d9d9; }
|
||||
color: #fff;
|
||||
border-top: 1px solid #484848 !important;
|
||||
}
|
||||
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li > a > i,
|
||||
.page-sidebar .page-sidebar-menu > li > a > i {
|
||||
color: #888888; }
|
||||
@@ -324,7 +325,7 @@
|
||||
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li > a > .arrow:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li > a > .arrow.open:before,
|
||||
.page-sidebar .page-sidebar-menu li > a > .arrow:before,
|
||||
.page-sidebar .page-sidebar-menu li > a > .arrow.open:before {
|
||||
color: #777777; }
|
||||
color: #fff; }
|
||||
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li:hover > a > .arrow:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li:hover > a > .arrow.open:before,
|
||||
.page-sidebar .page-sidebar-menu li:hover > a > .arrow:before,
|
||||
.page-sidebar .page-sidebar-menu li:hover > a > .arrow.open:before {
|
||||
@@ -350,7 +351,7 @@
|
||||
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li > a > .arrow:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li > a > .arrow.open:before,
|
||||
.page-sidebar .page-sidebar-menu .sub-menu > li > a > .arrow:before,
|
||||
.page-sidebar .page-sidebar-menu .sub-menu > li > a > .arrow.open:before {
|
||||
color: #777777; }
|
||||
color: #fff; }
|
||||
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li:hover > a, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li.open > a, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li.active > a,
|
||||
.page-sidebar .page-sidebar-menu .sub-menu > li:hover > a,
|
||||
.page-sidebar .page-sidebar-menu .sub-menu > li.open > a,
|
||||
@@ -376,18 +377,20 @@
|
||||
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li:hover > a, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.open > a,
|
||||
.page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li:hover > a,
|
||||
.page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.open > a {
|
||||
background: #424242; }
|
||||
background: #303030; }
|
||||
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.active > a, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a,
|
||||
.page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active > a,
|
||||
.page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a {
|
||||
background: #474747;
|
||||
.page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active > a {
|
||||
background: #303030;
|
||||
border-left: 4px solid #d64635;
|
||||
color: #f1f1f1; }
|
||||
color: #f1f1f1;
|
||||
}
|
||||
.page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a {
|
||||
background: #303030;}
|
||||
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.active > a:hover, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a:hover,
|
||||
.page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active > a:hover,
|
||||
.page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a:hover {
|
||||
border-left: 4px solid #d64635;
|
||||
background: #424242; }
|
||||
background: #303030; }
|
||||
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.active > a > i, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a > i,
|
||||
.page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active > a > i,
|
||||
.page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a > i {
|
||||
@@ -405,7 +408,8 @@
|
||||
.page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu > li:hover > a,
|
||||
.page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu > li.open > a,
|
||||
.page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu > li.active > a {
|
||||
background: #474747 !important; }
|
||||
color: #ffffff !important;
|
||||
background: #575757 !important; }
|
||||
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler,
|
||||
.page-sidebar .sidebar-toggler {
|
||||
background: #303030; }
|
||||
@@ -432,10 +436,10 @@
|
||||
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group,
|
||||
.page-sidebar .sidebar-search .input-group {
|
||||
border-bottom: 1px solid #484848; }
|
||||
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .form-control,
|
||||
.page-sidebar-closed.pagek-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .form-control,
|
||||
.page-sidebar .sidebar-search .input-group .form-control {
|
||||
background-color: #3d3d3d;
|
||||
color: #5c5c5c; }
|
||||
color: #fffdfd; }
|
||||
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .form-control::-moz-placeholder,
|
||||
.page-sidebar .sidebar-search .input-group .form-control::-moz-placeholder {
|
||||
color: #5c5c5c;
|
||||
|
||||
@@ -175,7 +175,7 @@ var Layout = function () {
|
||||
'scrollTo': (the.position()).top
|
||||
});
|
||||
} else {
|
||||
App.scrollTo(the, slideOffeset);
|
||||
//App.scrollTo();
|
||||
}
|
||||
}
|
||||
handleSidebarAndContentHeight();
|
||||
@@ -190,7 +190,7 @@ var Layout = function () {
|
||||
'scrollTo': (the.position()).top
|
||||
});
|
||||
} else {
|
||||
App.scrollTo(the, slideOffeset);
|
||||
//App.scrollTo(the, slideOffeset);
|
||||
}
|
||||
}
|
||||
handleSidebarAndContentHeight();
|
||||
|
||||
@@ -39,6 +39,31 @@ var home = function () {
|
||||
}
|
||||
|
||||
|
||||
//点击顶部菜单,默认展开左侧菜单,如果左侧菜单已有被选中的则忽视
|
||||
var left_menu_lis = $(menuId).find("li");
|
||||
if(!(left_menu_lis.hasClass("active") ||
|
||||
left_menu_lis.hasClass("open"))) {
|
||||
var $li1 = $(menuId).find("li:first");
|
||||
var $li2 = $(menuId).find("li:first").find("li:first");
|
||||
|
||||
var hasSubMenu1 = $li1.children().hasClass('sub-menu');
|
||||
if(hasSubMenu1) {
|
||||
$li1.addClass('open');
|
||||
$li1.find('> a > .arrow').addClass('open');
|
||||
$li1.find('> .sub-menu').slideDown();
|
||||
|
||||
var hasSubMenu2 = $li2.children().hasClass('sub-menu');
|
||||
if(hasSubMenu2) {
|
||||
$li2.addClass('open');
|
||||
$li2.find('> a > .arrow').addClass('open');
|
||||
$li2.find('> .sub-menu').slideDown();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
})
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user