-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Release 3.0.0 #414
Merged
Merged
Release 3.0.0 #414
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…onflicts in previous commit b650e2d - not tested
status : logged in. The datasets and blocks are requested, received, pushed to store. Displayed : route menu links and left-panel nav tabs. package.json : upgrade most packages, via npm outdated, npm-check-updates and individually / manual. Was aiming for just Ember4 / Bootstrap4, but updating to current time is an easy way to find a common baseline. select a fork of ember-parachute which has replaced tryInvoke() : @voll/ (or DazzlingFugu). Dropped some packages which are no longer required : bootstrap-sass ember-scroll-to ember-radio-button ember-component-inbound-actions ember-cli-document-title ember-cli-jshint store.js : change to export ember-data/store (deprecation id: ember-data:deprecate-legacy-imports), app.scss : drop @import ember-bootstrap/bootstrap-sprockets, may be required but not found via this path. configuration.js : getSiteOrigin() : drop .concreteImplementation which is now not needed or correct in accessing .location. add d3-initialise-global.js; this includes elements added in 83655c7 in draw-map.js, commented-out here in favour of simply including all of d3. divgrid.js : set as global window.d3_divgrid and d3.divgrid swap-in replacement for (sunsetted) ember-simple-auth mixins; later these can be merged into the routes instead of using them as mixins. add ember-simple-auth-mixin-replacements/{{application,{,un}authenticated}-route,data-adapter}-mixin.js based on mainmatter/ember-simple-auth#2185 (comment), with change from Route -> Mixin. environment.js : locationType: auto -> history (deprecation id: deprecate-auto-location) optional-features.json : jquery-integration: true -> false ember-cli-build.js : bootstrapVersion: 3 -> 4, importBootstrapCSS': true add webpack: { stats : { errorDetails: true }} for debugging the build. drop import of bower_components remove .bowerrc and bower.json (will also remove references to bower in e.g. Dockerfile, .gitignore, scripts and documentation). .ember-cli : disableAnalytics: false -> true bootstrapJs : append dist/ to bootstrap/js/ mapview.js : use the @voll/ fork of ember-parachute. deprecationIds : add ember-data:deprecate-legacy-imports, ember-polyfills.deprecate-assign. prefix attributes with this. in .hbs models/dataset.js, block.js : pass param options {async, inverse} to belongsTo,hasMany() - these options are documented as optional, but assert()s in those functions require them. If these are required they will also have to be added to other models. routes/application.js : merge in required changes in ApplicationRouteMixin instead of mixing it in : init(), beforeModel() : session.setup(); and sessionAuthenticated() : handleAuthentication(index). d3.schemeCategory20 -> 10 (later will select from the additional schemes available in d3 v4). Change {{#link-to }} to angle brackets <LinkTo >, add @ and names to params, selected from --run-codemods output. auth-input.hbs : use @autocomplete add app/transforms/{boolean.js,date.js,string.js as per deprecation id: ember-data:deprecate-legacy-imports. for ease of debugging 2 1-file packages have been copied in, these files are the plantinformatics/ fork plus some edits : ember-cli-multi-store-service/addon/services/multi-store.js -> app/services/ : replace use of global Ember via import : Service, getOwner, A as Ember_A, get as Ember_get, set as Ember_set. ember-split-view-modifier/addon/modifiers/split-view.js -> app/modifiers/ : 3.13 -> 3.22, createModifier() : param factory -> Definition, factory.create() -> new Definition()
Apply ember-no-implicit-this-codemod. This joins a multi-line element onto a single line if it is not prettier-folded (1 arg per line), so apply prettier to these to re-fold them. It also converts single- to double-quote, so revert those changes. Use yapplabs version of package ember-radio-button. Remove package ember-raf-scheduler, which is not updated for Ember v4. utils/draw/axisBrush.js : comment out use of ember-raf-scheduler. axisScaleChangedRaf() : call fn directly instead of via scheduler.
…alize, etc throughout : pass param options {async, inverse} to ember data belongsTo() and hasMany(). change d3.{keys,values()} to Object.{keys,values()} change d3.nest( ) to Object.entries(d3.group( )). use toTitleCase for capitalize, which is no longer defined on string. These changes have limited testing, and some (tabId, appOptions) are just disabling functionality to avoid an error, so that an appropriate change can be worked out later, if needed. adapters/application.js : host() : use null in place of store.adapterOptions which is undefined, and .adapterFor( ) causes recusion draw-map.js : updateColouredFeatures() : change .scroller.scrollVertical() to window.scrollTo(). receivedBlock() : comment out use of flowsService.blockAdjs - no effect because that is no longer a CP; can re-enable as flowsService.blockAdjsCP if required. axes-1d.js : menuAxis() : use imported alias, not computed.alias which gets undefined. init() : import A as Ember_A instead of using global Ember. graph-frame.js : resize() : handle stacksView being initially undefined. api-server-tab.js : firstTabActive() : disabled : .select(tabId) which was causing : infinite rendering invalidation detected; can re-enable if required and modify. paths-table.js : sendUpdatePathsCount() : change sendAction(updatePathsCount ) to .updatePathsCount( ); following commit will change remainder of sendAction()-s to send(). blockLabelsToBlockAdjs(), filterPaths(), requestAllPaths() : handle blockAdjs being undefined. controllers/application.js : queryParams and parsedOptions() : use appOptions directly instead of viewing it as options; perhaps instead change mapview to inherit options from here. mapview.js : updateRoute() : change transitionToRoute() to router.transitionTo() file-drop-zone.hbs : use file-queue, change <FileUpload> to <input>, with @onfileadd= -> onFileAdded, and {{queue.selectFile}}. entry-tab.hbs : prefix .tab with this. mapview.hbs : paths-table : identify .updatePathsCount via reference instead of string name (not a required change at this stage). d3-initialise-global.js : require(./d3-tip) so that d3.tip is defined. ember-serializer.js : normalizeDataEmbedded() : use store.adapterFor(modelName) in place of .adapterOptions ember-cli-build.js : import these sources which are not automatically included : bootstrapJs + util.js, dompurify/dist/purify.js, handsontable/dist/handsontable.js package.json : dependencies / devDependencies : upgrade @ember/test-helpers ^3.2.1 -> ^3.3.0. add : (@LIX) cgav/d3-tip (updated for Ember4), ember-models-table, handsontable (previously installed via bower)
package-lock.json : update for changes to package.json in previous commit b7e2ae2
button-base.js and button-tab.js : call onClick() directly instead of via sendAction(). groups.js : services() : use .model.server.apiServers instead of .target which is expected to be undefined in Ember4. mapview.js : init() : window.PretzelFrontend is now undefined, set it to {}; could limit this to config/environment.js : (environment === development), (controller .base may be related). left-panel.hbs : add class=nav-link to <a> in <nav.item > as per doc comments in ember-bootstrap/addon/components/bs-nav.js : Bootstrap 3/4 Notes, not tested; if correct this will be applied more broadly. left-panel.hbs : manage-genotype.hbs manage-explorer.hbs : manage-view.hbs : sequence-search.hbs : add @fade={{false}} to uses of <BsTab >; ember-bootstrap/addon/components/bs-tab.js: get fade() defaults fade to true, and currently this causes even the active element to be invisible. group.hbs groups.hbs and verified.hbs : use route= to name the param to link-to (e.g. groups or login). groups.hbs : use model= to name the group.id param to link-to. mapview.hbs : onClick : wrap action name (i.e. setTab and setVisibility) in (action ). add d3-tip.js, copied from d3-tip/d3-tip.js, require-d by d3-initialise-global.js (in previous commit ) authenticated-route-mixin.js : model() : result is not required atm, so return [], and not findAll(post ) which was from example code; inject service store for .findAll, but at this stage it is not required. ember-cli-build.js : bootstrapJs : move import of dropdown.js after util.js which it depends on. import @lix/d3-tip/index.js, but this was not effective so the utils/draw/d3-tip.js copy is used.
…function calls. change uses of d3.event and d3.mouse drop intermediate functions in sub-components which forwarded the action up : selectBlock(), removeBlock(), selectDataset(), loadBlock(), deleteBlock, selectDataset. axis-tracks.js : don't use Ember global : use get as Ember_get (in layoutAndDrawTracks), use Array.isArray in place of Ember.isArray which preceded it, in heightDir. draw-map.js : updatedSelectedFeatures() and sendUpdatedSelectedFeatures() : call .updatedSelectedFeatures directly instead of via .send(). factor .range || .featuresDomain from axis-1d.js : referenceDomain : to form models/block.js : .domain and add || .limits, and change referenceDomain from computed to alias. access alias without computed. : axis-menu.js : block axis1d axisName and block-adj.js : domains manage-genotype.hbs : prefix with this. : datasetsClasses and blocksVariantInterval api-server.js : blocksByReferenceAndScope() : return new Map() if .datasetsBlocks is not defined, i.e. not received yet. edit.js : services() : use getOwner from import instead of via Ember global. models/block.js : features: hasMany : change inverse null -> blockId. models/feature.js : blockId : belongsTo : add options {async: true, inverse: features}. auth.js : listenEvents() : handle undefined closePromise i.e. .lastPerformed : may need more to handle this. services/data/block.js : setViewed() : wrap viewedIds.removeAt with later(). axesViewedBlocks2() : handle viewedBlocksReferences.*.id not found in store with .peekBlock. paths-progressive.js : verifyFeatureRecord() : use object attributes directly or via .get() instead of via ._internalModel private api which is replaced. normalize() : blockAdj -> block-adj [deprecation id: ember-data:deprecate-non-strict-types]. axis-tracks.hbs : disable use of data-table - will have to replace ember-contextual-table. data-types.js : 2 x hoverTextFn() : change param d to event and use d = event.target.__data__. group.js : getGroups() : use .store of relevant api-server instead of serializer.store which is default and not used. add param ev / event instead of using d3.event in domElements.js : {{,no}Shift,ctrl,no}Keyfilter() and axisBrush.js : mousedown, click, zoom(), brushHelper(), brushended() and zoomPanCalcs.js : wheelNewDomain(), wheelDelta(). axisBrush.js : brushHelper() and zoomPanCalcs.js : wheelNewDomain() : similarly use event.sourceEvent in place of d3.event and d3.mouse e.g. for .layerY, .clientX. zoom() : isWheelEvent : get axis1d from event.target.__data__ instead of that which is the g brush element or undefined for click on Zoom/Reset call to zoom(). else if ! MouseEvent : get axis1d from that (axisElt) .__data__. disable selectedAxes.addObject(axis1d) - also need to re-work the feature selection which depends on selectedAxes. gBrush : target : use that if this is a Zoom / Reset button. zoomPanCalcs.js : zoomFilter() : change param d to event e, used instead of d3.event, and use d = e.target.parentElement.__data__; hover.js : showHover() : data : use .options which is equivalent to the earlier attribute .config. frontend/ember-cli-build.js : import bootstrap.bundle.js which includes popper.js, required by bootstrap tooltip.js (including popper.js/dist/popper.js did not work).
change {{input input= to <input oninput= in : input-range-text.hbs dataset-intersection-dialog.hbs dataset-vcf-status.hbs manage-genotype.hbs flow-controls.hbs goto-feature-list.hbs manage-explorer.hbs ontologies.hbs trait-qtl.hbs blast-results-view.hbs view-controls.hbs icon-toggle.js : click() : changed : replace sendAction() with closure actions and direct function call. icon-toggle.js : call .changed action as a function instead of via sendAction() wrap action value param target.value with quotes in : input-range-text.hbs and dataset-intersection-dialog.hbs matrix-view.js : afterScrollVertically_tablePosition() : use ._wt._wot for .wtScroll app/index.html : include handsontable css; comment that css and js can be included from cdn instead of importing them in ember-cli-build.js; likely to use the former to reduce build size; latter enables un-minimised version for development. models/block.js : revert async : datasetId: belongsTo -> true, features: hasMany -> false; this is consistent with current use, may change these later. manage-genotype.hbs : prefix attributes with this. paths-table.js : createHoTable() : handle undefined tableDiv serializers/application.js : use decamelize imported from @ember/string in place of Ember.String.decamelize access attributes of ember-concurrency tasks directly instead of via .get() in : block-adj.js 2 x mapview.js paths-progressive.js for the following 2 a current alternative will be found : comment out use of data-table in dataset-vcf-status.hbs and axis-table.hbs comment out use of ember-csv@file-anchor in manage-genotype.hbs paths-table.hbs domElements.js : .on(drag ) : add param event, change d3.mouse( ) to d3.pointer(event). axisBrush.js : handleFeatureCircleMouse{Over,Out}() : add param event; handleFeatureCircleMouseOver() : use this.id instead of .classList[0] for selector zoom() : use .sourceEvent if event is d3 wrapper, for .target and wheelNewDomain(); drop use of selectedAxes{,_i} for axis1d to update. d3-tip.js : getScreenBBox() : targetel : use svg if target is not passed to show(). paths-api.js : PathData : use param owner added to pathCreate(), passed in from pathsOfFeature(), to lookup path-data instead of importing it, so that it has an owner. table-brushed.js : extraColumnsHeaders() : use capitalize imported from @ember/string in place of .capitalize, which is sunsetted. vcf-feature.js : addFeaturesJson() and addFeaturesGerminate() : lower-case the model name Feature -> feature for createRecord() and .peekRecord(). package.json : drop ember-contextual-table and ember-csv because of old ember-cli-babel dependencies which disrupt the build; will find current alternatives for these.
axisBrush.js : zoom() : event.type === click : use brushedDomainClick for domain
throughout : add this._super(...arguments) to those lifecycle event functions which did not have it, and change the order of others to ensure that it is called first (or last for willDestroy*). various uses of compareDependencies() to track cause of CP updates : axis-2d.js : trackBlocks, willRender, axis-tracks.js : tracksTree, block.js : featuresCountIncludingZoom, isZoomedOut. (slowDependenciesEffect() : slowDependenciesEffectDependencies could also have been implemented via compareDependencies()). These can be dropped as this branch is completed. axis-1d.hbs : don't expose .domainChanged, .scaleChanged. axis-1d.js : updateAxis() : wrap stacksAdjust() in updateAxisTask, with .keepLatest(). axis-tracks.js : split showTrackBlocksTask from showTrackBlocks to throttle it, with .keepLatest(). axis-1d.js : domainChanged() : depend on .zoomedDomainThrottled instead of .domain block.js : featureCountInZoom() : if ! .zoomed then use .featureCount directly. axisBrush.js : zoom() : Because ember-raf-scheduler is not updated, call axisScaleChanged() directly; this does not debounce, so axis scale is in sync with mouse-wheel zoom and ticks; don't use a transition if isWheelEvent. package.json : upgrade ember-ajax : ^5.0.0 -> ^5.1.2, to solve : TypeError: _runloop.run.join is not a function.
throughout : use .id (or .brushName for blocks) in place of ._internalModel.__data, which is no longer defined. prepend event to params of d3 .on functions : axis-ticks-selected.js : clickTriangle() drop-target.js : dropTargetMouseOver(), dropTargetMouseOut() flow-controls.js : flowName() stacks-drag.js : dragstarted(), dragged(), dragended(), Use that event in place of d3.event. Add param event to dropIn() in axis-1d.js and stack.js, to replace use of d3.event. Continue replacing sendAction() with closure action and direct function calls : manage-view.js : loadBlock, removeBlock, ... blast-results-view.js : resultParentBlocks() : record .blockScopes, to pass to blocksForSearch(). paths-progressive.js : ensureBlockAdj() : change peekRecord() param blockAdj to block-adj. transient.js : blocksForSearch() add param blockScopes, passing each scope to pushBlockArgs(), to handle variation of name/scope in blast database chromosome names. axis-1d.hbs : re-enable .domainChanged and .scaleChanged, which were commented out in dd69ea1, but are required to update selected feature positions.
axis-tracks.js : prepend param event to selection.on(click ) functions : configureClick{,2}() : clickTrack. change {{textarea }} to <Textarea > </Textarea> in : new-datasource-modal.hbs feature-list.hbs sequence-search.hbs : prepend @ to component param names : input enter insert-newline escape-press paste, and change ( ) to {{ }}, i.e. .searchStringMaxLength and actions : inputIsActive dnaSequenceInput paste.
prepend param event to remaining d3 .on() functions : draw-map.js : #holder .on(keydown ) axis-1d.js : drawTicks() : showText() block-adj.js : pathPosition() : transition : end interrupt, synteny-blocks.js : configureSyntenyBlockClicks() : selection .on(click, (untested) dataset-graph.js : drawGraphSVG() : textM : mouseover : .datasetIdSelected matrix-view.js : initResizeListener() : resize : .updateTableHeight axis-draw.js : draw2() : end : comment. axisTitleBlocksServers_tspan.js : AxisTitleBlocksServers:position() chart1.js : toggleBarsLineClosure() path-info.js : handleMouseOver(), handleMouseOut() and use that event param to replace the remainder of uses of d3.event.
frontend/app/ Use injected .router for .transitionTo() instead of this in routes and this.target in controller, in : controllers/ group/edit.js : deleteGroup() and groups.js : selectedServerChanged() routes/group.js : beforeModel(). adapters/application.js : updateRecord() : use attributesToSave instead of snapshot._internalModel._relationshipProxyCache / changedAttributes. components/panel/manage-dataset.js : add : ownedByMe: alias(dataset.owner). datasetChangeGroup() : objectAttributeChanged(this.dataset, groupId), which pushes the change to dataset record Symbol attributesToSave. controllers/ group/edit.js and group.js : get services () is replaced by setting controller owner via setupController(), to enable setup of these values via @service. group.js : alias(model) group. group/edit.js : removeGroupMemberClient() and removeAllGroupMembers() : pass clientGroup object to removeGroupMember() instead of .id groups.js : serverObj() : fall back to primaryServer when server name is not given in queryParams. groups/add.js : addGroup() : pass client object instead of id as clientId. add group/index.js, with removeGroupMember() copied from controllers/groups.js with one change : get server from .model.server and derive apiServers from that, instead of using server = apiServers.lookupServerName(store.name). models/ client-group.js : clientId, groupId, client.js : clientGroups and group.js : clientGroups : specify the belongsTo / hasMany relation inverse field name, instead of null. routes/ group.js : add model(). beforeModel() : record .server instead of .store. group/edit.js and groups.js : setupController = setupControllerModelOwnerTarget serializers/ application.js : normalizeResponse() : add store.name to trace. groups-in.js : normalizeGroupsIn() and groups-in.js : normalizeGroupsOwn() : add param store, used instead of this.store. groups-own.js : normalize() : add debugger statement - seems not used. services/controls.js : apiServerSelectedOrPrimary() : access apiServers.lookupServerName without .get(). group/index.hbs : group-members param group change .group -> .model; pass action param removeGroupMember. utils/data/group.js : getGroups() : groupsPR : pass store to serializer .normalizeGroups{Own,In}() utils/ember-devel.js : add objectAttributeChanged(), setupControllerModelOwnerTarget(). # Please enter the commit message for your changes. Lines starting # with '#' will be ignored, and an empty message aborts the commit. # # Date: Fri Mar 22 15:26:14 2024 +1100 # # On branch feature/upgradeFrontend # Your branch is ahead of 'origin/feature/upgradeFrontend' by 1 commit. # (use "git push" to publish your local commits) # # Changes to be committed: # modified: frontend/app/adapters/application.js # modified: frontend/app/components/panel/manage-dataset.js # modified: frontend/app/controllers/group.js # modified: frontend/app/controllers/group/edit.js # new file: frontend/app/controllers/group/index.js # modified: frontend/app/controllers/groups.js # modified: frontend/app/controllers/groups/add.js # modified: frontend/app/models/client-group.js # modified: frontend/app/models/client.js # modified: frontend/app/models/group.js # modified: frontend/app/routes/group.js # modified: frontend/app/routes/group/edit.js # modified: frontend/app/routes/groups.js # modified: frontend/app/serializers/application.js # modified: frontend/app/serializers/groups-in.js # modified: frontend/app/serializers/groups-own.js # modified: frontend/app/services/controls.js # deleted: frontend/app/services/store.js # modified: frontend/app/templates/group/index.hbs # modified: frontend/app/utils/data/group.js # modified: frontend/app/utils/ember-devel.js # # Changes not staged for commit: # modified: frontend/app/controllers/group/index.js # # Untracked files: # lb4app/client # lb4app/dnaSequence.0.fasta # lb4app/dnaSequence.1.fasta # lb4app/lb3app/common/index/ # lb4app/tmp/ # package-lock.json #
Dockerfile : NODE_ALPINE_VERSION 12 -> 18, node:12-alpine -> 18, drop : npm install bower and bower install
…es blocks goto-feature-list.js : blocksUnique() : change d3.nest() to d3.group(). entry-block-add.js : action loadBlock() : change sendAction to direct call
axis-tracks.js : hoverQtlHtmlFn() : add param event, drop i&g. factor to toolTipClasses : if ! .hoverNearElement don't insert classes highlightFeature toolTip axis-1d.js : showText() : add param event (d3 update). buttonStateEffect() : check .isDestroying because 200ms delay. axis-brush.js : referenceDataset() : absorb .referenceBlockOrSelf into .get() app.scss : .popover.bs-popover-{left,right} : hide the tooltip arrow when not adjacent to the element which it refers to. hover.js : showHover() : confirmed that node_.popover({content } ) displays but does not change text content (same for .setContent(text)), and that .html() and options.content = text both work. this is no longer a valid placement : auto right, drop auto, refn tooltip.js : AttachmentMap[] and _getAttachment(). Hide arrow via css instead of custom .template.
… servers list entry-block-add-button.js : loadBlock() : replace sendAction with direct call. app.scss : add width : auto overriding default 1% for a few buttons : JSON in Upload, and View : Flip Region, Reset Zooms. Add w-100. api-server.hbs : change {{input value }} to <Input @value > so that class=form-control is effective, and makes the element full-width api-servers.hbs : .servers list <ul> : add class w-100 for full width. left-panel.hbs manage-explorer.hbs and entry-tab.hbs : - change {{#tab.pane id= title= }} to <tab.pane @id={{}} @title={{}} >, and similarly for this.tab.pane in entry-tab.hbs. - most of the <tab.pane> : duplicate @id with id, so that the element has the given id, which used to be set from the id component argument in earlier version of tab.pane.
…g strings and actions defined in local js manage-explorer.js : uniqParentsByName() : use contentOf() for parent.content, noting that .content was required earlier, perhaps not now. entry-scope.{js,hbs} : replace actions.{selectDataset,selectBlock}() in .js by passing received params through in .hbs, to entry-selectable and entry-blocks. entry-selectable.js : click() : call .selectNode() directly instead of via sendAction. dataset.js : children() : log when evaluated. entry-level.hbs : pass params selectBlock and selectDataset through to entry-expander and entry-values use passed-in params .selectBlock and .selectDataset instead of strings
This re-establishes the parent / scope hierarchy in Dataset Explorer. manage-explorer.js : parentAndScope() : use n.entries() to retain the values with undefined / null keys. recognise undefined and null values for key instead of corresponding string values - d3.nest() mapped keys to strings, whereas d3.group() preserves the original key values.
package-lock.json : manual edit to update the ember-ajax details from ^5.0.0 to ^5.1.2; 5.1.2 was already installed but didn't get npm to re-generate package-lock.json. package.json : add overrides to use version 6.0.3 of glob
... because npm ci and npm install are hanging in container image build. package-lock.json : generated with npm install --package-lock-only, after nvm install 18.19.1 package.json : drop overrides glob - they didn't fix npm ls glob -> code ELSPROBLEMS
application.js : add get server(), partially factored from hosts(), headers(). headers() : fallback to use currentRequestServer; could move this to server() but better to investigate the effort of having 1 adapter per server, to replace all these mechanisms of linking the current request in adapter with the server. buildURL() : only use snapshot (.record.store.name) if requestType !== findRecord; expect this is still required for delete. api-server.js : getDatasets() : set currentRequestServer and currentRequestServerTime for adapter buildURL(). This is the first API request to a server. table-brushed.js : didRender() : check .isDestroying in later(), before .createTable(). api-servers.js : init() : don't access adapter.host because that can recurse back to init() ember-cli-build.js : drop import of numbro.js - seems no longer required; importing it from HoT no longer works, so if required add numbro as a direct dependency and import from node_modules/. package-lock.json : regeneration dropped glob/ from init-package-json/ and read-package-json/. package.json : whitespace change from install/uninstall.
application.js : server() : use .currentRequestServer and .requestServer before ._server, which was not updated when connecting to secondary. headers() : use currentRequestServerTime before ._server auth.js : _server() : interpose currentRequestServer before falling back to primaryServer; in the case of getBlockFeatureLimits() there are no parameters to guide the server choice. new-datasource-modal.hbs : <BsModal .new-datasource-modal > : @fade : true -> false; .fade causes opacity i.e. the element is not shown, so it is not useful here. default seems to be true. axis-menu.js : xOffsetsEffect() : check .isDestroying in later()
package-lock.json : revert to 52b413a, before 8dac400 which dropped 2 inclusions of glob - that was side-effects from install/uninstall, but causes npm ci to complain : Missing: [email protected] from lock file.
... advised by messages re-add store.js, which was added in aebbd64 and dropped in d802eb1; advised by run-time startup message in console log. variableBands.js : combinedScale.{domain,range}() : disable dLog with trace_scale. as indicated by build-time message : application.hbs : add <div id=ember-bootstrap-wormhole></div> ember-cli-build.js : ember-bootstrap : add insertEmberWormholeElementToDom : false
genotype-samples.hbs : move .ensureSamplesForDatasetTabEffect use back to manage-genotype.hbs, bracketed by <GenotypeSamples>. genotype-search.hbs : connect .didInsertElement_ with did-insert. use ensureSamplesForSelectedDatasetEffect. use selectDataset() in place of mut .selectedDatasetId. use #if .manageGenotype and #unless .manageGenotype.isDestroying in place of #if this.manageGenotypeDefined, because the latter was not reactive. genotype-search.js : drop manageGenotypeDefined. add didInsertElement_(), selectDataset(). selectedDataset() : side-effect : copy the result to userSettings.selectedDataset. add ensureSamplesForSelectedDatasetEffect(). manage-genotype.hbs : connect .onWillDestroy via will-destroy. manage-genotype.js : factor to form registerByName(); add ok check. add onWillDestroy() to clear registration of this. lookupDatasetId() : use selectedDataset if defined. viewedVCFBlocks() : factor to form block2Abb(), and use it to append a block of selectedDataset to blocks. dataset.js : add aBlock(). controls.js : registrationsByName : add updateCount : 0. mapview.hbs : pass .userSettings to left-panel
manage-genotype.js : viewedVCFBlocks() : check if a block in blocks[] is in selectedDataset, but also disable adding a block of selectedDataset to blocks[] - not sure if this is going to be required; currently working OK without it.
… remove replaced Textarea .selectedSamplesInput genotype-samples.hbs : wrap input checkbox Common .samplesIntersection with #if @showIntersectionCheckbox. genotype-samples.js : add trace, commented out. genotype-search.hbs : pass @showIntersectionCheckbox={{false}} to GenotypeSamples. drop Textarea .selectedSamplesInput .selectedSamplesText, which is replaced by the identical element in GenotypeSamples. manage-genotype.hbs : pass @showIntersectionCheckbox={{true}} to GenotypeSamples.
This is motivated by the selectedFeatures / labelledFeatures sometimes not being displayed after genotype-search adds to them. axis-ticks-selected.js : add selectedFeaturesEffect(). axis-ticks-selected.hbs : use selectedFeaturesEffect
genotype-samples.js : comment out constructor() which was added to trace @showIntersectionCheckbox in 52016e8
matrix-view.js : cells() : Position / End : assign .renderer = Handsontable.renderers.NumericRenderer; setting .type = numeric may not be sufficient to ensure that - in testing blockFeaturesRenderer() was called for a Position. manage-genotype.js : showSamplesWithinBrush() : repeat annotateRowsFromFeatures() for each referenceBlock. displayDataRows : catenate the sparse arrays from each referenceBlock. vcf-feature.js : vcfFeatures2MatrixViewRows() : rows : initial value : change [] to new Map(). vcfFeatures2MatrixViewRowsResult() : rows : introduce a Map() indexed by referenceBlock, above the sparse array indexed by Position. This enables SNP rows from different axes to be displayed separately, i.e. sorted by axis then Position. axis-table.js : setRowAttributes() : disable application of Object.values() to data because it is already done by the caller setRowAttributes() in matrix-view.js.
... because navigation may have closed manage-genotype component. genotype-search.hbs : add button Show Samples .navigateGenotypeTable, shown when .manageGenotype component is not shown. genotype-search.js : check .manageGenotype && ! .manageGenotype.isDestroying before setting .manageGenotype.vcfGenotypeSamplesSelected. mapview.hbs : omit .blockValues.length from trace because undefined .blockValues was seen in testing.
genotype-search.hbs : <select> : onchange : .navigateGenotypeTable is no longer required because this is now implied by .selectDataset. genotype-search.js : selectDataset() : use this.navigateGenotypeTableP() before setting .selectedSamplesText because .selectedSamplesText depends on .manageGenotype setSamplesSelectedLater() : use navigateGenotypeTableP().then() instead of later(). factor navigateGenotypeTableP() out of navigateGenotypeTable(); return a promise; also check .isDestroying.
genotype-search.js : navigateGenotypeTableP() : indent according to the new Promise() wrap which was done in the previous commit 101c3b2
connectOpenAIApi() : if $OPENAI_API_KEY is not defined, skip setup of OpenAIApi(); trace last 3 chars of key to identify use of expired key
mapview.js : factor renderBodyClass_tablesPanelRight() out of toggleLayout(); tablesPanelRight is no longer initially false, so it is not sufficient to set body class .tablesPanelRight in toggle action - must also set it when the route is first rendered. mapview.hbs : call .renderBodyClass_tablesPanelRight via did-insert.
hover.js : showHover() : clear the text displayed on node_, after 5sec. This also applies to other hover text which is displayed in the same location, e.g. axis tracks hover
... e.g. when axis brush. mapview.js : selectBlock() : Don't switch to the dataset tab if the Genotype Table is displayed
manage-genotype.js : gtDatasetTabs() : use added datasetTabActiveClass() for the initial render, to add the class active to <li>.
package.json : @plantinformatics/vcf-genotype-brapi : refer to npm version instead of github package-lock.json : updated by npm install @plantinformatics/vcf-genotype-brapi.
... so that selectedSamplesText is retained when manage-genotype is de- & re- instantiated, and when user changes selectedDatasetId. genotype-search.js : replace local .selectedDatasetId with alias to args.userSettings.selectedDatasetId selectDataset() : construct .selectedSamplesText from userSettings selectedSamples if defined. vcfGenotypeSearchDisabled() : copying this.selectedSamples to manageGenotype.vcfGenotypeSamplesSelected is no longer required. manage-genotype.js : userSettingsDefaults() : set .selectedSamplesText from selectedSamples from userSettings for .selectedDatasetId if defined
... and show manage-genotype when clicked if not shown. genotype-search.hbs : use vcfGenotypeSearchAfterNavigate. genotype-search.js : selectedSamplesText is moved to @UserSettings. vcfGenotypeSearchDisabled() : enable Search button to show manage-genotype if it is not shown. Add vcfGenotypeSearchAfterNavigate() : navigate then search. manage-genotype.js : userSettingsDefaults() : initialise .selectedSamplesText when ! selectedSamples. move selectedSamplesText to @UserSettings
manage-genotype.js : drop local selectedSamplesText which was commented-out in previous commit 03dce1c
matrix-view.js : afterSelectionHaplotype() : take no action if the user clicks in the header row of the LD Block column, i.e. row === -1
blastServer.Dockerfile : also copy from ncbi/blast /usr/bin/{parallel,vmtouch} which are used by blastn (this dependency hasn't been seen before, possibly it is due to a new blast version)
paths-table.hbs : CSV Download button : disable use of ember-csv@file-anchor because ember-csv requires upgrade. This is part of #370
Feature/upgrade frontend2
This was referenced Nov 8, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Main work items
Detail
Work is documented by these github issues :
Upgrade frontend frameworks and libraries #370 frontend upgrade
Working Group Use Case 3 : Request Genotype values for given Dataset, SNP Names, Samples #383 Working Group Use Case 3 : Request Genotype values for given Dataset, SNP Names, Samples
Working Group Use Case #3 Extensions #394 Working Group Use Case 3 Extensions
BrAPI Wittenberg Hackathon 2024 notes #372 BrAPI Wittenberg Hackathon 2024 notes
[BUG] Histogram display not able to handle smaller datasets #373 Configure display of histograms to handle smaller VCF datasets
Blast returns "The search completed and returned 0 hits" when it fails to run #398 blast - errors are reported as 0 hits
Include blastServer in docker-compose yaml to enable single-command installation and startup #399 Include blastServer in docker-compose yaml to enable single-command installation and startup
Standardisation of Pretzel Deployment #377 Standardisation of Pretzel Deployment
Pretzel server exits after Cannot set headers after they are sent to the client #408 Pretzel server exits after Cannot set headers after they are sent to the client
PR #413
PR #414
Development branches
feature/upgradeFrontend
feature/upgradeFrontend2