Commit 2bbb09a435d6545a436914ad16e986869e3daf3c

Authored by Carlos Alberto
1 parent a7852ace
Exists in master

Criação da possibilidade de alterar a linha do componente no form builder

cit-esi-api/src/main/java/br/com/centralit/esi/api/resource/model/FormComponent.java
@@ -27,7 +27,7 @@ import com.fasterxml.jackson.annotation.JsonView; @@ -27,7 +27,7 @@ import com.fasterxml.jackson.annotation.JsonView;
27 27
28 @Entity 28 @Entity
29 @Table(name="RES_FormComponent") 29 @Table(name="RES_FormComponent")
30 -@JsonIgnoreProperties({ "$type", "rowIndex" }) 30 +@JsonIgnoreProperties({ "$type", "rowIndex", "rowIndexInput" })
31 public class FormComponent extends PersistentObject { 31 public class FormComponent extends PersistentObject {
32 32
33 /** 33 /**
cit-esi-web/src/main/java/br/com/centralit/listener/StartupListenerEsi.java
@@ -1635,7 +1635,18 @@ public class StartupListenerEsi extends UtilStartup implements ApplicationListen @@ -1635,7 +1635,18 @@ public class StartupListenerEsi extends UtilStartup implements ApplicationListen
1635 formWidget.getProperties().add(new FormWidgetProperty(formWidget, this.findProperty("ng-obrigatorio", properties))); 1635 formWidget.getProperties().add(new FormWidgetProperty(formWidget, this.findProperty("ng-obrigatorio", properties)));
1636 formWidget.getProperties().add(new FormWidgetProperty(formWidget, this.findProperty("ng-disabled", properties))); 1636 formWidget.getProperties().add(new FormWidgetProperty(formWidget, this.findProperty("ng-disabled", properties)));
1637 1637
1638 - formWidget.setTemplateCode("<auto-complete ng-id=\"component_{{component.rowIndex}}_{{component.index}}\" ng-label=\"{{component['ng-label']}}\" ng-model=\"model\" ng-item=\"item\" />"); 1638 + String html = "<div class=\"form-group\" >\n"+
  1639 + " <label ><translate>{{component['ng-label']}}</translate>\n"+
  1640 + " </label>\n"+
  1641 + " <div id=\"{{id}}\" class=\"input-group\">\n"+
  1642 + " <input class=\"form-control typeahead-wide\" type=\"text\"/>\n"+
  1643 + " <span class=\"input-group-addon\">\n"+
  1644 + " <i class=\"fa fa-search bigger-110\"></i>\n"+
  1645 + " </span>\n"+
  1646 + " </div>\n"+
  1647 + "</div>";
  1648 +
  1649 + formWidget.setTemplateCode(html);
1639 formWidget.setHtmlCode("<auto-complete ng-id=\"${id}\" form=\"${form}\" " + this.buildHTMLProperties(formWidget) + " />"); 1650 formWidget.setHtmlCode("<auto-complete ng-id=\"${id}\" form=\"${form}\" " + this.buildHTMLProperties(formWidget) + " />");
1640 formWidgetService.save(formWidget); 1651 formWidgetService.save(formWidget);
1641 } 1652 }
@@ -1658,7 +1669,18 @@ public class StartupListenerEsi extends UtilStartup implements ApplicationListen @@ -1658,7 +1669,18 @@ public class StartupListenerEsi extends UtilStartup implements ApplicationListen
1658 formWidget.getProperties().add(new FormWidgetProperty(formWidget, this.findProperty("ng-obrigatorio", properties))); 1669 formWidget.getProperties().add(new FormWidgetProperty(formWidget, this.findProperty("ng-obrigatorio", properties)));
1659 formWidget.getProperties().add(new FormWidgetProperty(formWidget, this.findProperty("ng-disabled", properties))); 1670 formWidget.getProperties().add(new FormWidgetProperty(formWidget, this.findProperty("ng-disabled", properties)));
1660 1671
1661 - formWidget.setTemplateCode("<auto-complete ng-id=\"component_{{component.rowIndex}}_{{component.index}}\" ng-label=\"{{component['ng-label']}}\" ng-model=\"model\" />"); 1672 + String html = "<div class=\"form-group\" >\n"+
  1673 + " <label ><translate>{{component['ng-label']}}</translate>\n"+
  1674 + " </label>\n"+
  1675 + " <div id=\"{{id}}\" class=\"input-group\">\n"+
  1676 + " <input class=\"form-control typeahead-wide\" type=\"text\"/>\n"+
  1677 + " <span class=\"input-group-addon\">\n"+
  1678 + " <i class=\"fa fa-search bigger-110\"></i>\n"+
  1679 + " </span>\n"+
  1680 + " </div>\n"+
  1681 + "</div>";
  1682 +
  1683 + formWidget.setTemplateCode(html);
1662 formWidget.setHtmlCode("<esi-data-search ng-if=\"${ng-target}\" ng-id=\"${id}\" form=\"${form}\" " + this.buildHTMLProperties(formWidget) + " />"); 1684 formWidget.setHtmlCode("<esi-data-search ng-if=\"${ng-target}\" ng-id=\"${id}\" form=\"${form}\" " + this.buildHTMLProperties(formWidget) + " />");
1663 formWidgetService.save(formWidget); 1685 formWidgetService.save(formWidget);
1664 } 1686 }
cit-esi-web/src/main/webapp/assets/js/angular/custom/directive/FormBuilderDirective.js
@@ -210,7 +210,7 @@ citApp.directive(&quot;formBuilder&quot;, [&#39;ImageRepository&#39;, &#39;$translate&#39;, &#39;$filter&#39;, &#39;$t @@ -210,7 +210,7 @@ citApp.directive(&quot;formBuilder&quot;, [&#39;ImageRepository&#39;, &#39;$translate&#39;, &#39;$filter&#39;, &#39;$t
210 if (!row.htmlOnly) { 210 if (!row.htmlOnly) {
211 var width = !$scope.isMaxWidth(widget) ? $scope.getWidth(row) : 12; 211 var width = !$scope.isMaxWidth(widget) ? $scope.getWidth(row) : 12;
212 if (width > 0) { 212 if (width > 0) {
213 - var component = {widget: widget, rowIndex: row.index, index: row.components.length, width: width}; 213 + var component = {widget: widget, rowIndex: row.index, rowIndexInput: row.index+1, index: row.components.length, width: width};
214 row.components.push(component); 214 row.components.push(component);
215 $scope.addProperties(component); 215 $scope.addProperties(component);
216 return component; 216 return component;
@@ -385,6 +385,20 @@ citApp.directive(&quot;formBuilder&quot;, [&#39;ImageRepository&#39;, &#39;$translate&#39;, &#39;$filter&#39;, &#39;$t @@ -385,6 +385,20 @@ citApp.directive(&quot;formBuilder&quot;, [&#39;ImageRepository&#39;, &#39;$translate&#39;, &#39;$filter&#39;, &#39;$t
385 } 385 }
386 } 386 }
387 387
  388 + $scope.changeComponentRow = function(component) {
  389 + if (component.rowIndexInput != component.rowIndex + 1) {
  390 + var row = $scope.formContainer.rows[component.rowIndex];
  391 + row.components.splice(component.index, 1);
  392 + $scope.reorderComponents(row);
  393 +
  394 + component.rowIndex = component.rowIndexInput - 1;
  395 + row = $scope.formContainer.rows[component.rowIndex];
  396 + component.index = row.components.length - 1;
  397 + row.components.push(component);
  398 + $scope.reorderComponents(row);
  399 + }
  400 + }
  401 +
388 $scope.allowRowUp = function(row) { 402 $scope.allowRowUp = function(row) {
389 if (row) { 403 if (row) {
390 return row.index > 0; 404 return row.index > 0;
@@ -436,6 +450,7 @@ citApp.directive(&quot;formBuilder&quot;, [&#39;ImageRepository&#39;, &#39;$translate&#39;, &#39;$filter&#39;, &#39;$t @@ -436,6 +450,7 @@ citApp.directive(&quot;formBuilder&quot;, [&#39;ImageRepository&#39;, &#39;$translate&#39;, &#39;$filter&#39;, &#39;$t
436 var index = 0; 450 var index = 0;
437 angular.forEach(row.components, function(component){ 451 angular.forEach(row.components, function(component){
438 component.rowIndex = row.index; 452 component.rowIndex = row.index;
  453 + component.rowIndexInput = row.index+1;
439 component.index = index; 454 component.index = index;
440 index ++; 455 index ++;
441 }); 456 });
cit-esi-web/src/main/webapp/assets/js/angular/custom/directive/html/formBuilder.html
@@ -161,6 +161,19 @@ @@ -161,6 +161,19 @@
161 </div> 161 </div>
162 </div> 162 </div>
163 </div> 163 </div>
  164 + <div class="form-group" >
  165 + <label for=currentComponent.rowIndexInput> <translate> <span class="">ESI.LINHA</span></translate>
  166 + <i class="fa fa-info-circle" tooltip-placement="top"
  167 + tooltip="Linha do componente"
  168 + tooltip-append-to-body="true"></i>
  169 + </label>
  170 + <div class="inner-addon left-addon">
  171 + <i class="fa fa-align-justify bold text-normal"></i> <input
  172 + ng-model="currentComponent.rowIndexInput" type="number"
  173 + class="form-control property--width input-sm ng-valid ng-valid-min ng-valid-max ng-dirty ng-touched"
  174 + id="currentComponent.rowIndexInput" min="1" max="{{formContainer.rows.length}}" ng-change="changeComponentRow(currentComponent)">
  175 + </div>
  176 + </div>
164 <div style="height:395px;overflow-x: hidden;overflow-y: auto; padding: 0px 0px 0px 0px"> 177 <div style="height:395px;overflow-x: hidden;overflow-y: auto; padding: 0px 0px 0px 0px">
165 <div class='row no-padding' ng-if="currentComponent.widget.type.name == 'HTML'"> 178 <div class='row no-padding' ng-if="currentComponent.widget.type.name == 'HTML'">
166 <label-ui-ace ng-label="ESI.HTML" ng-theme="eclipse" ng-mode="html" ng-model="currentComponent.htmlCode" 179 <label-ui-ace ng-label="ESI.HTML" ng-theme="eclipse" ng-mode="html" ng-model="currentComponent.htmlCode"
cit-esi-web/src/main/webapp/assets/js/angular/custom/utils/FormContainerHelper.js
@@ -89,6 +89,7 @@ FormContainerHelper.setProperties = function(formContainer) { @@ -89,6 +89,7 @@ FormContainerHelper.setProperties = function(formContainer) {
89 var componentIndex = 0; 89 var componentIndex = 0;
90 angular.forEach(row.components, function(component){ 90 angular.forEach(row.components, function(component){
91 component.rowIndex = row.index; 91 component.rowIndex = row.index;
  92 + component.rowIndexInput = row.index + 1;
92 component.index = componentIndex; 93 component.index = componentIndex;
93 componentIndex ++; 94 componentIndex ++;
94 95