瀏覽代碼

added responsive design

Come 8 年之前
父節點
當前提交
5634ad7bdf

+ 152 - 30
tracim/tracim/public/assets/css/dashboard.css 查看文件

46
     color: #DDD;
46
     color: #DDD;
47
 }
47
 }
48
 
48
 
49
+.navbar-brand {
50
+  padding: 0 0 0 5px;
51
+}
52
+
49
 /*
53
 /*
50
  * Sidebar
54
  * Sidebar
51
  */
55
  */
54
 .sidebar {
58
 .sidebar {
55
   display: none;
59
   display: none;
56
 }
60
 }
57
-@media (min-width: 768px) {
58
-  .sidebar {
59
-    position: fixed;
60
-    top: 51px;
61
-    bottom: 0;
62
-    left: 0;
63
-    width: 260px;
64
-    z-index: 1000;
65
-    display: block;
66
-    padding: 20px;
67
-    overflow-x: hidden;
68
-    overflow-y: auto; /* Scrollable contents if viewport is shorter than content. */
69
-/*    background-color: #333;
70
-      color: #FFF;*/
71
-    background-color: #555;
72
-      color: #DDD;
73
-    border-right: 1px solid #CCC;
74
 
61
 
75
-  }
62
+.content__wrapper {
63
+  width: auto;
64
+  margin: 0;
76
 }
65
 }
66
+
77
 .fixed-width-sidebar {
67
 .fixed-width-sidebar {
78
-  width: auto;
68
+  width: auto !important;
79
   min-width: 260px;
69
   min-width: 260px;
80
   max-width: 50%;
70
   max-width: 50%;
81
 }
71
 }
82
 
72
 
83
-.content__wrapper {
84
-  width: auto;
85
-  margin: 0 260px; /* When changing this value, also change the corresponding in main.js */
86
-}
87
 .content__data {
73
 .content__data {
88
   padding: 0 15px;
74
   padding: 0 15px;
89
 }
75
 }
93
   right: 0;
79
   right: 0;
94
   overflow-x: visible;
80
   overflow-x: visible;
95
   overflow-y: auto;
81
   overflow-y: auto;
96
-    background-color: #F5F5F5;
97
-    border-left: 1px solid #CCC;
82
+  background-color: #F5F5F5;
83
+  border-left: 1px solid #CCC;
98
 }
84
 }
99
 .navbar-right {
85
 .navbar-right {
100
   margin-right: 0px;
86
   margin-right: 0px;
120
 .header__navbar__switch-mode {
106
 .header__navbar__switch-mode {
121
   float: right;
107
   float: right;
122
   display: inline-block;
108
   display: inline-block;
123
-  padding: 15px;
124
   cursor: pointer;
109
   cursor: pointer;
125
 }
110
 }
126
 .header__navbar__switch-mode > i {
111
 .header__navbar__switch-mode > i {
468
   font-size: 14px;
453
   font-size: 14px;
469
 }
454
 }
470
 
455
 
471
-.content__home {
472
-  padding: 0 15px;
473
-}
474
-
475
 .workspace__wrapper {
456
 .workspace__wrapper {
476
   padding: 0 15px;
457
   padding: 0 15px;
477
 }
458
 }
538
   border-bottom-width: 0px;
519
   border-bottom-width: 0px;
539
   border-top-left-radius: 5px;
520
   border-top-left-radius: 5px;
540
   border-top-right-radius: 5px;
521
   border-top-right-radius: 5px;
522
+  max-width: 36%;
541
   text-align: center;
523
   text-align: center;
542
   font-weight: bold;
524
   font-weight: bold;
543
   vertical-align: bottom;
525
   vertical-align: bottom;
607
   background-color: #bce8f1;
589
   background-color: #bce8f1;
608
   color: #31708f;
590
   color: #31708f;
609
 }
591
 }
592
+
593
+@media (max-width: 999px) {
594
+  body {
595
+    padding-top: 40px;
596
+  }
597
+  .navbar {
598
+    min-height: 40px;
599
+  }
600
+  .navbar, .navbar-brand > img {
601
+    height: 40px;
602
+  }
603
+  #search-form {
604
+    margin: 0;
605
+    padding: 8px 5px;
606
+  }
607
+  #search-form input {
608
+    padding: 3px 10px;
609
+    line-height: 15px;
610
+    font-size: 13px;
611
+    height: auto;
612
+  }
613
+  .navbar-nav > li > a, .header__navbar__switch-mode {
614
+    padding: 10px 5px;
615
+    font-size: 13px;
616
+    line-height: 20px;
617
+  }
618
+  #sidebar-right .btn {
619
+    font-size: 13px;
620
+    padding: 5px;
621
+  }
622
+  .content__home__tab__item, .content__home__tab__item.active {
623
+    padding-left: 15px;
624
+    padding-right: 15px;
625
+    max-width: 165px;
626
+  }
627
+  .content__home__tab__item-news {
628
+    right: -20px;
629
+  }
630
+}
631
+
632
+@media (max-width: 767px) {
633
+  .navbar-brand {
634
+    height: auto;
635
+  }
636
+  .navbar-toggle {
637
+    margin: 0;
638
+  }
639
+  .navbar-collapse {
640
+    background-color: #555;
641
+  }
642
+  .navbar-nav > li > a {
643
+    padding: 3px 10px;
644
+  }
645
+  #search-form {
646
+    padding: 8px 10px 0px 10px;
647
+  }
648
+  .navbar-nav .open .dropdown-menu > li > a {
649
+    color: #ddd;
650
+  }
651
+  .navbar-right {
652
+    margin-right: -15px;
653
+  }
654
+  .content__wrapper {
655
+    margin: 0;
656
+  }
657
+  .content__wrapper {
658
+    margin: 0;
659
+  }
660
+  .content__home__tab__item {
661
+    width: 32%;
662
+  }
663
+}
664
+
665
+@media (min-width: 768px) {
666
+  .sidebar {
667
+    display: block;
668
+    position: fixed;
669
+    top: 41px;
670
+    bottom: 0;
671
+    left: 0;
672
+    width: 130px;
673
+    padding: 10px;
674
+    z-index: 1000;
675
+    overflow-x: hidden;
676
+    overflow-y: auto; /* Scrollable contents if viewport is shorter than content. */
677
+    background-color: #555;
678
+    color: #DDD;
679
+    border-right: 1px solid #CCC;
680
+  }
681
+  .content__wrapper.edit-mode-margin {
682
+    margin: 0 130px;
683
+  }
684
+  .fixed-width-sidebar {
685
+    min-width: 130px;
686
+  }
687
+  .content__home {
688
+    padding: 0 5px;
689
+  }
690
+}
691
+@media (min-width: 1000px) {
692
+  .sidebar {
693
+    width: 170px;
694
+    top: 51px;
695
+  }
696
+  .content__wrapper.edit-mode-margin {
697
+    margin: 0 170px;
698
+  }
699
+  .fixed-width-sidebar {
700
+    min-width: 170px;
701
+  }
702
+  #sidebar-right .btn {
703
+    font-size: 16px;
704
+    padding: 10px;
705
+  }
706
+  .content__home {
707
+    padding: 0 5px;
708
+  }
709
+  .header__navbar__switch-mode {
710
+    padding: 15px;
711
+  }
712
+}
713
+@media (min-width: 1200px) {
714
+  .sidebar {
715
+    width: 260px;
716
+    padding: 20px;
717
+  }
718
+  #sidebar-right .btn {
719
+    font-size: 1.2em;
720
+    padding: 10px;
721
+  }
722
+  .content__wrapper.edit-mode-margin {
723
+    margin: 0 260px;
724
+  }
725
+  .fixed-width-sidebar {
726
+    min-width: 260px;
727
+  }
728
+  .content__home {
729
+    padding: 0 15px;
730
+  }
731
+}

+ 2 - 2
tracim/tracim/public/assets/js/main.js 查看文件

41
   $('.header__navbar').on('click', '.header__navbar__switch-mode.switch-read-mode', function () {
41
   $('.header__navbar').on('click', '.header__navbar__switch-mode.switch-read-mode', function () {
42
     $(this).removeClass('switch-read-mode').addClass('switch-work-mode').html('<i class="fa fa-edit fa-fw"></i> ' + __('btnWorkMode'))
42
     $(this).removeClass('switch-read-mode').addClass('switch-work-mode').html('<i class="fa fa-edit fa-fw"></i> ' + __('btnWorkMode'))
43
     $('#sidebar-left, #sidebar-right').hide()
43
     $('#sidebar-left, #sidebar-right').hide()
44
-    $('.content__wrapper').css({margin: '0'})
44
+    $('.content__wrapper').removeClass('edit-mode-margin')
45
   })
45
   })
46
   $('.header__navbar').on('click', '.header__navbar__switch-mode.switch-work-mode', function () {
46
   $('.header__navbar').on('click', '.header__navbar__switch-mode.switch-work-mode', function () {
47
     $(this).removeClass('switch-work-mode').addClass('switch-read-mode').html('<i class="fa fa-eye fa-fw"></i> ' + __('btnReadMode'))
47
     $(this).removeClass('switch-work-mode').addClass('switch-read-mode').html('<i class="fa fa-eye fa-fw"></i> ' + __('btnReadMode'))
48
     $('#sidebar-left, #sidebar-right').show()
48
     $('#sidebar-left, #sidebar-right').show()
49
-    $('.content__wrapper').css({margin: '0 260px'})
49
+    $('.content__wrapper').addClass('edit-mode-margin')
50
   })
50
   })
51
 
51
 
52
   // add select2 for admin/workspace/<id> for user selection
52
   // add select2 for admin/workspace/<id> for user selection

+ 1 - 1
tracim/tracim/templates/home.mak 查看文件

40
             % endif
40
             % endif
41
         </div>
41
         </div>
42
         <div class="content__home__tab__item unread">
42
         <div class="content__home__tab__item unread">
43
-            <i class="fa fa-fw fa-eye-slash"></i>${_('Not Read')}
44
             % if fake_api.last_unread.nb > 0:
43
             % if fake_api.last_unread.nb > 0:
45
               <div class="content__home__tab__item-news fa-stack">
44
               <div class="content__home__tab__item-news fa-stack">
46
                 <i class="fa fa-bookmark fa-stack-1x"></i>
45
                 <i class="fa fa-bookmark fa-stack-1x"></i>
53
                 </i>
52
                 </i>
54
               </div>
53
               </div>
55
             % endif
54
             % endif
55
+            <i class="fa fa-fw fa-eye-slash"></i>${_('Not Read')}
56
         </div>
56
         </div>
57
         <div class="content__home__tab__item workspace">
57
         <div class="content__home__tab__item workspace">
58
             <i class="fa fa-bank"></i>${_('My workspaces')}
58
             <i class="fa fa-bank"></i>${_('My workspaces')}

+ 2 - 2
tracim/tracim/templates/index.mak 查看文件

17
             </div>
17
             </div>
18
 
18
 
19
             <div class="row">
19
             <div class="row">
20
-                <div class="col-sm-offset-3 col-sm-2">
20
+                <div class="col-sm-offset-3 col-sm-2 hidden-xs">
21
                     <a class="thumbnail">
21
                     <a class="thumbnail">
22
                         <img src="${CFG.WEBSITE_HOME_IMAGE_URL}" alt="">
22
                         <img src="${CFG.WEBSITE_HOME_IMAGE_URL}" alt="">
23
                     </a>
23
                     </a>
24
                     <p>${CFG.WEBSITE_HOME_TAG_LINE|n}</p>
24
                     <p>${CFG.WEBSITE_HOME_TAG_LINE|n}</p>
25
-                    
25
+
26
 
26
 
27
                 </div>
27
                 </div>
28
                 <div class="col-sm-4">
28
                 <div class="col-sm-4">

+ 4 - 7
tracim/tracim/templates/master_anonymous.mak 查看文件

30
         <div class="container-fluid">
30
         <div class="container-fluid">
31
             ${self.main_menu()}
31
             ${self.main_menu()}
32
             ${self.content_wrapper()}
32
             ${self.content_wrapper()}
33
-            <div id="tracim-footer-separator"></div>
33
+            <div id="tracim-footer-separator hidden-xs"></div>
34
         </div>
34
         </div>
35
         ${self.footer()}
35
         ${self.footer()}
36
 
36
 
67
 <%def name="title()"></%def>
67
 <%def name="title()"></%def>
68
 
68
 
69
 <%def name="footer()">
69
 <%def name="footer()">
70
-    <div class="pod-footer footer hidden-tablet hidden-phone text-center">
70
+    <div class="pod-footer footer hidden-tablet hidden-phone text-center hidden-xs">
71
         <p>
71
         <p>
72
             <a href="http://trac.im">${_('Create your own collaborative workspace on trac.im')}</a> &mdash;
72
             <a href="http://trac.im">${_('Create your own collaborative workspace on trac.im')}</a> &mdash;
73
             copyright &copy; 2013 - ${h.current_year()} tracim project.
73
             copyright &copy; 2013 - ${h.current_year()} tracim project.
81
         <div class="container-fluid">
81
         <div class="container-fluid">
82
             <div class="navbar-header">
82
             <div class="navbar-header">
83
                 <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".navbar-collapse">
83
                 <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".navbar-collapse">
84
-                    <span class="sr-only">Toggle navigation</span>
85
-                    <span class="icon-bar"></span>
86
-                    <span class="icon-bar"></span>
87
-                    <span class="icon-bar"></span>
84
+                    <i class="fa fa-bars"></i>
88
                 </button>
85
                 </button>
89
                 <a class="navbar-brand" href="${tg.url('/')}">
86
                 <a class="navbar-brand" href="${tg.url('/')}">
90
-                  <img src="${tg.url('/assets/img/logo.png')}" class="pull-left" style="margin: -13px 0.5em 0 -13px;"/>
87
+                  <img src="${tg.url('/assets/img/logo.png')}" class="pull-left" />
91
                 </a>
88
                 </a>
92
             </div>
89
             </div>
93
         </div>
90
         </div>

+ 7 - 11
tracim/tracim/templates/master_authenticated.mak 查看文件

60
 <%def name="title()">  </%def>
60
 <%def name="title()">  </%def>
61
 
61
 
62
 <%def name="footer()">
62
 <%def name="footer()">
63
-    <div class="pod-footer footer hidden-tablet hidden-phone text-center">
63
+    <div class="pod-footer footer hidden-tablet hidden-phone text-center hidden-xs">
64
         <p>
64
         <p>
65
             <a href="http://trac.im">${_('Create your own collaborative workspace on trac.im')}</a> &mdash;
65
             <a href="http://trac.im">${_('Create your own collaborative workspace on trac.im')}</a> &mdash;
66
             copyright &copy; 2013 - ${h.current_year()} tracim project.
66
             copyright &copy; 2013 - ${h.current_year()} tracim project.
101
 
101
 
102
         <div class="">
102
         <div class="">
103
             <div class="navbar-header">
103
             <div class="navbar-header">
104
-                <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".navbar-collapse">
105
-                    <span class="sr-only">Toggle navigation</span>
106
-                    <span class="icon-bar"></span>
107
-                    <span class="icon-bar"></span>
108
-                    <span class="icon-bar"></span>
104
+                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
105
+                    <i class="fa fa-bars"></i>
109
                 </button>
106
                 </button>
110
                 <a class="navbar-brand" href="${tg.url('/')}">
107
                 <a class="navbar-brand" href="${tg.url('/')}">
111
-##                  <img src="${tg.url('/assets/img/tracim.png')}" class="pull-left" style="border: 1px solid #F5F5F5; height: 48px; margin: -13px 0.5em 0 0;"/>
112
-                  <img src="${tg.url('/assets/img/logo.png')}" class="pull-left" style="height: 48px; margin: -13px 0.5em 0 -13px;"/>
108
+                  <img src="${tg.url('/assets/img/logo.png')}" class="pull-left" />
113
                 </a>
109
                 </a>
114
             </div>
110
             </div>
115
 
111
 
132
 
128
 
133
                         <form id="search-form" class="navbar-form navbar-left" role="search" action="${tg.url('/search?')}">
129
                         <form id="search-form" class="navbar-form navbar-left" role="search" action="${tg.url('/search?')}">
134
                             <div class="form-group">
130
                             <div class="form-group">
135
-                                <input type="text" class="form-control" placeholder="${_('Search for...')}" name="keywords" value="${','.join(search.keywords) if search else ''}">
136
-                                <i class="fa fa-search t-less-visible" style="margin-left: -2em;" onclick="$('#search-form').submit()"></i>
131
+                                <input type="text" class="form-control" placeholder="${_('Search for...')}" name="keywords" value="${','.join(search.keywords) if search else ''}" />
132
+                                <i class="fa fa-search t-less-visible hidden-xs" style="margin-left: -2em;" onclick="$('#search-form').submit()"></i>
137
                             </div>
133
                             </div>
138
                             ## <button type="submit" class="btn btn-default">${_('Search')}</button>
134
                             ## <button type="submit" class="btn btn-default">${_('Search')}</button>
139
                         </form>
135
                         </form>
194
 ##                    </li>
190
 ##                    </li>
195
                 </ul>
191
                 </ul>
196
 
192
 
197
-                <div class="header__navbar__switch-mode switch-read-mode">
193
+                <div class="header__navbar__switch-mode switch-read-mode hidden-xs">
198
                     ${TIM.FA('fa-eye')} ${_('Read mode')}
194
                     ${TIM.FA('fa-eye')} ${_('Read mode')}
199
                 </div>
195
                 </div>
200
 
196
 

+ 1 - 1
tracim/tracim/templates/master_authenticated_left_treeview.mak 查看文件

32
     </div> <!-- # End of side bar right -->
32
     </div> <!-- # End of side bar right -->
33
     ## SIDEBAR RIGHT [END]
33
     ## SIDEBAR RIGHT [END]
34
 
34
 
35
-    <div class="content__wrapper">
35
+    <div class="content__wrapper edit-mode-margin">
36
         ${self.TITLE_ROW()}
36
         ${self.TITLE_ROW()}
37
         ${self.body()}
37
         ${self.body()}
38
     </div>
38
     </div>

+ 1 - 1
tracim/tracim/templates/master_authenticated_left_treeview_right_toolbar.mak 查看文件

23
     </div> <!-- # End of side bar right -->
23
     </div> <!-- # End of side bar right -->
24
     ## SIDEBAR RIGHT [END]
24
     ## SIDEBAR RIGHT [END]
25
 
25
 
26
-    <div class="content__wrapper">
26
+    <div class="content__wrapper edit-mode-margin">
27
         ${self.TITLE_ROW()}
27
         ${self.TITLE_ROW()}
28
         ${self.body()}
28
         ${self.body()}
29
     </div>
29
     </div>

+ 3 - 6
tracim/tracim/templates/master_no_toolbar_no_login.mak 查看文件

81
 <%def name="title()">  </%def>
81
 <%def name="title()">  </%def>
82
 
82
 
83
 <%def name="footer()">
83
 <%def name="footer()">
84
-    <div class="footer hidden-tablet hidden-phone text-center">
84
+    <div class="footer hidden-tablet hidden-phone text-center hidden-xs">
85
         <p class="pod-blue">
85
         <p class="pod-blue">
86
             <i>pod &mdash; ${_("collaborate today, capitalize for tomorrow")}</i>
86
             <i>pod &mdash; ${_("collaborate today, capitalize for tomorrow")}</i>
87
 
87
 
97
         <div class="container-fluid">
97
         <div class="container-fluid">
98
             <div class="navbar-header">
98
             <div class="navbar-header">
99
                 <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".navbar-collapse">
99
                 <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".navbar-collapse">
100
-                    <span class="sr-only">Toggle navigation</span>
101
-                    <span class="icon-bar"></span>
102
-                    <span class="icon-bar"></span>
103
-                    <span class="icon-bar"></span>
100
+                    <i class="fa fa-bars"></i>
104
                 </button>
101
                 </button>
105
                 <a class="navbar-brand" href="#">
102
                 <a class="navbar-brand" href="#">
106
-                  <img src="${tg.url('/assets/img/logo.png')}" class="pull-left" style="border: 1px solid #F5F5F5; height: 48px; margin: -13px 0.5em 0 0;"/>
103
+                  <img src="${tg.url('/assets/img/logo.png')}" class="pull-left" />
107
                 </a>
104
                 </a>
108
             </div>
105
             </div>
109
             <div class="navbar-collapse collapse">
106
             <div class="navbar-collapse collapse">