mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-16 23:29:49 +00:00
[aloha] upgraded to 0.22.7 and added textcolor plugin
* textcolor: fixed plugin bugs, added translation for zh * image: fixed default.jpg src bug * added 'ru' support for seaf edit * rm aloha-0.22.3 and ununsed files in aloha-0.22.7
This commit is contained in:
@@ -0,0 +1,308 @@
|
||||
/*global documents: true define: true */
|
||||
/*!
|
||||
* Aloha Editor
|
||||
* Author & Copyright (c) 2011 Gentics Software GmbH
|
||||
* aloha-sales@gentics.com
|
||||
* Licensed under the terms of http://www.aloha-editor.com/license.html
|
||||
*
|
||||
* Author : Nicolas Karageuzian - http://nka.me
|
||||
*/
|
||||
define([
|
||||
'jquery',
|
||||
'util/class',
|
||||
'i18n!image/nls/i18n',
|
||||
'i18n!aloha/nls/i18n',
|
||||
'ui/ui',
|
||||
'ui/scopes',
|
||||
'ui/button',
|
||||
'ui/toggleButton',
|
||||
'ui/port-helper-attribute-field'
|
||||
],
|
||||
function (
|
||||
jQuery,
|
||||
Class,
|
||||
i18n,
|
||||
i18nCore,
|
||||
Ui,
|
||||
Scopes,
|
||||
Button,
|
||||
ToggleButton,
|
||||
AttributeField
|
||||
) {
|
||||
'use strict';
|
||||
|
||||
var $ = jQuery;
|
||||
var GENTICS = window.GENTICS;
|
||||
var Aloha = window.Aloha;
|
||||
|
||||
/**
|
||||
* Toolbar elements for Image plugin
|
||||
*
|
||||
* @class MyClass
|
||||
*/
|
||||
return Class.extend({
|
||||
/**
|
||||
* Empty constructor
|
||||
*
|
||||
* @method
|
||||
* @constructor
|
||||
*/
|
||||
_constructor: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* Initialize Floating menu buttons according to plugin config
|
||||
*/
|
||||
init: function (plugin) {
|
||||
plugin.floatingMenuControl = this;
|
||||
this.plugin = plugin;
|
||||
|
||||
Scopes.createScope(plugin.name, 'Aloha.empty');
|
||||
|
||||
this._addUIInsertButton();
|
||||
this._addUIMetaButtons();
|
||||
this._addUIResetButton();
|
||||
this._addUIAlignButtons();
|
||||
this._addUIMarginButtons();
|
||||
this._addUICropButtons();
|
||||
this._addUIResizeButtons();
|
||||
this._addUIAspectRatioToggleButton();
|
||||
|
||||
// TODO fix the function and reenable this button
|
||||
// this._addNaturalSizeButton();
|
||||
},
|
||||
|
||||
/**
|
||||
* Adds the aspect ratio toggle button to the floating menu
|
||||
*/
|
||||
_addUIAspectRatioToggleButton: function () {
|
||||
var plugin = this.plugin;
|
||||
|
||||
this._imageCnrRatioButton = Ui.adopt("imageCnrRatio", ToggleButton, {
|
||||
tooltip: i18n.t('button.toggle.tooltip'),
|
||||
icon: 'aloha-icon-cnr-ratio',
|
||||
scope: plugin.name,
|
||||
click: function(){
|
||||
plugin.toggleKeepAspectRatio();
|
||||
}
|
||||
});
|
||||
|
||||
// If the setting has been set to a number or false we need to activate the
|
||||
// toggle button to indicate that the aspect ratio will be preserved.
|
||||
if (plugin.settings.fixedAspectRatio !== false) {
|
||||
this._imageCnrRatioButton.setState(true);
|
||||
plugin.keepAspectRatio = true;
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Adds the reset button to the floating menu for the given tab
|
||||
*/
|
||||
_addUIResetButton: function () {
|
||||
var plugin = this.plugin;
|
||||
|
||||
this._imageCnrResetButton = Ui.adopt("imageCnrReset", Button, {
|
||||
tooltip: i18n.t('Reset'),
|
||||
icon: 'aloha-icon-cnr-reset',
|
||||
scope: plugin.name,
|
||||
click: function(){
|
||||
plugin.reset();
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Adds the insert button to the floating menu
|
||||
*/
|
||||
_addUIInsertButton: function () {
|
||||
var plugin = this.plugin;
|
||||
|
||||
this._insertImageButton = Ui.adopt("insertImage", Button, {
|
||||
tooltip: i18n.t('button.addimg.tooltip'),
|
||||
icon: 'aloha-button aloha-image-insert',
|
||||
scope: 'Aloha.continuoustext',
|
||||
click: function(){
|
||||
plugin.insertImg();
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Adds the ui meta fields (search, title) to the floating menu.
|
||||
*/
|
||||
_addUIMetaButtons: function () {
|
||||
var plugin = this.plugin;
|
||||
|
||||
this.imgSrcField = AttributeField({
|
||||
label: i18n.t('field.img.src.label'),
|
||||
labelClass: 'aloha-image-input-label',
|
||||
tooltip: i18n.t('field.img.src.tooltip'),
|
||||
name: 'imageSource',
|
||||
scope: plugin.name
|
||||
});
|
||||
this.imgSrcField.setTemplate( '<span><b>{name}</b><br/>{url}</span>' );
|
||||
this.imgSrcField.setObjectTypeFilter(plugin.objectTypeFilter);
|
||||
|
||||
this.imgTitleField = AttributeField({
|
||||
label: i18n.t('field.img.title.label'),
|
||||
labelClass: 'aloha-image-input-label',
|
||||
tooltip: i18n.t('field.img.title.tooltip'),
|
||||
name: 'imageTitle',
|
||||
scope: plugin.name
|
||||
});
|
||||
this.imgTitleField.setObjectTypeFilter();
|
||||
},
|
||||
|
||||
/**
|
||||
* Adds the ui align buttons to the floating menu
|
||||
*/
|
||||
_addUIAlignButtons: function () {
|
||||
var plugin = this.plugin;
|
||||
|
||||
this._imageAlignLeftButton = Ui.adopt("imageAlignLeft", Button, {
|
||||
tooltip: i18n.t('button.img.align.left.tooltip'),
|
||||
icon: 'aloha-img aloha-image-align-left',
|
||||
scope: plugin.name,
|
||||
click : function () {
|
||||
var el = jQuery(plugin.getPluginFocus());
|
||||
el.add(el.parent()).css('float', 'left');
|
||||
}
|
||||
});
|
||||
|
||||
this._imageAlignRightButton = Ui.adopt("imageAlignRight", Button, {
|
||||
tooltip: i18n.t('button.img.align.right.tooltip'),
|
||||
icon: 'aloha-img aloha-image-align-right',
|
||||
scope: plugin.name,
|
||||
click : function () {
|
||||
var el = jQuery(plugin.getPluginFocus());
|
||||
el.add(el.parent()).css('float', 'right');
|
||||
}
|
||||
});
|
||||
|
||||
this._imageAlignNoneButton = Ui.adopt("imageAlignNone", Button, {
|
||||
tooltip: i18n.t('button.img.align.none.tooltip'),
|
||||
icon: 'aloha-img aloha-image-align-none',
|
||||
scope: plugin.name,
|
||||
click : function () {
|
||||
var el = jQuery(plugin.getPluginFocus());
|
||||
el.add(el.parent()).css({
|
||||
'float': 'none',
|
||||
display: 'inline-block'
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Adds the ui margin buttons to the floating menu
|
||||
*/
|
||||
_addUIMarginButtons: function () {
|
||||
var plugin = this.plugin;
|
||||
|
||||
this._imageIncPaddingButton = Ui.adopt("imageIncPadding", Button, {
|
||||
tooltip: i18n.t('padding.increase'),
|
||||
icon: 'aloha-img aloha-image-padding-increase',
|
||||
scope: plugin.name,
|
||||
click: function () {
|
||||
jQuery(plugin.getPluginFocus()).increase('padding');
|
||||
}
|
||||
});
|
||||
|
||||
this._imageDecPaddingButton = Ui.adopt("imageDecPadding", Button, {
|
||||
tooltip: i18n.t('padding.decrease'),
|
||||
icon: 'aloha-img aloha-image-padding-decrease',
|
||||
scope: plugin.name,
|
||||
click: function () {
|
||||
jQuery(plugin.getPluginFocus()).decrease('padding');
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Adds the crop buttons to the floating menu
|
||||
*/
|
||||
_addUICropButtons: function () {
|
||||
var plugin = this.plugin;
|
||||
|
||||
Scopes.createScope('Aloha.img', ['Aloha.global']);
|
||||
|
||||
this._imageCropButton = Ui.adopt("imageCropButton", ToggleButton, {
|
||||
tooltip: i18n.t('Crop'),
|
||||
icon: 'aloha-icon-cnr-crop',
|
||||
scope: plugin.name,
|
||||
click: function () {
|
||||
if (this.getState()) {
|
||||
plugin.crop();
|
||||
} else {
|
||||
plugin.endCrop();
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Adds the resize buttons to the floating menu
|
||||
*/
|
||||
_addUIResizeButtons: function () {
|
||||
var plugin = this.plugin;
|
||||
|
||||
// Manual resize fields
|
||||
this.imgResizeHeightField = AttributeField({
|
||||
label: i18n.t('height'),
|
||||
labelClass: 'aloha-image-input-label',
|
||||
name: "imageResizeHeight",
|
||||
width: 50,
|
||||
scope: plugin.name
|
||||
});
|
||||
this.imgResizeHeightField.maxValue = plugin.settings.maxHeight;
|
||||
this.imgResizeHeightField.minValue = plugin.settings.minHeight;
|
||||
|
||||
this.imgResizeWidthField = AttributeField({
|
||||
label: i18n.t('width'),
|
||||
labelClass: 'aloha-image-input-label',
|
||||
name: "imageResizeWidth",
|
||||
width: 50,
|
||||
scope: plugin.name
|
||||
});
|
||||
this.imgResizeWidthField.maxValue = plugin.settings.maxWidth;
|
||||
this.imgResizeWidthField.minValue = plugin.settings.minWidth;
|
||||
},
|
||||
|
||||
/**
|
||||
* Adds the natural size button to the floating menu
|
||||
*/
|
||||
/*
|
||||
TODO currently deactivated see TODO at call site above.
|
||||
_addNaturalSizeButton: function () {
|
||||
var plugin = this.plugin;
|
||||
|
||||
this._imageNaturalSizeButton = Ui.adopt("imageNaturalSize", Button, {
|
||||
icon: 'aloha-img aloha-image-size-natural',
|
||||
label: i18n.t('size.natural'),
|
||||
scope: plugin.name,
|
||||
click: function () {
|
||||
plugin.resetSize();
|
||||
}
|
||||
});
|
||||
},
|
||||
*/
|
||||
|
||||
/**
|
||||
* Sets the scope
|
||||
*/
|
||||
setScope: function () {
|
||||
Scopes.setScope(this.plugin.name);
|
||||
},
|
||||
|
||||
/**
|
||||
* Redraws UI
|
||||
*/
|
||||
doLayout: function () {
|
||||
// Implementation was removed while porting this plugin to
|
||||
// the jqueryui toolbar because it seems to be a hack that
|
||||
// is not needed with the new implementation.
|
||||
}
|
||||
});
|
||||
});
|
||||
|
Reference in New Issue
Block a user