05.12.2019 Donnerstag
[[Kalender]], [[http://vwiki.wialon-consulting.de/doku.php?id=kalender#dezember|Dezember]], [[2019KW49|KW49]]\\ ====== Termine ====== * **-** **10:00 - 10:30** Daily Scrum Meeting (https://meet.supplyon.com/saskia.rewitzer/6W70SYLL) ====== TODO ====== * **-** Gymnastik (5x12) * **-** Seeburger * **-** Avril ===== Seeburger ===== * **-** Supplyon Dongle einrichten * **-** AIRS_CI-288 Analyse new save-workflow on search profiles * https://gomockingbird.com/projects/msd5cyw/4gXVnC * **-** [[AIRS-3356|AIRS-3356 Multi-Sorting on Tables - Backend Part]] [[https://tasks.supplyon.de/browse/AIRS-3356|In Jira]] * **-** Make my changes again (Tooltip etc) (''git reflog'' on the console can be helpful) * **-** Reset my branch and rebase (!) master on it * **-** Review * **-** Antoine * **-** File smartiui/src/java/com/seeburger/smarti/sui/control/screens/SuiTableScreen.java: * **+** Patch Set #6, Line 382: public Sorter createSorterObject_old(HttpServletRequest request) { * **+** It is not used so you can just remove it * **+** Patch Set #6, Line 422: private Sorter makeSorterFromRequest(HttpServletRequest request) { * **+** Tests missing * **-** Patch Set #6, Line 431: .filter(sorterObject -> registeredSorters.contains(sorterObject)) * **-** I am uncertain about the logic here. In getSorterObjectsFromRequest we are making sure that the filters in sorterObjects are not null and that their name match one in registeredSorters.Then we filter out the ones that are not contained in registeredSorters (which are strictly zero as the equals function for sorter compares only the name)At last, in addSorterObjectToSorterOrLogError we add the SorterObject to the sorter if it is not null but it can't be as this was excluded on l. 473. * **+** Patch Set #6, Line 460: getSorterObjectFromJson * **+** tests missing * **x** Patch Set #6, Line 494: addSorterObjectToSorterOrLogError * **x** test missing but I think you can just get rid of this one * **+** Patch Set #6, Line 830: RegisteredSorterNotFoundException * **+** Maybe put in a separate file. I don't really see the need of it being an inner class * **+** File smartiui/src/resources/smartiui.war/js/smarti/widgets/SUIProfileSelector.js: * **+** Patch Set #6, Line 111: // expand: { scope: this, fn: this.onExpand }, ... // focus: { scope: this, fn: this.onFocus }, * **+** remove if not needed * **-** File smartiui/src/resources/smartiui.war/js/smarti/widgets/table/SUITable.js: * **-** Patch Set #6, Line 782: * ***** we are setting sortInfo to null on line 723. I don't see the point of checking if it is null here. (My answer: checking for null is correct, because we are in a loop) * **-** Moreover, I would just extract everything relative to sort from this function in a separate one. That would make things more readable * **-** Frank * **+** File smartiui/src/java/com/seeburger/smarti/sui/web/SuiWeb.java: * **+** Patch Set #6, Line 649: equals * **+** Use equalsIgnoreCase to be on the safe side. * **-** File smartiui/src/resources/smartiui.war/js/smarti/widgets/SUIProfileSelector.js: * **+** Patch Set #6, Line 151: var sortingApplier = this.getParam( 'sortingApplier', { handler: Ext.emptyFn, scope: this } ); * **+** remove * **+** Patch Set #6, Line 179: else * **+** Maybe directly return info at the end of the if block. Then we could ge rid of this else block and it's long indent. * **+** Patch Set #6, Line 193: } else { text = Ext.String.format(this.text.menuSortedByMany, sortingInfo.items.length); } } * **+** formatting * **+** Patch Set #6, Line 206: / / var searchProfile = this.getSelectedProfile(); * **+** remove * **+** File smartiui/src/resources/smartiui.war/js/smarti/widgets/SortingPanel.js: * ***** Patch Set #6, Line 16: / / or dataIndex? * ***** ? (hab dazu geschwiegen) * **+** Patch Set #6, Line 94: 0 * **+** What about the is the index 1? Please add a comment. * **x** Patch Set #6, Line 105: columnName * **x** Is not used as dataIndex. * ***** Patch Set #6, Line 118: myIndex * ***** Is it correct to use myIndex for 4 columns? -> yes, the field is mandatory, and we should use something * **+** Patch Set #6, Line 141: columnId * **+** Is it correct to use columnId instead of columnName for the columnName column? -> Yes, it is at least OK. * **-** Patch Set #6, Line 262: gridRecords * **-** Can this be null or undefined? * **-** Patch Set #6, Line 272: gridRecords * **-** Can this be null or undefined? * **-** Patch Set #6, Line 425: / / var items = (sortingPanel.sorterObjectsGridPanel.getStore().getData().getSource() || sortingPanel.sorterObjectsGridPanel.getStore().getData()).getRange();; * **+** remove * **+** Patch Set #6, Line 441: / / sortingPanel.close(); * **+** remove * **+** Patch Set #6, Line 574: sorterObjectsGridPanelViewReady: function() {this.restyleAddButton(); }, sorterObjectsGridPanelEditColumnId: function() { this.restyleAddButton(); }, sorterObjectsGridPanelStoreDataChanged: function() { this.restyleAddButton(); } * **+** Is it predictable that there will we more code inside these functions? Otherwise, why not directly use restyleAddButton as listener function? * **-** Analyze * **-** SuiTableScreen * **-** Write tests * **-** makeSorterFromRequest() * **-** getSorterObjectsFromRequest() * **-** getSorterObjectFromJson() * **+** getSqlColumnName() * **+** getSortingDirection() * **-** addSorterObjectToSorterOrLogError() * **-** Implement * **-** Finishing * **+** After the click on "Apply" the window should NOT be closed * **+** The window should be closed also on "focus lost" event * **-** Implement check for wrong configuration * **-** Clean code * **-** ... * **-** Merge the code from Antoine * **-** Merge the master branch into mine * **-** Test * **-** Review * **-** Write a mail to Felix Pfersching about the printer * **-** Sonar issues (start for example with ''com.seeburger.airsupply.alertmon.control.*'') * **-** IntelliJ at Seeburger: * https://cust-projects.seeburger.de/redmine/projects/supplyon-common/wiki/IntelliJ_Setup * https://wiki.seeburger.de/Development/IntelliJCorner * https://discourse.seeburger.de/t/how-can-we-improve-remote-debug-performance/1100/13 ===== Seeburger backlog===== * **-** [[https://tasks.supplyon.de/browse/AIRS-2588|AIRS-2588: add new field to SO_NonConformanceReport XSD]] ([[https://git.seeburger.de/r/c/supplyon/airsupply/+/80239|Change 80239 im Gerrit]]) * **-** Write a small test like ''POExportXMLProcessorTest.generatePositionElement()'' * **-** [[https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.md|XSS prevention cheat sheet]] * **-** https://cust-projects.seeburger.de/redmine/issues/31577 -> Ticket about code style * **-** [[Mastering Enterprise JavaBeans 3.0]] * S. 26 - 35 * **-** CDI * https://www.baeldung.com/java-ee-cdi * https://docs.oracle.com/javaee/7/tutorial/cdi-basic.htm * https://ru.wikipedia.org/wiki/%D0%92%D0%BD%D0%B5%D0%B4%D1%80%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B2%D0%B8%D1%81%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B8 * **-** [[http://10.15.100.164/index.php/2018/01/12/developing-multiple-features-in-parallel/|Developing multiple Features in parallel]] * **-** [[AIRS-1174 Provide "Characteristics" information for POM]] * **-** [[AIRS-903 UX Dimensions in a new tab in DA]] * **-** Dokumentieren in meinem Wiki wie die DAOImpl-Tests geschrieben und ausgeführt werden müssen * **-** Chrome einrichten (https://developers.google.com/web/tools/setup/setup-workflow) * [[Impact of SCRUM on the DEV process]] * Misc * https://code.visualstudio.com/docs/languages/javascript ===== Avril ===== * **-** Refresh Avril site certificate * **-** [[https://angular.io/tutorial|Angular Tutorial]] * **-** Angular Buch * **-** 21. Использование и создание модулей * **-** Avril 2.0 * **-** Ein Klick auf einer Organisation soll die entsprechende Taskliste laden * **-** Prüfen, ob von der App eine Tonbenachrichtigung kommt, wenn ein neuer Auftrag kommt * **-** Prüfen, ob die App nicht zu viel zieht * **-** Jobs / Fragebögen nur für die entsprechende Organisation (bzw. Mitarbeiter) holen