importer.html 4.9 KB

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