IDEMPIERE-3118 1005937 - Allow capture from webcam from Image field / Enhance existing image reference to support webcam and additional layout options

This commit is contained in:
Heng Sin Low 2016-05-30 15:40:44 -05:00
parent 451e16699d
commit ad70d07927
8 changed files with 577 additions and 22 deletions

View File

@ -0,0 +1,217 @@
SET SQLBLANKLINES ON
SET DEFINE OFF
-- May 6, 2016 4:30:09 PM MYT
-- 1005937 Create new Field Reference Type for scanned image upload and display
INSERT INTO AD_Column (AD_Column_ID,SeqNoSelection,IsSyncDatabase,Version,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsParent,FieldLength,IsSelectionColumn,IsKey,IsAutocomplete,IsAllowLogging,AD_Column_UU,Updated,IsUpdateable,ColumnName,Description,Help,Name,IsAllowCopy,IsActive,CreatedBy,UpdatedBy,IsToolbarButton,IsAlwaysUpdateable,AD_Client_ID,AD_Org_ID,Created,EntityType,IsEncrypted,IsSecure,FKConstraintType,AD_Element_ID,AD_Reference_ID,AD_Table_ID) VALUES (212756,0,'N',0,'N','N','N',0,'N',22,'N','N','N','Y','82704f4a-b798-4dbc-81ca-14b1a1a45506',TO_DATE('2016-05-06 16:30:02','YYYY-MM-DD HH24:MI:SS'),'Y','AD_Image_ID','Image or Icon','Images and Icon can be used to display supported graphic formats (gif, jpg, png).
You can either load the image (in the database) or point to a graphic via a URI (i.e. it can point to a resource, http address)','Image','N','Y',100,100,'N','N',0,0,TO_DATE('2016-05-06 16:30:02','YYYY-MM-DD HH24:MI:SS'),'U','N','N','N',1639,32,114)
;
-- May 6, 2016 4:30:24 PM MYT
UPDATE AD_Column SET FKConstraintType='N', FKConstraintName='ADImage_ADUser',Updated=TO_DATE('2016-05-06 16:30:24','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=212756
;
-- May 6, 2016 4:30:24 PM MYT
ALTER TABLE AD_User ADD AD_Image_ID NUMBER(10) DEFAULT NULL
;
-- May 6, 2016 4:30:25 PM MYT
ALTER TABLE AD_User ADD CONSTRAINT ADImage_ADUser FOREIGN KEY (AD_Image_ID) REFERENCES ad_image(ad_image_id) DEFERRABLE INITIALLY DEFERRED
;
-- May 6, 2016 4:31:04 PM MYT
UPDATE AD_Column SET EntityType='D',Updated=TO_DATE('2016-05-06 16:31:04','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=212756
;
-- May 6, 2016 4:31:30 PM MYT
INSERT INTO AD_Style (AD_Style_ID,AD_Style_UU,Name,AD_Client_ID,AD_Org_ID,Created,CreatedBy,IsActive,Updated,UpdatedBy) VALUES (200000,'2761af49-8165-416c-8522-b1acc548e492','User Image',0,0,TO_DATE('2016-05-06 16:31:24','YYYY-MM-DD HH24:MI:SS'),100,'Y',TO_DATE('2016-05-06 16:31:24','YYYY-MM-DD HH24:MI:SS'),100)
;
-- May 6, 2016 4:33:40 PM MYT
INSERT INTO AD_StyleLine (InlineStyle,AD_StyleLine_UU,AD_Client_ID,AD_Org_ID,Created,CreatedBy,IsActive,Updated,UpdatedBy,AD_StyleLine_ID,DisplayLogic,Line,AD_Style_ID) VALUES ('width: 320px; height: 240px; position: absolute; right: 0;','ed12951e-c319-4242-9f76-e53709e1d53b',0,0,TO_DATE('2016-05-06 16:33:38','YYYY-MM-DD HH24:MI:SS'),100,'Y',TO_DATE('2016-05-06 16:33:38','YYYY-MM-DD HH24:MI:SS'),100,200000,'@_Editor_IsGridView@=N',10,200000)
;
-- May 6, 2016 4:42:03 PM MYT
INSERT INTO AD_Field (SortNo,AD_Field_ID,IsEncrypted,DisplayLength,IsSameLine,IsHeading,SeqNo,IsCentrallyMaintained,IsReadOnly,Help,AD_Org_ID,Updated,Description,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,CreatedBy,UpdatedBy,IsActive,IsDisplayedGrid,SeqNoGrid,XPosition,IsQuickEntry,AD_Client_ID,Created,ColumnSpan,NumLines,IsAdvancedField,IsDefaultFocus,AD_Column_ID,EntityType,AD_Tab_ID,AD_FieldStyle_ID) VALUES (0,204217,'N',0,'N','N',3020,'Y','N','Images and Icon can be used to display supported graphic formats (gif, jpg, png).
You can either load the image (in the database) or point to a graphic via a URI (i.e. it can point to a resource, http address)',0,TO_DATE('2016-05-06 16:41:57','YYYY-MM-DD HH24:MI:SS'),'Image or Icon','Image','4e7be56e-d613-4efe-af41-40dd4825cd4b','Y','Y',100,100,'Y','Y',3020,4,'N',0,TO_DATE('2016-05-06 16:41:57','YYYY-MM-DD HH24:MI:SS'),3,1,'N','N',212756,'D',118,200000)
;
-- May 6, 2016 4:44:15 PM MYT
UPDATE AD_Field SET SeqNo=20, IsDisplayed='Y', XPosition=4,Updated=TO_DATE('2016-05-06 16:44:15','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=204217
;
-- May 6, 2016 4:44:15 PM MYT
UPDATE AD_Field SET SeqNo=30, IsDisplayed='Y', XPosition=1,Updated=TO_DATE('2016-05-06 16:44:15','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=2001
;
-- May 6, 2016 4:44:15 PM MYT
UPDATE AD_Field SET SeqNo=40,Updated=TO_DATE('2016-05-06 16:44:15','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=300
;
-- May 6, 2016 4:44:15 PM MYT
UPDATE AD_Field SET SeqNo=50, IsDisplayed='Y', XPosition=1,Updated=TO_DATE('2016-05-06 16:44:15','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13755
;
-- May 6, 2016 4:44:16 PM MYT
UPDATE AD_Field SET SeqNo=60, ColumnSpan=2,Updated=TO_DATE('2016-05-06 16:44:16','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=301
;
-- May 6, 2016 4:44:16 PM MYT
UPDATE AD_Field SET SeqNo=70, ColumnSpan=2,Updated=TO_DATE('2016-05-06 16:44:16','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=6522
;
-- May 6, 2016 4:44:16 PM MYT
UPDATE AD_Field SET SeqNo=80,Updated=TO_DATE('2016-05-06 16:44:16','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=303
;
-- May 6, 2016 4:44:16 PM MYT
UPDATE AD_Field SET SeqNo=90,Updated=TO_DATE('2016-05-06 16:44:16','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=4623
;
-- May 6, 2016 4:44:17 PM MYT
UPDATE AD_Field SET SeqNo=100, IsDisplayed='Y', XPosition=1,Updated=TO_DATE('2016-05-06 16:44:17','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=6516
;
-- May 6, 2016 4:44:17 PM MYT
UPDATE AD_Field SET SeqNo=110,Updated=TO_DATE('2016-05-06 16:44:17','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=4260
;
-- May 6, 2016 4:44:17 PM MYT
UPDATE AD_Field SET SeqNo=120,Updated=TO_DATE('2016-05-06 16:44:17','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=302
;
-- May 6, 2016 4:44:17 PM MYT
UPDATE AD_Field SET SeqNo=130,Updated=TO_DATE('2016-05-06 16:44:17','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=6521
;
-- May 6, 2016 4:44:18 PM MYT
UPDATE AD_Field SET SeqNo=140,Updated=TO_DATE('2016-05-06 16:44:18','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=52010
;
-- May 6, 2016 4:44:18 PM MYT
UPDATE AD_Field SET SeqNo=150,Updated=TO_DATE('2016-05-06 16:44:18','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=6515
;
-- May 6, 2016 4:44:18 PM MYT
UPDATE AD_Field SET SeqNo=160,Updated=TO_DATE('2016-05-06 16:44:18','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=6517
;
-- May 6, 2016 4:44:18 PM MYT
UPDATE AD_Field SET SeqNo=170,Updated=TO_DATE('2016-05-06 16:44:18','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=6514
;
-- May 6, 2016 4:44:18 PM MYT
UPDATE AD_Field SET SeqNo=180,Updated=TO_DATE('2016-05-06 16:44:18','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=6518
;
-- May 6, 2016 4:44:19 PM MYT
UPDATE AD_Field SET SeqNo=190,Updated=TO_DATE('2016-05-06 16:44:19','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=11679
;
-- May 6, 2016 4:44:19 PM MYT
UPDATE AD_Field SET SeqNo=200,Updated=TO_DATE('2016-05-06 16:44:19','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=12324
;
-- May 6, 2016 4:44:19 PM MYT
UPDATE AD_Field SET SeqNo=210,Updated=TO_DATE('2016-05-06 16:44:19','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=12323
;
-- May 6, 2016 4:44:19 PM MYT
UPDATE AD_Field SET SeqNo=220,Updated=TO_DATE('2016-05-06 16:44:19','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=5883
;
-- May 6, 2016 4:44:19 PM MYT
UPDATE AD_Field SET SeqNo=230,Updated=TO_DATE('2016-05-06 16:44:19','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=5884
;
-- May 6, 2016 4:44:20 PM MYT
UPDATE AD_Field SET SeqNo=240,Updated=TO_DATE('2016-05-06 16:44:20','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=4261
;
-- May 6, 2016 4:44:20 PM MYT
UPDATE AD_Field SET SeqNo=260,Updated=TO_DATE('2016-05-06 16:44:20','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200072
;
-- May 6, 2016 4:44:20 PM MYT
UPDATE AD_Field SET SeqNo=270,Updated=TO_DATE('2016-05-06 16:44:20','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=6513
;
-- May 6, 2016 4:44:20 PM MYT
UPDATE AD_Field SET SeqNo=280,Updated=TO_DATE('2016-05-06 16:44:20','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=11525
;
-- May 6, 2016 4:44:20 PM MYT
UPDATE AD_Field SET SeqNo=290,Updated=TO_DATE('2016-05-06 16:44:20','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=8342
;
-- May 6, 2016 4:44:21 PM MYT
UPDATE AD_Field SET SeqNo=300,Updated=TO_DATE('2016-05-06 16:44:21','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=6519
;
-- May 6, 2016 4:44:21 PM MYT
UPDATE AD_Field SET SeqNo=310,Updated=TO_DATE('2016-05-06 16:44:21','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200405
;
-- May 6, 2016 4:44:21 PM MYT
UPDATE AD_Field SET SeqNo=320,Updated=TO_DATE('2016-05-06 16:44:21','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200400
;
-- May 6, 2016 4:44:21 PM MYT
UPDATE AD_Field SET SeqNo=330,Updated=TO_DATE('2016-05-06 16:44:21','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200403
;
-- May 6, 2016 4:44:22 PM MYT
UPDATE AD_Field SET SeqNo=340,Updated=TO_DATE('2016-05-06 16:44:22','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200401
;
-- May 6, 2016 4:44:22 PM MYT
UPDATE AD_Field SET SeqNo=350,Updated=TO_DATE('2016-05-06 16:44:22','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200406
;
-- May 6, 2016 4:44:22 PM MYT
UPDATE AD_Field SET SeqNo=360,Updated=TO_DATE('2016-05-06 16:44:22','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200402
;
-- May 6, 2016 4:44:22 PM MYT
UPDATE AD_Field SET SeqNo=370,Updated=TO_DATE('2016-05-06 16:44:22','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200474
;
-- May 6, 2016 4:44:22 PM MYT
UPDATE AD_Field SET SeqNo=380,Updated=TO_DATE('2016-05-06 16:44:22','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=1000975
;
-- May 6, 2016 4:44:23 PM MYT
UPDATE AD_Field SET SeqNo=390,Updated=TO_DATE('2016-05-06 16:44:23','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=1000976
;
-- May 6, 2016 4:44:23 PM MYT
UPDATE AD_Field SET SeqNo=400,Updated=TO_DATE('2016-05-06 16:44:23','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=1000977
;
-- May 6, 2016 4:44:23 PM MYT
UPDATE AD_Field SET SeqNo=410,Updated=TO_DATE('2016-05-06 16:44:23','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=1000978
;
-- May 6, 2016 4:44:23 PM MYT
UPDATE AD_Field SET SeqNo=420,Updated=TO_DATE('2016-05-06 16:44:23','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=1003008
;
-- May 6, 2016 4:44:24 PM MYT
UPDATE AD_Field SET SeqNo=430,Updated=TO_DATE('2016-05-06 16:44:24','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=1003005
;
-- May 6, 2016 4:44:24 PM MYT
UPDATE AD_Field SET SeqNo=0,Updated=TO_DATE('2016-05-06 16:44:24','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=10491
;
-- May 6, 2016 4:44:24 PM MYT
UPDATE AD_Field SET SeqNo=0,Updated=TO_DATE('2016-05-06 16:44:24','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=6520
;
-- May 6, 2016 4:44:24 PM MYT
UPDATE AD_Field SET SeqNo=0,Updated=TO_DATE('2016-05-06 16:44:24','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=1003173
;
SELECT register_migration_script('201605061900_Ticket_1005937.sql') FROM dual
;

View File

@ -0,0 +1,214 @@
-- May 6, 2016 4:30:09 PM MYT
-- 1005937 Create new Field Reference Type for scanned image upload and display
INSERT INTO AD_Column (AD_Column_ID,SeqNoSelection,IsSyncDatabase,Version,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsParent,FieldLength,IsSelectionColumn,IsKey,IsAutocomplete,IsAllowLogging,AD_Column_UU,Updated,IsUpdateable,ColumnName,Description,Help,Name,IsAllowCopy,IsActive,CreatedBy,UpdatedBy,IsToolbarButton,IsAlwaysUpdateable,AD_Client_ID,AD_Org_ID,Created,EntityType,IsEncrypted,IsSecure,FKConstraintType,AD_Element_ID,AD_Reference_ID,AD_Table_ID) VALUES (212756,0,'N',0,'N','N','N',0,'N',22,'N','N','N','Y','82704f4a-b798-4dbc-81ca-14b1a1a45506',TO_TIMESTAMP('2016-05-06 16:30:02','YYYY-MM-DD HH24:MI:SS'),'Y','AD_Image_ID','Image or Icon','Images and Icon can be used to display supported graphic formats (gif, jpg, png).
You can either load the image (in the database) or point to a graphic via a URI (i.e. it can point to a resource, http address)','Image','N','Y',100,100,'N','N',0,0,TO_TIMESTAMP('2016-05-06 16:30:02','YYYY-MM-DD HH24:MI:SS'),'U','N','N','N',1639,32,114)
;
-- May 6, 2016 4:30:24 PM MYT
UPDATE AD_Column SET FKConstraintType='N', FKConstraintName='ADImage_ADUser',Updated=TO_TIMESTAMP('2016-05-06 16:30:24','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=212756
;
-- May 6, 2016 4:30:24 PM MYT
ALTER TABLE AD_User ADD COLUMN AD_Image_ID NUMERIC(10) DEFAULT NULL
;
-- May 6, 2016 4:30:25 PM MYT
ALTER TABLE AD_User ADD CONSTRAINT ADImage_ADUser FOREIGN KEY (AD_Image_ID) REFERENCES ad_image(ad_image_id) DEFERRABLE INITIALLY DEFERRED
;
-- May 6, 2016 4:31:04 PM MYT
UPDATE AD_Column SET EntityType='D',Updated=TO_TIMESTAMP('2016-05-06 16:31:04','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=212756
;
-- May 6, 2016 4:31:30 PM MYT
INSERT INTO AD_Style (AD_Style_ID,AD_Style_UU,Name,AD_Client_ID,AD_Org_ID,Created,CreatedBy,IsActive,Updated,UpdatedBy) VALUES (200000,'2761af49-8165-416c-8522-b1acc548e492','User Image',0,0,TO_TIMESTAMP('2016-05-06 16:31:24','YYYY-MM-DD HH24:MI:SS'),100,'Y',TO_TIMESTAMP('2016-05-06 16:31:24','YYYY-MM-DD HH24:MI:SS'),100)
;
-- May 6, 2016 4:33:40 PM MYT
INSERT INTO AD_StyleLine (InlineStyle,AD_StyleLine_UU,AD_Client_ID,AD_Org_ID,Created,CreatedBy,IsActive,Updated,UpdatedBy,AD_StyleLine_ID,DisplayLogic,Line,AD_Style_ID) VALUES ('width: 320px; height: 240px; position: absolute; right: 0;','ed12951e-c319-4242-9f76-e53709e1d53b',0,0,TO_TIMESTAMP('2016-05-06 16:33:38','YYYY-MM-DD HH24:MI:SS'),100,'Y',TO_TIMESTAMP('2016-05-06 16:33:38','YYYY-MM-DD HH24:MI:SS'),100,200000,'@_Editor_IsGridView@=N',10,200000)
;
-- May 6, 2016 4:42:03 PM MYT
INSERT INTO AD_Field (SortNo,AD_Field_ID,IsEncrypted,DisplayLength,IsSameLine,IsHeading,SeqNo,IsCentrallyMaintained,IsReadOnly,Help,AD_Org_ID,Updated,Description,Name,AD_Field_UU,IsDisplayed,IsFieldOnly,CreatedBy,UpdatedBy,IsActive,IsDisplayedGrid,SeqNoGrid,XPosition,IsQuickEntry,AD_Client_ID,Created,ColumnSpan,NumLines,IsAdvancedField,IsDefaultFocus,AD_Column_ID,EntityType,AD_Tab_ID,AD_FieldStyle_ID) VALUES (0,204217,'N',0,'N','N',3020,'Y','N','Images and Icon can be used to display supported graphic formats (gif, jpg, png).
You can either load the image (in the database) or point to a graphic via a URI (i.e. it can point to a resource, http address)',0,TO_TIMESTAMP('2016-05-06 16:41:57','YYYY-MM-DD HH24:MI:SS'),'Image or Icon','Image','4e7be56e-d613-4efe-af41-40dd4825cd4b','Y','Y',100,100,'Y','Y',3020,4,'N',0,TO_TIMESTAMP('2016-05-06 16:41:57','YYYY-MM-DD HH24:MI:SS'),3,1,'N','N',212756,'D',118,200000)
;
-- May 6, 2016 4:44:15 PM MYT
UPDATE AD_Field SET SeqNo=20, IsDisplayed='Y', XPosition=4,Updated=TO_TIMESTAMP('2016-05-06 16:44:15','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=204217
;
-- May 6, 2016 4:44:15 PM MYT
UPDATE AD_Field SET SeqNo=30, IsDisplayed='Y', XPosition=1,Updated=TO_TIMESTAMP('2016-05-06 16:44:15','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=2001
;
-- May 6, 2016 4:44:15 PM MYT
UPDATE AD_Field SET SeqNo=40,Updated=TO_TIMESTAMP('2016-05-06 16:44:15','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=300
;
-- May 6, 2016 4:44:15 PM MYT
UPDATE AD_Field SET SeqNo=50, IsDisplayed='Y', XPosition=1,Updated=TO_TIMESTAMP('2016-05-06 16:44:15','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13755
;
-- May 6, 2016 4:44:16 PM MYT
UPDATE AD_Field SET SeqNo=60, ColumnSpan=2,Updated=TO_TIMESTAMP('2016-05-06 16:44:16','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=301
;
-- May 6, 2016 4:44:16 PM MYT
UPDATE AD_Field SET SeqNo=70, ColumnSpan=2,Updated=TO_TIMESTAMP('2016-05-06 16:44:16','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=6522
;
-- May 6, 2016 4:44:16 PM MYT
UPDATE AD_Field SET SeqNo=80,Updated=TO_TIMESTAMP('2016-05-06 16:44:16','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=303
;
-- May 6, 2016 4:44:16 PM MYT
UPDATE AD_Field SET SeqNo=90,Updated=TO_TIMESTAMP('2016-05-06 16:44:16','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=4623
;
-- May 6, 2016 4:44:17 PM MYT
UPDATE AD_Field SET SeqNo=100, IsDisplayed='Y', XPosition=1,Updated=TO_TIMESTAMP('2016-05-06 16:44:17','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=6516
;
-- May 6, 2016 4:44:17 PM MYT
UPDATE AD_Field SET SeqNo=110,Updated=TO_TIMESTAMP('2016-05-06 16:44:17','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=4260
;
-- May 6, 2016 4:44:17 PM MYT
UPDATE AD_Field SET SeqNo=120,Updated=TO_TIMESTAMP('2016-05-06 16:44:17','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=302
;
-- May 6, 2016 4:44:17 PM MYT
UPDATE AD_Field SET SeqNo=130,Updated=TO_TIMESTAMP('2016-05-06 16:44:17','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=6521
;
-- May 6, 2016 4:44:18 PM MYT
UPDATE AD_Field SET SeqNo=140,Updated=TO_TIMESTAMP('2016-05-06 16:44:18','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=52010
;
-- May 6, 2016 4:44:18 PM MYT
UPDATE AD_Field SET SeqNo=150,Updated=TO_TIMESTAMP('2016-05-06 16:44:18','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=6515
;
-- May 6, 2016 4:44:18 PM MYT
UPDATE AD_Field SET SeqNo=160,Updated=TO_TIMESTAMP('2016-05-06 16:44:18','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=6517
;
-- May 6, 2016 4:44:18 PM MYT
UPDATE AD_Field SET SeqNo=170,Updated=TO_TIMESTAMP('2016-05-06 16:44:18','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=6514
;
-- May 6, 2016 4:44:18 PM MYT
UPDATE AD_Field SET SeqNo=180,Updated=TO_TIMESTAMP('2016-05-06 16:44:18','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=6518
;
-- May 6, 2016 4:44:19 PM MYT
UPDATE AD_Field SET SeqNo=190,Updated=TO_TIMESTAMP('2016-05-06 16:44:19','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=11679
;
-- May 6, 2016 4:44:19 PM MYT
UPDATE AD_Field SET SeqNo=200,Updated=TO_TIMESTAMP('2016-05-06 16:44:19','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=12324
;
-- May 6, 2016 4:44:19 PM MYT
UPDATE AD_Field SET SeqNo=210,Updated=TO_TIMESTAMP('2016-05-06 16:44:19','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=12323
;
-- May 6, 2016 4:44:19 PM MYT
UPDATE AD_Field SET SeqNo=220,Updated=TO_TIMESTAMP('2016-05-06 16:44:19','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=5883
;
-- May 6, 2016 4:44:19 PM MYT
UPDATE AD_Field SET SeqNo=230,Updated=TO_TIMESTAMP('2016-05-06 16:44:19','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=5884
;
-- May 6, 2016 4:44:20 PM MYT
UPDATE AD_Field SET SeqNo=240,Updated=TO_TIMESTAMP('2016-05-06 16:44:20','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=4261
;
-- May 6, 2016 4:44:20 PM MYT
UPDATE AD_Field SET SeqNo=260,Updated=TO_TIMESTAMP('2016-05-06 16:44:20','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200072
;
-- May 6, 2016 4:44:20 PM MYT
UPDATE AD_Field SET SeqNo=270,Updated=TO_TIMESTAMP('2016-05-06 16:44:20','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=6513
;
-- May 6, 2016 4:44:20 PM MYT
UPDATE AD_Field SET SeqNo=280,Updated=TO_TIMESTAMP('2016-05-06 16:44:20','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=11525
;
-- May 6, 2016 4:44:20 PM MYT
UPDATE AD_Field SET SeqNo=290,Updated=TO_TIMESTAMP('2016-05-06 16:44:20','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=8342
;
-- May 6, 2016 4:44:21 PM MYT
UPDATE AD_Field SET SeqNo=300,Updated=TO_TIMESTAMP('2016-05-06 16:44:21','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=6519
;
-- May 6, 2016 4:44:21 PM MYT
UPDATE AD_Field SET SeqNo=310,Updated=TO_TIMESTAMP('2016-05-06 16:44:21','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200405
;
-- May 6, 2016 4:44:21 PM MYT
UPDATE AD_Field SET SeqNo=320,Updated=TO_TIMESTAMP('2016-05-06 16:44:21','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200400
;
-- May 6, 2016 4:44:21 PM MYT
UPDATE AD_Field SET SeqNo=330,Updated=TO_TIMESTAMP('2016-05-06 16:44:21','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200403
;
-- May 6, 2016 4:44:22 PM MYT
UPDATE AD_Field SET SeqNo=340,Updated=TO_TIMESTAMP('2016-05-06 16:44:22','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200401
;
-- May 6, 2016 4:44:22 PM MYT
UPDATE AD_Field SET SeqNo=350,Updated=TO_TIMESTAMP('2016-05-06 16:44:22','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200406
;
-- May 6, 2016 4:44:22 PM MYT
UPDATE AD_Field SET SeqNo=360,Updated=TO_TIMESTAMP('2016-05-06 16:44:22','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200402
;
-- May 6, 2016 4:44:22 PM MYT
UPDATE AD_Field SET SeqNo=370,Updated=TO_TIMESTAMP('2016-05-06 16:44:22','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200474
;
-- May 6, 2016 4:44:22 PM MYT
UPDATE AD_Field SET SeqNo=380,Updated=TO_TIMESTAMP('2016-05-06 16:44:22','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=1000975
;
-- May 6, 2016 4:44:23 PM MYT
UPDATE AD_Field SET SeqNo=390,Updated=TO_TIMESTAMP('2016-05-06 16:44:23','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=1000976
;
-- May 6, 2016 4:44:23 PM MYT
UPDATE AD_Field SET SeqNo=400,Updated=TO_TIMESTAMP('2016-05-06 16:44:23','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=1000977
;
-- May 6, 2016 4:44:23 PM MYT
UPDATE AD_Field SET SeqNo=410,Updated=TO_TIMESTAMP('2016-05-06 16:44:23','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=1000978
;
-- May 6, 2016 4:44:23 PM MYT
UPDATE AD_Field SET SeqNo=420,Updated=TO_TIMESTAMP('2016-05-06 16:44:23','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=1003008
;
-- May 6, 2016 4:44:24 PM MYT
UPDATE AD_Field SET SeqNo=430,Updated=TO_TIMESTAMP('2016-05-06 16:44:24','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=1003005
;
-- May 6, 2016 4:44:24 PM MYT
UPDATE AD_Field SET SeqNo=0,Updated=TO_TIMESTAMP('2016-05-06 16:44:24','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=10491
;
-- May 6, 2016 4:44:24 PM MYT
UPDATE AD_Field SET SeqNo=0,Updated=TO_TIMESTAMP('2016-05-06 16:44:24','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=6520
;
-- May 6, 2016 4:44:24 PM MYT
UPDATE AD_Field SET SeqNo=0,Updated=TO_TIMESTAMP('2016-05-06 16:44:24','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=1003173
;
SELECT register_migration_script('201605061900_Ticket_1005937.sql') FROM dual
;

View File

@ -40,6 +40,8 @@ Copyright (C) 2007 Ashley G Ramdass (ADempiere WebUI).
<javascript src="/js/window.js" charset="UTF-8"/>
<javascript src="/js/html2canvas.js" charset="UTF-8"/>
+ <javascript src="/js/jquery.maskedinput.js" charset="UTF-8"/>
<javascript src="/js/photobooth_min.js" charset="UTF-8"/>
<javascript package="jawwa.atmosphere" merge="false" />

View File

@ -55,7 +55,6 @@ import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.event.Events;
import org.zkoss.zul.Combobox;
import org.zkoss.zul.Image;
import org.zkoss.zul.Menuitem;
import org.zkoss.zul.Textbox;
import org.zkoss.zul.impl.InputElement;
@ -97,7 +96,7 @@ public abstract class WEditor implements EventListener<Event>, PropertyChangeLis
protected WEditorPopupMenu popupMenu;
private boolean tableEditor;
protected boolean tableEditor;
private boolean isProcessParameter;
@ -632,10 +631,6 @@ public abstract class WEditor implements EventListener<Event>, PropertyChangeLis
btn.setZclass("form-button " + zclass);
}
}
} else if (getComponent() instanceof Image) {
Image image = (Image) getComponent();
image.setWidth("24px");
image.setHeight("24px");
} else {
if (!tableEditor) {
if (getComponent() instanceof InputElement) {

View File

@ -16,6 +16,7 @@ package org.adempiere.webui.editor;
import java.util.logging.Level;
import org.adempiere.webui.LayoutUtils;
import org.adempiere.webui.event.DialogEvents;
import org.adempiere.webui.event.ValueChangeEvent;
import org.adempiere.webui.window.WImageDialog;
@ -46,7 +47,7 @@ public class WImageEditor extends WEditor
private boolean m_mandatory;
private boolean readwrite;
/** Logger */
private static CLogger log = CLogger.getCLogger(WImageEditor.class);
@ -65,6 +66,7 @@ public class WImageEditor extends WEditor
{
AImage img = null;
getComponent().setContent(img);
getComponent().setSclass("image-field");
}
@Override
@ -102,10 +104,11 @@ public class WImageEditor extends WEditor
@Override
public void setReadWrite(boolean readWrite) {
this.readwrite = readWrite;
if (readWrite)
getComponent().setStyle("cursor: pointer; border: 1px solid;");
else
getComponent().setStyle("cursor: default; border: none;");
if (readwrite) {
LayoutUtils.removeSclass("image-field-readonly", getComponent());
} else {
LayoutUtils.addSclass("image-field-readonly", getComponent());
}
}
@Override
@ -181,4 +184,13 @@ public class WImageEditor extends WEditor
});
}
}
/* (non-Javadoc)
* @see org.adempiere.webui.editor.WEditor#fillHorizontal()
*/
@Override
public void fillHorizontal() {
// getComponent().setWidth(defaultWidth);
// getComponent().setHeight(defaultHeight);
}
}

View File

@ -24,26 +24,31 @@ import org.adempiere.webui.LayoutUtils;
import org.adempiere.webui.apps.AEnv;
import org.adempiere.webui.component.Button;
import org.adempiere.webui.component.ConfirmPanel;
import org.adempiere.webui.component.Label;
import org.adempiere.webui.component.Panel;
import org.adempiere.webui.component.Textbox;
import org.adempiere.webui.component.Window;
import org.apache.commons.codec.binary.Base64;
import org.compiere.model.MImage;
import org.compiere.util.CLogger;
import org.compiere.util.Env;
import org.compiere.util.Msg;
import org.compiere.util.Util;
import org.zkoss.image.AImage;
import org.zkoss.util.media.Media;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.event.Events;
import org.zkoss.zk.ui.event.UploadEvent;
import org.zkoss.zk.ui.util.Clients;
import org.zkoss.zul.Borderlayout;
import org.zkoss.zul.Center;
import org.zkoss.zul.Div;
import org.zkoss.zul.Hbox;
import org.zkoss.zul.Image;
import org.zkoss.zul.North;
import org.zkoss.zul.Separator;
import org.zkoss.zul.South;
import org.zkoss.zul.Space;
/**
* Base on the original Swing Image Dialog.
@ -95,7 +100,7 @@ public class WImageDialog extends Window implements EventListener<Event>
}
}
fileButton.setLabel(m_mImage.getName());
fileNameTextbox.setValue(m_mImage.getName());
AEnv.showCenterScreen(this);
} // WImageDialog
@ -107,12 +112,17 @@ public class WImageDialog extends Window implements EventListener<Event>
/** */
private Borderlayout mainLayout = new Borderlayout();
private Panel parameterPanel = new Panel();
private Label fileLabel = new Label();
private Button fileButton = new Button();
private Button captureButton = new Button();
private Image image = new Image();
private ConfirmPanel confirmPanel = new ConfirmPanel(true,false,true,false,false,false);
private boolean cancel = false;
private Textbox fileNameTextbox = new Textbox();
private Div captureDiv;
private String defaultNameForCaptureImage = "CapturedImage";
private Button cancelCaptureButton;
/**
* Static Init
* @throws Exception
@ -121,19 +131,35 @@ public class WImageDialog extends Window implements EventListener<Event>
{
this.setSclass("popup-dialog");
this.setBorder("normal");
this.setWidth("450px");
this.setHeight("550px");
this.setWidth("640px");
this.setHeight("540px");
this.setShadow(true);
this.setAttribute(Window.MODE_KEY, Window.MODE_HIGHLIGHTED);
this.setSizable(true);
this.setStyle("position: relative;");
captureDiv = new Div();
this.appendChild(captureDiv);
captureDiv.setStyle("position: absolute;");
captureDiv.setHeight("480px");
captureDiv.setWidth("640px");
captureDiv.setVisible(false);
captureDiv.addEventListener("onCaptureImage", this);
cancelCaptureButton = new Button(Util.cleanAmp(Msg.getMsg(Env.getCtx(), "Cancel")));
LayoutUtils.addSclass("txt-btn", cancelCaptureButton);
cancelCaptureButton.setStyle("position: absolute; bottom: 5px; right: 3px;");
this.appendChild(cancelCaptureButton);
cancelCaptureButton.addEventListener(Events.ON_CLICK, this);
cancelCaptureButton.setVisible(false);
mainLayout.setParent(this);
mainLayout.setHflex("1");
mainLayout.setVflex("1");
fileLabel.setValue(Msg.getMsg(Env.getCtx(), "SelectFile") + ": ");
fileButton.setLabel("-");
fileButton.setLabel("Upload");
LayoutUtils.addSclass("txt-btn", fileButton);
captureButton.setLabel("Capture");
LayoutUtils.addSclass("txt-btn", captureButton);
North north = new North();
north.setParent(mainLayout);
@ -142,8 +168,11 @@ public class WImageDialog extends Window implements EventListener<Event>
Hbox hbox = new Hbox();
hbox.setAlign("center");
hbox.setPack("start");
hbox.appendChild(fileLabel);
hbox.appendChild(fileButton);
hbox.appendChild(new Space());
hbox.appendChild(captureButton);
hbox.appendChild(new Space());
hbox.appendChild(fileNameTextbox);
parameterPanel.setStyle("padding: 5px");
parameterPanel.appendChild(hbox);
@ -167,6 +196,7 @@ public class WImageDialog extends Window implements EventListener<Event>
//
fileButton.setUpload(AdempiereWebUI.getUploadSetting());
fileButton.addEventListener(Events.ON_UPLOAD, this);
captureButton.addEventListener(Events.ON_CLICK, this);
confirmPanel.addActionListener(Events.ON_CLICK, this);
addEventListener(Events.ON_UPLOAD, this);
@ -182,6 +212,8 @@ public class WImageDialog extends Window implements EventListener<Event>
{
if (image.getContent() != null)
{
if (!Util.isEmpty(fileNameTextbox.getValue()))
m_mImage.setName(fileNameTextbox.getValue());
m_mImage.saveEx();
}
else if (m_mImage != null && m_mImage.getAD_Image_ID() > 0)
@ -201,7 +233,50 @@ public class WImageDialog extends Window implements EventListener<Event>
{
AImage img = null;
image.setContent(img);
fileButton.setLabel("-");
fileNameTextbox.setValue(null);
}
else if (e.getTarget() == captureButton)
{
captureDiv.setVisible(true);
cancelCaptureButton.setVisible(true);
mainLayout.setVisible(false);
String script = "var wgt = zk.Widget.$('#"+captureDiv.getUuid()+"');";
script = script + "jq(wgt).photobooth(); ";
script = script + "jq(wgt).bind( 'image', function( event, dataUrl ){ zAu.send(new zk.Event(wgt, 'onCaptureImage', dataUrl, {toServer:true})); });";
Clients.evalJavaScript(script);
}
else if (e.getName().equals("onCaptureImage"))
{
captureDiv.setVisible(false);
cancelCaptureButton.setVisible(false);
mainLayout.setVisible(true);
String dataUrl = (String) e.getData();
if (!Util.isEmpty(dataUrl))
{
String encodingPrefix = "base64,";
int contentStartIndex = dataUrl.indexOf(encodingPrefix) + encodingPrefix.length();
byte[] imageData = Base64.decodeBase64(dataUrl.substring(contentStartIndex).getBytes());
AImage img = new AImage(defaultNameForCaptureImage, imageData);
image.setContent(img);
if (m_mImage == null)
m_mImage = MImage.get (Env.getCtx(), 0);
m_mImage.setName(defaultNameForCaptureImage);
m_mImage.setBinaryData(imageData);
fileNameTextbox.setValue(defaultNameForCaptureImage);
}
String script = "var wgt = zk.Widget.$('#"+captureDiv.getUuid()+"');";
script = script + "jq(wgt).data( 'photobooth').destroy(); ";
Clients.evalJavaScript(script);
}
else if (e.getTarget() == cancelCaptureButton)
{
captureDiv.setVisible(false);
cancelCaptureButton.setVisible(false);
mainLayout.setVisible(true);
String script = "var wgt = zk.Widget.$('#"+captureDiv.getUuid()+"');";
script = script + "jq(wgt).data( 'photobooth').destroy(); ";
Clients.evalJavaScript(script);
}
}
@ -235,7 +310,7 @@ public class WImageDialog extends Window implements EventListener<Event>
}
// OK
fileButton.setLabel(imageFile.getName());
fileNameTextbox.setValue(imageFile.getName());
invalidate();
// Save info
@ -259,4 +334,18 @@ public class WImageDialog extends Window implements EventListener<Event>
return m_mImage.getAD_Image_ID();
return 0;
} // getAD_Image_ID
/**
* @return the defaultNameForCaptureImage
*/
public String getDefaultNameForCaptureImage() {
return defaultNameForCaptureImage;
}
/**
* @param defaultNameForCaptureImage the defaultNameForCaptureImage to set
*/
public void setDefaultNameForCaptureImage(String defaultNameForCaptureImage) {
this.defaultNameForCaptureImage = defaultNameForCaptureImage;
}
} // WImageDialog

File diff suppressed because one or more lines are too long

View File

@ -176,3 +176,12 @@ span.grid-combobox-editor {
position: relative;
float: right;
}
.image-field {
cursor: pointer;
border: 1px solid #C5C5C5;
}
.image-field.image-field-readonly {
cursor: default;
border: none;
}