active_admin_pro 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 40da224f2c53a66c89d0bb2d287d2f2860cf7c66
4
- data.tar.gz: d93c77773de0d7d57a0faf4ef1784c9e349ce85f
3
+ metadata.gz: 1ebfc0c84234ba5d727c8409f3a0e6b936b9a96b
4
+ data.tar.gz: b60b1ba8e7ffc83628f26544818fcb260d694e55
5
5
  SHA512:
6
- metadata.gz: f210b81c192fd547de7e428f236eeed58d8fb43c36ef3f2e53f852af5414ce6046a6758cbd1767dfd54886ab42725b1cc9d8e0e6334f68acc8ebf581f1788ba9
7
- data.tar.gz: ccf864b13be94639683ab75c319aeb7c60d02ff137d5f5b631aee17d895c5a35bc1aa3a212580ead095b954233aead5abb486e1048659780858359e46b399e56
6
+ metadata.gz: 9b7d82e2e40f13b3a8787842aa7fedb5e3eeef8361fc288701a30b26e8594671e96ce25fd47cc25d4d80d253b7778a6e3c69316b9b272450893c262379851770
7
+ data.tar.gz: 3ca8c3c20dd46838be4fbdba0afe4ea3797ca12323988f355889daafbfa7c5371a09b42cfb2d5a06eb740712b1029ac41eca28350761609168b7a1c4c2b55694
@@ -53,7 +53,6 @@
53
53
 
54
54
  // Override the default image dialog with an Active Admin (jQuery UI) dialog
55
55
  var pictureButton = wrapper.find('button[data-original-title="Picture"]');
56
- pictureButton.unbind('click');
57
56
  pictureButton.click(function(event) {
58
57
  var dialogHtml = '<div id="summernote_image_dialog">';
59
58
  dialogHtml += '<div class="input file">';
@@ -9,7 +9,7 @@ ActiveAdmin.application.tap do |config|
9
9
  config.localize_format = :short
10
10
 
11
11
  # Include Font Awesome in ActiveAdmin
12
- config.register_stylesheet "//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.min.css"
12
+ config.register_stylesheet "//maxcdn.bootstrapcdn.com/font-awesome/#{ENV['FONT_AWESOME_VERSION'] || '4.5.0'}/css/font-awesome.min.css"
13
13
 
14
14
  # Add Apple web application icons
15
15
  base_url = "//s3.amazonaws.com/codelation.activeadmin/apple-touch-icon"
@@ -1,3 +1,3 @@
1
1
  module ActiveAdminPro
2
- VERSION = "0.1.3".freeze
2
+ VERSION = "0.1.4".freeze
3
3
  end
@@ -5447,8 +5447,7 @@
5447
5447
  context.memo('button.picture', function () {
5448
5448
  return ui.button({
5449
5449
  contents: ui.icon(options.icons.picture),
5450
- tooltip: lang.image.image,
5451
- click: context.createInvokeHandler('imageDialog.show')
5450
+ tooltip: lang.image.image
5452
5451
  }).render();
5453
5452
  });
5454
5453
 
@@ -5994,122 +5993,43 @@
5994
5993
  };
5995
5994
  };
5996
5995
 
5997
- var ImageDialog = function (context) {
5998
- var self = this;
5996
+ var ImagePopover = function (context) {
5999
5997
  var ui = $.summernote.ui;
6000
5998
 
6001
- var $editor = context.layoutInfo.editor;
6002
5999
  var options = context.options;
6003
- var lang = options.langInfo;
6004
-
6005
- this.initialize = function () {
6006
- var $container = options.dialogsInBody ? $(document.body) : $editor;
6007
-
6008
- var imageLimitation = '';
6009
- if (options.maximumImageFileSize) {
6010
- var unit = Math.floor(Math.log(options.maximumImageFileSize) / Math.log(1024));
6011
- var readableSize = (options.maximumImageFileSize / Math.pow(1024, unit)).toFixed(2) * 1 +
6012
- ' ' + ' KMGTP'[unit] + 'B';
6013
- imageLimitation = '<small>' + lang.image.maximumFileSize + ' : ' + readableSize + '</small>';
6014
- }
6015
-
6016
- var body = '<div class="form-group note-group-select-from-files">' +
6017
- '<label>' + lang.image.selectFromFiles + '</label>' +
6018
- '<input class="note-image-input form-control" type="file" name="files" accept="image/*" multiple="multiple" />' +
6019
- imageLimitation +
6020
- '</div>' +
6021
- '<div class="form-group" style="overflow:auto;">' +
6022
- '<label>' + lang.image.url + '</label>' +
6023
- '<input class="note-image-url form-control col-md-12" type="text" />' +
6024
- '</div>';
6025
- var footer = '<button href="#" class="btn btn-primary note-image-btn disabled" disabled>' + lang.image.insert + '</button>';
6026
6000
 
6027
- this.$dialog = ui.dialog({
6028
- title: lang.image.insert,
6029
- fade: options.dialogsFade,
6030
- body: body,
6031
- footer: footer
6032
- }).render().appendTo($container);
6001
+ this.shouldInitialize = function () {
6002
+ return !list.isEmpty(options.popover.image);
6033
6003
  };
6034
6004
 
6035
- this.destroy = function () {
6036
- ui.hideDialog(this.$dialog);
6037
- this.$dialog.remove();
6038
- };
6005
+ this.initialize = function () {
6006
+ this.$popover = ui.popover({
6007
+ className: 'note-image-popover'
6008
+ }).render().appendTo('body');
6009
+ var $content = this.$popover.find('.popover-content');
6039
6010
 
6040
- this.bindEnterKey = function ($input, $btn) {
6041
- $input.on('keypress', function (event) {
6042
- if (event.keyCode === key.code.ENTER) {
6043
- $btn.trigger('click');
6044
- }
6045
- });
6011
+ context.invoke('buttons.build', $content, options.popover.image);
6046
6012
  };
6047
6013
 
6048
- this.show = function () {
6049
- context.invoke('editor.saveRange');
6050
- this.showImageDialog().then(function (data) {
6051
- // [workaround] hide dialog before restore range for IE range focus
6052
- ui.hideDialog(self.$dialog);
6053
- context.invoke('editor.restoreRange');
6054
-
6055
- if (typeof data === 'string') { // image url
6056
- context.invoke('editor.insertImage', data);
6057
- } else { // array of files
6058
- context.invoke('editor.insertImagesOrCallback', data);
6059
- }
6060
- }).fail(function () {
6061
- context.invoke('editor.restoreRange');
6062
- });
6014
+ this.destroy = function () {
6015
+ this.$popover.remove();
6063
6016
  };
6064
6017
 
6065
- /**
6066
- * show image dialog
6067
- *
6068
- * @param {jQuery} $dialog
6069
- * @return {Promise}
6070
- */
6071
- this.showImageDialog = function () {
6072
- return $.Deferred(function (deferred) {
6073
- var $imageInput = self.$dialog.find('.note-image-input'),
6074
- $imageUrl = self.$dialog.find('.note-image-url'),
6075
- $imageBtn = self.$dialog.find('.note-image-btn');
6076
-
6077
- ui.onDialogShown(self.$dialog, function () {
6078
- context.triggerEvent('dialog.shown');
6079
-
6080
- // Cloning imageInput to clear element.
6081
- $imageInput.replaceWith($imageInput.clone()
6082
- .on('change', function () {
6083
- deferred.resolve(this.files || this.value);
6084
- })
6085
- .val('')
6086
- );
6087
-
6088
- $imageBtn.click(function (event) {
6089
- event.preventDefault();
6090
-
6091
- deferred.resolve($imageUrl.val());
6092
- });
6093
-
6094
- $imageUrl.on('keyup paste', function () {
6095
- var url = $imageUrl.val();
6096
- ui.toggleBtn($imageBtn, url);
6097
- }).val('').trigger('focus');
6098
- self.bindEnterKey($imageUrl, $imageBtn);
6099
- });
6100
-
6101
- ui.onDialogHidden(self.$dialog, function () {
6102
- $imageInput.off('change');
6103
- $imageUrl.off('keyup paste keypress');
6104
- $imageBtn.off('click');
6105
-
6106
- if (deferred.state() === 'pending') {
6107
- deferred.reject();
6108
- }
6018
+ this.update = function (target) {
6019
+ if (dom.isImg(target)) {
6020
+ var pos = dom.posFromPlaceholder(target);
6021
+ this.$popover.css({
6022
+ display: 'block',
6023
+ left: pos.left,
6024
+ top: pos.top
6109
6025
  });
6026
+ } else {
6027
+ this.hide();
6028
+ }
6029
+ };
6110
6030
 
6111
- ui.showDialog(self.$dialog);
6112
- });
6031
+ this.hide = function () {
6032
+ this.$popover.hide();
6113
6033
  };
6114
6034
  };
6115
6035
 
@@ -6687,8 +6607,7 @@
6687
6607
  'toolbar': Toolbar,
6688
6608
  'linkDialog': LinkDialog,
6689
6609
  'linkPopover': LinkPopover,
6690
- 'imageDialog': ImageDialog,
6691
- // 'imagePopover': ImagePopover,
6610
+ 'imagePopover': ImagePopover,
6692
6611
  'videoDialog': VideoDialog,
6693
6612
  'helpDialog': HelpDialog,
6694
6613
  'airPopover': AirPopover
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_admin_pro
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Pattison
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-24 00:00:00.000000000 Z
11
+ date: 2016-01-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activeadmin