Просмотр исходного кода

impl plugin:isEnablePlugin switch settings

Yuki Takei 9 лет назад
Родитель
Сommit
8b0cf563ac
4 измененных файлов с 64 добавлено и 1 удалено
  1. 9 0
      lib/form/admin/plugin.js
  2. 1 0
      lib/form/index.js
  3. 1 0
      lib/routes/index.js
  4. 53 1
      lib/views/admin/app.html

+ 9 - 0
lib/form/admin/plugin.js

@@ -0,0 +1,9 @@
+'use strict';
+
+var form = require('express-form')
+  , field = form.field;
+
+module.exports = form(
+  field('settingForm[plugin:isEnablePlugin]').trim().toBoolean()
+);
+

+ 1 - 0
lib/form/index.js

@@ -14,6 +14,7 @@ exports.admin = {
   mail: require('./admin/mail'),
   aws: require('./admin/aws'),
   google: require('./admin/google'),
+  plugin: require('./admin/plugin'),
   userInvite: require('./admin/userInvite'),
   slackSetting: require('./admin/slackSetting'),
 };

+ 1 - 0
lib/routes/index.js

@@ -43,6 +43,7 @@ module.exports = function(crowi, app) {
   app.post('/_api/admin/settings/mail'  , loginRequired(crowi, app) , middleware.adminRequired() , csrf, form.admin.mail, admin.api.appSetting);
   app.post('/_api/admin/settings/aws'   , loginRequired(crowi, app) , middleware.adminRequired() , csrf, form.admin.aws, admin.api.appSetting);
   app.post('/_api/admin/settings/google', loginRequired(crowi, app) , middleware.adminRequired() , csrf, form.admin.google, admin.api.appSetting);
+  app.post('/_api/admin/settings/plugin', loginRequired(crowi, app) , middleware.adminRequired() , csrf, form.admin.plugin, admin.api.appSetting);
 
   // search admin
   app.get('/admin/search'              , loginRequired(crowi, app) , middleware.adminRequired() , admin.search.index);

+ 53 - 1
lib/views/admin/app.html

@@ -237,13 +237,44 @@
       </fieldset>
       </form>
 
+      <form action="/_api/admin/settings/plugin" method="post" class="form-horizontal" id="pluginSettingForm" role="form">
+      <fieldset>
+      <legend>プラグイン設定</legend>
+        <p class="well">プラグインの読み込みを有効にします。</p>
+
+        <div class="form-group">
+          <label for="settingForm[plugin:isEnablePlugin]" class="col-xs-3 control-label">プラグインを読み込む</label>
+          <div class="col-xs-6">
+            <div class="btn-group btn-toggle" data-toggle="buttons">
+              <label class="btn {% if settingForm['plugin:isEnablePlugin'] %}btn-primary active{% else %}btn-default{% endif %}">
+                <input name="settingForm[plugin:isEnablePlugin]" value="true" type="radio"
+                    {% if 'true' == settingForm['plugin:isEnablePlugin'] %}checked{% endif %}> 有効
+              </label>
+              <label class="btn {% if !settingForm['plugin:isEnablePlugin'] %}btn-primary active{% else %}btn-default{% endif %}">
+                <input name="settingForm[plugin:isEnablePlugin]" value="false" type="radio"
+                    {% if 'false' != settingForm['plugin:isEnablePlugin'] %}checked{% endif %}> 無効
+              </label>
+            </div>
+          </div>
+        </div>
+
+        <div class="form-group">
+          <div class="col-xs-offset-3 col-xs-6">
+            <input type="hidden" name="_csrf" value="{{ csrf() }}">
+            <button type="submit" class="btn btn-primary">更新</button>
+          </div>
+        </div>
+
+      </fieldset>
+      </form>
+
     </div>
   </div>
 
   <script>
     $(function()
     {
-      $('#appSettingForm, #secSettingForm, #mailSettingForm, #awsSettingForm, #googleSettingForm').each(function() {
+      $('#appSettingForm, #secSettingForm, #mailSettingForm, #awsSettingForm, #googleSettingForm, #pluginSettingForm').each(function() {
         $(this).submit(function()
         {
           function showMessage(formId, msg, status) {
@@ -291,6 +322,27 @@
         });
       });
 
+      // Bootstrap 3 Toggle Switch Snippet
+      // http://www.bootply.com/92189
+      $('.btn-toggle').click(function() {
+        $(this).find('.btn').toggleClass('active');  
+        
+        if ($(this).find('.btn-primary').size()>0) {
+          $(this).find('.btn').toggleClass('btn-primary');
+        }
+        if ($(this).find('.btn-danger').size()>0) {
+          $(this).find('.btn').toggleClass('btn-danger');
+        }
+        if ($(this).find('.btn-success').size()>0) {
+          $(this).find('.btn').toggleClass('btn-success');
+        }
+        if ($(this).find('.btn-info').size()>0) {
+          $(this).find('.btn').toggleClass('btn-info');
+        }
+        
+        $(this).find('.btn').toggleClass('btn-default');
+      });
+      
     });
   </script>