Skip to content
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

Emberjs upgrade #526

Merged
merged 84 commits into from
Apr 20, 2023
Merged
Show file tree
Hide file tree
Changes from 75 commits
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
9327433
Upgrade ember to 3.18.0
lkleisa Mar 6, 2023
bce1343
Upgrade ember to 3.19.0
lkleisa Mar 6, 2023
4dc2bcc
Upgrade ember to 3.20.0
lkleisa Mar 8, 2023
bc90d09
Upgrade ember to 3.21.0
lkleisa Mar 8, 2023
823062b
Upgrade ember to 3.22.0
lkleisa Mar 8, 2023
98a8886
Upgrade ember to 3.23.0
lkleisa Mar 8, 2023
57637ef
Remove ember-fetch
lkleisa Mar 8, 2023
181a08c
Upgrade ember to 3.24.0
lkleisa Mar 8, 2023
87172bb
Upgrade ember-cli-string-helpers
lkleisa Mar 8, 2023
eeec721
Upgrade nodejs version to 14.19.0
lkleisa Mar 8, 2023
4932756
Upgrade ember-qunit
lkleisa Mar 8, 2023
f6b7579
Upgrade ember to 3.28.0, ember-auto-import, ember-bootstrap, ember-so…
lkleisa Mar 8, 2023
2f682b2
Upgrade ember to 3.28.6, add custom ember-cli-icon-rating, set bootst…
lkleisa Mar 10, 2023
743acee
Upgrade ember-cli-sass to 10.0.1, bootstrap-sass to 3.4.1, ember-mome…
lkleisa Mar 13, 2023
d7a9305
Upgrade ember-cli-babel to 7.26.11
lkleisa Mar 13, 2023
afd0b4e
Upgrade ember-data to 3.28.13
lkleisa Mar 13, 2023
2b97a99
Upgrade ember-cli-htmlbars to 5.7.2
lkleisa Mar 15, 2023
e41fe4f
Upgrade rollup to 1.12.0
lkleisa Mar 15, 2023
3b0414e
Update browser list
lkleisa Mar 15, 2023
302bfa6
Update ember-modifier, ember-power-select-with-create and add @ember/…
lkleisa Mar 15, 2023
7c7aefe
Update multiple dependencies (@ember/render-modifiers, ember-intl, em…
lkleisa Mar 15, 2023
ea766f0
Upgrade ember-bootstrap and use bootstrap 4
lkleisa Mar 15, 2023
be544cd
Upgrade @ember/optional-features and remove unused config
lkleisa Mar 15, 2023
897f08c
Upgrade ember-route-action-helper
lkleisa Mar 15, 2023
f4874de
Use qunit for test method and not ember-qunit
lkleisa Mar 15, 2023
5795ef1
Fix not running frontend tests
lkleisa Mar 17, 2023
4ea4dd3
Update yarn.lock and fix dependency alert
lkleisa Mar 17, 2023
74dd5eb
Add qunit setup to ember test helpers
lkleisa Mar 17, 2023
019b3b6
Add @service annotation for this.store
lkleisa Mar 17, 2023
d72a658
Set jquery-integration to false
lkleisa Mar 17, 2023
c16031b
Make submit button blue
lkleisa Mar 17, 2023
2de9830
Downgrade ember-keyboard to 6.0.4
lkleisa Mar 17, 2023
ce47de7
Fix jquery bug
lkleisa Mar 17, 2023
2dc8d79
Regenerate yarn.lock file
lkleisa Mar 17, 2023
22f09b5
Make eslint happy
lkleisa Mar 17, 2023
430d952
Upgrade jquery
lkleisa Mar 20, 2023
145e4cb
Replace this.$() with $()
lkleisa Mar 20, 2023
ea891c7
Change ember version in rails.yml
lkleisa Mar 20, 2023
105e9e1
Add allowed versions to dependency-lint.js
lkleisa Mar 20, 2023
207d385
Upgrade qunit-dom
lkleisa Mar 20, 2023
9e1f7ac
Fix testing errors with qunit-dom
lkleisa Mar 20, 2023
a1e1d15
Fix locale error in tests
lkleisa Mar 22, 2023
624dff4
Remove import from $ jquery in tests
lkleisa Mar 22, 2023
7c09189
Replace jquery with querySelector in person-cv-export-test
lkleisa Mar 22, 2023
db8c9c6
Try fixing test problems with document queryselector
lkleisa Mar 22, 2023
8c2fe1e
Replace document with this.element
lkleisa Mar 22, 2023
c0a12bc
Revert document querySelector to assert.dom
lkleisa Mar 22, 2023
333be40
Set locale in new-people-skills-show-test
lkleisa Mar 22, 2023
f113fcd
Add ember-fetch
lkleisa Mar 24, 2023
8d304fb
Fix failing tests, remove $.text() and replace this.render with await…
lkleisa Mar 24, 2023
a73b7ac
Replace $ with document.querySelector
lkleisa Apr 3, 2023
2c84a1a
Remove dependency lint error
lkleisa Apr 3, 2023
c254376
Update yarn.lock
lkleisa Apr 3, 2023
a62d514
Remove person form tests because they will be new in feature #351
lkleisa Apr 4, 2023
acd2ba3
Add @initiallyOpened={{false}} and @renderInPlace={{true}} to Ember P…
lkleisa Apr 4, 2023
ef6186b
Fix daterange-edit-tests with this.$ error
lkleisa Apr 4, 2023
3f1b0ac
Remove css bug with header menu over drop down
lkleisa Apr 4, 2023
c6ddcc0
Remove bug with not possible to delete person
lkleisa Apr 4, 2023
24d17b0
Remove bug with overlay from people search on person delete
lkleisa Apr 4, 2023
fa61174
Fix tests in frontend
lkleisa Apr 5, 2023
f2d33c0
Remove unused eslint disable
lkleisa Apr 5, 2023
dffc20e
Move button styling to custom.scss
lkleisa Apr 5, 2023
ed35ee3
Adjust readme with specific ember cli version
lkleisa Apr 5, 2023
53be39f
Fix tests in frontend
lkleisa Apr 5, 2023
ecb4e3f
Resolve bug with setting something on deleted record
lkleisa Apr 5, 2023
215d62f
Adjust eslint disabling
lkleisa Apr 5, 2023
1320dcf
Fix pipeline bug with calling set on destroyed record
lkleisa Apr 6, 2023
703c46f
Remove outcommented rootElement = "ember-testing"
lkleisa Apr 6, 2023
a7c87e2
Revert changes in skill-search-test.js
lkleisa Apr 6, 2023
8d5557c
Implement feedback from pr
lkleisa Apr 6, 2023
c3e46f6
Fix bug with 2 times clicking on new skill in skill set
lkleisa Apr 6, 2023
a8716a9
Fix pipeline bug with calling set on destroyed record
lkleisa Apr 6, 2023
4c57074
Fix failing text
lkleisa Apr 6, 2023
6eacbb0
Remove bug with multiple selection of ui slider
lkleisa Apr 6, 2023
f850aee
Fix bug with first point of ui slider always dark blue marked
lkleisa Apr 17, 2023
c3684a5
Resolve pr review
lkleisa Apr 18, 2023
7c8a719
Fix bug when editing people skills
lkleisa Apr 18, 2023
47f4afe
Remove outcommented code
lkleisa Apr 18, 2023
88896ef
Fix failing test people skill edit
lkleisa Apr 18, 2023
70ff755
Resolve pr feedback
lkleisa Apr 18, 2023
ccaa573
Fix bug with resetting people skill and broken slider bubbles
lkleisa Apr 18, 2023
d350f22
Replace sleep with setTimeout
lkleisa Apr 19, 2023
e57b4a0
Remove bubbles bug when editing all people skills
lkleisa Apr 19, 2023
dd3d461
Resolve pr feedback
lkleisa Apr 19, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/rails.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,10 @@ jobs:
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
- uses: actions/setup-node@v2
with:
node-version: '12' # TODO version should not be specified
node-version: '14' # TODO version should not be specified
lkleisa marked this conversation as resolved.
Show resolved Hide resolved

- name: Install Ember-Cli with NPM
run: npm install -g ember-cli@3.17 # TODO version should not be specified
run: npm install -g ember-cli@3.28.6 # TODO version should not be specified
lkleisa marked this conversation as resolved.
Show resolved Hide resolved
working-directory: frontend

- name: Install dependencies Yarn
Expand Down
2 changes: 2 additions & 0 deletions config/application.rb
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ class Application < Rails::Application
config.autoload_paths += %W( #{config.root}/app/uploaders) #
config.i18n.default_locale = :de

config.active_record.verify_foreign_keys_for_fixtures = false
lkleisa marked this conversation as resolved.
Show resolved Hide resolved

# Bullet tries to add finish_at to insert statement, which does not exist anymore
config.active_record.partial_inserts = true

Expand Down
39 changes: 39 additions & 0 deletions frontend/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,45 @@
This is the Frontend part of the PuzzleSkills setup documentation
The Frontend is built with [Ember.js](https://emberjs.com/)

## Prerequisites

You will need the following things properly installed on your computer.

lkleisa marked this conversation as resolved.
Show resolved Hide resolved
* [Git](https://git-scm.com/)
* [Node.js](https://nodejs.org/) (with NPM)
* [Ember CLI](https://ember-cli.com/)
* [NVM](https://github.com/creationix/nvm)

## Installation Guide

lkleisa marked this conversation as resolved.
Show resolved Hide resolved
Install node version 14 with the Node Version Manager
```shell
nvm install 14
```
Install Ember-Cli version 3.28.6 with NPM
```shell
npm install -g ember-cli@3.28.6
```
Go into the frontend folder of the project
```shell
cd frontend
```
There, run yarn install which will install all the packages
```shell
yarn install
```

## Running / Development

With the rails backend server running you can start the frontend, directing it at the rails server on port 3000

```shell
ember server --proxy=http://localhost:3000
```
Congratulations the PuzzleSkills Application is now online, you can visit it at
lkleisa marked this conversation as resolved.
Show resolved Hide resolved

##### <code> [http://localhost:4200](http://localhost:4200) </code>

## Documentation

### Code Generators
Expand Down
4 changes: 3 additions & 1 deletion frontend/app/components/core-competences-show.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,9 @@ export default class CoreCompetencesShow extends Component {
.filter(s => s !== undefined);
if (skills.length) hash[category.get("title")] = skills;
});
this.set("coreCompetencesObj", hash);
if (!this.get("isDestroyed")) {
this.set("coreCompetencesObj", hash);
}
});
}

Expand Down
27 changes: 26 additions & 1 deletion frontend/app/components/delete-with-confirmation.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,22 +14,47 @@ export default class DeleteWithConfirmation extends Component {

@action
openConfirmation() {
if (!this.get("router.currentURL").includes("skills")) {
lkleisa marked this conversation as resolved.
Show resolved Hide resolved
lkleisa marked this conversation as resolved.
Show resolved Hide resolved
document
.getElementById("people-search-header")
.classList.remove("zIndexThousand");
document
.getElementById("people-search-header")
.classList.add("zIndexOne");
}
lkleisa marked this conversation as resolved.
Show resolved Hide resolved
this.set("showConfirmation", true);
}

@action
cancel() {
if (!this.get("router.currentURL").includes("skills")) {
document
.getElementById("people-search-header")
.classList.remove("zIndexThousand");
document
.getElementById("people-search-header")
.classList.add("zIndexOne");
}
this.set("showConfirmation", false);
}

@action
delete(entry, transitionTo) {
if (!this.get("router.currentURL").includes("skills")) {
document
.getElementById("people-search-header")
.classList.remove("zIndexOne");
document
.getElementById("people-search-header")
.classList.add("zIndexThousand");
}

const message = this.intl.t("delete-confirmation.success", {
name: entry.instanceToString
});

this.set("showConfirmation", false);
entry.destroyRecord().then(() => {
this.set("showConfirmation", false);
if (isPresent(transitionTo)) {
this.get("router").transitionTo(transitionTo);
}
Expand Down
12 changes: 9 additions & 3 deletions frontend/app/components/new-people-skills-show.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,9 @@ export default Component.extend({
},

refreshNewPeopleSkills(skills) {
this.set("isLoading", true);
if (!this.get("isDestroyed")) {
this.set("isLoading", false);
}
let loadBegin = Date.now();
this.get("ajax")
.request("/skills/unrated_by_person", {
Expand All @@ -37,7 +39,9 @@ export default Component.extend({
loadEnd - loadBegin > this.get("minimumLoadTime") ||
ENV.environment == "test"
) {
this.set("isLoading", false);
if (!this.get("isDestroyed")) {
this.set("isLoading", false);
}
} else {
setTimeout(() => {
this.set("isLoading", false);
Expand All @@ -58,7 +62,9 @@ export default Component.extend({
if (a.get("skill.title") < b.get("skill.title")) return -1;
return 0;
});
this.set("newPeopleSkills", peopleSkills);
if (!this.get("isDestroyed")) {
this.set("newPeopleSkills", peopleSkills);
}
});
},

Expand Down
1 change: 0 additions & 1 deletion frontend/app/components/people-search.js
lkleisa marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ export default class PeopleSearch extends Component {
return currentId ? this.store.peekRecord("person", currentId) : undefined;
}

@computed("this.args.people")
lkleisa marked this conversation as resolved.
Show resolved Hide resolved
get peopleToSelect() {
return this.args.people.toArray().sort((a, b) => {
if (a.get("name") < b.get("name")) return -1;
Expand Down
33 changes: 20 additions & 13 deletions frontend/app/components/people-skill-edit.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,25 +8,32 @@ import { isBlank } from "@ember/utils";
export default class PeopleSkillEdit extends Component {
init() {
super.init(...arguments);
this.set("interestLevelOptions", [0, 1, 2, 3, 4, 5]);
this.set("levelValue", this.get("peopleSkill.level"));

if (!this.get("peopleSkill.level")) {
this.set("levelValue", 1);
/* eslint-disable ember/no-global-jquery, no-undef, ember/jquery-ember-run */
$(".slider-handle").ready(() => {
this.sliderHandle = this.$(".slider-handle:first");
if (!this.sliderHandle) return;
this.sliderHandle.removeClass("slider-handle");
this.$(".in-selection").removeClass("in-selection");
}
}

@action
sliderLoading(element) {
// Sorry for doing this like that, but we couldn't make it work with element.querySelector().ready().
/* eslint-disable ember/no-global-jquery, no-undef, ember/jquery-ember-run */
$(".slider-handle").ready(() => {
this.sliderTickContainer = element.querySelector(
".slider-tick-container"
).children[0];
this.sliderTickContainer.classList.remove("in-selection");

this.sliderHandle = element.querySelector(".slider-handle");
this.sliderHandle.classList.remove("slider-handle");

this.$(".slider").on("mouseup", () => {
this.sliderHandle.addClass("slider-handle");
this.notifyPropertyChange("levelValue");
});
/* eslint-enable ember/no-global-jquery, no-undef, ember/jquery-ember-run */
element.addEventListener("mouseup", () => {
this.sliderHandle.classList.add("slider-handle");
this.notifyPropertyChange("levelValue");
});
}
});
/* eslint-enable ember/no-global-jquery, no-undef, ember/jquery-ember-run */
}

@computed("peopleSkill.level")
Expand Down
14 changes: 8 additions & 6 deletions frontend/app/components/people-skill-show.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,20 @@ import Component from "@ember/component";

@classic
export default class PeopleSkillShow extends Component {
/* eslint-disable ember/no-global-jquery, no-undef, ember/jquery-ember-run */

@service router;

init() {
super.init(...arguments);
this.set("levelValue", this.get("peopleSkill.level"));
if (!this.get("peopleSkill.level")) {
this.set("levelValue", 1);
/* eslint-disable ember/no-global-jquery, no-undef, ember/jquery-ember-run */
$(".slider-handle").ready(() => {
this.sliderHandle = this.$(".slider-handle:first");
this.sliderHandle = $(".slider-handle:first");
if (!this.sliderHandle) return;
this.sliderHandle.removeClass("slider-handle");
this.$(".in-selection").removeClass("in-selection");
/* eslint-enable ember/no-global-jquery, no-undef, ember/jquery-ember-run */
$(".in-selection").removeClass("in-selection");
});
}
}
Expand Down Expand Up @@ -60,9 +60,11 @@ export default class PeopleSkillShow extends Component {
@action
adjustSliderStylingOnReset() {
if (!this.get("peopleSkill.level")) {
this.sliderHandle = this.$(".slider-handle:first");
this.sliderHandle = $(".slider-handle:first");
this.sliderHandle.removeClass("slider-handle");
this.$(".in-selection").removeClass("in-selection");
$(".in-selection").removeClass("in-selection");
}
}

/* eslint-enable ember/no-global-jquery, no-undef, ember/jquery-ember-run */
}
8 changes: 6 additions & 2 deletions frontend/app/components/people-skills-show.js
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,8 @@ export default Component.extend({
return hash;
},

/* eslint-disable ember/no-global-jquery, no-undef, ember/jquery-ember-run */

actions: {
submit(person) {
person
Expand All @@ -118,7 +120,7 @@ export default Component.extend({
.then(() => this.set("peopleSkillsEditing", false))
.then(() => this.get("notify").success("Successfully saved!"))
.then(() =>
this.$("#peopleSkillsHeader")[0].scrollIntoView({
$("#peopleSkillsHeader")[0].scrollIntoView({
lkleisa marked this conversation as resolved.
Show resolved Hide resolved
behavior: "smooth"
})
)
Expand Down Expand Up @@ -158,11 +160,13 @@ export default Component.extend({
}
});
this.set("peopleSkillsEditing", false);
this.$("#peopleSkillsHeader")[0].scrollIntoView({ behavior: "smooth" });
$("#peopleSkillsHeader")[0].scrollIntoView({ behavior: "smooth" });
},

toggleSkillShow(skill) {
this.set("currentSkill", skill);
}
}

/* eslint-enable ember/no-global-jquery, no-undef, ember/jquery-ember-run */
});
11 changes: 6 additions & 5 deletions frontend/app/components/person-actions.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,6 @@ import { observes } from "@ember-decorators/object";
import { action } from "@ember/object";
import { inject as service } from "@ember/service";
import Component from "@ember/component";
/* eslint-disable ember/new-module-imports */
import Ember from "ember";
const { $ } = Ember;
/* eslint-enable ember/new-module-imports */

@classic
export default class PersonActions extends Component {
Expand All @@ -25,6 +21,7 @@ export default class PersonActions extends Component {

@observes("person.peopleSkills.@each.id")
peopleSkillsChanged() {
if (!this.get("person.id")) return;
this.refreshUnratedSkillsAmount();
}

Expand All @@ -36,10 +33,13 @@ export default class PersonActions extends Component {
}
})
.then(response => {
this.set("unratedSkillsAmount", response.data.length);
if (!this.get("isDestroyed")) {
this.set("unratedSkillsAmount", response.data.length);
}
});
}

/* eslint-disable ember/no-global-jquery, no-undef, ember/jquery-ember-run */
didRender() {
const currentURL = this.get("router.currentURL");
if (currentURL.includes("skills")) {
Expand All @@ -61,6 +61,7 @@ export default class PersonActions extends Component {
$("#person-cv-export").modal("toggle");
}
}
/* eslint-enable ember/no-global-jquery, no-undef, ember/jquery-ember-run */

@action
exportDevFws(personId, e) {
Expand Down
8 changes: 6 additions & 2 deletions frontend/app/components/picture-edit.js
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,10 @@ export default class PictureEdit extends Component {
this.set("response", ObjectPromiseProxy.create({ promise: res }));
}

/* eslint-disable ember/no-global-jquery, no-undef, ember/jquery-ember-run */

didInsertElement() {
this.$(".img-input").on("change", e => {
$(".img-input").on("change", e => {
if (e.target.files.length) {
this.uploadImage(e.target.files[0]);
e.target.value = null;
Expand All @@ -62,6 +64,8 @@ export default class PictureEdit extends Component {

@action
changePicture() {
this.$(".img-input").click();
$(".img-input").click();
}

/* eslint-enable ember/no-global-jquery, no-undef, ember/jquery-ember-run */
}
3 changes: 3 additions & 0 deletions frontend/app/routes/people.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ export default class PeopleRoute extends Route.extend(
@service
ajax;

@service
store;
lkleisa marked this conversation as resolved.
Show resolved Hide resolved

@service
selectedPerson;

Expand Down
3 changes: 3 additions & 0 deletions frontend/app/routes/people/new.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
import classic from "ember-classic-decorator";
import { action } from "@ember/object";
import Route from "@ember/routing/route";
import { inject as service } from "@ember/service";

@classic
export default class NewRoute extends Route {
@service store;
lkleisa marked this conversation as resolved.
Show resolved Hide resolved

model() {
return this.store.createRecord("person");
}
Expand Down
3 changes: 3 additions & 0 deletions frontend/app/routes/person.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ export default class PersonRoute extends Route {
@service
selectedPerson;

@service
store;
lkleisa marked this conversation as resolved.
Show resolved Hide resolved

model(params) {
return this.store.findRecord("person", params.person_id);
}
Expand Down
3 changes: 3 additions & 0 deletions frontend/app/routes/person/skills.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@ export default class SkillsRoute extends Route.extend(
@service
router;

@service
store;
lkleisa marked this conversation as resolved.
Show resolved Hide resolved

queryParams = {
rated: {
refreshModel: true,
Expand Down
Loading