liquid_feedback_frontend
view app/main/_layout/default.html @ 1225:ebb3c5fa158d
Removed exhaustive GROUP BY list in Issue:get_search_selector(...) due to PRIMARY KEY (PostgreSQL 9.1 feature)
| author | jbe | 
|---|---|
| date | Tue Dec 01 16:43:54 2015 +0100 (2015-12-01) | 
| parents | effce9b361b2 | 
| children | 32cc544d5a5b | 
 line source
     1 <html>
     2 <head>
     3   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
     4   <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
     5   <title><!-- WEBMCP SLOTNODIV html_title --></title>
     6   <link rel="stylesheet" type="text/css" media="screen" href="__BASEURL__/static/gregor.js/gregor.css" />
     7   <link rel="stylesheet" type="text/css" href="<!-- WEBMCP SLOTNODIV stylesheet_url -->" />
     8   <!-- WEBMCP SLOTNODIV html_head -->
     9   <script src="__BASEURL__/static/js/jquery-1.11.1.min.js"></script>
    10   <script type="text/javascript">jsFail = true;</script>
    11   <![if !IE]>
    12     <script type="text/javascript">jsFail = false;</script>
    13   <![endif]>
    14   <script type="text/javascript" src="__BASEURL__/static/js/jsprotect.js"></script>
    15   <script type="text/javascript" src="__BASEURL__/static/js/partialload.js"></script>
    16   <script type="text/javascript">var ui_tabs_active = {};</script>
    17 </head>
    18 <body style="">
    19 <div class="head_outer">
    20   <div class="head">
    21     <div class="nav">
    22       <!--WEBMCP SLOTNODIV navigation -->
    23       <!--WEBMCP SLOTNODIV navigation_right -->
    24       <!--WEBMCP SLOTNODIV notification -->
    25     </div>
    27     <a class="logo" href="__BASEURL__/">
    28       <span class="liquid">Liquid</span><span class="feedback">Feedback</span>
    29       <span class="instanceName"><!-- WEBMCP SLOTNODIV instance_name --></span>
    30     </a>
    33   </div>
    34 </div>
    36 <div class="page">
    37   <div class="layout_notice" id="layout_notice" onclick="document.getElementById('layout_notice').style.display='none';">
    38     <!-- WEBMCP SLOT notice -->
    39   </div>
    41   <div class="layout_warning" id="layout_warning" onclick="document.getElementById('layout_warning').style.display='none';">
    42     <!-- WEBMCP SLOT warning -->
    43   </div>
    45   <div class="layout_error" id="layout_error" onclick="document.getElementById('layout_error').style.display='none';">
    46     <!-- WEBMCP SLOT error -->
    47   </div>
    49   <div class="layout_motd" id="layout_motd" onclick="document.getElementById('layout_motd').style.display='none';">
    50     <!-- WEBMCP SLOT motd -->
    51   </div>
    53   <div class="title_outer">
    54     <!-- WEBMCP SLOT title -->
    55   </div>
    57   <!-- WEBMCP SLOT tabs -->
    59   <!-- WEBMCP SLOTNODIV actions -->
    61   <div id="swiper_tabs" class="swiper_tabs" style="display: none;">
    62 <!--    <div><a id="tab-0" href="#" onclick="slider.to(0); return false;"><img src="__BASEURL__/static/icons/16/chart_organisation.png" /></a></div>-->
    63     <div><a id="tab-0" href="#" onclick="slider.to(0); return false;"><img src="__BASEURL__/static/icons/16/text_list_bullets.png" width="32" height="32" /></a></div>
    64     <div><a id="tab-1" href="#" onclick="slider.to(1); return false;"><img src="__BASEURL__/static/icons/48/info.png" width="32" height="32" /></a></div>
    65     <div><a id="tab-2" href="#" onclick="slider.to(2); return false;"><img src="__BASEURL__/static/icons/16/group.png" width="32" height="32" /></a></div>
    66   </div>
    68   <div id="swiper_info"><!-- WEBMCP SLOTNODIV swiper_info --></div>
    69   <div id="swiper" class="swiper" style="position: absolute; width: 100%;">
    70     <div id="swiper_wrap" class="swiper_wrap">
    71     </div>
    72   </div>
    74   <div class="content">
    75     <div class="sidebar">
    76       <!-- WEBMCP SLOTNODIV sidebar -->
    77     </div>
    79     <div class="main_outer">
    80       <!-- WEBMCP SLOTNODIV slideshow -->
    81       <div class="main">
    82         <!-- WEBMCP SLOTNODIV default -->
    83         <!-- WEBMCP SLOTNODIV extra -->
    84       </div>
    85     </div>
    86   </div>
    87   <br style="clear: both;" />
    88   <div class="footer">
    89     <!-- WEBMCP SLOTNODIV footer -->
    90   </div>
    91 </div>
    93   <div id="trace">
    94     <!-- WEBMCP SLOTNODIV trace_button -->
    95     <div id="trace_content" style="display: none;">
    96       <tt id="system_error"><!-- WEBMCP SLOT system_error --></tt>
    97       <h1>System trace (for computer programmers purposes)</h1>
    98       <br />
    99       <!-- WEBMCP SLOT trace -->
   100       <div class="trace_close" onclick="document.getElementById('trace_show').style.display='block';document.getElementById('trace_content').style.display='none';">
   101         close
   102       </div>
   103     </div>
   104   </div>
   105   <script>
   106     $(".trace_view > .trace_list").hide();
   107     $(".trace_head").click(function() {
   108       var el = this.nextSibling
   109       if (el) $(el).toggle();
   110     });
   111   </script>
   113   <!-- WEBMCP SLOTNODIV script -->
   115   <script>
   117     var slider;
   119     function initSlider () {
   121       var els = [
   122         $( '.main, .extra' ),
   123         $( '.tab-notification, .tab-whatcanido' ),
   124         $( '.tab-members' )
   125       ];
   127       var sidebarFound = false;
   128       for ( i = 1; i < els.length; i++) {
   129         if (els[i].length > 0) sidebarFound = true;
   130       }
   132       if (sidebarFound) $("#swiper_tabs").show();
   134       var elsCount = 3;
   136       var slidePos;
   138       function slideTo ( pos ) {
   139         if ( typeof ( slidePos ) != "undefined" ) {
   140           els[ slidePos ].hide();
   141           $ ( "#tab-" + slidePos ).removeClass ( "active" );
   142         }
   143         slidePos = pos;
   144         els[ slidePos ].show();
   145         $ ( "#tab-" + slidePos ).addClass ( "active" );
   146         if (pos == 1) {
   147           $("#swiper_info").hide();
   148         }
   149       }
   151       function slideNext () {
   152         var pos = slidePos + 1;
   153         if ( pos > elsCount - 1 ) {
   154           pos = elsCount - 1;
   155         } else {
   156           $( "#swiper").css("left", "400px");
   157           $( "#swiper").animate({ "left": "0px" }, 200);
   158         }
   159         slideTo ( pos );
   160       }
   162       function slidePrev () {
   163         var pos = slidePos - 1;
   164         if ( pos < 0 ) {
   165           pos = 0;
   166         } else {
   167           $( "#swiper").css("left", "-400px");
   168           $( "#swiper").animate({ "left": "0px" }, 200);
   169         }
   170         slideTo ( pos );
   171       }
   173       function exit() {
   174         for ( i = 0; i < els.length; i++) {
   175           els[i].show();
   176         }
   177         $( ".main_outer" ).append ( $( ".main" ).detach() );
   178         $( ".extra_outer" ).append ( $( ".extra" ).detach() );
   179         $( ".sidebar" ).append ( $(els[1]).detach() );
   180         $( ".sidebar" ).append ( $(els[2]).detach() );
   181         $( ".page" ).append ( $('.footer') );
   182         $( "body" ).append ( $('#trace') );
   184       }
   186       var touchStartX;
   187       var touchStartY;
   188       var isScrolling;
   190       function touchDown ( e ) {
   191         touchStartX = e.originalEvent.touches[0].pageX;
   192         touchStartY = e.originalEvent.touches[0].pageY;
   193         isScrolling = undefined;
   194       }
   196       function touchMove ( e ) {
   197         var diffX = touchStartX - e.originalEvent.changedTouches[0].pageX;
   198         var diffY = touchStartY - e.originalEvent.changedTouches[0].pageY;
   199         if ( typeof( isScrolling ) == 'undefined' ) {
   200           isScrolling = Math.abs ( diffY ) > Math.abs ( diffX );
   201         }
   202         if ( ! isScrolling ) {
   203           $( "#swiper").css("left", -diffX + "px");
   204           e.preventDefault();
   205         }
   206       }
   208       function touchUp ( e ) {
   209         var diffX = touchStartX - e.originalEvent.changedTouches[0].pageX;
   210         var diffY = touchStartY - e.originalEvent.changedTouches[0].pageY;
   212         if ( isScrolling ) {
   213           // vertical scrolling
   214           return;
   215         }
   217         if ( Math.abs ( diffX ) < 100 ) {
   218           // go back not enough
   219           $( "#swiper").animate({
   220             "left": "0px",
   221           }, 200);
   222           return;
   223         }
   224         var direction = diffX < 0 ? "right" : "left";
   226         if ( direction == "left" ) {
   227           slideNext();
   228         } else {
   229           slidePrev();
   230         }
   231       }
   233       for ( i = 0; i < els.length; i++) {
   234         var el = els[i].detach();
   235         el.hide();
   236         $('#swiper_wrap').append ( el ) ;
   237       }
   239       $('#swiper_wrap').append ( $('.footer') );
   240       $('#swiper_wrap').append ( $('#trace') );
   241       slideTo ( 0 );
   243       if ( 'ontouchstart' in document.documentElement ) {
   244         $( "body" ).on( "touchstart", touchDown );
   245         $( "body" ).on( "touchmove", touchMove );
   246         $( "body" ).on( "touchend",   touchUp );
   247       }
   249       return {
   250         to: slideTo,
   251         exit: exit
   252       }
   254     }
   256     function resizeHandler() {
   257       if ( $(window).width() < 768 ) {
   258         if ( typeof ( slider ) == "undefined" ) {
   259           slider = initSlider();
   260         }
   261       } else {
   262         if ( typeof ( slider ) != "undefined" ) {
   263           slider.exit();
   264           slider = undefined;
   265         }
   266       }
   268     }
   270     $( window ).resize( resizeHandler );
   271     resizeHandler();
   273   </script>
   275 </body>
   276 </html>
