authorityLocalSetCtrl.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319
  1. angular.module('push')
  2. .controller('authorityLocalSetCtrl', function ($scope, $stateParams, AuthorityService, AuthorityModel, UtilService, $timeout, $ionicPopup, UserService,
  3. LocalOperateService, ConfigService, SqliteStorageService) {
  4. if($scope.app){
  5. $scope.setStatusBar(0);
  6. }
  7. //0:记录,1:资源
  8. var tempmess = $stateParams.type == 1 ? "资源库" : "文件夹";
  9. //恢复临时数据
  10. if (AuthorityModel.isfirst == 0) {
  11. $scope.tempfolder = angular.fromJson(angular.copy($stateParams.authoritydata));
  12. $scope.memberlist = [{
  13. userId: UserService.id,
  14. userName: UserService.user.user.userName,
  15. photo: UserService.user.user.photo,
  16. iscreator: 1,
  17. comefrom: ConfigService.comefrom
  18. }];
  19. $scope.adminlist = [];
  20. $scope.ownername = UserService.user.user.userName;
  21. } else {
  22. $scope.tempfolder = AuthorityModel.getAuthorityObj();
  23. $scope.memberlist = AuthorityModel.getMemberList();
  24. $scope.adminlist = AuthorityModel.getAdminList();
  25. $scope.ownername = AuthorityModel.getOwnerName();
  26. }
  27. $scope.editLocalFolder = function () {
  28. if (!UtilService.isDefined($scope.tempfolder.name)) {
  29. var tempmessage = tempmess + "名称不能为空";
  30. UtilService.showMess(tempmessage);
  31. return;
  32. }
  33. if ($scope.memberlist.length > 1) {
  34. if (UserService.viplevel == 1) {
  35. AuthorityService.isHasEnoughCount(2).then(function (response) {
  36. if (response.isHasEnoughCount == 1) {
  37. showToast();
  38. } else {
  39. UtilService.showMess("本月新建云文件夹次数已用完");
  40. $scope.hideLoadingToast();
  41. }
  42. }, function () {
  43. UtilService.showMess("网络不给力,请重试");
  44. $scope.hideLoadingToast();
  45. });
  46. } else {
  47. showToast();
  48. }
  49. } else {
  50. setLocalFolder();
  51. }
  52. };
  53. var showToast = function () {
  54. $ionicPopup.show({
  55. title: "提示信息",
  56. template: "<p style='text-align: center;'>加入成员后将新建一个云" + tempmess + ",所有成员将共享" + tempmess + "</p>",
  57. scope: $scope,
  58. buttons: [
  59. {text: "取消"},
  60. {
  61. text: '<span class="ionicAction_span">确认</span>',
  62. type: "button-positive",
  63. onTap: function () {
  64. newCreateFolder();
  65. }
  66. }
  67. ]
  68. });
  69. };
  70. //新建权限(云文件夹)
  71. var crfoflg = 0;
  72. var newCreateFolder = function () {
  73. if (crfoflg != 0) {
  74. return;
  75. }
  76. crfoflg = 1;
  77. $scope.showLoadingToast();
  78. var list1 = [];
  79. var list2 = [];
  80. var ownerid = "";
  81. angular.forEach($scope.memberlist, function (value, index) {
  82. if (value.iscreator == 0) {
  83. list1.push(value.userId);
  84. } else if (value.iscreator == 1) {
  85. ownerid = value.userId;
  86. } else {
  87. list2.push(value.userId);
  88. }
  89. });
  90. if ($stateParams.type == 0) {
  91. $scope.tempfolder.content = angular.isDefined($scope.tempfolder.content) ? $scope.tempfolder.content : "";
  92. AuthorityService.newCreateFolder($scope.tempfolder, list1, list2, [], ownerid, 0, 0, 1).then(function (response) {
  93. // console.log(response);
  94. copyLocalClass(response.conn.id);
  95. UtilService.showMess("新建成功");
  96. if (UserService.viplevel == 1) {
  97. $scope.deductUserMemberCount(2);
  98. }
  99. $timeout(function () {
  100. AuthorityModel.resetAuthorityData();
  101. AuthorityModel.isfirst = 0;
  102. $scope.goback();
  103. crfoflg = 0;
  104. }, 1000);
  105. $scope.hideLoadingToast();
  106. }, function () {
  107. crfoflg = 0;
  108. UtilService.showMess("网络不给力,请重试");
  109. $scope.hideLoadingToast();
  110. });
  111. } else {
  112. AuthorityService.newCreateResLib($scope.tempfolder, list1, list2, ownerid).then(function (response) {
  113. // console.log(response);
  114. UtilService.showMess("新建成功");
  115. $timeout(function () {
  116. AuthorityModel.resetAuthorityData();
  117. AuthorityModel.isfirst = 0;
  118. $scope.goback();
  119. crfoflg = 0;
  120. }, 1000);
  121. $scope.hideLoadingToast();
  122. }, function () {
  123. crfoflg = 0;
  124. UtilService.showMess("网络不给力,请重试");
  125. $scope.hideLoadingToast();
  126. });
  127. }
  128. };
  129. var copyLocalClass = function (claid) {
  130. if (!UtilService.isDefined($scope.tempfolder.id) || $scope.tempfolder.id == 0) {
  131. return;
  132. }
  133. AuthorityService.copyLocalClass($scope.tempfolder.id, claid).then(function (response) {
  134. // console.log(response);
  135. }, function () {
  136. })
  137. };
  138. //编辑本地文件夹
  139. var setLocalFolder = function () {
  140. $scope.showLoadingToast();
  141. LocalOperateService.setLocalFolder($scope.tempfolder).then(function (response) {
  142. UtilService.showMess("设置成功");
  143. $timeout(function () {
  144. AuthorityModel.resetAuthorityData();
  145. AuthorityModel.isfirst = 0;
  146. ConfigService.isedit = 1;
  147. SqliteStorageService.updateEditFlg(1);
  148. if ($stateParams.goflg == 1) {
  149. $scope.backViews(-2)
  150. } else {
  151. $scope.goback();
  152. }
  153. crfoflg = 0;
  154. }, 1000);
  155. $scope.hideLoadingToast();
  156. }, function () {
  157. crfoflg = 0;
  158. $scope.hideLoadingToast();
  159. });
  160. };
  161. //保存临时数据
  162. var saveTempData = function () {
  163. AuthorityModel.setAuthorityObj($scope.tempfolder);
  164. AuthorityModel.setMemberList($scope.memberlist);
  165. AuthorityModel.setAdminList($scope.adminlist);
  166. AuthorityModel.setOwnerName($scope.ownername);
  167. AuthorityModel.isfirst = 1;
  168. };
  169. //返回
  170. $scope.gobackback = function () {
  171. AuthorityModel.resetAuthorityData();
  172. AuthorityModel.isfirst = 0;
  173. $scope.goback();
  174. };
  175. //跳转至添加成员页面
  176. $scope.addResourceMember = function () {
  177. saveTempData();
  178. $scope.go("addMember");
  179. };
  180. //跳转至设置管理员页面
  181. $scope.goSetManger = function () {
  182. if ($scope.memberlist.length > 1) {
  183. saveTempData();
  184. $scope.go("authoritySetManger");
  185. }
  186. };
  187. //跳转至设置所有者页面
  188. /*$scope.goSetOwner = function () {
  189. if ($scope.memberlist.length > 1) {
  190. saveTempData();
  191. $scope.go("authoritySetOwner");
  192. }
  193. };*/
  194. //跳转到成员页面
  195. $scope.goResourceMember = function () {
  196. saveTempData();
  197. $scope.go("authorityFolderMember");
  198. };
  199. //查看个人主页
  200. $scope.goPublisher = function (member) {
  201. saveTempData();
  202. $scope.go('publisher', {Id: member.userId})
  203. };
  204. //退出权限
  205. $scope.quitAuthority = function () {
  206. $ionicPopup.show({
  207. title: "确认退出此" + tempmess,
  208. template: "<p style='text-align: center;'>退出后" + tempmess + "将不再显示在列表中</p>",
  209. scope: $scope,
  210. buttons: [
  211. {text: "取消"},
  212. {
  213. text: '<span class="ionicAction_span">确认</span>',
  214. type: "button-positive",
  215. onTap: function () {
  216. deleteAllData();
  217. }
  218. }
  219. ]
  220. });
  221. };
  222. $scope.delflg = 0;
  223. var delnum = 1;
  224. //删除所有此文件夹数据
  225. var deleteAllData = function () {
  226. $scope.showLoadingToast();
  227. var tempdate = UtilService.formatDate();
  228. //--查询当前文件夹下所有子文件夹(将当前文件夹及所有子文件夹localid组成list返回)
  229. LocalOperateService.queryAllFolderByLocalid($scope.tempfolder.localid).then(function (response) {
  230. // console.log(response);
  231. if (response.length > 0) {
  232. delnum++;
  233. //删除文件夹
  234. var up_fol_sql = "update conninfofolder set synchrotype = 4,updatetime = '" + tempdate.formattime + "' where localid in (" + response.join(",") + ")";
  235. SqliteStorageService.queryData(up_fol_sql).then(function () {
  236. $scope.delflg++;// 2
  237. }, function (error) {
  238. $scope.delflg++;// 2
  239. });
  240. var sel_sql = "select * from conninfo where localclaid in (" + response.join(",") + ")";
  241. SqliteStorageService.queryData(sel_sql).then(function (res) {
  242. if (res.length > 0) {
  243. delnum++;
  244. //删除文件夹下记录
  245. var up_conn_sql = "update conninfo set synchrotype = 4,updatetime = '" + tempdate.formattime + "' where localclaid in (" + response.join(",") + ")";
  246. SqliteStorageService.queryData(up_conn_sql).then(function () {
  247. $scope.delflg++;// 4
  248. }, function () {
  249. $scope.delflg++;// 4
  250. });
  251. //删除记录下名片
  252. var localinfoidstr = "";
  253. angular.forEach(res, function (value, index) {
  254. var tempstr = "'" + value.localid + "'";
  255. localinfoidstr = localinfoidstr + tempstr + ",";
  256. });
  257. localinfoidstr = localinfoidstr.substring(0, localinfoidstr.length - 1);
  258. var up_unit_sql = "update conninfounit set synchrotype = 4,updatetime = '" + tempdate.formattime + "' where localinfoid in (" + localinfoidstr + ")";
  259. SqliteStorageService.queryData(up_unit_sql).then(function () {
  260. $scope.delflg++;// 5
  261. }, function () {
  262. $scope.delflg++;// 5
  263. });
  264. } else {
  265. $scope.delflg++;// 3
  266. }
  267. }, function () {
  268. $scope.delflg++;// 3
  269. });
  270. } else {
  271. $scope.delflg++;// 1
  272. }
  273. }, function () {
  274. $scope.delflg++;// 1
  275. });
  276. };
  277. //--监听本地与云文件夹查询是否结束
  278. var owacth = $scope.$watch("delflg", function (newValue) {
  279. if (newValue == delnum) {
  280. if (delnum == 1) {
  281. UtilService.showMess("退出失败,请重试");
  282. } else {
  283. UtilService.showMess("退出成功");
  284. ConfigService.isedit = 1;
  285. SqliteStorageService.updateEditFlg(1);
  286. $timeout(function () {
  287. AuthorityModel.resetAuthorityData();
  288. AuthorityModel.isfirst = 0;
  289. if ($stateParams.goflg == 1) {
  290. $scope.backViews(-2)
  291. } else {
  292. $scope.goback();
  293. }
  294. }, 1000);
  295. }
  296. owacth();
  297. $scope.hideLoadingToast();
  298. }
  299. });
  300. });