collaboration-add-user.js 9.78 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 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
    Common.showLoadingIndicator();
    ChatManagementCommon.selectedUserList = [];
    CollaborationUI.refreshMyGroupForAddUserInCollaboration();
    $("#addUserConfirmBtnInCollaboration")
      .off()
      .on("click", function () {
        $("#addUserInCollaboration").modal("hide");
        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
39
  NativeBridgeDelegate.updateContactInfo();
Kim Peace committed
40

Kim Peace committed
41
  CollaborationUI.appendFavoriteGroupList();
Kim Peace committed
42

Kim Peace committed
43
  CollaborationUI.appendFavoriteUserList();
Kim Peace committed
44

Kim Peace committed
45 46 47 48 49
  CollaborationUI.appendMyGroupList();

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

Kim Peace committed
51 52 53 54 55
CollaborationUI.appendFavoriteGroupList = function () {
  // グループの様式を読み込む
  const groupTemplate = getTemplate(
    TemplateURL.ADD_USER_GROUP_LIST_IN_COLLABORATION
  );
Kim Peace committed
56 57 58 59 60 61 62 63 64 65 66
  //お気に入りグループ取得。
  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
67 68 69 70 71 72 73
};

CollaborationUI.appendFavoriteUserList = function () {
  // ユーザの様式を読み込む
  const userTemplate = getTemplate(
    TemplateURL.ADD_USER_USER_LIST_IN_COLLABORATION
  );
Kim Peace committed
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
  //お気に入りユーザ取得。
  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
92
};
Kim Peace committed
93

Kim Peace committed
94 95 96 97
CollaborationUI.appendMyGroupList = function () {
  const groupUserTemplate = getTemplate(
    TemplateURL.ADD_USER_GROUP_USER_LIST_IN_COLLABORATION
  );
Kim Peace committed
98 99 100 101 102
  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
103
        shopMemberID
Kim Peace committed
104
      ) {
Kim Peace committed
105
        return shopMemberID == groupUser.shopMemberId;
Kim Peace committed
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
      });
      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
121
CollaborationUI.refreshAllGroupForAddUserInCollaboration = function (groupID) {
Kim Peace committed
122 123 124 125
  $(".content").removeClass("none");

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

Kim Peace committed
126
  NativeBridgeDelegate.updateGroupInfo(groupID);
Kim Peace committed
127 128 129 130 131 132 133 134 135

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

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

Kim Peace committed
138
  //上位グループ、トップグループ遷移ボタンのイベント追加。
Kim Peace committed
139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172
  CollaborationUI.appendRootGroupAndParentGroupIfNeeded(
    result.rootGroupId,
    result.parentGroupId,
    groupID
  );

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

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

  //該当グループの所属ユーザを表示。
  CollaborationUI.appendUsers();
};

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
) {
  if (typeof rootGroupID !== "undefined" && paramGroupID == 0) {
    groupID = rootGroupID;
Kim Peace committed
173
  }
Kim Peace committed
174 175

  if (groupID == rootGroupID || groupID == "0") {
Kim Peace committed
176 177 178 179 180 181
    $("#rootGroupAreaInCollaboration").addClass("none");
    $("#parentGroupAreaInCollaboration").addClass("none");
  } else {
    $("#rootGroupAreaInCollaboration").removeClass("none");
    $("#parentGroupAreaInCollaboration").removeClass("none");
  }
Kim Peace committed
182 183 184 185
};

CollaborationUI.appendGroupPath = function (groupPathList) {
  const groupPathTemplate = getTemplate(
Kim Peace committed
186 187 188
    TemplateURL.ADD_USER_GROUP_PATH_IN_COLLABORATION
  );

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

Kim Peace committed
203 204
CollaborationUI.appendChildGroups = function (chidGroups) {
  const groupTemplate = getTemplate(
Kim Peace committed
205 206 207
    TemplateURL.ADD_USER_GROUP_LIST_IN_COLLABORATION
  );

Kim Peace committed
208
  chidGroups.forEach(function (childGroup) {
Kim Peace committed
209 210 211 212 213 214 215 216
    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
217
};
Kim Peace committed
218

Kim Peace committed
219 220
CollaborationUI.appendUsers = function (userList) {
  const userTemplate = getTemplate(
Kim Peace committed
221 222 223
    TemplateURL.ADD_USER_USER_LIST_IN_COLLABORATION
  );

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

Kim Peace committed
242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257
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
258 259 260 261 262 263 264 265 266
CollaborationUI.confirmInviteUserListInCollaboration = function () {
  const selectedUsers = NativeBridgeDataSource.loadSelectedUsers();
  if (selectedUsers != "") {
    $("#selectedUserListinCollaboration").html("");

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

Kim Peace committed
267 268 269
    const modalTemplate = getTemplate(TemplateURL.MODAL_ADD_USER_CONFIRM);

    const html = Mustache.render(modalTemplate, {
Kim Peace committed
270 271 272 273 274 275 276
      userList: selectedUsers,
    });
    let obj = jQuery.parseHTML(html);
    $("#modal_add_user_confirm").html(obj);
    $("#modalAddUserConfirm").modal("show");
  }

Kim Peace committed
277 278 279 280 281 282
  CollaborationUI.bindCancelAddUserButton();

  CollaborationUI.bindAddUserButton(selectedUsers);
};

CollaborationUI.bindCancelAddUserButton = function () {
Kim Peace committed
283 284 285 286 287 288
  $("#cancelAddUserBtn")
    .off()
    .on("click", function () {
      $("#modalAddUserConfirm").modal("hide");
      $("#addUserInCollaboration").modal("show");
    });
Kim Peace committed
289
};
Kim Peace committed
290

Kim Peace committed
291
CollaborationUI.bindAddUserButton = function (selectedUsers) {
Kim Peace committed
292 293 294 295 296 297
  $("#addUserBtn")
    .off()
    .on("click", function () {
      Common.showLoadingIndicator();
      let userIDList = selectedUsers.map((user) => user.shopMemberId);
      const commaJoinedUserIDList = userIDList.join(",");
298
      const collaborationType = globalUserInfo.collaborationType;
Kim Peace committed
299 300 301 302 303 304 305 306 307 308 309 310 311 312

      NativeBridgeDelegate.inviteCollaboration(
        commaJoinedUserIDList,
        collaborationType
      );

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

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