diff --git a/__manifest__.py b/__manifest__.py index f611e47..a844fd1 100755 --- a/__manifest__.py +++ b/__manifest__.py @@ -16,14 +16,17 @@ This module extends the Odoo Sign module to allow users to upload images as a fi ], 'assets': { 'web.assets_frontend': [ + 'sign_image_field/static/src/css/sign_image_field.css', 'sign_image_field/static/src/js/sign_image_upload.js', 'sign_image_field/static/src/xml/sign_items_image.xml', ], 'web.assets_backend': [ + 'sign_image_field/static/src/css/sign_image_field.css', 'sign_image_field/static/src/js/sign_image_upload.js', 'sign_image_field/static/src/xml/sign_items_image.xml', ], 'sign.assets_public_sign': [ + 'sign_image_field/static/src/css/sign_image_field.css', 'sign_image_field/static/src/js/sign_image_upload.js', 'sign_image_field/static/src/xml/sign_items_image.xml', ] diff --git a/data/sign_item_type_data.xml b/data/sign_item_type_data.xml index 78885c0..6e2a723 100755 --- a/data/sign_item_type_data.xml +++ b/data/sign_item_type_data.xml @@ -5,8 +5,8 @@ image fa-image Upload an image - Click to upload image - 0.2 - 0.05 + 📷 + 0.15 + 0.08 diff --git a/static/src/css/sign_image_field.css b/static/src/css/sign_image_field.css new file mode 100644 index 0000000..8e7e199 --- /dev/null +++ b/static/src/css/sign_image_field.css @@ -0,0 +1,43 @@ +/* Sign Image Field Styles */ + +.o_sign_sign_item[data-type="image"] { + border: 2px dashed #ccc; + background-color: #f9f9f9; + cursor: pointer; + transition: all 0.2s ease; +} + +.o_sign_sign_item[data-type="image"]:hover { + border-color: #007bff; + background-color: #f0f8ff; +} + +.o_sign_sign_item[data-type="image"] .o_placeholder, +.o_sign_sign_item .o_placeholder { + font-size: 12px !important; + color: #666 !important; + font-weight: normal !important; + white-space: nowrap !important; + overflow: hidden !important; + text-overflow: ellipsis !important; + max-width: 100% !important; + display: inline-block !important; + line-height: 1 !important; +} + +.o_sign_sign_item[data-type="image"] img { + max-width: 100%; + max-height: 100%; + object-fit: contain; + border-radius: 2px; +} + +/* Force reasonable font size for all image placeholders with highest specificity */ +div.o_sign_sign_item[data-type="image"] span.o_placeholder { + font-size: 12px !important; +} + +/* Override any inherited font sizes with maximum specificity */ +body div.o_sign_sign_item[data-type="image"] span.o_placeholder { + font-size: 12px !important; +} \ No newline at end of file diff --git a/static/src/js/sign_image_upload.js b/static/src/js/sign_image_upload.js index 2488af4..e8b80d1 100755 --- a/static/src/js/sign_image_upload.js +++ b/static/src/js/sign_image_upload.js @@ -7,6 +7,32 @@ patch(SignablePDFIframe.prototype, { enableCustom(signItem) { super.enableCustom(signItem); if (signItem.data.type === 'image') { + // Add data-type attribute for CSS targeting + signItem.el.setAttribute('data-type', 'image'); + + // Function to adjust font size based on container dimensions + const adjustFontSize = () => { + const placeholder = signItem.el.querySelector('.o_placeholder'); + if (placeholder) { + const containerHeight = signItem.el.offsetHeight; + const containerWidth = signItem.el.offsetWidth; + // Use the smaller dimension to calculate font size, but make it more reasonable + const minDimension = Math.min(containerHeight, containerWidth); + const fontSize = Math.max(10, Math.min(16, minDimension * 0.4)); + placeholder.style.fontSize = fontSize + 'px !important'; + placeholder.style.lineHeight = '1'; + } + }; + + // Initial font size adjustment + setTimeout(adjustFontSize, 100); + + // Watch for size changes + if (window.ResizeObserver) { + const resizeObserver = new ResizeObserver(adjustFontSize); + resizeObserver.observe(signItem.el); + } + const input = signItem.el.querySelector('.o_sign_image_upload_input'); if (!input) return; diff --git a/static/src/xml/sign_items_image.xml b/static/src/xml/sign_items_image.xml index 00d0ef3..0f9759f 100755 --- a/static/src/xml/sign_items_image.xml +++ b/static/src/xml/sign_items_image.xml @@ -5,13 +5,13 @@ -
+
- + @@ -21,13 +21,13 @@ -
-
+
+
- +