account.html 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. <div id="team" class="dialog in" style="padding:100px;z-index:20000;position:absolute;width:100%;min-height:100%;background-color:#eee" v-if="active_view == 'account' && user" v-cloak>
  2. <a href="/spaces" class="btn btn-round btn-icon btn-dark btn-md pull-right" style="position:absolute;top:30px;right:30px"><span class="icon icon-cross-0"></span></a>
  3. <div class="dialog-tabs" style="margin:auto">
  4. <div class="dialog-tab" v-bind:class="{open:account=='profile'}" v-on:click="account='profile'"><span>[[__("profile_caption")]]</span></div>
  5. <div class="dialog-tab" v-bind:class="{open:account=='language'}" v-on:click="account='language'"><span>[[__("language_caption")]]</span></div>
  6. <div class="dialog-tab" v-bind:class="{open:account=='notifications'}" v-on:click="account='notifications'"><span>[[__("notifications_caption")]]</span></div>
  7. <div class="dialog-tab" v-if="user.account_type=='email'" v-bind:class="{open:account=='password'}" v-on:click="account='password'"><span>[[__("password_caption")]]</span></div>
  8. <div class="dialog-tab" v-bind:class="{open:account=='terminate'}" v-on:click="account='terminate'"><span>[[__("terminate_caption")]]</span></div>
  9. </div>
  10. <div class="dialog-section text-left" style="background-color:#f5f5f5;padding-top:40px;padding-bottom:40px">
  11. <div class="collapse" v-bind:class="{in:account=='profile'}">
  12. <div class="labels-inline relative" style="margin-bottom:40px">
  13. <div class="form-group">
  14. <div id="profile-image" class="img loaded pull-left" style="margin-right: 50px;">
  15. <span id="profile-thumbnail" class="btn btn-xl btn-darken btn-icon btn-round" v-bind:style="{'background-image':'url('+user.avatar_thumb_uri+')'}">
  16. <span class="icon icon-user" v-if="!user.avatar_thumb_uri"></span>
  17. </span>
  18. <span class="spinner"></span>
  19. <button id="remove-profile-image" class="btn btn-xs btn-dark btn-round btn-icon" v-on:click="delete_user_avatar_image()" v-if="has_avatar_image(user)">
  20. <span class="icon icon-cross-3"></span>
  21. </button>
  22. </div>
  23. <div class="pull-left">
  24. <div class="form-group">
  25. <label class="file btn btn-md btn-darken" style="margin-right: 5px;">
  26. <input type="file" v-on:change="save_user_avatar_image(this)">
  27. <span v-if="!uploading_avatar">[[__("upload_avatar")]]</span>
  28. <span v-if="uploading_avatar">[[__("uploading_avatar")]]</span>
  29. </label>
  30. <p class="message">[[__("avatar_dimensions")]]</p>
  31. </div>
  32. </div>
  33. </div>
  34. </div>
  35. <div>
  36. <div class="form-group">
  37. <label class="label" >[[__("profile_name")]]</label>
  38. <input type="text" id="user-nickname"
  39. pattern=".{3,}"
  40. required title="3 characters minimum"
  41. class="input input-white no-b" data-i18n="[placeholder]account.username.input"
  42. v-model="user.nickname" placeholder="Choose a username">
  43. </div>
  44. <div class="form-group">
  45. <label class="label">[[__("profile_email")]]</label>
  46. <input
  47. id="new-email"
  48. v-bind:class="{disabled: user.account_type=='google'}"
  49. v-bind:disabled="user.account_type=='google'"
  50. class="input input-white no-b"
  51. type="email"
  52. v-model="user.email"
  53. v-on:change="user.email_changed=true"
  54. placeholder="mail@example.com">
  55. <button class="btn btn-md btn-darken" v-if="user.account_type=='email'" v-on:click=" save_user()" style="margin-top:20px">[[__("ok")]]</button>
  56. </div>
  57. <div class="form-group" v-if="!user.confirmed_at">
  58. <p v-if="!user.confirmed_at && !account_confirmed_sent">[[__("confirmation_sent_long")]]</p>
  59. <span
  60. class="btn btn-xs btn-stroke-darken btn-round"
  61. v-on:click=" confirm_again()"
  62. v-if="!user.confirmed_at && !account_confirmed_sent"
  63. >[[__("send_again")]]</span>
  64. <p v-if="account_confirmed_sent">
  65. <span class="icon icon-check"></span> <span>[[__("confirmation_sent_another")]]</span>
  66. </p>
  67. </div>
  68. <div class="form-group">
  69. <label class="label">Spacedeck.com Data Import</label>
  70. <p v-if="!importables">No .ZIP files found in Spacedeck application folder.</p>
  71. <ul>
  72. <li v-for="f in importables">{{f}} <button v-on:click="start_zip_import(f)">Start Import</button></li>
  73. </ul>
  74. </div>
  75. </div>
  76. </div>
  77. <div class="collapse" v-bind:class="{in:account=='language'}">
  78. <div class="modal-section">
  79. <label class="radio" v-bind:class="{checked
  80. : user.prefs_language=='en'}" v-on:click="save_user_language('en')">
  81. <input type="radio" id="user-preferences_language" name="language" value="en"><span>English</span>
  82. </label>
  83. <hr/>
  84. <label class="radio" v-bind:class="{checked: user.prefs_language=='de'}" v-on:click="save_user_language('de')">
  85. <input type="radio" id="user-preferences_language" name="language" value="de"><span>Deutsch</span>
  86. </label>
  87. <hr/>
  88. <label class="radio" v-bind:class="{checked: user.prefs_language=='fr'}" v-on:click="save_user_language('fr')">
  89. <input type="radio" id="user-preferences_language" name="language" value="fr"><span>Français</span>
  90. </label>
  91. </div>
  92. </div>
  93. <div class="collapse" v-bind:class="{in:account=='notifications'}">
  94. <div class="modal-section labels-inline">
  95. <div class="form-group">
  96. <label class="checkbox"
  97. v-bind:class="{checked: user.prefs_email_notifications}"
  98. v-on:click="account_save_user_notifications(!user.prefs_email_notifications);">
  99. <span>[[__('notifications_option_chat')]]</span>
  100. </label>
  101. </div>
  102. </div>
  103. </div>
  104. <div class="collapse" v-bind:class="{in:account=='password'}">
  105. <h4 class="modal-title">Change Password</h4>
  106. <div class="modal-section labels-inline">
  107. <div class="form-group">
  108. <label class="label">[[__("current_password")]]</label>
  109. <input id="current-password" class="input input-white no-b" v-model="password_change_current" type="password">
  110. </div>
  111. <div class="form-group">
  112. <label class="label">[[__("new_password")]]</label>
  113. <input id="new-password" class="input input-white no-b" v-model="password_change_new" type="password">
  114. </div>
  115. <div class="form-group">
  116. <label class="label">[[__("verify_password")]]</label>
  117. <input id="new-password-confirmation" class="input input-white no-b" v-model="password_change_new_confirmation" type="password">
  118. </div>
  119. <div class="center alert alert-danger" v-if="password_change_error">{{password_change_error}}</div>
  120. </div>
  121. <div class="modal-footer">
  122. <div class="btn-cluster">
  123. <button
  124. class="btn btn-transparent btn-block"
  125. v-on:click="save_user_password(password_change_current, password_change_new, password_change_new_confirmation);" >
  126. [[__("change_password")]]
  127. </button>
  128. </div>
  129. </div>
  130. </div>
  131. <div class="collapse" v-bind:class="{in:account=='terminate'}">
  132. <div class="">
  133. <p>[[__("terminate_warning")]]</p>
  134. <p>[[__("terminate_warning2")]]</p>
  135. </div>
  136. <div class="labels-inline" v-if="user.account_type == 'email'">
  137. <div class="form-group">
  138. <label class="label">[[__("current_password")]]</label>
  139. <input v-model="account_remove_password" class="input input-white no-b" type="password">
  140. </div>
  141. <div class="form-group">
  142. <label class="label">[[__("terminate_reason")]]</label>
  143. <textarea class="input input-white no-b" v-model="account_remove_feedback"></textarea>
  144. <p class="message">[[__("terminate_reason_caption")]]</p>
  145. </div>
  146. <div class="center alert alert-danger" v-if="account_remove_error">{{account_remove_error}}</div>
  147. </div>
  148. <button class="btn btn-transparent btn-block" v-on:click="remove_account(account_remove_password, account_remove_feedback)">[[__("terminate_terminate")]]</button>
  149. </div>
  150. </div>
  151. </div>