becca_entities_boption.js.html 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>JSDoc: Source: becca/entities/boption.js</title>
  6. <script src="scripts/prettify/prettify.js"> </script>
  7. <script src="scripts/prettify/lang-css.js"> </script>
  8. <!--[if lt IE 9]>
  9. <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
  10. <![endif]-->
  11. <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
  12. <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
  13. </head>
  14. <body>
  15. <div id="main">
  16. <h1 class="page-title">Source: becca/entities/boption.js</h1>
  17. <section>
  18. <article>
  19. <pre class="prettyprint source linenums"><code>"use strict";
  20. const dateUtils = require('../../services/date_utils');
  21. const AbstractBeccaEntity = require("./abstract_becca_entity");
  22. /**
  23. * Option represents a name-value pair, either directly configurable by the user or some system property.
  24. *
  25. * @extends AbstractBeccaEntity
  26. */
  27. class BOption extends AbstractBeccaEntity {
  28. static get entityName() { return "options"; }
  29. static get primaryKeyName() { return "name"; }
  30. static get hashedProperties() { return ["name", "value"]; }
  31. constructor(row) {
  32. super();
  33. this.updateFromRow(row);
  34. this.becca.options[this.name] = this;
  35. }
  36. updateFromRow(row) {
  37. /** @type {string} */
  38. this.name = row.name;
  39. /** @type {string} */
  40. this.value = row.value;
  41. /** @type {boolean} */
  42. this.isSynced = !!row.isSynced;
  43. /** @type {string} */
  44. this.utcDateModified = row.utcDateModified;
  45. }
  46. beforeSaving() {
  47. super.beforeSaving();
  48. this.utcDateModified = dateUtils.utcNowDateTime();
  49. }
  50. getPojo() {
  51. return {
  52. name: this.name,
  53. value: this.value,
  54. isSynced: this.isSynced,
  55. utcDateModified: this.utcDateModified
  56. }
  57. }
  58. }
  59. module.exports = BOption;
  60. </code></pre>
  61. </article>
  62. </section>
  63. </div>
  64. <nav>
  65. <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="AbstractBeccaEntity.html">AbstractBeccaEntity</a></li><li><a href="BAttachment.html">BAttachment</a></li><li><a href="BAttribute.html">BAttribute</a></li><li><a href="BBranch.html">BBranch</a></li><li><a href="BEtapiToken.html">BEtapiToken</a></li><li><a href="BNote.html">BNote</a></li><li><a href="BOption.html">BOption</a></li><li><a href="BRecentNote.html">BRecentNote</a></li><li><a href="BRevision.html">BRevision</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li></ul><h3>Global</h3><ul><li><a href="global.html#api">api</a></li></ul>
  66. </nav>
  67. <br class="clear">
  68. <footer>
  69. Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.2</a>
  70. </footer>
  71. <script> prettyPrint(); </script>
  72. <script src="scripts/linenumber.js"> </script>
  73. </body>
  74. </html>