You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

produkt.js 1.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import Component from '@glimmer/component';
  2. import { action } from '@ember/object';
  3. import { tracked } from '@glimmer/tracking';
  4. import { inject as service } from '@ember/service';
  5. export default class ProduktController extends Component {
  6. @tracked isLarge = false;
  7. @tracked isSelected;
  8. @service store;
  9. @action toggleSize()
  10. {
  11. this.isLarge = !this.isLarge;
  12. }
  13. @action toggleSelection(produktname)
  14. {
  15. this.isSelected = !this.isSelected;
  16. this.setStatus(produktname, this.isSelected);
  17. }
  18. @action getStatus(produktname)
  19. {
  20. //sucht Produkt im Store
  21. this.store.findAll('produkt')
  22. .then(function(suchergebnis)
  23. {
  24. suchergebnis.forEach(element => {
  25. if(element.titel==produktname)
  26. {
  27. this.isSelected = element.isSelected;
  28. }
  29. });
  30. if(!this.exists)
  31. {
  32. this.isSelected = false;
  33. }
  34. });
  35. }
  36. setStatus(produktname, selection)
  37. {
  38. //schreibt den aktuellen Zustand in den Store
  39. this.store.findAll('produkt')
  40. .then(function(suchergebnis)
  41. {
  42. suchergebnis.forEach(element => {
  43. if(element.titel==produktname)
  44. {
  45. element.isSelected = selection;
  46. element.save();
  47. this.store.updateRelationships();
  48. }
  49. });
  50. });
  51. }
  52. }