mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-11-26 01:43:47 +01:00
WIP of implementing cropping avatar photo
This commit is contained in:
parent
7de7af4cc1
commit
e231ac86cf
@ -15,6 +15,7 @@
|
|||||||
et2_core_interfaces;
|
et2_core_interfaces;
|
||||||
et2_core_baseWidget;
|
et2_core_baseWidget;
|
||||||
expose;
|
expose;
|
||||||
|
/vendor/bower-asset/cropper/dist/cropper.min.js;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -328,6 +329,12 @@ var et2_avatar = (function(){ "use strict"; return et2_image.extend(
|
|||||||
type: "boolean",
|
type: "boolean",
|
||||||
default: false,
|
default: false,
|
||||||
description: "Make avatar widget editable to be able to crop profile picture or upload a new photo"
|
description: "Make avatar widget editable to be able to crop profile picture or upload a new photo"
|
||||||
|
},
|
||||||
|
crop: {
|
||||||
|
name: "Crop avatar",
|
||||||
|
type: "boolean",
|
||||||
|
default: false,
|
||||||
|
description: "Create crop container and cropping feature"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -436,7 +443,36 @@ var et2_avatar = (function(){ "use strict"; return et2_image.extend(
|
|||||||
var edit = jQuery(document.createElement('div'))
|
var edit = jQuery(document.createElement('div'))
|
||||||
.addClass('emlEdit')
|
.addClass('emlEdit')
|
||||||
.click(function(){
|
.click(function(){
|
||||||
// Todo
|
var buttons = [
|
||||||
|
{"button_id": 1,"text": 'save', id: 'save', image: 'check', "default":true},
|
||||||
|
{"button_id": 0,"text": 'cancel', id: 'cancel', image: 'cancelled'}
|
||||||
|
];
|
||||||
|
var dialog = function(_title, _value, _buttons, _egw_or_appname)
|
||||||
|
{
|
||||||
|
return et2_createWidget("dialog",
|
||||||
|
{
|
||||||
|
callback: function(_buttons, _value)
|
||||||
|
{
|
||||||
|
if (_buttons == 'save')
|
||||||
|
{
|
||||||
|
var canvas = jQuery('#_cropper_image').cropper('getCroppedCanvas');
|
||||||
|
self.image.attr('src', canvas.toDataURL("image/jpeg", 1.0));
|
||||||
|
}
|
||||||
|
},
|
||||||
|
title: _title||egw.lang('Input required'),
|
||||||
|
buttons: _buttons||et2_dialog.BUTTONS_OK_CANCEL,
|
||||||
|
value: {
|
||||||
|
content: _value
|
||||||
|
},
|
||||||
|
width: "90%",
|
||||||
|
height:"90%",
|
||||||
|
resizable: false,
|
||||||
|
position:"top+10",
|
||||||
|
template: egw.webserverUrl+'/api/templates/default/avatar_edit.xet?2'
|
||||||
|
}, et2_dialog._create_parent(_egw_or_appname));
|
||||||
|
};
|
||||||
|
|
||||||
|
dialog(egw.lang('Edit avatar'),{photo:self.options.contact_id},buttons);
|
||||||
})
|
})
|
||||||
.appendTo(eml);
|
.appendTo(eml);
|
||||||
|
|
||||||
@ -474,6 +510,16 @@ var et2_avatar = (function(){ "use strict"; return et2_image.extend(
|
|||||||
{
|
{
|
||||||
this._buildEditableLayer();
|
this._buildEditableLayer();
|
||||||
}
|
}
|
||||||
|
if (this.options.crop)
|
||||||
|
{
|
||||||
|
var cropped = jQuery(this.image).cropper({
|
||||||
|
aspectRatio: 1/1,
|
||||||
|
crop: function (e){
|
||||||
|
console.log (e);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
});}).call(this);
|
});}).call(this);
|
||||||
|
22
api/templates/default/avatar_edit.xet
Normal file
22
api/templates/default/avatar_edit.xet
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE overlay PUBLIC "-//Stylite AG//eTemplate 2//EN" "http://www.egroupware.org/etemplate2.dtd">
|
||||||
|
<!-- $Id$ -->
|
||||||
|
<overlay>
|
||||||
|
<template id="etemplate.dtd" template="" lang="" group="0" version="16.2">
|
||||||
|
<vbox>
|
||||||
|
|
||||||
|
<avatar crop="true" id="cropper_image" contact_id="$cont[photo]" width ="200" height="auto"/>
|
||||||
|
<hbox>
|
||||||
|
<buttononly id="rotate_reset" label="Reset" image="" background_image="1" onclick="jQuery('#_cropper_image').cropper('reset');"/>
|
||||||
|
<buttononly id="rotate_l" label="Rotate Left" image="recur" background_image="1" onclick="jQuery('#_cropper_image').cropper('rotate',-90);"/>
|
||||||
|
<buttononly id="rotate_r" label= "Rotate Right" image="reload" background_image="1" onclick="jQuery('#_cropper_image').cropper('rotate',90);"/>
|
||||||
|
<hbox>
|
||||||
|
<file id='upload_photo' label="upload new photo"/>
|
||||||
|
</hbox>
|
||||||
|
</hbox>
|
||||||
|
</vbox>
|
||||||
|
<styles>
|
||||||
|
|
||||||
|
</styles>
|
||||||
|
</template>
|
||||||
|
</overlay>
|
@ -31,6 +31,7 @@
|
|||||||
"bower-asset/fastclick":"1.0.*",
|
"bower-asset/fastclick":"1.0.*",
|
||||||
"bower-asset/jquery-touchswipe": "1.6.*",
|
"bower-asset/jquery-touchswipe": "1.6.*",
|
||||||
"bower-asset/jquery-ui":"=1.11.2",
|
"bower-asset/jquery-ui":"=1.11.2",
|
||||||
|
"bower-asset/cropper":"2.3.*",
|
||||||
"npm-asset/as-jqplot" : "1.0.*",
|
"npm-asset/as-jqplot" : "1.0.*",
|
||||||
"npm-asset/gridster":"0.5.*",
|
"npm-asset/gridster":"0.5.*",
|
||||||
"adldap2/adldap2": "=4.0.4"
|
"adldap2/adldap2": "=4.0.4"
|
||||||
|
62
composer.lock
generated
62
composer.lock
generated
@ -4,8 +4,8 @@
|
|||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"hash": "9a74cc9727567f9100d4d1311228aede",
|
"hash": "c53e37027e62153a377bb9adf13d2212",
|
||||||
"content-hash": "d6ed8efbe2b9261641cf2d9ca9f1d01b",
|
"content-hash": "5e2d4def7fa91436952c7aef101d4023",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "adldap2/adldap2",
|
"name": "adldap2/adldap2",
|
||||||
@ -57,6 +57,64 @@
|
|||||||
],
|
],
|
||||||
"time": "2016-07-14 18:11:24"
|
"time": "2016-07-14 18:11:24"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "bower-asset/cropper",
|
||||||
|
"version": "v2.3.4",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/fengyuanchen/cropper.git",
|
||||||
|
"reference": "30c58b29ee21010e17e58ebab165fbd84285c685"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/fengyuanchen/cropper/zipball/30c58b29ee21010e17e58ebab165fbd84285c685",
|
||||||
|
"reference": "30c58b29ee21010e17e58ebab165fbd84285c685",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"type": "bower-asset-library",
|
||||||
|
"extra": {
|
||||||
|
"bower-asset-main": [
|
||||||
|
"dist/cropper.js",
|
||||||
|
"dist/cropper.css"
|
||||||
|
],
|
||||||
|
"bower-asset-ignore": [
|
||||||
|
"**/.*",
|
||||||
|
"node_modules",
|
||||||
|
"bower_components",
|
||||||
|
"tests",
|
||||||
|
"test",
|
||||||
|
"examples",
|
||||||
|
"assets",
|
||||||
|
"demo",
|
||||||
|
"docs",
|
||||||
|
"gulpfile.js",
|
||||||
|
"CONTRIBUTING.md",
|
||||||
|
"ISSUE_TEMPLATE.md"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"description": "A simple jQuery image cropping plugin.",
|
||||||
|
"keywords": [
|
||||||
|
"crop",
|
||||||
|
"cropper",
|
||||||
|
"cropping",
|
||||||
|
"css",
|
||||||
|
"development",
|
||||||
|
"front-end",
|
||||||
|
"html",
|
||||||
|
"image",
|
||||||
|
"javascript",
|
||||||
|
"jquery",
|
||||||
|
"move",
|
||||||
|
"plugin",
|
||||||
|
"rotate",
|
||||||
|
"scale",
|
||||||
|
"web",
|
||||||
|
"zoom"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "bower-asset/fastclick",
|
"name": "bower-asset/fastclick",
|
||||||
"version": "v1.0.6",
|
"version": "v1.0.6",
|
||||||
|
Loading…
Reference in New Issue
Block a user