constructor-core 0.5.0 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -5,11 +5,6 @@
5
5
  #= require_self
6
6
 
7
7
  $(document).ready ->
8
- $('#tree').treeview({
9
- collapsed: false,
10
- persist: 'cookie'
11
- })
12
-
13
8
  $(".alert").alert()
14
9
  $(".collapse").collapse()
15
10
 
@@ -1,4 +1,3 @@
1
1
  #= require jquery
2
2
  #= require jquery_ujs
3
- #= require constructor_core/jquery.cookie
4
- #= require constructor_core/jquery.treeview
3
+ #= require constructor_core/jquery.cookie
@@ -184,18 +184,46 @@ h3 {
184
184
  .b-tree {
185
185
  ul {
186
186
  list-style: none;
187
- margin-top: 15px;
188
187
  margin-left: 60px;
189
- margin-bottom: 25px;
190
188
 
191
189
  &:first-child {
192
190
  margin-left: 0;
193
191
  padding-left: 0;
194
- margin-top: 0;
195
192
  }
196
193
 
197
194
  li {
198
195
  margin-top: 10px;
196
+ padding-top: 10px;
197
+ border-top: 1px solid #eee;
198
+
199
+
200
+ .btn-group {
201
+ margin-right: 5px;
202
+
203
+ > .btn {
204
+ margin-right: 0;
205
+ }
206
+ }
207
+
208
+ .btn {
209
+ margin-right: 5px;
210
+ }
211
+
212
+ .btn-danger {
213
+ margin-top: 4px;
214
+ }
215
+
216
+ &:hover {
217
+ > .b-tree__buttons {
218
+ visibility: visible;
219
+ }
220
+ }
199
221
  }
200
222
  }
223
+ }
224
+
225
+ .b-tree__buttons {
226
+ @include ie7-inline-block();
227
+ display: inline;
228
+ visibility: hidden;
201
229
  }
@@ -31,6 +31,10 @@
31
31
  %span.icon-bar
32
32
  .nav-collapse
33
33
  %ul.nav
34
+ %li
35
+ = link_to '/admin/dashboard' do
36
+ %i.icon-dashboard
37
+ =t :dashboard
34
38
  %li
35
39
  = link_to '/admin/pages' do
36
40
  %i.icon-sitemap
@@ -39,6 +43,14 @@
39
43
  = link_to '/admin/templates' do
40
44
  %i.icon-film
41
45
  =t :templates
46
+ %li
47
+ = link_to '/admin/users' do
48
+ %i.icon-group
49
+ =t :users
50
+ %li
51
+ = link_to '/admin/settings' do
52
+ %i.icon-cogs
53
+ =t :settings
42
54
 
43
55
  - if current_user
44
56
  %ul.nav.pull-right
@@ -46,6 +58,10 @@
46
58
  = link_to core.user_path(current_user.id) do
47
59
  = image_tag gravatar_icon(current_user.email, 48), width: 24, height: 24, class: 'avatar'
48
60
  %span= current_user.email
61
+ %li
62
+ = link_to '/admin/help' do
63
+ %i.icon-question-sign
64
+ =t :help
49
65
  %li
50
66
  = link_to core.destroy_user_session_path, method: :delete do
51
67
  %i.icon-signout
@@ -1,5 +1,6 @@
1
1
  en:
2
2
  dashboard: 'Dashboard'
3
+ users: 'Users'
3
4
  homepage: 'Home page'
4
5
  login: 'Login'
5
6
  logout: 'Logout'
@@ -1,6 +1,7 @@
1
1
  ru:
2
2
  dashboard: 'Панель управления'
3
3
  homepage: 'Главная страница'
4
+ users: 'Пользователи'
4
5
  login: 'Войти'
5
6
  logout: 'Выйти'
6
7
  cancel: 'Отмена'
@@ -20,5 +20,5 @@ Gem::Specification.new do |s|
20
20
  s.add_dependency 'rails', '~> 3.2.13'
21
21
  s.add_dependency 'devise'
22
22
  s.add_dependency 'bootstrap-sass'
23
- s.add_dependency 'font-awesome-sass-rails', '~> 3.0.0'
23
+ s.add_dependency 'font-awesome-sass-rails'
24
24
  end
@@ -1,3 +1,3 @@
1
1
  module ConstructorCore
2
- VERSION = '0.5.0'
2
+ VERSION = '0.5.1'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: constructor-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-06-14 00:00:00.000000000 Z
12
+ date: 2013-06-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -64,17 +64,17 @@ dependencies:
64
64
  requirement: !ruby/object:Gem::Requirement
65
65
  none: false
66
66
  requirements:
67
- - - ~>
67
+ - - ! '>='
68
68
  - !ruby/object:Gem::Version
69
- version: 3.0.0
69
+ version: '0'
70
70
  type: :runtime
71
71
  prerelease: false
72
72
  version_requirements: !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
- - - ~>
75
+ - - ! '>='
76
76
  - !ruby/object:Gem::Version
77
- version: 3.0.0
77
+ version: '0'
78
78
  description: Core for Constructor CMS
79
79
  email: ivanzotov@gmail.com
80
80
  executables: []
@@ -101,7 +101,6 @@ files:
101
101
  - app/assets/javascripts/constructor_core/application.js.coffee
102
102
  - app/assets/javascripts/constructor_core/bootstrap.js
103
103
  - app/assets/javascripts/constructor_core/jquery.cookie.js
104
- - app/assets/javascripts/constructor_core/jquery.treeview.js
105
104
  - app/assets/javascripts/constructor_core/jquery_bundle.js.coffee
106
105
  - app/assets/javascripts/constructor_core/keys_snippet.js
107
106
  - app/assets/javascripts/constructor_core/retina.js
@@ -1,256 +0,0 @@
1
- /*
2
- * Treeview 1.5pre - jQuery plugin to hide and show branches of a tree
3
- *
4
- * http://bassistance.de/jquery-plugins/jquery-plugin-treeview/
5
- * http://docs.jquery.com/Plugins/Treeview
6
- *
7
- * Copyright (c) 2007 Jörn Zaefferer
8
- *
9
- * Dual licensed under the MIT and GPL licenses:
10
- * http://www.opensource.org/licenses/mit-license.php
11
- * http://www.gnu.org/licenses/gpl.html
12
- *
13
- * Revision: $Id: jquery.treeview.js 5759 2008-07-01 07:50:28Z joern.zaefferer $
14
- *
15
- */
16
-
17
- ;(function($) {
18
-
19
- // TODO rewrite as a widget, removing all the extra plugins
20
- $.extend($.fn, {
21
- swapClass: function(c1, c2) {
22
- var c1Elements = this.filter('.' + c1);
23
- this.filter('.' + c2).removeClass(c2).addClass(c1);
24
- c1Elements.removeClass(c1).addClass(c2);
25
- return this;
26
- },
27
- replaceClass: function(c1, c2) {
28
- return this.filter('.' + c1).removeClass(c1).addClass(c2).end();
29
- },
30
- hoverClass: function(className) {
31
- className = className || "hover";
32
- return this.hover(function() {
33
- $(this).addClass(className);
34
- }, function() {
35
- $(this).removeClass(className);
36
- });
37
- },
38
- heightToggle: function(animated, callback) {
39
- animated ?
40
- this.animate({ height: "toggle" }, animated, callback) :
41
- this.each(function(){
42
- jQuery(this)[ jQuery(this).is(":hidden") ? "show" : "hide" ]();
43
- if(callback)
44
- callback.apply(this, arguments);
45
- });
46
- },
47
- heightHide: function(animated, callback) {
48
- if (animated) {
49
- this.animate({ height: "hide" }, animated, callback);
50
- } else {
51
- this.hide();
52
- if (callback)
53
- this.each(callback);
54
- }
55
- },
56
- prepareBranches: function(settings) {
57
- if (!settings.prerendered) {
58
- // mark last tree items
59
- this.filter(":last-child:not(ul)").addClass(CLASSES.last);
60
- // collapse whole tree, or only those marked as closed, anyway except those marked as open
61
- this.filter((settings.collapsed ? "" : "." + CLASSES.closed) + ":not(." + CLASSES.open + ")").find(">ul").hide();
62
- }
63
- // return all items with sublists
64
- return this.filter(":has(>ul)");
65
- },
66
- applyClasses: function(settings, toggler) {
67
- // TODO use event delegation
68
- this.filter(":has(>ul):not(:has(>a))").find(">span").unbind("click.treeview").bind("click.treeview", function(event) {
69
- // don't handle click events on children, eg. checkboxes
70
- if ( this == event.target )
71
- toggler.apply($(this).next());
72
- }).add( $("a", this) ).hoverClass();
73
-
74
- if (!settings.prerendered) {
75
- // handle closed ones first
76
- this.filter(":has(>ul:hidden)")
77
- .addClass(CLASSES.expandable)
78
- .replaceClass(CLASSES.last, CLASSES.lastExpandable);
79
-
80
- // handle open ones
81
- this.not(":has(>ul:hidden)")
82
- .addClass(CLASSES.collapsable)
83
- .replaceClass(CLASSES.last, CLASSES.lastCollapsable);
84
-
85
- // create hitarea if not present
86
- var hitarea = this.find("div." + CLASSES.hitarea);
87
- if (!hitarea.length)
88
- hitarea = this.prepend("<div class=\"" + CLASSES.hitarea + "\"/>").find("div." + CLASSES.hitarea);
89
- hitarea.removeClass().addClass(CLASSES.hitarea).each(function() {
90
- var classes = "";
91
- $.each($(this).parent().attr("class").split(" "), function() {
92
- classes += this + "-hitarea ";
93
- });
94
- $(this).addClass( classes );
95
- })
96
- }
97
-
98
- // apply event to hitarea
99
- this.find("div." + CLASSES.hitarea).click( toggler );
100
- },
101
- treeview: function(settings) {
102
-
103
- settings = $.extend({
104
- cookieId: "treeview"
105
- }, settings);
106
-
107
- if ( settings.toggle ) {
108
- var callback = settings.toggle;
109
- settings.toggle = function() {
110
- return callback.apply($(this).parent()[0], arguments);
111
- };
112
- }
113
-
114
- // factory for treecontroller
115
- function treeController(tree, control) {
116
- // factory for click handlers
117
- function handler(filter) {
118
- return function() {
119
- // reuse toggle event handler, applying the elements to toggle
120
- // start searching for all hitareas
121
- toggler.apply( $("div." + CLASSES.hitarea, tree).filter(function() {
122
- // for plain toggle, no filter is provided, otherwise we need to check the parent element
123
- return filter ? $(this).parent("." + filter).length : true;
124
- }) );
125
- return false;
126
- };
127
- }
128
- // click on first element to collapse tree
129
- $("a:eq(0)", control).click( handler(CLASSES.collapsable) );
130
- // click on second to expand tree
131
- $("a:eq(1)", control).click( handler(CLASSES.expandable) );
132
- // click on third to toggle tree
133
- $("a:eq(2)", control).click( handler() );
134
- }
135
-
136
- // handle toggle event
137
- function toggler() {
138
- $(this)
139
- .parent()
140
- // swap classes for hitarea
141
- .find(">.hitarea")
142
- .swapClass( CLASSES.collapsableHitarea, CLASSES.expandableHitarea )
143
- .swapClass( CLASSES.lastCollapsableHitarea, CLASSES.lastExpandableHitarea )
144
- .end()
145
- // swap classes for parent li
146
- .swapClass( CLASSES.collapsable, CLASSES.expandable )
147
- .swapClass( CLASSES.lastCollapsable, CLASSES.lastExpandable )
148
- // find child lists
149
- .find( ">ul" )
150
- // toggle them
151
- .heightToggle( settings.animated, settings.toggle );
152
- if ( settings.unique ) {
153
- $(this).parent()
154
- .siblings()
155
- // swap classes for hitarea
156
- .find(">.hitarea")
157
- .replaceClass( CLASSES.collapsableHitarea, CLASSES.expandableHitarea )
158
- .replaceClass( CLASSES.lastCollapsableHitarea, CLASSES.lastExpandableHitarea )
159
- .end()
160
- .replaceClass( CLASSES.collapsable, CLASSES.expandable )
161
- .replaceClass( CLASSES.lastCollapsable, CLASSES.lastExpandable )
162
- .find( ">ul" )
163
- .heightHide( settings.animated, settings.toggle );
164
- }
165
- }
166
- this.data("toggler", toggler);
167
-
168
- function serialize() {
169
- function binary(arg) {
170
- return arg ? 1 : 0;
171
- }
172
- var data = [];
173
- branches.each(function(i, e) {
174
- data[i] = $(e).is(":has(>ul:visible)") ? 1 : 0;
175
- });
176
- $.cookie(settings.cookieId, data.join(""), settings.cookieOptions );
177
- }
178
-
179
- function deserialize() {
180
- var stored = $.cookie(settings.cookieId);
181
- if ( stored ) {
182
- var data = stored.split("");
183
- branches.each(function(i, e) {
184
- $(e).find(">ul")[ parseInt(data[i]) ? "show" : "hide" ]();
185
- });
186
- }
187
- }
188
-
189
- // add treeview class to activate styles
190
- this.addClass("treeview");
191
-
192
- // prepare branches and find all tree items with child lists
193
- var branches = this.find("li").prepareBranches(settings);
194
-
195
- switch(settings.persist) {
196
- case "cookie":
197
- var toggleCallback = settings.toggle;
198
- settings.toggle = function() {
199
- serialize();
200
- if (toggleCallback) {
201
- toggleCallback.apply(this, arguments);
202
- }
203
- };
204
- deserialize();
205
- break;
206
- case "location":
207
- var current = this.find("a").filter(function() {
208
- return this.href.toLowerCase() == location.href.toLowerCase();
209
- });
210
- if ( current.length ) {
211
- // TODO update the open/closed classes
212
- var items = current.addClass("selected").parents("ul, li").add( current.next() ).show();
213
- if (settings.prerendered) {
214
- // if prerendered is on, replicate the basic class swapping
215
- items.filter("li")
216
- .swapClass( CLASSES.collapsable, CLASSES.expandable )
217
- .swapClass( CLASSES.lastCollapsable, CLASSES.lastExpandable )
218
- .find(">.hitarea")
219
- .swapClass( CLASSES.collapsableHitarea, CLASSES.expandableHitarea )
220
- .swapClass( CLASSES.lastCollapsableHitarea, CLASSES.lastExpandableHitarea );
221
- }
222
- }
223
- break;
224
- }
225
-
226
- branches.applyClasses(settings, toggler);
227
-
228
- // if control option is set, create the treecontroller and show it
229
- if ( settings.control ) {
230
- treeController(this, settings.control);
231
- $(settings.control).show();
232
- }
233
-
234
- return this;
235
- }
236
- });
237
-
238
- // classes used by the plugin
239
- // need to be styled via external stylesheet, see first example
240
- $.treeview = {};
241
- var CLASSES = ($.treeview.classes = {
242
- open: "open",
243
- closed: "closed",
244
- expandable: "expandable",
245
- expandableHitarea: "expandable-hitarea",
246
- lastExpandableHitarea: "lastExpandable-hitarea",
247
- collapsable: "collapsable",
248
- collapsableHitarea: "collapsable-hitarea",
249
- lastCollapsableHitarea: "lastCollapsable-hitarea",
250
- lastCollapsable: "lastCollapsable",
251
- lastExpandable: "lastExpandable",
252
- last: "last",
253
- hitarea: "hitarea"
254
- });
255
-
256
- })(jQuery);