collaboration-add-user.js 9.92 KB
Newer Older
Kim Peace committed
1
CollaborationUI.initialBindAddUserButton = function () {
Kim Peace committed
2 3
  // ユーザー招待メンバー検索
  $(".add_user_btn").click(function () {
Kim Peace committed
4
    CollaborationUI.enableScroll();
Kim Peace committed
5 6 7 8 9 10 11
    Common.showLoadingIndicator();
    ChatManagementCommon.selectedUserList = [];
    CollaborationUI.refreshMyGroupForAddUserInCollaboration();
    $("#addUserConfirmBtnInCollaboration")
      .off()
      .on("click", function () {
        $("#addUserInCollaboration").modal("hide");
12 13 14 15 16

        if (ChatManagementCommon.selectedUserList.length == 0) {
          return;
        }
        
Kim Peace committed
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
        const selectedUserList =
          ChatManagementCommon.selectedUserList.join(",");
        NativeBridgeDelegate.saveSelectedUserList(selectedUserList);
        CollaborationUI.confirmInviteUserListInCollaboration();
      });
  });
};

$("#tabMyGroupOnAddUserInCollaboration").on("click", function (e) {
  CollaborationUI.refreshMyGroupForAddUserInCollaboration();
});

$("#tabAllGroupOnAddUserInCollaboration").on("click", function (e) {
  CollaborationUI.refreshAllGroupForAddUserInCollaboration("0");
});

CollaborationUI.refreshMyGroupForAddUserInCollaboration = function () {
  if (ChatManagementCommon.selectedUserList.length > 0) {
    $(".select_member_num").text(ChatManagementCommon.selectedUserList.length);
  } else {
    $(".select_member_num").text("0");
  }
  $("#favoriteListForAddUserInCollaboration").html("");
  $("#myGroupListForAddUserInCollaboration").html("");

  $("#tabMyGroupOnAddUserInCollaboration").prop("checked", true);

Kim Peace committed
44
  NativeBridgeDelegate.updateContactInfo();
Kim Peace committed
45

Kim Peace committed
46
  CollaborationUI.appendFavoriteGroupList();
Kim Peace committed
47

Kim Peace committed
48
  CollaborationUI.appendFavoriteUserList();
Kim Peace committed
49

Kim Peace committed
50 51 52 53 54
  CollaborationUI.appendMyGroupList();

  $("#addUserInCollaboration").modal("show");
  Common.dismissLoadingIndicator();
};
Kim Peace committed
55

Kim Peace committed
56 57 58 59 60
CollaborationUI.appendFavoriteGroupList = function () {
  // グループの様式を読み込む
  const groupTemplate = getTemplate(
    TemplateURL.ADD_USER_GROUP_LIST_IN_COLLABORATION
  );
Kim Peace committed
61 62 63 64 65 66 67 68 69 70 71
  //お気に入りグループ取得。
  const favoriteGroupList = NativeBridgeDataSource.getFavoriteGroups();
  favoriteGroupList.forEach(function (favoriteGroup) {
    let html = Mustache.render(groupTemplate, {
      name: favoriteGroup.groupName,
      id: favoriteGroup.groupId,
    });

    let obj = $(jQuery.parseHTML(html)).on("click", function () {});
    $("#favoriteListForAddUserInCollaboration").append(obj);
  });
Kim Peace committed
72 73 74 75 76 77 78
};

CollaborationUI.appendFavoriteUserList = function () {
  // ユーザの様式を読み込む
  const userTemplate = getTemplate(
    TemplateURL.ADD_USER_USER_LIST_IN_COLLABORATION
  );
Kim Peace committed
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
  //お気に入りユーザ取得。
  const favoriteUserList = NativeBridgeDataSource.getFavoriteUsersNotInRoom();
  favoriteUserList.forEach(function (favoriteUser) {
    favoriteUser.profileUrl = Common.getProfileImgUrl(favoriteUser.profileUrl);
    let findObj = ChatManagementCommon.selectedUserList.find(function (
      shopMemberId
    ) {
      return shopMemberId == favoriteUser.shopMemberId;
    });
    if (findObj) {
      favoriteUser.checked = "checked";
    }
  });
  let html = Mustache.render(userTemplate, {
    userList: favoriteUserList,
  });
  let obj = jQuery.parseHTML(html);
  $("#favoriteListForAddUserInCollaboration").append(obj);
Kim Peace committed
97
};
Kim Peace committed
98

Kim Peace committed
99 100 101 102
CollaborationUI.appendMyGroupList = function () {
  const groupUserTemplate = getTemplate(
    TemplateURL.ADD_USER_GROUP_USER_LIST_IN_COLLABORATION
  );
Kim Peace committed
103 104 105 106 107
  const myGroupList = NativeBridgeDataSource.getMyGroupUsersNotInRoom();
  myGroupList.forEach(function (myGroup) {
    myGroup.groupUserList.forEach(function (groupUser) {
      groupUser.profileUrl = Common.getProfileImgUrl(groupUser.profileUrl);
      let findObj = ChatManagementCommon.selectedUserList.find(function (
Kim Peace committed
108
        shopMemberID
Kim Peace committed
109
      ) {
Kim Peace committed
110
        return shopMemberID == groupUser.shopMemberId;
Kim Peace committed
111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
      });
      if (findObj) {
        groupUser.checked = "checked";
      }
    });
    let html = Mustache.render(groupUserTemplate, {
      groupName: myGroup.groupName,
      groupUserList: myGroup.groupUserList,
    });
    let obj = $(jQuery.parseHTML(html)).on("click", function () {});

    $("#myGroupListForAddUserInCollaboration").append(obj);
  });
};

Kim Peace committed
126
CollaborationUI.refreshAllGroupForAddUserInCollaboration = function (groupID) {
Kim Peace committed
127 128 129 130
  $(".content").removeClass("none");

  $("#tabAllGroupOnAddUserInCollaboration").prop("checked", true);

Kim Peace committed
131
  NativeBridgeDelegate.updateGroupInfo(groupID);
Kim Peace committed
132 133 134 135 136 137 138 139 140

  //画面エリアを初期化。
  $("#parentGroupBtnForAddUserInCollaboration").off();
  $("#rootGroupBtnForAddUserInCollaboration").off();
  $("#childGroupListAreaForAddUserInCollaboration").html("");
  $("#userInGroupListForAddUserInCollaboration").html("");
  $("#groupPathAreaForAddUserInCollaboration").html("");

  //DBからグループ情報を取得。
Kim Peace committed
141 142
  const result = NativeBridgeDataSource.getGroupInfoForAddUser(groupID);

Kim Peace committed
143
  //上位グループ、トップグループ遷移ボタンのイベント追加。
Kim Peace committed
144 145 146 147 148 149 150 151 152 153 154 155 156
  CollaborationUI.appendRootGroupAndParentGroupIfNeeded(
    result.rootGroupId,
    result.parentGroupId,
    groupID
  );

  //該当グループのパースを表示。
  CollaborationUI.appendGroupPath(result.groupPathList);

  //該当グループの下位グループ表示。
  CollaborationUI.appendChildGroups(result.childGroupList);

  //該当グループの所属ユーザを表示。
157
  CollaborationUI.appendUsers(result.groupUserList);
Kim Peace committed
158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
};

CollaborationUI.bindOnClickParentGroup = function (parentGroupID) {
  $("#parentGroupBtnForAddUserInCollaboration").on("click", function () {
    CollaborationUI.refreshAllGroupForAddUserInCollaboration(parentGroupID);
  });
};

CollaborationUI.bindOnClickRootGroup = function (rootGroupID) {
  $("#rootGroupBtnForAddUserInCollaboration").on("click", function () {
    CollaborationUI.refreshAllGroupForAddUserInCollaboration(rootGroupID);
  });
};

CollaborationUI.displayRootGroupAndParentGroupIfNeeded = function (
  rootGroupID,
  groupID
) {
176
  if (typeof rootGroupID !== "undefined" && rootGroupID == 0) {
Kim Peace committed
177
    groupID = rootGroupID;
Kim Peace committed
178
  }
Kim Peace committed
179 180

  if (groupID == rootGroupID || groupID == "0") {
Kim Peace committed
181 182 183 184 185 186
    $("#rootGroupAreaInCollaboration").addClass("none");
    $("#parentGroupAreaInCollaboration").addClass("none");
  } else {
    $("#rootGroupAreaInCollaboration").removeClass("none");
    $("#parentGroupAreaInCollaboration").removeClass("none");
  }
Kim Peace committed
187 188 189 190
};

CollaborationUI.appendGroupPath = function (groupPathList) {
  const groupPathTemplate = getTemplate(
Kim Peace committed
191 192 193
    TemplateURL.ADD_USER_GROUP_PATH_IN_COLLABORATION
  );

Kim Peace committed
194 195 196
  let groupPathCount = 0;
  groupPathList.forEach(function (groupPath) {
    if (!(groupPathCount < groupPathList.length - 3)) {
Kim Peace committed
197 198 199 200 201 202 203 204 205
      let html = Mustache.render(groupPathTemplate, {
        name: groupPath.groupName,
        id: groupPath.groupId,
      });
      let obj = jQuery.parseHTML(html);
      $("#groupPathAreaForAddUserInCollaboration").append(obj);
    }
    groupPathCount++;
  });
Kim Peace committed
206
};
Kim Peace committed
207

Kim Peace committed
208 209
CollaborationUI.appendChildGroups = function (chidGroups) {
  const groupTemplate = getTemplate(
Kim Peace committed
210 211 212
    TemplateURL.ADD_USER_GROUP_LIST_IN_COLLABORATION
  );

Kim Peace committed
213
  chidGroups.forEach(function (childGroup) {
Kim Peace committed
214 215 216 217 218 219 220 221
    let html = Mustache.render(groupTemplate, {
      name: childGroup.groupName,
      id: childGroup.groupId,
    });

    let obj = $(jQuery.parseHTML(html)).on("click", function () {});
    $("#childGroupListAreaForAddUserInCollaboration").append(obj);
  });
Kim Peace committed
222
};
Kim Peace committed
223

Kim Peace committed
224 225
CollaborationUI.appendUsers = function (userList) {
  const userTemplate = getTemplate(
Kim Peace committed
226 227 228
    TemplateURL.ADD_USER_USER_LIST_IN_COLLABORATION
  );

Kim Peace committed
229
  userList.forEach(function (groupUser) {
Kim Peace committed
230 231
    groupUser.profileUrl = Common.getProfileImgUrl(groupUser.profileUrl);
    let findObj = ChatManagementCommon.selectedUserList.find(function (
Kim Peace committed
232
      shopMemberID
Kim Peace committed
233
    ) {
Kim Peace committed
234
      return shopMemberID == groupUser.shopMemberId;
Kim Peace committed
235 236 237 238 239 240
    });
    if (findObj) {
      groupUser.checked = "checked";
    }
  });
  let html = Mustache.render(userTemplate, {
Kim Peace committed
241
    userList: userList,
Kim Peace committed
242 243 244 245 246
  });
  let obj = jQuery.parseHTML(html);
  $("#userInGroupListForAddUserInCollaboration").append(obj);
};

Kim Peace committed
247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262
CollaborationUI.appendRootGroupAndParentGroupIfNeeded = function (
  rootGroupID,
  parentGroupID,
  groupID
) {
  if (typeof parentGroupID !== "undefined") {
    CollaborationUI.bindOnClickParentGroup(parentGroupID);
  }

  if (typeof rootGroupID !== "undefined") {
    CollaborationUI.bindOnClickRootGroup(rootGroupID);
  }

  CollaborationUI.displayRootGroupAndParentGroupIfNeeded(rootGroupID, groupID);
};

Kim Peace committed
263 264 265 266 267 268 269 270 271
CollaborationUI.confirmInviteUserListInCollaboration = function () {
  const selectedUsers = NativeBridgeDataSource.loadSelectedUsers();
  if (selectedUsers != "") {
    $("#selectedUserListinCollaboration").html("");

    selectedUsers.forEach(function (user) {
      user.profileUrl = Common.getProfileImgUrl(user.profileUrl);
    });

Kim Peace committed
272 273 274
    const modalTemplate = getTemplate(TemplateURL.MODAL_ADD_USER_CONFIRM);

    const html = Mustache.render(modalTemplate, {
Kim Peace committed
275 276 277 278 279 280 281
      userList: selectedUsers,
    });
    let obj = jQuery.parseHTML(html);
    $("#modal_add_user_confirm").html(obj);
    $("#modalAddUserConfirm").modal("show");
  }

Kim Peace committed
282 283 284 285 286 287
  CollaborationUI.bindCancelAddUserButton();

  CollaborationUI.bindAddUserButton(selectedUsers);
};

CollaborationUI.bindCancelAddUserButton = function () {
Kim Peace committed
288 289 290 291 292 293
  $("#cancelAddUserBtn")
    .off()
    .on("click", function () {
      $("#modalAddUserConfirm").modal("hide");
      $("#addUserInCollaboration").modal("show");
    });
Kim Peace committed
294
};
Kim Peace committed
295

Kim Peace committed
296
CollaborationUI.bindAddUserButton = function (selectedUsers) {
Kim Peace committed
297 298 299 300 301 302
  $("#addUserBtn")
    .off()
    .on("click", function () {
      Common.showLoadingIndicator();
      let userIDList = selectedUsers.map((user) => user.shopMemberId);
      const commaJoinedUserIDList = userIDList.join(",");
303
      const collaborationType = globalUserInfo.collaborationType;
304
      scrollTo(0,0);
Kim Peace committed
305 306 307 308 309 310 311 312 313 314 315 316 317
      NativeBridgeDelegate.inviteCollaboration(
        commaJoinedUserIDList,
        collaborationType
      );

      Common.dismissLoadingIndicator();
      $("#modalAddUserConfirm").modal("hide");
    });
};

CollaborationUI.toggleCategory = function (category) {
  $(category).toggleClass("open");
  $(category).next().slideToggle();
Kim Peace committed
318
};