importer.html 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. {% extends '../layout/admin.html' %}
  2. {% block html_title %}{{ customTitle(t('Importer management')) }}{% endblock %}
  3. {% block content_header %}
  4. <div class="header-wrap">
  5. <header id="page-header">
  6. <h1 class="title" id="">{{ t('Importer management') }}</h1>
  7. </header>
  8. </div>
  9. {% endblock %}
  10. {% block content_main %}
  11. <div class="content-main">
  12. <div class="row">
  13. <div class="col-md-3">
  14. {% include './widget/menu.html' with {current: 'importer'} %}
  15. </div>
  16. <div class="col-md-9">
  17. <!-- Flash message for success -->
  18. {% set smessage = req.flash('successMessage') %}
  19. {% if smessage.length %}
  20. <div class="alert alert-success">
  21. {% for e in smessage %}
  22. {{ e }}<br>
  23. {% endfor %}
  24. </div>
  25. {% endif %}
  26. <!-- Flash message for error -->
  27. {% set emessage = req.flash('errorMessage') %}
  28. {% if emessage.length %}
  29. <div class="alert alert-danger">
  30. {% for e in emessage %}
  31. {{ e }}<br>
  32. {% endfor %}
  33. </div>
  34. {% endif %}
  35. <!-- Importer management forms -->
  36. <form action="/_api/admin/settings/importer" method="post" class="form-horizontal" id="importerSettingForm" role="form">
  37. <fieldset>
  38. <!-- esa importer -->
  39. <div class="form-group">
  40. <legend>{{ t('importer_management.esa_settings.title') }}</legend>
  41. <div class="form-group">
  42. <label for="settingForm[importer:esa:team_name]" class="col-xs-3 control-label">{{ t('importer_management.esa_settings.team_name') }}</label>
  43. <div class="col-xs-6">
  44. <input class="form-control" type="text" name="settingForm[importer:esa:team_name]" value="{{ settingForm['importer:esa:team_name'] | default('') }}">
  45. </div>
  46. </div>
  47. <div class="form-group">
  48. <label for="settingForm[importer:esa:access_token]" class="col-xs-3 control-label">{{ t('importer_management.esa_settings.access_token') }}</label>
  49. <div class="col-xs-6">
  50. <input class="form-control" type="text" name="settingForm[importer:esa:access_token]" value="{{ settingForm['importer:esa:access_token'] | default('') }}">
  51. </div>
  52. </div>
  53. </div>
  54. <div class="form-group">
  55. <div class="col-xs-offset-3 col-xs-6">
  56. <button type="button" class="btn btn-primary" onClick="importFromEsa()">
  57. {{ t("importer_management.import") }}
  58. </button>
  59. <button type="submit" class="btn btn-secondary">{# the first element is the default button to submit #}
  60. <input type="hidden" name="_csrf" value="{{ csrf() }}">
  61. {{ t('Update') }}
  62. </button>
  63. <span class="col-xs-offset-1">
  64. <button type="button" class="btn btn-default" onClick="testConnectionToEsa(this)">
  65. {{ t("importer_management.test_connection") }}
  66. </button>
  67. </span>
  68. </div>
  69. </div>
  70. </fieldset>
  71. </form>
  72. </div>
  73. </div>
  74. </div>
  75. <script>
  76. /**
  77. * show flash message
  78. */
  79. function showMessage(formId, msg, status) {
  80. $('#' + formId + ' .alert').remove();
  81. if (!status) {
  82. status = 'success';
  83. }
  84. var $message = $('<p class="alert"></p>');
  85. $message.addClass('alert-' + status);
  86. $message.html(msg.replace('\n', '<br>'));
  87. $message.insertAfter('#' + formId + ' legend');
  88. if (status == 'success') {
  89. setTimeout(function()
  90. {
  91. $message.fadeOut({
  92. complete: function() {
  93. $message.remove();
  94. }
  95. });
  96. }, 5000);
  97. }
  98. }
  99. /**
  100. * test connection to esa
  101. */
  102. function testConnectionToEsa(buttonClicked) {
  103. var $action = '/_api/admin/imoprt/testEsaAPI';
  104. var $form = $('#importerSettingForm');
  105. var $id = $form.attr('id');
  106. var $button = $(buttonClicked);
  107. $button.attr('disabled', 'disabled');
  108. var jqxhr = $.post($action, $form.serialize(), function(data)
  109. {
  110. if (!data.status) {
  111. showMessage($id, "test connection to esa failed", 'danger');
  112. }
  113. else {
  114. showMessage($id, "test connection to esa success");
  115. }
  116. })
  117. .fail(function() {
  118. showMessage($id, "エラーが発生しました", 'danger');
  119. })
  120. .always(function() {
  121. $button.prop('disabled', false);
  122. });
  123. return false;
  124. }
  125. /**
  126. * import from esa
  127. */
  128. function importFromEsa() {
  129. alert('importFromEsa');
  130. }
  131. /**
  132. * Handle submit button
  133. */
  134. $('#importerSettingForm').each(function() {
  135. $(this).submit(function()
  136. {
  137. var $form = $(this);
  138. var $id = $form.attr('id');
  139. var $button = $('button', this);
  140. $button.attr('disabled', 'disabled');
  141. var jqxhr = $.post($form.attr('action'), $form.serialize(), function(data)
  142. {
  143. if (data.status) {
  144. showMessage($id, '更新しました');
  145. } else {
  146. showMessage($id, data.message, 'danger');
  147. }
  148. })
  149. .fail(function() {
  150. showMessage($id, 'エラーが発生しました', 'danger');
  151. })
  152. .always(function() {
  153. $button.prop('disabled', false);
  154. });
  155. return false;
  156. });
  157. });
  158. </script>
  159. {% endblock content_main %}
  160. {% block content_footer %}
  161. {% endblock content_footer %}