- if (!data.key) {
- var prev_state, new_state;
- var main_query, record, new_data;
-
- prev_state = manifold.query_store.get_record_state(query_uuid, data.value, STATE_SET);
- if (prev_state === null)
- prev_state = STATE_SET_OUT;
- new_state = this._get_next_state_add(prev_state, data.state);
-
- /* data.value containts the resource key */
- manifold.query_store.add_record(query_uuid, data.value, new_state);
- record = manifold.query_store.get_record(query_uuid, data.value);
- this._enforce_constraints(query_ext, record, data.value, STATE_SET_ADD);
-
- /* Inform the parent query: important for update */
- new_data = {
- state : STATE_SET,
- key : this._get_query_path(query_ext),
- op : STATE_SET_IN_PENDING,
- value : data.value,
- };
- main_query = query_ext.main_query_ext.query;
- this.raise_event(main_query.query_uuid, FIELD_STATE_CHANGED, new_data);
-
- /*
- * Propagate the event to other plugins subscribed to the query
- */
- manifold.raise_query_event(query_uuid, event_type, data);
- } else {
- // mainquery: proceed to update
-
- //if ($.inArray(data.value, update_query_orig.params[data.key]) != -1)
- // value.request = FIELD_REQUEST_ADD_RESET;
-
- if (update_query.params[data.key] === undefined)
- update_query.params[data.key] = Array();
- update_query.params[data.key].push(data.value);
- }
+ new_state = this._get_next_state_add(prev_state);
+
+ /* data.value containts the resource key */
+ manifold.query_store.add_record(query_uuid, data.value, new_state);
+ record = manifold.query_store.get_record(query_uuid, data.value);
+ this._enforce_constraints(query_ext, record, data.value, STATE_SET_ADD);
+
+ /* Process update query in parent */
+ path = this._get_query_path(query_ext);
+ if (update_query.params[path] === undefined)
+ update_query.params[path] = Array();
+ update_query.params[path].push(data.value);
+