tb_core 1.2.2 → 1.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 71c34ea80001648010e043bef02b72692915420f
4
- data.tar.gz: 3883316c2ffaa12dd1dd898f3b96a018b58441fd
3
+ metadata.gz: f90c1e3395d45e3a5e48b296d5176c88dd3701ab
4
+ data.tar.gz: 6425455e234a5ccadc3fcc38f668578de9ba90c3
5
5
  SHA512:
6
- metadata.gz: ce061063bbbe493d0371ce8a1f3eba01091a2ee8c4d35a77d47afa5e8431f6c40c39f2f93b4a4c7f442cf317951696a5640f80b7f90565e1f039c04c0064398a
7
- data.tar.gz: 378b935cdabc307ec286995fc2b7f77a1dc18fe482a9c1790685a0bc12bccb07e976f57728e3cf3131c256d05ec9c3881471e0ab13751d6179c4618721b1f388
6
+ metadata.gz: ce5ec2edd76b476e08e23d2b2129bdae35b285a448ca372c490dc09efdc7043b5779f5f94054775079f0c0b93fd23ab96777ae2938cdb8f97b7e39ebf9b60f8b
7
+ data.tar.gz: 77e0e1dd611e1d6d9e44fadb0b234d86787dba522c993a390f81e0d03319a9d042fd7d78ad3a1fbeb8d1fb923cc7f8cf6f43bd34b7ce085f4102eb16f087fc32
@@ -1,6 +1,5 @@
1
1
  //= require jquery
2
2
  //= require jquery_ujs
3
- //= require admin/core/preinit
4
3
  //= require tinymce-jquery
5
4
  //= require tinymce/plugins/tableDropdown/editor_plugin
6
5
  //= require bootstrap/js/bootstrap
@@ -9,7 +8,6 @@
9
8
  //= require ../../tb_core
10
9
  //= require_self
11
10
  //= require_tree .
12
- //= require retina_tag
13
11
 
14
12
  spud = {admin:{}};
15
13
 
@@ -17,104 +15,35 @@ $(document).ready(function() {
17
15
 
18
16
  spud.admin.editor.init();
19
17
 
20
- $("#modal_window .modal-footer .form-submit").bind('click', function() {
21
- $("#modal_window .modal-body form").submit();
22
- });
23
-
24
- $("#modal_window ").on('hidden', function(){
25
- $(this).find('.modal-footer-additional').remove();
26
- $(this).find('.modal-footer-default').show();
27
- $(this).removeData('modal');
28
- });
29
-
30
- $('body').on('click', 'a.ajax', function() {
31
- var url = this.href;
32
- var title = this.title;
33
- var dialog = $("#modal_window");
34
-
35
- $("#modal_window .modal-title").text(title);
36
- dialog.modal({
37
- remote: url +".js",
38
- show:true
39
- });
40
-
41
- // dialog.load(url + ".js",
42
- // function(responseText, textStatus, XMLHttpRequest) {
43
- // dialog.dialog({width:500,modal:true,height:500,title:title});
44
- // });
45
- return false;
18
+ $("#modal_window .modal-footer .form-submit").bind('click', function() {
19
+ $("#modal_window .modal-body form").submit();
20
+ });
21
+
22
+ $("#modal_window ").on('hidden', function(){
23
+ $(this).find('.modal-footer-additional').remove();
24
+ $(this).find('.modal-footer-default').show();
25
+ $(this).removeData('modal');
26
+ });
27
+
28
+ $('body').on('click', 'a.ajax', function() {
29
+ var url = this.href;
30
+ var title = this.title;
31
+ var dialog = $("#modal_window");
32
+
33
+ $("#modal_window .modal-title").text(title);
34
+ dialog.modal({
35
+ remote: url +".js",
36
+ show:true
46
37
  });
47
38
 
39
+ return false;
40
+ });
48
41
 
49
- $('body').on('ajax:success', 'a[data-method="delete"]',
50
- function(data, textStatus, jqXHR){
51
- $(this).closest('tr').fadeOut();
52
- });
53
-
54
-
55
- $('a.button').button();
42
+ $('a.button').button();
56
43
 
44
+ $('input[type=submit].btn').click(function() {$(this).button('loading');});
57
45
 
58
- $('input[type=submit].btn').click(function() {$(this).button('loading');});
59
-
60
- $('#multisite_switcher select').change(function() {
61
- $(this).parent().submit();
62
- });
63
-
46
+ $('#multisite_switcher select').change(function() {
47
+ $(this).parent().submit();
48
+ });
64
49
  } );
65
-
66
-
67
- function remove_fields(link) {
68
- $(link).prev("input[type=hidden]").val("1");
69
- $(link).closest(".fields").hide();
70
- }
71
-
72
- function add_fields(link, association, content) {
73
- var new_id = new Date().getTime();
74
- var regexp = new RegExp("new_" + association, "g")
75
- $(link).parent().before(content.replace(regexp, new_id));
76
- }
77
-
78
-
79
-
80
-
81
- function initTinyMCE(selector) {
82
- console.warn('Deprecation Notice: `initTinyMCE()` is deprecated, please use `spud.admin.editor.init()` instead.');
83
- spud.admin.editor.init();
84
- }
85
-
86
- function initDatePicker(selector){
87
- console.warn('Deprecation Notice: `initDatePicker()` is deprecated, please use `spud.admin.date_picker.init()` instead.');
88
- spud.admin.date_picker.init();
89
-
90
- }
91
-
92
- function displayModalDialogWithOptions(options){
93
- var modal = $('#modal_window');
94
- if(options.title){
95
- modal.find('.modal-title').text(options.title);
96
- }
97
- if(options.html){
98
- modal.find('.modal-body').html(options.html);
99
- }
100
- var defaultFooter = modal.find('.modal-footer-default');
101
- if(options.buttons){
102
- var newFooter = defaultFooter.clone();
103
- newFooter.addClass('modal-footer-additional');
104
- newFooter.find('.form-submit').remove();
105
- for(var key in options.buttons){
106
- newFooter.append('<button class="btn '+key+'">'+options.buttons[key]+'</button>');
107
- }
108
- defaultFooter.hide();
109
- modal.append(newFooter);
110
- }
111
- else{
112
- defaultFooter.show();
113
- }
114
- modal.modal('show');
115
- }
116
-
117
- function hideModalDialog(){
118
- var modal = $('#modal_window');
119
- modal.modal('hide');
120
- }
@@ -1,27 +1,34 @@
1
1
  (function(){
2
2
 
3
+ var badgeInterval;
4
+
3
5
  spud.admin.dashboard = {
4
6
  init:function(){
7
+ badgeInterval = setInterval(updateBadges, 30000);
5
8
  updateBadges();
6
- setInterval(updateBadges, 30000);
7
9
  }
8
10
  };
9
11
 
10
- var updateBadges = function updateBadges() {
12
+ var updateBadges = function() {
11
13
  var url = tb.util.urlFor('admin/badges');
12
14
  $.ajax({
13
15
  url: url
14
16
  }).always(function(json) {
15
17
  if(json && json.data) {
16
- json.data.forEach(function(eachBadge) {
17
- var id = "application_name_" + eachBadge.key;
18
- updateBadge(id, eachBadge.badge_count);
19
- });
18
+ if(json.data.length === 0){
19
+ clearInterval(badgeInterval);
20
+ }
21
+ else{
22
+ json.data.forEach(function(eachBadge) {
23
+ var id = "application_name_" + eachBadge.key;
24
+ updateBadge(id, eachBadge.badge_count);
25
+ });
26
+ }
20
27
  }
21
28
  });
22
29
  };
23
30
 
24
- var updateBadge = function updateBadge(badge_id, count) {
31
+ var updateBadge = function(badge_id, count) {
25
32
  var badgeIcon = $('#' + badge_id).find('.dash_icon_badge');
26
33
  if(badgeIcon.length === 0) {
27
34
  return;
@@ -0,0 +1,47 @@
1
+ (function(){
2
+
3
+ spud.admin.modal = {
4
+
5
+ displayWithOptions: function(options){
6
+ var modal = $('#modal_window');
7
+ if(options.title){
8
+ modal.find('.modal-title').text(options.title);
9
+ }
10
+ if(options.html){
11
+ modal.find('.modal-body').html(options.html);
12
+ }
13
+ var defaultFooter = modal.find('.modal-footer-default');
14
+ if(options.buttons){
15
+ var newFooter = defaultFooter.clone();
16
+ newFooter.addClass('modal-footer-additional');
17
+ newFooter.find('.form-submit').remove();
18
+ for(var key in options.buttons){
19
+ newFooter.append('<button class="btn '+key+'">'+options.buttons[key]+'</button>');
20
+ }
21
+ defaultFooter.hide();
22
+ modal.append(newFooter);
23
+ }
24
+ else{
25
+ defaultFooter.show();
26
+ }
27
+ modal.modal('show');
28
+ },
29
+
30
+ hide: function(){
31
+ var modal = $('#modal_window');
32
+ modal.modal('hide');
33
+ }
34
+
35
+ };
36
+
37
+ })();
38
+
39
+ function displayModalDialogWithOptions(options){
40
+ console.warn('displayModalDialogWithOptions() is deprecated, please use spud.admin.modal.displayWithOptions.');
41
+ spud.admin.modal.displayWithOptions(options);
42
+ }
43
+
44
+ function hideModalDialog(){
45
+ console.warn('hideModalDialog() is deprecated, please use spud.admin.modal.hide');
46
+ spud.admin.modal.hide();
47
+ }
@@ -91,12 +91,12 @@ private
91
91
  @exception = exception
92
92
  @exception.request_url = request.original_url
93
93
  respond_to do |format|
94
- format.html{
95
- template = @exception.template || Spud::Core.not_found_template
96
- render :template => template, :layout => nil, :formats => [:html], :status => 404
97
- }
98
94
  format.json{ render :json => {:errors => "The #{@exception.item} you were looking for could not be found."}, :status => 404 }
99
95
  format.xml{ render :xml => {:errors => "The #{@exception.item} you were looking for could not be found."}, :status => 404 }
96
+ format.all{
97
+ template = @exception.template || Spud::Core.not_found_template
98
+ render :template => template, :layout => nil, :formats => [:html], :status => 404, :content_type => 'text/html'
99
+ }
100
100
  end
101
101
  end
102
102
 
@@ -23,18 +23,6 @@ module Admin::ApplicationHelper
23
23
  return style_str
24
24
  end
25
25
 
26
- def link_to_remove_fields(name, f)
27
- f.hidden_field(:_destroy) + link_to_function(name, "remove_fields(this)",:class => "btn btn-danger")
28
- end
29
-
30
- def link_to_add_fields(name, f, association)
31
- new_object = f.object.class.reflect_on_association(association).klass.new
32
- fields = f.fields_for(association, new_object, :child_index => "new_#{association}") do |builder|
33
- render(association.to_s.singularize + "_fields", :f => builder)
34
- end
35
- link_to_function(name, "add_fields(this, \"#{association}\", \"#{escape_javascript(fields)}\")",:class =>"btn")
36
- end
37
-
38
26
  def error_messages_for(object)
39
27
  content = ""
40
28
  if object.errors.any?
@@ -80,4 +80,17 @@ class Spud::SpudUserModel < ActiveRecord::Base
80
80
  return self.where('login like ? or concat(`first_name`, " ", `last_name`) like ?', like, like)
81
81
  end
82
82
 
83
+ # Return an array of users who have the requested permission
84
+ #
85
+ # * tag - Desired permission tag string (required)
86
+ # * include_supers - Whether to include super user (default: true)
87
+ def self.with_permission(tag, include_supers:true)
88
+ role_ids = SpudRolePermission.where(:spud_permission_tag => tag).pluck(:spud_role_id).uniq()
89
+ if include_supers
90
+ return SpudUser.where('super_admin = 1 OR spud_role_id IN (?)', role_ids)
91
+ else
92
+ return SpudUser.where(:spud_role_id => role_ids)
93
+ end
94
+ end
95
+
83
96
  end
@@ -1,5 +1,4 @@
1
1
  require 'jquery-rails'
2
- require 'retina_tag'
3
2
  require 'authlogic'
4
3
  require 'breadcrumbs_on_rails'
5
4
  require 'will_paginate'
@@ -1,5 +1,5 @@
1
1
  module Spud
2
2
  module Core
3
- VERSION = "1.2.2"
3
+ VERSION = "1.2.3"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tb_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.2
4
+ version: 1.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Greg Woods
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-08 00:00:00.000000000 Z
11
+ date: 2014-06-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -108,20 +108,6 @@ dependencies:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
- - !ruby/object:Gem::Dependency
112
- name: retina_tag
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- version: '0'
118
- type: :runtime
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - ">="
123
- - !ruby/object:Gem::Version
124
- version: '0'
125
111
  - !ruby/object:Gem::Dependency
126
112
  name: codemirror-rails
127
113
  requirement: !ruby/object:Gem::Requirement
@@ -316,7 +302,6 @@ files:
316
302
  - Rakefile
317
303
  - app/assets/images/admin/down_arrow.gif
318
304
  - app/assets/images/admin/module_icon.png
319
- - app/assets/images/admin/module_icon@2x.png
320
305
  - app/assets/images/admin/up_arrow.gif
321
306
  - app/assets/images/admin/users_thumb.png
322
307
  - app/assets/javascripts/admin/application.js
@@ -324,6 +309,7 @@ files:
324
309
  - app/assets/javascripts/admin/core/dashboard.js
325
310
  - app/assets/javascripts/admin/core/date_picker.js
326
311
  - app/assets/javascripts/admin/core/editor.js
312
+ - app/assets/javascripts/admin/core/modal.js
327
313
  - app/assets/javascripts/admin/core/preinit.js
328
314
  - app/assets/javascripts/admin/core/roles.js
329
315
  - app/assets/javascripts/admin/core/split_pane.js