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.

newEmailTemplate.vue 7.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. <template>
  2. <main id="main" style="margin-top:200px; padding-bottom:50px">
  3. <div class="container">
  4. <div class="row">
  5. <div class="col">
  6. <div class="section-header">
  7. <h2>Edit Template</h2>
  8. </div>
  9. </div>
  10. </div>
  11. <div class="row">
  12. <div class="col">
  13. <float-label fixed label="USAGE">
  14. <select v-model="singleTemp.name" class="form-control uniSelect" name="" id="">
  15. <option value="WeekOfferMade-User">Timeshare Week Offer Made (User)</option>
  16. <option value="WeekOfferMade-Owner">Timeshare Week Offer Made (Admin)</option>
  17. <option value="WeekLoaded-Agent">Timeshare Week Listed (Agent)</option>
  18. <option value="WeekLoaded-Owner">Timeshare Week Listed (Owner)</option>
  19. <option value="ContactUs">Contact Us (Admin)</option>
  20. <option value="EnquireNow">Enquire Now (Admin)</option>
  21. </select>
  22. </float-label>
  23. </div>
  24. <div class="col">
  25. <float-label fixed label="SUBJECT">
  26. <input type="text" class="form-control uniInput" v-model="singleTemp.subject" />
  27. </float-label>
  28. </div>
  29. </div>
  30. <div class="row mt-5">
  31. <div class="col-md-12">
  32. <ul class="nav nav-tabs nav-justified" id="myTab" role="tablist">
  33. <li class="nav-item">
  34. <a
  35. class="nav-link active"
  36. id="html-tab"
  37. data-toggle="tab"
  38. href="#html"
  39. role="tab"
  40. aria-controls="html"
  41. aria-selected="false"
  42. ><h2>
  43. html
  44. </h2></a
  45. >
  46. </li>
  47. <li class="nav-item">
  48. <a
  49. class="nav-link"
  50. id="preview-tab"
  51. data-toggle="tab"
  52. href="#preview"
  53. role="tab"
  54. aria-controls="preview"
  55. aria-selected="true"
  56. ><h2>
  57. Preview
  58. </h2></a
  59. >
  60. </li>
  61. </ul>
  62. <div class="tab-content" id="myTabContent">
  63. <div class="row mt-5">
  64. <div class="col-md-10 mt-3">
  65. <float-label fixed label="DYNAMIC FIELD">
  66. <select v-model="selectedProperty" class="form-control uniSelect" name="" id="">
  67. <optgroup label="Resort Fields">
  68. <option value="[RESORTNAME]">Resort Name</option>
  69. <option value="[UNITNUMBER]">Unit Number</option>
  70. <option value="[MODULE]">Module</option>
  71. <option value="[RESORTPRICE]">Resort Price</option>
  72. <option value="[RESORTSEASON]">Resort Season</option>
  73. <option value="[RESORTREGION]">Resort Region</option>
  74. <option value="[RESORTLEVY]">Resort Levy</option>
  75. <option value="[OFFERMADE]">Offer Made</option>
  76. <option value="[OWNER]">OWNER</option>
  77. <option value="[SLEEPMAX]">Sleep Max</option>
  78. <option value="[WEEK]">Week</option>
  79. <option value="[BEDROOMS]">Bedrooms</option>
  80. <option value="[ASKINGPRICE]">Asking Price</option>
  81. <option value="[ARRIVALDATE]">Arrival Date</option>
  82. <option value="[DEPARTUREDATE]">Departure Date</option>
  83. <option value="[AGENTREFER]">Referred By Agent</option>
  84. <option value="[ALLLEVY]">Levies Paid</option>
  85. <option value="[WEEKPLACEDFORRENTAL]">Current year Rental</option>
  86. <option value="[ORIGINALPURCHASEDATE]">Original Purchase Date</option>
  87. <option value="[CUROCCUPATIONDATES]">Current Occupation Dates</option>
  88. <option value="[ORIGINALPURCHASEPRICE]">Original Purchase Price</option>
  89. <option value="[AGENTCOMM]">Agent Commission</option>
  90. </optgroup>
  91. <optgroup label="Property Fields">
  92. <option value="[PROPERTYREF]">Property Ref</option>
  93. <option value="[PROPERTYNAME]">Property Name</option>
  94. <option value="[PROPERTYPRICE]">Property Price</option>
  95. <option value="[PROPERTYID]">Property ID</option>
  96. </optgroup>
  97. <optgroup label="User Fields">
  98. <option value="[FULLNAME]">Fullname</option>
  99. <option value="[USEREMAIL]">User Email</option>
  100. <option value="[USERCELLPHONE]">User Cellphone Number</option>
  101. <option value="[USERTELEPHONE]">User Telephone Number</option>
  102. <option value="[USERCOMMENT]">User Comment</option>
  103. <option value="[USERMESSAGE]">User Message</option>
  104. </optgroup>
  105. </select>
  106. </float-label>
  107. </div>
  108. <div class="col">
  109. <button class="btn-solid-blue" @click="onItemAdd">INSERT</button>
  110. </div>
  111. </div>
  112. <div
  113. class="tab-pane fade show active mt-4"
  114. style="background-color:rgba(255,255,255,0.75);padding:10px;"
  115. id="html"
  116. role="tabpanel"
  117. aria-labelledby="directions-tab"
  118. >
  119. <div class="text-left">
  120. <div class="input-group mb-3">
  121. <textarea
  122. id="bodyInput"
  123. class="form-control"
  124. type="text"
  125. rows="40"
  126. step="any"
  127. name="levy"
  128. v-model="singleTemp.body"
  129. />
  130. </div>
  131. </div>
  132. </div>
  133. <div
  134. class="tab-pane fade mt-4"
  135. id="preview"
  136. role="tabpanel"
  137. aria-labelledby="resort-layout-tab"
  138. >
  139. <div class="no-style" v-html="singleTemp.body"></div>
  140. </div>
  141. </div>
  142. </div>
  143. </div>
  144. <div class="row mt-4">
  145. <div class="col">
  146. <button class="btn-solid-blue" @click="sendToApi()">SAVE</button>
  147. </div>
  148. <div class="col">
  149. <button class="btn-solid-blue" @click="$router.go(-1)">CANCEL</button>
  150. </div>
  151. </div>
  152. </div>
  153. </main>
  154. </template>
  155. <script>
  156. /* eslint-disable */
  157. import { mapActions, mapState } from "vuex";
  158. import alert from "../shared/alert";
  159. export default {
  160. data() {
  161. return {
  162. selectedProperty: "",
  163. singleTemp: {}
  164. };
  165. },
  166. components: {
  167. alert
  168. },
  169. methods: {
  170. ...mapActions("template", ["addItem"]),
  171. sendToApi() {
  172. this.addItem(this.singleTemp).then(() => {
  173. this.$router.go(-1);
  174. });
  175. },
  176. onItemAdd() {
  177. var placeHolder = this.selectedProperty;
  178. // will give the current postion of the cursor
  179. var curPos = document.getElementById("bodyInput").selectionStart;
  180. // will get the value of the text area
  181. let x = $("#bodyInput").val();
  182. // will get the value of the input box
  183. let text_to_insert = placeHolder;
  184. // setting the updated value in the text area
  185. $("#bodyInput").val(x.slice(0, curPos) + text_to_insert + x.slice(curPos));
  186. }
  187. }
  188. };
  189. </script>
  190. <style lang="scss" scoped></style>