1// create store 2const store = Framework7.createStore({ 3 // start with the state (store data) 4 state: { 5 focus: true, 6 journey: [], 7 journeyIsLoading: false, 8 registration: { 9 data: {}, 10 levelid: '', 11 regid: 0, 12 sessionid: '', 13 url: DATA.registration_url, 14 xgoto: false 15 }, 16 list: { 17 stock: { 18 fav: [], 19 fav_2: [], 20 fav_3: [], 21 fav_4: [], 22 fav_5: [], 23 fav_name_1: '', 24 fav_name_2: '', 25 fav_name_3: '', 26 fav_name_4: '', 27 fav_name_5: '', 28 fav_context: 'list.favorite', 29 fav_context_2: 'list.favorite_2', 30 fav_context_3: 'list.favorite_3', 31 fav_context_4: 'list.favorite_4', 32 fav_context_5: 'list.favorite_5', 33 fav_context_name_1: 'list.favorite_name_1', 34 fav_context_name_2: 'list.favorite_name_2', 35 fav_context_name_3: 'list.favorite_name_3', 36 fav_context_name_4: 'list.favorite_name_4', 37 fav_context_name_5: 'list.favorite_name_5', 38 fav_default: ['TLKM', 'BBCA', 'BMRI', 'BBRI', 'ANTM', 'PTPP', 'PTBA', 'SMRA', 'ASRI', 'CTRA', 'INCO', 'PTBA', 'ADRO', 'INDF', 'MAPI', 'SMGR', 'ANTM'], 39 fav_requesting: false 40 }, 41 } 42 }, 43 44 // actions to operate with state and for async manipulations 45 actions: { 46 clearFavorite({ state }) { 47 state.list.stock.fav = []; 48 state.list.stock.fav_2 = []; 49 state.list.stock.fav_3 = []; 50 state.list.stock.fav_4 = []; 51 state.list.stock.fav_5 = []; 52 state.list.stock.fav_name_1 = ''; 53 state.list.stock.fav_name_2 = ''; 54 state.list.stock.fav_name_3 = ''; 55 state.list.stock.fav_name_4 = ''; 56 state.list.stock.fav_name_5 = ''; 57 }, 58 async getJourney({ state }) { 59 let param = { 60 cmd: 'GET', 61 param: { 62 source: 'journey', 63 channel: '', 64 level: '', 65 subject: '', 66 ctype: '', 67 status: 'P' 68 } 69 } 70 71 if (state.journeyIsLoading) { 72 return; 73 } else { 74 state.journeyIsLoading = true; 75 } 76 77 return await sc.GetPublic(param) 78 .then((res) => { 79 state.journey = res; 80 return res; 81 }) 82 .finally(() => { 83 state.journeyIsLoading = false; 84 }); 85 }, 86 async getFavoriteList({ state }, { context }) { 87 let stock = state.list.stock; 88 89 if (stock.fav_requesting) { 90 return; 91 } else { 92 let param = { 93 cmd: 'GETUSETTING', 94 service: 'member', 95 param: { 96 context 97 } 98 }; 99 100 logger('getFavoriteList ' + context); 101 102 // stock.fav_requesting = true; 103 104 return await sc.SendWait(param) 105 .then((res) => { 106 let data = res.data; 107 108 if (data.length > 0) { 109 if (context == stock.fav_context) { 110 stock.fav = data; 111 return stock.fav; 112 } else if (context == stock.fav_context_2) { 113 stock.fav_2 = data; 114 return stock.fav_2; 115 } else if (context == stock.fav_context_3) { 116 stock.fav_3 = data; 117 return stock.fav_3; 118 } else if (context == stock.fav_context_4) { 119 stock.fav_4 = data; 120 return stock.fav_4; 121 } else if (context == stock.fav_context_5) { 122 stock.fav_5 = data; 123 return stock.fav_5; 124 } 125 } else { 126 throw ('NODATA'); 127 } 128 }) 129 .catch((err) => { 130 logger('getFavoriteList ' + context + ' err: ' + err, 'e'); 131 132 if (err == 'NODATA') { 133 if (context == stock.fav_context) { 134 stock.fav = stock.fav_default; 135 return stock.fav_default; 136 } else if (context == stock.fav_context_2) { 137 return stock.fav_2; 138 } else if (context == stock.fav_context_3) { 139 return stock.fav_3; 140 } else if (context == stock.fav_context_4) { 141 return stock.fav_4; 142 } else if (context == stock.fav_context_5) { 143 return stock.fav_5; 144 } 145 } 146 }) 147 .finally(() => { 148 stock.fav_requesting = false;
149 }); 150 } 151 }, 152 async getFavoriteListName({ state }, { context }) { 153 let stock = state.list.stock; 154 let param = { 155 cmd: 'GETUSETTING', 156 service: 'member', 157 param: { 158 context 159 } 160 }; 161 162 if (!sc.IsAuthenticated()) { 163 stock.fav = stock.fav_default; 164 stock.fav_2 = stock.fav_default; 165 stock.fav_3 = stock.fav_default; 166 stock.fav_4 = stock.fav_default; 167 stock.fav_5 = stock.fav_default; 168 169 if (context == stock.fav_context_name_1) { 170 stock.fav_name_1 = 'FAVORITE 1'; 171 return stock.fav_name_1; 172 } else if (context == stock.fav_context_name_2) { 173 stock.fav_name_2 = 'FAVORITE 2'; 174 return stock.fav_name_2; 175 } else if (context == stock.fav_context_name_3) { 176 stock.fav_name_3 = 'FAVORITE 3'; 177 return stock.fav_name_3; 178 } else if (context == stock.fav_context_name_4) { 179 stock.fav_name_4 = 'FAVORITE 4'; 180 return stock.fav_name_4; 181 } else if (context == stock.fav_context_name_5) { 182 stock.fav_name_5 = 'FAVORITE 5'; 183 return stock.fav_name_5; 184 } 185 } 186 187 logger('getFavoriteListName ' + context); 188 189 return await sc.SendWait(param) 190 .then((res) => { 191 let name = res.data; 192 193 if (typeof name == 'string') { 194 if (context == stock.fav_context_name_1) { 195 stock.fav_name_1 = name; 196 return stock.fav_name_1; 197 } else if (context == stock.fav_context_name_2) { 198 stock.fav_name_2 = name; 199 return stock.fav_name_2; 200 } else if (context == stock.fav_context_name_3) { 201 stock.fav_name_3 = name; 202 return stock.fav_name_3; 203 } else if (context == stock.fav_context_name_4) { 204 stock.fav_name_4 = name; 205 return stock.fav_name_4; 206 } else if (context == stock.fav_context_name_5) { 207 stock.fav_name_5 = name; 208 return stock.fav_name_5; 209 } 210 } else { 211 throw ('NODATA'); 212 } 213 }) 214 .catch((err) => { 215 logger('getFavoriteListName ' + context + ' err: ' + err, 'e'); 216 217 if (context == stock.fav_context_name_1) { 218 stock.fav_name_1 = 'FAVORITE 1'; 219 return stock.fav_name_1; 220 } else if (context == stock.fav_context_name_2) { 221 stock.fav_name_2 = 'FAVORITE 2'; 222 return stock.fav_name_2; 223 } else if (context == stock.fav_context_name_3) { 224 stock.fav_name_3 = 'FAVORITE 3'; 225 return stock.fav_name_3; 226 } else if (context == stock.fav_context_name_4) { 227 stock.fav_name_4 = 'FAVORITE 4'; 228 return stock.fav_name_4; 229 } else if (context == stock.fav_context_name_5) { 230 stock.fav_name_5 = 'FAVORITE 5'; 231 return stock.fav_name_5; 232 } 233 }); 234 }, 235 setFavoriteList({ state }, { context }) { 236 let stock = state.list.stock; 237 let param = { 238 cmd: 'SETUSETTING', 239 service: 'member', 240 param: { 241 context 242 } 243 }; 244 245 if (context == stock.fav_context) { 246 param.param.data = stock.fav; 247 } else if (context == stock.fav_context_2) { 248 param.param.data = stock.fav_2; 249 } else if (context == stock.fav_context_3) { 250 param.param.data = stock.fav_3; 251 } else if (context == stock.fav_context_4) { 252 param.param.data = stock.fav_4; 253 } else if (context == stock.fav_context_5) { 254 param.param.data = stock.fav_5; 255 } else { 256 return; 257 } 258 259 logger('setFavoriteList: ' + context); 260 logger('param: ' + JSON.stringify(param)); 261 262 sc.SendWait(param) 263 .catch((err) => { 264 logger('setFavoriteList err: ' + err, 'e'); 265 }); 266 }, 267 setFavoriteListName({ state }, { context }) { 268 let stock = state.list.stock; 269 let param = { 270 cmd: 'SETUSETTING', 271 service: 'member', 272 param: { 273 context 274 } 275 }; 276 277 if (context == stock.fav_context_name_1) { 278 param.param.data = stock.fav_name_1; 279 } else if (context == stock.fav_context_name_2) { 280 param.param.data = stock.fav_name_2; 281 } else if (context == stock.fav_context_name_3) { 282 param.param.data = stock.fav_name_3; 283 } else if (context == stock.fav_context_name_4) { 284 param.param.data = stock.fav_name_4; 285 } else if (context == stock.fav_context_name_5) { 286 param.param.data = stock.fav_name_5; 287 } else { 288 return; 289 } 290 291 logger('setFavoriteList: ' + context); 292 logger('param: ' + JSON.stringify(param)); 293 294 sc.SendWait(param) 295 .catch((err) => { 296 logger('setFavoriteListName err: ' + err, 'e'); 297 }); 298 } 299 }, 300 301 // getters to retrieve the state 302 getters: { 303 journey({ state }) { 304 return state.journey; 305 }, 306 stock_fav({ state }) { 307 return state.list.stock.fav; 308 } 309 }, 310});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.