@@ -88,7 +88,7 @@ define([
88
88
{ id : 'delete' , label : 'Delete' , selection : FRAME_SELECT_TYPE . MULTI , menuType : FRAME_EDIT_TYPE . DROP } ,
89
89
{ id : 'rename' , label : 'Rename' , selection : FRAME_SELECT_TYPE . NONE , menuType : FRAME_EDIT_TYPE . RENAME } ,
90
90
{ id : 'as_type' , label : 'As type' , selection : FRAME_SELECT_TYPE . NONE , axis : FRAME_AXIS . COLUMN , menuType : FRAME_EDIT_TYPE . AS_TYPE } ,
91
- { id : 'to_datetime' , label : 'To datetime ' , selection : FRAME_SELECT_TYPE . SINGLE , axis : FRAME_AXIS . COLUMN , menuType : FRAME_EDIT_TYPE . TO_DATETIME } ,
91
+ { id : 'to_datetime' , label : 'To Datetime ' , selection : FRAME_SELECT_TYPE . SINGLE , axis : FRAME_AXIS . COLUMN , menuType : FRAME_EDIT_TYPE . TO_DATETIME } ,
92
92
{ id : 'replace' , label : 'Replace' , selection : FRAME_SELECT_TYPE . SINGLE , axis : FRAME_AXIS . COLUMN , menuType : FRAME_EDIT_TYPE . REPLACE } ,
93
93
{ id : 'discretize' , label : 'Discretize' , selection : FRAME_SELECT_TYPE . SINGLE , axis : FRAME_AXIS . COLUMN , numeric_only : true , menuType : FRAME_EDIT_TYPE . DISCRETIZE }
94
94
]
@@ -724,6 +724,10 @@ define([
724
724
$ ( this . wrapSelector ( '.vp-inner-popup-fillvalue' ) ) . focus ( ) ;
725
725
return ;
726
726
}
727
+ } else if ( type === FRAME_EDIT_TYPE . TO_DATETIME ) {
728
+ if ( content . newcol === '' ) {
729
+ $ ( this . wrapSelector ( '.vp-inner-popup-todt-new-col' ) ) . focus ( ) ;
730
+ }
727
731
}
728
732
// run check modules for outliers and load codes
729
733
if ( type === FRAME_EDIT_TYPE . FILL_OUT ) {
@@ -1126,16 +1130,6 @@ define([
1126
1130
}
1127
1131
} ) ;
1128
1132
1129
- // bind event for checking add column
1130
- $ ( this . wrapSelector ( '.vp-inner-popup-todt-use-addcol' ) ) . on ( 'change' , function ( ) {
1131
- let checked = $ ( this ) . prop ( 'checked' ) ;
1132
- if ( checked === true ) {
1133
- $ ( that . wrapSelector ( '.vp-inner-popup-todt-addcol-box' ) ) . show ( ) ;
1134
- } else {
1135
- $ ( that . wrapSelector ( '.vp-inner-popup-todt-addcol-box' ) ) . hide ( ) ;
1136
- }
1137
- } ) ;
1138
-
1139
1133
// Add column set event
1140
1134
$ ( this . wrapSelector ( '.vp-inner-popup-todt-addcol' ) ) . on ( 'click' , function ( ) {
1141
1135
let dateTypeList = [ // df[col].dt[{dateType}]
@@ -1159,14 +1153,21 @@ define([
1159
1153
} ) ;
1160
1154
1161
1155
let addColItemTag = $ ( `<div class="vp-inner-popup-todt-addcol-item">
1162
- <input type="text" class="vp-input vp-inner-popup-todt-addcol-colname" placeholder="Type column name" />
1156
+ <input type="text" class="vp-input vp-inner-popup-todt-addcol-colname" placeholder="Type column name" value="year" />
1163
1157
<select class="vp-select vp-inner-popup-todt-addcol-type">
1164
1158
${ dateTypeOptionTag . toString ( ) }
1165
1159
</select>
1166
1160
<span class="vp-icon-close-small vp-inner-popup-todt-addcol-del mt5 vp-cursor"></span>
1167
1161
</div>` ) ;
1168
1162
$ ( that . wrapSelector ( '.vp-inner-popup-todt-addcol-content' ) ) . append ( addColItemTag ) ;
1169
1163
$ ( addColItemTag ) [ 0 ] . scrollIntoView ( ) ;
1164
+
1165
+ // bind event for selecting date type option
1166
+ $ ( that . wrapSelector ( '.vp-inner-popup-todt-addcol-type' ) ) . off ( 'change' ) ;
1167
+ $ ( that . wrapSelector ( '.vp-inner-popup-todt-addcol-type' ) ) . on ( 'change' , function ( ) {
1168
+ let dateTypeVal = $ ( this ) . val ( ) ;
1169
+ $ ( this ) . parent ( ) . find ( '.vp-inner-popup-todt-addcol-colname' ) . val ( dateTypeVal ) ;
1170
+ } ) ;
1170
1171
1171
1172
// bind event for deleting
1172
1173
$ ( that . wrapSelector ( '.vp-inner-popup-todt-addcol-del' ) ) . off ( 'click' ) ;
@@ -2186,15 +2187,15 @@ define([
2186
2187
var content = new com_String ( ) ;
2187
2188
let formatList = [
2188
2189
{ label : 'Auto' , value : 'auto' } ,
2189
- { label : 'Year' , value : '%Y' } ,
2190
- { label : 'Month' , value : '%m' } ,
2191
- { label : 'Day' , value : '%d' } ,
2192
- { label : 'Day Of Week' , value : '%w' } ,
2193
2190
{ label : '%Y/%m/%d' , value : '%Y/%m/%d' } ,
2194
2191
{ label : '%Y-%m-%d' , value : '%Y-%m-%d' } ,
2192
+ { label : '%y/%m/%d' , value : '%y/%m/%d' } ,
2193
+ { label : '%y-%m-%d' , value : '%y-%m-%d' } ,
2195
2194
{ label : '%d/%m/%Y' , value : '%d/%m/%Y' } ,
2196
2195
{ label : '%d-%m-%Y' , value : '%d-%m-%Y' } ,
2197
- { label : 'Typing' , value : 'typing' } ,
2196
+ { label : '%d/%m/%y' , value : '%d/%m/%y' } ,
2197
+ { label : '%d-%m-%y' , value : '%d-%m-%y' } ,
2198
+ { label : 'Typing' , value : 'typing' }
2198
2199
] ;
2199
2200
let formatOptionTag = new com_String ( ) ;
2200
2201
formatList . forEach ( opt => {
@@ -2224,15 +2225,14 @@ define([
2224
2225
</select>
2225
2226
</div>
2226
2227
<hr style="margin: 5px 0;"/>
2227
- <div>
2228
- <label>
2229
- <input type="checkbox" class="vp-inner-popup-todt-use-addcol" />
2230
- <span>
2231
- Add column with date type
2232
- </span>
2233
- </label>
2228
+ <div class="vp-grid-col-110">
2229
+ <label class="vp-orange-text">New column</label>
2230
+ <input type="text" class="vp-input vp-inner-popup-todt-new-col" value="{2}" placeholder="Type new column" />
2234
2231
</div>
2235
- <div class="vp-inner-popup-todt-addcol-box vp-grid-border-box" style="display: none;">
2232
+ <label class="vp-bold">
2233
+ Add sub-columns using date type
2234
+ </label>
2235
+ <div class="vp-inner-popup-todt-addcol-box vp-grid-border-box">
2236
2236
<div class="vp-inner-popup-todt-addcol-head">
2237
2237
<label>New column name</label>
2238
2238
<label>Date type</label>
@@ -2244,7 +2244,7 @@ define([
2244
2244
<button class="vp-button vp-inner-popup-todt-addcol">+ Add column</button>
2245
2245
</div>
2246
2246
</div>
2247
- ` , this . state . selected [ 0 ] . label , formatOptionTag . toString ( ) , ) ;
2247
+ ` , this . state . selected [ 0 ] . label , formatOptionTag . toString ( ) , this . state . selected [ 0 ] . label ) ;
2248
2248
2249
2249
// set content
2250
2250
$ ( this . wrapSelector ( '.vp-inner-popup-body' ) ) . html ( content . toString ( ) ) ;
@@ -2593,7 +2593,7 @@ define([
2593
2593
content = this . renderAsType ( ) ;
2594
2594
break ;
2595
2595
case FRAME_EDIT_TYPE . TO_DATETIME :
2596
- title = 'Convert to datetime ' ;
2596
+ title = 'Convert to Datetime ' ;
2597
2597
size = { width : 500 , height : 450 } ;
2598
2598
content = this . renderToDatetime ( ) ;
2599
2599
break ;
@@ -2970,7 +2970,7 @@ define([
2970
2970
content [ 'format' ] = $ ( this . wrapSelector ( '.vp-inner-popup-todt-format' ) ) . val ( ) ;
2971
2971
content [ 'format_typing' ] = $ ( this . wrapSelector ( '.vp-inner-popup-todt-format-typing' ) ) . val ( ) ;
2972
2972
content [ 'dayfirst' ] = $ ( this . wrapSelector ( '.vp-inner-popup-todt-dayfirst' ) ) . val ( ) ;
2973
- content [ 'use_addcol ' ] = $ ( this . wrapSelector ( '.vp-inner-popup-todt-use-addcol ' ) ) . prop ( 'checked' ) ;
2973
+ content [ 'newcol ' ] = $ ( this . wrapSelector ( '.vp-inner-popup-todt-new-col ' ) ) . val ( ) ;
2974
2974
var colList = [ ] ;
2975
2975
var addcolItemTags = $ ( this . wrapSelector ( '.vp-inner-popup-todt-addcol-item' ) ) ;
2976
2976
addcolItemTags && addcolItemTags . each ( ( idx , tag ) => {
@@ -3503,7 +3503,7 @@ define([
3503
3503
code . appendFormat ( "{0} = {1}.astype({{2}})" , tempObj , tempObj , astypeStr . toString ( ) ) ;
3504
3504
break ;
3505
3505
case FRAME_EDIT_TYPE . TO_DATETIME :
3506
- code . appendFormat ( "{0}[{1}] = pd.to_datetime({2}[{3}]" , tempObj , selectedName , tempObj , selectedName ) ;
3506
+ code . appendFormat ( "{0}[' {1}' ] = pd.to_datetime({2}[{3}]" , tempObj , content [ 'newcol' ] , tempObj , selectedName ) ;
3507
3507
let optionList = [ ] ;
3508
3508
if ( content [ 'format' ] === 'auto' ) {
3509
3509
if ( content [ 'dayfirst' ] !== '' ) {
@@ -3520,10 +3520,10 @@ define([
3520
3520
code . appendFormat ( ', {0}' , optionList . join ( ', ' ) ) ;
3521
3521
}
3522
3522
code . append ( ')' ) ;
3523
- if ( content [ 'use_addcol' ] === true && content [ ' collist'] . length > 0 ) {
3523
+ if ( content [ 'collist' ] . length > 0 ) {
3524
3524
content [ 'collist' ] . forEach ( obj => {
3525
3525
code . appendLine ( ) ;
3526
- code . appendFormat ( "{0}['{1}'] = {2}[{3}].dt.{4}" , tempObj , obj . colName , tempObj , selectedName , obj . dateType ) ;
3526
+ code . appendFormat ( "{0}['{1}'] = {2}[' {3}' ].dt.{4}" , tempObj , obj . colName , tempObj , content [ 'newcol' ] , obj . dateType ) ;
3527
3527
} ) ;
3528
3528
}
3529
3529
break ;
@@ -3657,7 +3657,7 @@ define([
3657
3657
} else {
3658
3658
colClass = VP_FE_TABLE_COLUMN_GROUP ;
3659
3659
}
3660
- table . appendFormatLine ( '<th data-code="({0})" data-axis="{1}" data-type="{2}" data-parent="{3}" data-label="{4}" class="{5} {6}" colspan="{7}">{8}{9}</th>'
3660
+ table . appendFormatLine ( '<th data-code="({0})" data-axis="{1}" data-type="{2}" data-parent="{3}" data-label="{4}" class="{5} {6}" colspan="{7}">{8}<span> {9}</span> </th>'
3661
3661
, colCode , FRAME_AXIS . COLUMN , col . type , col . label [ colLevIdx - 1 ] , col . label [ colLevIdx ] , colClass , selected , colSpan , colIcon , col . label [ colLevIdx ] ) ;
3662
3662
colSpan = 1 ;
3663
3663
}
@@ -3687,7 +3687,7 @@ define([
3687
3687
if ( that . state . axis == FRAME_AXIS . COLUMN && that . state . selected . map ( col => col . code ) . includes ( colCode ) ) {
3688
3688
colClass = 'selected' ;
3689
3689
}
3690
- table . appendFormatLine ( '<th data-code="{0}" data-axis="{1}" data-type="{2}" data-label="{3}" class="{4} {5}">{6}{7}</th>'
3690
+ table . appendFormatLine ( '<th data-code="{0}" data-axis="{1}" data-type="{2}" data-label="{3}" class="{4} {5}">{6}<span> {7}</span> </th>'
3691
3691
, colCode , FRAME_AXIS . COLUMN , col . type , col . label , VP_FE_TABLE_COLUMN , colClass , colIcon , col . label ) ;
3692
3692
} ) ;
3693
3693
// // add column
0 commit comments