| .. | .. |
|---|
| 56 | 56 | $scope.catalogMetadata = Catalogs.getMetadata(); |
|---|
| 57 | 57 | $scope.list = Catalogs.query(); |
|---|
| 58 | 58 | $scope.refs = {} |
|---|
| 59 | | - Catalogs.loadRefs($scope.refs) |
|---|
| 59 | + Catalogs.loadRefs(function(refs) { |
|---|
| 60 | + console.log('Updated refs in form'); |
|---|
| 61 | + console.log(refs); |
|---|
| 62 | + $scope.refs = refs; |
|---|
| 63 | + }); |
|---|
| 60 | 64 | } |
|---|
| 61 | 65 | |
|---|
| 62 | 66 | Catalogs.init().then(_changeCatalog); |
|---|
| .. | .. |
|---|
| 73 | 77 | console.log($scope); |
|---|
| 74 | 78 | |
|---|
| 75 | 79 | fields.forEach(function(field) { |
|---|
| 76 | | - if (!field.listingOnly) $scope.formu[field.name] = data[field.name] || null; |
|---|
| 80 | + if (field.type === 'select') { |
|---|
| 81 | + // next lines are a workaround to avoid an issue where we try to show a form with "select" fields (if select field value doesn't change |
|---|
| 82 | + $scope.formu[field.name] = null; |
|---|
| 83 | + setTimeout(function() { |
|---|
| 84 | + $scope.formu[field.name] = data[field.name]; |
|---|
| 85 | + $scope.$apply(); |
|---|
| 86 | + }, 0); |
|---|
| 87 | + } else { |
|---|
| 88 | + if (!field.listingOnly) $scope.formu[field.name] = data[field.name] || null; |
|---|
| 89 | + } |
|---|
| 77 | 90 | }) |
|---|
| 78 | | - |
|---|
| 79 | 91 | setTimeout(function() { |
|---|
| 80 | 92 | $('#'+Catalogs.getFFF()).focus(); |
|---|
| 81 | 93 | }, 0); |
|---|
| .. | .. |
|---|
| 118 | 130 | return 'multiselect'; |
|---|
| 119 | 131 | if (field.type === 'metadata') |
|---|
| 120 | 132 | return 'metadata'; |
|---|
| 133 | + if (field.type === 'password') |
|---|
| 134 | + return 'password'; |
|---|
| 121 | 135 | if (!field.multiline) |
|---|
| 122 | 136 | return 'normal'; |
|---|
| 123 | 137 | if (field.multiline) |
|---|
| .. | .. |
|---|
| 131 | 145 | $('select').val(null); |
|---|
| 132 | 146 | $scope.$parent.formu = {}; |
|---|
| 133 | 147 | |
|---|
| 134 | | - console.log("Refs:"); |
|---|
| 148 | + console.log("Refs for new form:"); |
|---|
| 135 | 149 | console.log($scope.refs); |
|---|
| 136 | | - |
|---|
| 150 | + var fields = Catalogs.getMetadata().fields; |
|---|
| 151 | + fields.forEach(function(field) { |
|---|
| 152 | + if (!field.listingOnly) $scope.$parent.formu[field.name] = null; |
|---|
| 153 | + }) |
|---|
| 137 | 154 | setTimeout(function() { |
|---|
| 138 | 155 | $('#'+Catalogs.getFFF()).focus(); |
|---|
| 139 | 156 | }, 0); |
|---|
| .. | .. |
|---|
| 165 | 182 | console.log(error); |
|---|
| 166 | 183 | toaster.pop('error', Catalogs.getName(), $L.get("Error saving element, reason: {0}. Details: {1}", $L.get(HTTP_ERRORS[error.status]), error.headers('X-SECURIS-ERROR')), 10000); |
|---|
| 167 | 184 | }); |
|---|
| 168 | | - |
|---|
| 169 | 185 | } |
|---|
| 170 | 186 | } |
|---|
| 171 | 187 | |
|---|
| .. | .. |
|---|
| 188 | 204 | $scope.updateMetadata = function() { |
|---|
| 189 | 205 | // Called when Application ID change in current field |
|---|
| 190 | 206 | var newAppId = $scope.formu['application_id']; |
|---|
| 191 | | - console.log('Ready to get metadata from application: ' + newAppId); |
|---|
| 192 | | - Catalogs.getResource('application').get({appId: newAppId}).$promise.then(function(app) { |
|---|
| 193 | | - $scope.formu.metadata = app.metadata; |
|---|
| 194 | | - }); |
|---|
| 207 | + if (newAppId) { |
|---|
| 208 | + // Only if there is a "valid" value selected we should update the metadata |
|---|
| 209 | + Catalogs.getResource('application').get({appId: newAppId}).$promise.then(function(app) { |
|---|
| 210 | + $scope.formu.metadata = []; |
|---|
| 211 | + app.metadata.forEach(function(md) { |
|---|
| 212 | + $scope.formu.metadata.push({ |
|---|
| 213 | + key: md.key, |
|---|
| 214 | + value: md.value, |
|---|
| 215 | + mandatory: md.mandatory |
|---|
| 216 | + }); |
|---|
| 217 | + }); |
|---|
| 218 | + }); |
|---|
| 219 | + } |
|---|
| 195 | 220 | } |
|---|
| 196 | 221 | |
|---|
| 197 | 222 | } ]); |
|---|