diff --git a/src/api/call-forward.js b/src/api/call-forward.js index 18a0b202..d0a83d68 100644 --- a/src/api/call-forward.js +++ b/src/api/call-forward.js @@ -621,14 +621,14 @@ export function resetTimesetByName(options) { } export function addTimeToTimeset(options) { - let headers = { - 'Content-Type': 'application/json-patch+json' - }; return new Promise((resolve, reject) => { + let headers = { + 'Content-Type': 'application/json-patch+json' + }; Vue.http.patch('/api/cftimesets/' + options.id, [{ op: 'replace', path: '/times', - value: options.time + value: options.times }], { headers: headers }).then(() => { resolve(); }).catch(err => { @@ -705,12 +705,12 @@ export function convertAddTime(options) { } export function createTimesetWithTime(options) { - let convertedTime = convertAddTime({ time: options.time[0], weekday: options.weekday }); return new Promise((resolve, reject)=> { + let convertedTime = convertAddTime({ time: options.time[0], weekday: options.weekday }); Promise.resolve().then(() => { return addNewTimeset(options.name); }).then((timesetId) => { - return addTimeToTimeset({ id: timesetId, time: convertedTime }); + return addTimeToTimeset({ id: timesetId, times: convertedTime }); }).then(() => { resolve(); }).catch((err) => { @@ -732,13 +732,56 @@ export function getTimesByTimesetId(id) { } export function appendTimeToTimeset(options) { - let convertedTime = convertAddTime({ time: options.time[0], weekday: options.weekday }); return new Promise((resolve, reject)=> { + let convertedTime = convertAddTime({ time: options.time[0], weekday: options.weekday }); Promise.resolve().then(() => { return getTimesByTimesetId(options.id); }).then((times) => { let concatTimes = times.concat(convertedTime); - return addTimeToTimeset({ id: options.id, time: concatTimes }); + return addTimeToTimeset({ id: options.id, times: concatTimes }); + }).then(() => { + resolve(); + }).catch((err) => { + reject(err); + }); + }); +} + +export function getSourcesBySourcesetId(id) { + return new Promise((resolve, reject)=>{ + Vue.http.get('/api/cfsourcesets/' + id).then((res)=>{ + let sourceset = getJsonBody(res.body); + resolve(sourceset.sources); + }).catch((err)=>{ + reject(err); + }); + }); +} + +export function addSourceToSourceset(options) { + return new Promise((resolve, reject) => { + let headers = { + 'Content-Type': 'application/json-patch+json' + }; + Vue.http.patch('/api/cfsourcesets/' + options.id, [{ + op: 'replace', + path: '/sources', + value: options.sources + }], { headers: headers }).then(() => { + resolve(); + }).catch(err => { + reject(err); + }); + }); +} + +export function appendSourceToSourceset(options) { + return new Promise((resolve, reject)=> { + Promise.resolve().then(() => { + return getSourcesBySourcesetId(options.id); + }).then((sources) => { + let concatSources = sources.concat(options.source); + return addSourceToSourceset({ id: options.id, sources: concatSources }); }).then(() => { resolve(); }).catch((err) => { diff --git a/src/components/pages/CallForward/Always.vue b/src/components/pages/CallForward/Always.vue index 685cd6ea..79394b99 100644 --- a/src/components/pages/CallForward/Always.vue +++ b/src/components/pages/CallForward/Always.vue @@ -1,7 +1,12 @@ diff --git a/src/components/pages/CallForward/CscAddDestinationForm.vue b/src/components/pages/CallForward/CscAddDestinationForm.vue index 7be9c115..da3523a5 100644 --- a/src/components/pages/CallForward/CscAddDestinationForm.vue +++ b/src/components/pages/CallForward/CscAddDestinationForm.vue @@ -1,6 +1,6 @@