| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261 |
- {% extends 'layout.html' %}
- {% block layout_head_nav %}
- <nav class="crowi-header navbar navbar-default" role="navigation">
- <!-- Brand and toggle get grouped for better mobile display -->
- <div class="navbar-header">
- <a class="navbar-brand" href="/">{% block title %}{{ config.app.title }}{% endblock %}</a>
- </div>
- <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbarCollapse">
- <span class="sr-only">Toggle navigation</span>
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- </button>
- <!-- Collect the nav links, forms, and other content for toggling -->
- <div class="collapse navbar-collapse" id="navbarCollapse">
- <ul class="nav navbar-nav">
- <li class=""><a href="/INDEX">INDEX</a></li>
- </ul>
- <form id="headerSearch" class="navbar-form navbar-left form-inline" role="search">
- <div class="form-group">
- <input id="searchQuery" name="q" type="text" class="form-control" placeholder="検索文字...">
- <button type="submit" class="btn btn-default">検索</button>
- <script>
- function Searcher () {
- };
- Searcher.prototype = {
- baseUrl: "{{ config.searcher.url }}",
- currentQuery: "",
- searchData: [],
- setData: function (data) {
- this.searchData = data;
- },
- search: function (query) {
- var self = this;
- self.currentQuery = query;
- if (query == "") {
- return false;
- }
- $("#searchQuery").addClass('searching');
- $.ajax({
- url: self.baseUrl + '/search?type=json&callback=?',
- data: {q: query},
- cache: false,
- dataType: 'jsonp'
- }).done(function (data) {
- self.setData(data);
- self.showSearchWidget();
- $("#searchQuery").removeClass('searching');
- });
- },
- showSearchWidget: function () {
- if (this.searchData.length > 0) {
- $('#headerSearch').popover('show');
- }
- $("#searchQuery").removeClass('searching');
- },
- createSearchContent: function () {
- var self = this;
- var contentHtml = $('<ul class=\"search-list\"></ul>');
- $.each(self.searchData.slice(0, 6), function (i, d) {
- var $li = $("<li class=\"list-link\"></li>");
- var $a = $("<a></a>");
- $a.attr('href', d.path).html(d.path + "<br>");
- var $span = $("<span class=\"search-description\"></span>");
- $span.text(d.body.substr(0, 50) + "...");
- $a.append($span);
- $li.append($a);
- contentHtml.append($li);
- });
- var $li = $("<li class=\"divider\"></li>");
- contentHtml.append($li);
- $li = $("<li class=\"next-link\"></li>");
- $li.html("<a href=\"" + self.baseUrl + "/search?q=" + encodeURIComponent(self.currentQuery) + "\">もっと見る</a>");
- contentHtml.append($li);
- return contentHtml;
- },
- jump: function (query) {
- self = this;
- top.location.href = self.baseUrl + '/search?q=' + query;
- }
- };
- var SearcherObject = new Searcher();
- $('#headerSearch').popover({
- placement: 'bottom',
- trigger: 'manual',
- html: 'true',
- content: function () {
- return SearcherObject.createSearchContent();
- }
- });
- $('#searchQuery').on('focus', function(e) {
- SearcherObject.showSearchWidget();
- });
- $('#searchQuery').on('blur', function(e) {
- $('#headerSearch').popover('hide');
- });
- $('#headerSearch').on('submit', function(e) {
- SearcherObject.jump($("#searchQuery").val());
- return false;
- });
- var previousText = "";
- setInterval(function (e) {
- var text = $("#searchQuery").val();
- if (text != previousText) {
- SearcherObject.search(text);
- }
- previousText = text;
- }, 1000);
- </script>
- </div>
- </form>
- <ul class="nav navbar-nav navbar-right">
- <li class="aside-shown">
- <a href="" class="layout-control to-show" id="toggle-sidebar-to-show"><i class="fa fa-caret-left"></i> サイドバー表示</a>
- <script>
- {# TODO 整理する #}
- $('#toggle-sidebar-to-show').click(function(e) {
- $('.main-container').removeClass('aside-hidden');
- $.cookie('aside-hidden', 0, { expires: 30, path: '/' });
- return false;
- });
- </script>
- </li>
- {% if user and user.admin %}
- <li id="">
- <a href="/admin" id="link-mypage">
- <i class="fa fa-cube"></i> 管理
- </a>
- </li>
- {% endif %}
- {% if user %}
- {#
- <li id="" class="notif">
- <a href="" id="notif-opener">
- <i class="fa fa-globe"></i> <span class="badge badge-danger">6</span>
- </a>
- <script>
- $('#notif-opener').popover({
- placement: 'bottom',
- trigger: 'manual',
- html: 'true',
- content: function () {
- return '<div></div>';
- }
- });
- $('#notif-opener').click(function(e) {
- $('#notif-opener').popover('show');
- return false;
- });
- </script>
- </li>
- #}
- <li id="login-user">
- <a href="/user/{{ user.username }}" id="link-mypage">
- <img src="{{ user|picture }}" class="picture picture-rounded" width="25" /> マイページ
- </a>
- </li>
- <li class="dropdown">
- <a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-bars"></i> <label class="sr-only">メニュー</label></a>
- <ul class="dropdown-menu">
- <li><a href="" data-target="#createMemo" data-toggle="modal"><i class="fa fa-pencil"></i> 今日のメモを作成</a></li>
- <li class="divider"></li>
- <li><a href="/me"><i class="fa fa-gears"></i> ユーザー設定</a></li>
- <li class="divider"></li>
- <li><a href="/logout"><i class="fa fa-sign-out"></i> ログアウト</a></li>
- {# <li><a href="#">今日の日報を作成</a></li> #}
- {# <li class="divider"></li> #}
- {# <li class="divider"></li> #}
- {# <li><a href="#">ログアウト</a></li> #}
- </ul>
- </li>
- {% else %}
- <li id="login-user"><a href="/login" id="login"><i class="fa fa-user"></i> Login</a></li>
- {% endif %}
- {% if config.security.confidential != '' %}
- <li class="confidential"><a href="#">{{ config.security.confidential }}</a></li>
- {% endif %}
- </ul>
- </div><!-- /.navbar-collapse -->
- </nav>
- {% include '../modal/widget_today_memo.html' %}
- {% endblock %} {# layout_head_nav #}
- {% block layout_sidebar %}
- <a href="" class="layout-control to-hide" id="toggle-sidebar-to-hide"><i class="fa fa-chevron-right"></i> <span class="hide-on-affix-top"></span></a>
- <script>
- $('#toggle-sidebar-to-hide').click(function(e) {
- $('.main-container').addClass('aside-hidden');
- $.cookie('aside-hidden', 1, { expires: 30, path: '/' });
- return false;
- });
- </script>
- <aside class="sidebar col-md-3 hidden-xs hidden-sm hidden-print">
- {% block side_header %}
- {% endblock %}
- <div class="side-content">
- {% block side_content %}
- {% endblock %}
- </div>
- {% block side_footer %}
- {% endblock %}
- <div id="footer-container" class="footer">
- <footer class="">
- <p>© 2012 {{ config.app.title }}. <a href="" data-target="#helpModal" data-toggle="modal"><i class="fa fa-question-circle"></i> ヘルプ</a></p>
- </footer>
- </div>
- </aside>
- {% include '../modal/widget_help.html' %}
- <script>
- $(function() {
- console.log($.cookie('aside-hidden'));
- if ($.cookie('aside-hidden') == 1) {
- console.log("add aside-hidden");
- $('.main-container').addClass('aside-hidden');
- }
- });
- </script>
- {% endblock %} {# layout_sidebar #}
- {% block layout_main %}
- <div id="main" class="main col-md-9 {% if page %}{{ css.grant(page) }}{% endif %}" ng-controller="WikiPageController">
- {% if page && page.grant != 1 %}
- <p class="page-grant">
- <i class="fa fa-lock"></i> {{ consts.pageGrants[page.grant] }} (このページの閲覧は制限されています)
- </p>
- {% endif %}
- <article>
- {% block content_head %}
- <header>
- <h2>-</h2>
- <p>-</p>
- </header>
- {% endblock %}
- {% block content_main %}
- //
- {% endblock content_main %}
- {% block content_footer %}
- <footer>
- <h3>-</h3>
- <p>-</p>
- </footer>
- {% endblock %}
- </article>
- </div>
- {% endblock %} {# layout_main #}
|