4 <div class="col-md-6 col-sm-12">
\r
5 <div class="ibox float-e-margins">
\r
6 <div class="ibox-title">
\r
7 <h5 class="text-success">Step</h5>
\r
8 <div class="ibox-tools" style="height: 25px;">
\r
9 <button class="btn btn-success " type="button" id="new-step"> <span class="bold">New Step</span></button>
\r
10 <a class="collapse-link" >
\r
11 <i class="fa fa-chevron-up" v-on:click.stop='collapseBox'></i>
\r
15 <div class="ibox-content" style="border: 1px solid #cec8c8">
\r
16 <form class="form-horizontal">
\r
18 <div class="form-group">
\r
19 <label class="col-md-2 control-label">Name:</label>
\r
20 <div class="col-md-5"><input type="text" class="form-control" id="name"></div>
\r
22 <div class="form-group">
\r
23 <label class="col-md-2 control-label">Service:</label>
\r
24 <div class="col-md-4">
\r
25 <select class="form-control" id="service">
\r
27 <option v-for='service in dataService' v-bind:value='service'>{{service}}</option>
\r
31 <div class="form-group">
\r
32 <label class="col-md-2 control-label">Action:</label>
\r
33 <div class="col-md-4">
\r
34 <select class="form-control" id="action">
\r
36 <option v-for='action in dataAction' v-bind:value='action.name'>{{action.name}}</option>
\r
41 <div class="row" id="parameter">
\r
42 <div class="form-group" v-for='(param, index) in dataParam'>
\r
43 <label class="col-md-2 control-label" v-bind:title="param.description">{{ param.name }}
\r
45 <div class="col-md-5">
\r
46 <input type="text" class="form-control" v-bind:placeholder="param.description" v-bind:id="'par'+index">
\r
54 <div class="col-md-6 col-sm-12">
\r
55 <div class="ibox float-e-margins">
\r
56 <div class="ibox-title">
\r
57 <h5 class="text-success">StepList</h5>
\r
58 <div class="ibox-tools">
\r
59 <a class="collapse-link">
\r
60 <i class="fa fa-chevron-up" v-on:click.stop='collapseBox'></i>
\r
64 <div class="ibox-content" id="step-list" style="border: 1px solid #cec8c8">
\r
65 <div v-for='(step, index) in stepList' class='ibox'>
\r
66 <div class="ibox-title step">
\r
67 <h5>Step{{index + 1}} {{step.name}} </h5>
\r
68 <div class="ibox-tools">
\r
69 <a class="collapse-link">
\r
70 <i class="fa fa-chevron-up" v-on:click.stop='collapseBox'></i>
\r
72 <a class="close-link" v-on:click='removeStep(index)'>
\r
73 <i class="fa fa-times"></i>
\r
77 <div class="ibox-content">
\r
79 <label class="control-label"><span style='padding-right: 20px;'>Service:</span> {{ step.service }}</label>
\r
82 <label class="control-label"><span style='padding-right: 20px;'>Action:</span> {{ step.action }}</label>
\r
84 <div class="param row">
\r
85 <label class="control-label">
\r
86 <span style='padding-right: 20px;'>Parameter:</span>
\r
87 <span v-for='param in step.params'>{{param.key}} = {{param.value}} ; </span>
\r
100 props: ['stepList'],
\r
108 mounted: function() {
\r
109 this.getServiceList();
\r
111 $("#service").change(function(){
\r
112 self.selectService();
\r
114 $("#action").change(function(){
\r
115 self.selectAction();
\r
117 $('#new-step').click(function(){
\r
122 getServiceList: function(){
\r
123 console.log("get serviceList!");
\r
126 url: this.global.SERVER_ADDR + "service/list",
\r
129 success: function(data){
\r
130 console.log("ajax success!");
\r
131 if(data['code'] == 200){
\r
132 self.dataService = [];
\r
133 self.dataService = data['result'];
\r
138 getServiceContent: function(name){
\r
141 url: this.global.SERVER_ADDR + "service/content",
\r
145 "serviceName": name
\r
147 success: function(data){
\r
148 if(data['code'] == 200){
\r
149 self.dataAction = [];
\r
150 self.dataAction = data['result']['actions'];
\r
155 getParams: function(name){
\r
156 for(var i in this.dataAction){
\r
157 if(this.dataAction[i].name == name){
\r
158 this.dataParam = [];
\r
159 this.dataParam = this.dataAction[i].params;
\r
164 selectService: function(event){
\r
165 var selectedName = $("#service").val();
\r
166 this.getServiceContent(selectedName);
\r
168 selectAction: function(event){
\r
169 var selectedName = $("#action").val();
\r
170 if(selectedName=="") {
\r
171 this.dataParam = [];
\r
174 this.getParams(selectedName);
\r
175 if(this.dataParam==undefined) this.dataParam = [];
\r
177 newStep: function(){
\r
178 var ser = $("#service").val();
\r
179 var act = $("#action").val();
\r
180 var na = $("#name").val();
\r
181 if(ser==""||act==""||na==""){
\r
182 alert('Not completed!');
\r
185 var parCount = this.dataParam.length;
\r
187 for(var i=0; i<parCount; ++i){
\r
188 var temp = $('#par'+i).val();
\r
190 alert('Not completed!');
\r
193 var name = this.dataParam[i].name;
\r
194 par.push({key: name, value: temp});
\r
196 this.stepList.push({name: na, service: ser, action: act, params: par});
\r
197 $("#name").val("");
\r
198 $("#service").val("");
\r
199 this.dataAction = [];
\r
200 this.dataParam = [];
\r
202 removeStep: function(index) {
\r
203 this.stepList.splice(index, 1);
\r
205 collapseBox: function(event) {
\r
206 console.log("collapse");
\r
207 var ele = event.target;
\r
208 console.log(event);
\r
210 var ibox = $(ele).closest('div.ibox');
\r
211 var content = ibox.children('.ibox-content');
\r
212 content.slideToggle(200);
\r
213 $(ele).toggleClass('fa-chevron-up').toggleClass('fa-chevron-down');
\r
217 stepList: function() {
\r
218 this.$emit('stepList', this.stepList);
\r