vendor/uvdesk/support-center-bundle/Resources/views/Staff/Folders/updateFolder.html.twig line 1

Open in your IDE?
  1. {% extends "@UVDeskCoreFramework//Templates//layout.html.twig" %}
  2. {% block title %}{{ 'Edit Folder'|trans }}{% endblock %}
  3. {% block pageContent %}
  4.     <div class="uv-inner-section">
  5.         {# Append Panel Aside #}
  6.         {% set asideTemplate = 'Webkul\\UVDesk\\CoreFrameworkBundle\\Dashboard\\AsideTemplate' %}
  7.         {% set asideSidebarReference = 'Webkul\\UVDesk\\SupportCenterBundle\\UIComponents\\Dashboard\\Panel\\Sidebars\\Knowledgebase' %}
  8.         {{ uvdesk_extensibles.getRegisteredComponent(asideTemplate).renderSidebar(asideSidebarReference) | raw }}
  9.         
  10.         <div class="uv-view {% if app.request.cookies and app.request.cookies.get('uv-asideView') %}uv-aside-view{% endif %}">
  11.             <h1>{{ 'Edit Folder'|trans }}</h1>
  12.             
  13.             <form method="post" action="" id="entity-form" enctype="multipart/form-data">
  14.                 <div class="uv-element-block">
  15.                     <label class="uv-field-label">{{ 'Name'|trans }}</label>
  16.                     <div class="uv-field-block">
  17.                         <input type="text" name="name" class="uv-field" value="{{ folder.name }}" />
  18.                     </div>
  19.                     <span class="uv-field-info">{{ 'Folder Name is shown upfront at Knowledge Base'|trans }}</span>
  20.                 </div>
  21.                 <div class="uv-element-block">
  22.                     <label class="uv-field-label">{{ 'Description'|trans }}</label>
  23.                     <div class="uv-field-block">
  24.                         <textarea name="description" class="uv-field">{{ folder.description }}</textarea>
  25.                     </div>
  26.                     <span class="uv-field-info">{{ 'A small text about the folder helps user to navigate more easily'|trans }}</span>
  27.                 </div>
  28.                 <div class="uv-element-block">
  29.                     <label class="uv-field-label">{{ 'Status'|trans }}</label>
  30.                     <div class="uv-field-block">
  31.                         <select class="uv-select" name="visibility">
  32.                             <option value="public" {{ (folder.visibility and folder.visibility == 'public') ? 'selected' : '' }}>{{ 'Publish'|trans }}</option>
  33.                             <option value="private" {{ (folder.visibility and folder.visibility == 'private') ? 'selected' : '' }}>{{ 'Draft'|trans }}</option>
  34.                         </select>
  35.                     </div>
  36.                     <span class="uv-field-info">{{ 'Choose appropriate status'|trans }}</span>
  37.                 </div>
  38.                 <div class="uv-element-block uv-no-error-success-icon">
  39.                     <label class="uv-field-label">{{ 'Folder Image'|trans }}</label>
  40.                     <!-- Profile image -->
  41.                     <div class="uv-image-upload-wrapper" style="padding: 10px 0px 10px 0px; border:none;">
  42.                         {% set isHaveImage =  folder  and folder.solutionImage ? 1 : 0 %}
  43.                         <div class="uv-image-upload-brick {% if isHaveImage %}uv-on-drop-shadow{% endif %}" {% if isHaveImage %}style="border-color: transparent;"{% endif %}>
  44.                             <input type="file" name="solutionImage" id="uv-upload-profile" accept="image/*">
  45.                             <div class="uv-image-upload-placeholder">
  46.                                 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="48px" height="32px">
  47.                                 <path fill-rule="evenodd" d="M28.026,26.003 L19.964,26.003 L19.964,17.962 L13.964,17.962 L23.995,8.050 L34.025,17.962 L28.026,17.962 L28.026,26.003 ZM33.557,3.421 C30.806,1.146 27.619,0.008 23.995,0.008 C21.182,0.008 18.588,0.756 16.214,2.252 C13.838,3.749 11.996,5.712 10.683,8.143 C7.683,8.456 5.152,9.749 3.090,12.024 C1.027,14.300 -0.004,16.965 -0.004,20.019 C-0.004,23.324 1.168,26.144 3.512,28.481 C5.855,30.819 8.682,31.988 11.996,31.988 L37.963,31.988 C40.712,31.988 43.072,31.006 45.040,29.042 C47.009,27.079 47.993,24.726 47.993,21.983 C47.993,19.364 47.087,17.106 45.275,15.203 C43.461,13.302 41.275,12.258 38.713,12.071 C38.024,8.580 36.306,5.698 33.557,3.421 Z"></path>
  48.                                 </svg>    
  49.                             </div>
  50.                             <img id="dynamic-image-upload" {% if isHaveImage %}src="{{ app.request.scheme ~'://' ~ app.request.httpHost ~ asset('') }}{{ folder.solutionImage }}"{% endif %}>
  51.                         </div>
  52.                     </div>
  53.                     <span class="uv-field-info">{{ 'An image is worth a thousands words and makes folder more accessible'|trans }}</span>
  54.                 </div> 
  55.                 <input class="uv-btn" href="#" value="{{ 'Save Changes'|trans }}" type="submit">
  56.             </form>
  57.         </div>
  58.     </div>
  59. {% endblock %}
  60. {% block footer %}
  61.     {{ parent() }}
  62.     
  63.     <script type="text/javascript">
  64.         $(function () {
  65.             var EntityModel = Backbone.Model.extend({
  66.                 validation: {
  67.                     'name': [{
  68.                         required: true,
  69.                         msg: 'This field is mandatory'
  70.                     }, {
  71.                         pattern: '^((?![$%<]).)*$',
  72.                         msg: 'This field must have valid characters only'
  73.                     },
  74.                     {
  75.                         maxLength:40,
  76.                         msg:"This field contain maximum 40 charectures."
  77.                     }],
  78.                     'description': {
  79.                         required: true,
  80.                         msg:'This field is mandatory'
  81.                     }
  82.                 }
  83.             });
  84.             var EntityForm = Backbone.View.extend({
  85.                 events : {
  86.                     'click .uv-btn': "saveEntity",
  87.                     'blur input, textarea': 'formChanegd',
  88.                 },
  89.                 initialize : function() {
  90.                     Backbone.Validation.bind(this);
  91.                     var jsonContext = JSON.parse('{{ errors|raw }}');
  92.                     for (var field in jsonContext) {
  93.                         Backbone.Validation.callbacks.invalid(this, field, jsonContext[field], 'input');
  94.                     }
  95.                 },
  96.                 formChanegd: function(e) {
  97.                     if(e.target.name != 'solutionImage'){
  98.                         this.model.set(Backbone.$(e.currentTarget).attr('name'), Backbone.$(e.currentTarget).val())
  99.                         this.model.isValid([Backbone.$(e.currentTarget).attr('name')])
  100.                     }
  101.                 },
  102.                 saveEntity : function (e) {
  103.                     e.preventDefault();
  104.                     this.model.set(this.$el.serializeObject());
  105.                     if(this.model.isValid(true)) {
  106.                         this.$el.find('.uv-btn').attr('disabled', 'disabled');
  107.                         this.$el.submit();
  108.                     }
  109.                 },
  110.             });
  111.             groupForm = new EntityForm({
  112.                 el : $("#entity-form"),
  113.                 model : new EntityModel()
  114.             });    
  115.         });
  116.     </script>
  117. {% endblock %}