提交 8293dd03 authored 作者: Anthony Minessale's avatar Anthony Minessale

FS-8546 #resolve [Make original video demo back-compat with livearray-json-status]

上级 a754c686
...@@ -1075,6 +1075,27 @@ ...@@ -1075,6 +1075,27 @@
console.error("Error: ", obj, args); console.error("Error: ", obj, args);
}; };
/* back compat so jsonstatus can always be enabled */
function genRow(data) {
if (typeof(data[4]) === "string" && data[4].indexOf("{") > -1) {
var tmp = $.parseJSON(data[4]);
data[4] = tmp.oldStatus;
data[5] = null;
}
return data;
}
function genArray(obj) {
var data = obj.asArray();
for (var i in data) {
data[i] = genRow(data[i]);
}
return data;
}
la.onChange = function(obj, args) { la.onChange = function(obj, args) {
var index = 0; var index = 0;
var iserr = 0; var iserr = 0;
...@@ -1122,7 +1143,7 @@ ...@@ -1122,7 +1143,7 @@
return; return;
} }
dt.fnClearTable(); dt.fnClearTable();
dt.fnAddData(obj.asArray()); dt.fnAddData(genArray(obj));
dt.fnAdjustColumnSizing(); dt.fnAdjustColumnSizing();
break; break;
case "add": case "add":
...@@ -1133,9 +1154,9 @@ ...@@ -1133,9 +1154,9 @@
if (args.redraw > -1) { if (args.redraw > -1) {
// specific position, more costly // specific position, more costly
dt.fnClearTable(); dt.fnClearTable();
dt.fnAddData(obj.asArray()); dt.fnAddData(genArray(obj));
} else { } else {
dt.fnAddData(args.data); dt.fnAddData(genRow(args.data));
} }
dt.fnAdjustColumnSizing(); dt.fnAdjustColumnSizing();
break; break;
...@@ -1144,7 +1165,7 @@ ...@@ -1144,7 +1165,7 @@
return; return;
} }
//console.debug(args, index); //console.debug(args, index);
dt.fnUpdate(args.data, index); dt.fnUpdate(genRow(args.data), index);
dt.fnAdjustColumnSizing(); dt.fnAdjustColumnSizing();
break; break;
case "del": case "del":
...@@ -1157,7 +1178,7 @@ ...@@ -1157,7 +1178,7 @@
case "reorder": case "reorder":
// specific position, more costly // specific position, more costly
dt.fnClearTable(); dt.fnClearTable();
dt.fnAddData(obj.asArray()); dt.fnAddData(genArray(obj));
break; break;
case "hide": case "hide":
jq.hide(); jq.hide();
......
This diff was suppressed by a .gitattributes entry.
...@@ -156,6 +156,35 @@ void conference_member_update_status_field(conference_member_t *member) ...@@ -156,6 +156,35 @@ void conference_member_update_status_field(conference_member_t *member)
switch_live_array_lock(member->conference->la); switch_live_array_lock(member->conference->la);
if (!conference_utils_member_test_flag(member, MFLAG_CAN_SPEAK)) {
str = "MUTE";
} else if (switch_channel_test_flag(member->channel, CF_HOLD)) {
str = "HOLD";
} else if (member == member->conference->floor_holder) {
if (conference_utils_member_test_flag(member, MFLAG_TALKING)) {
str = "TALKING (FLOOR)";
} else {
str = "FLOOR";
}
} else if (conference_utils_member_test_flag(member, MFLAG_TALKING)) {
str = "TALKING";
} else {
str = "ACTIVE";
}
if (switch_channel_test_flag(member->channel, CF_VIDEO)) {
if (!conference_utils_member_test_flag(member, MFLAG_CAN_BE_SEEN)) {
vstr = " VIDEO (BLIND)";
} else {
vstr = " VIDEO";
if (member && member->id == member->conference->video_floor_holder) {
vstr = " VIDEO (FLOOR)";
}
}
}
switch_snprintf(display, sizeof(display), "%s%s", str, vstr);
if (conference_utils_test_flag(member->conference, CFLAG_JSON_STATUS)) { if (conference_utils_test_flag(member->conference, CFLAG_JSON_STATUS)) {
json = cJSON_CreateObject(); json = cJSON_CreateObject();
audio = cJSON_CreateObject(); audio = cJSON_CreateObject();
...@@ -198,43 +227,19 @@ void conference_member_update_status_field(conference_member_t *member) ...@@ -198,43 +227,19 @@ void conference_member_update_status_field(conference_member_t *member)
cJSON_AddItemToObject(json, "video", cJSON_CreateFalse()); cJSON_AddItemToObject(json, "video", cJSON_CreateFalse());
} }
json_display = cJSON_PrintUnformatted(json); if (conference_utils_test_flag(member->conference, CFLAG_JSON_STATUS)) {
cJSON_Delete(json); cJSON_AddItemToObject(json, "oldStatus", cJSON_CreateString(display));
} else {
if (!conference_utils_member_test_flag(member, MFLAG_CAN_SPEAK)) {
str = "MUTE";
} else if (switch_channel_test_flag(member->channel, CF_HOLD)) {
str = "HOLD";
} else if (member == member->conference->floor_holder) {
if (conference_utils_member_test_flag(member, MFLAG_TALKING)) {
str = "TALKING (FLOOR)";
} else {
str = "FLOOR";
}
} else if (conference_utils_member_test_flag(member, MFLAG_TALKING)) {
str = "TALKING";
} else {
str = "ACTIVE";
}
if (switch_channel_test_flag(member->channel, CF_VIDEO)) {
if (!conference_utils_member_test_flag(member, MFLAG_CAN_BE_SEEN)) {
vstr = " VIDEO (BLIND)";
} else {
vstr = " VIDEO";
if (member && member->id == member->conference->video_floor_holder) {
vstr = " VIDEO (FLOOR)";
}
}
} }
switch_snprintf(display, sizeof(display), "%s%s", str, vstr); json_display = cJSON_PrintUnformatted(json);
cJSON_Delete(json);
} }
switch_safe_free(member->status_field->valuestring);
if (json_display) { if (json_display) {
member->status_field->valuestring = json_display; member->status_field->valuestring = json_display;
} else { } else {
free(member->status_field->valuestring);
member->status_field->valuestring = strdup(display); member->status_field->valuestring = strdup(display);
} }
......
...@@ -1800,6 +1800,7 @@ SWITCH_STANDARD_APP(conference_function) ...@@ -1800,6 +1800,7 @@ SWITCH_STANDARD_APP(conference_function)
goto done; goto done;
} }
conference->flags[CFLAG_JSON_STATUS] = 1;
conference_utils_set_cflags(cflags_str, conference->flags); conference_utils_set_cflags(cflags_str, conference->flags);
if (locked) { if (locked) {
...@@ -1884,6 +1885,7 @@ SWITCH_STANDARD_APP(conference_function) ...@@ -1884,6 +1885,7 @@ SWITCH_STANDARD_APP(conference_function)
goto done; goto done;
} }
conference->flags[CFLAG_JSON_STATUS] = 1;
conference_utils_set_cflags(cflags_str, conference->flags); conference_utils_set_cflags(cflags_str, conference->flags);
if (locked) { if (locked) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论