1var aks_homepage = angular.module('aks_homepage', []); 2 3aks_homepage.service('AKSSharepointService', function ($http, $q, $timeout) { 4 5 6 this.getContacts = function (pagesize, pagingInfo, state, region, zip, listname, stateTargetColumn, regionTargetColumn) { 7 var listName = 'Team'; 8 9 var deferred = $q.defer(); 10 11 var columns = "Presse_x0020_Kontakt_x0020_Mail_,AKSPresseContactMail1,AKSContactDepartment,AKSContactCategory,AKSGLocation,AKSContactTitlePrefix,AKSContactTitleSuffix,FirstName,FullName,EMail,Company,JobTitle,WorkPhone,HomePhone,CellPhone,WorkFax,WorkAddress,WorkCity,WorkState,WorkZip,WorkCountry,AKSRegion,AKSRegionTaxHTField,AKSSortId"; 12 13 var rowLimit = "<RowLimit>" + pagesize + "</RowLimit>"; 14 var orderBy = "<OrderBy><FieldRef Name='AKSSortId' Ascending='TRUE'></FieldRef></OrderBy>"; 15 16 var whereClauses = []; 17 18 if (state) { 19 whereClauses.push( 20 { 21 FieldName: stateTargetColumn, 22 Comparison: 'Eq', 23 Value: { 24 Type: 'Text', 25 Value: state 26 } 27 } 28 ); 29 } 30 31 if (region) { 32 whereClauses.push( 33 { 34 FieldName: regionTargetColumn, 35 Comparison: 'Eq', 36 Value: { 37 Type: 'Text', 38 Value: region 39 } 40 } 41 ); 42 } 43 44 if (zip) { 45 whereClauses.push( 46 { 47 FieldName: 'WorkZip', 48 Comparison: 'Contains', 49 Value: { 50 Type: 'Text', 51 Value: zip 52 } 53 } 54 ); 55 } 56 57 var whereClause = buildWhereClause(whereClauses); 58 var query = '<Query>' 59 + whereClause 60 + orderBy 61 + rowLimit 62 + 63 '</Query>'; 64 65 GetJSOMRequest(listname, columns, query, pagesize, pagingInfo).then( 66 function (result) { 67 deferred.resolve(result); 68 }, 69 function (exc) { 70 console.log('error while fetching data... (getContacts):' +exc) 71 } 72 ); 73 return deferred.promise; 74 } 75 76 77 78 /* 79 Beispiel für whereClauses (JSON): 80 [ 81 { 82 FieldName : 'AKSRegion', 83 Comparison : 'Eq', 84 Value { 85 Type : 'Text', 86 Value : 123 87 } 88 } 89 ] 90 91 */ 92 buildWhereClause = function (whereClauses) { 93 if (!whereClauses || whereClauses.length == 0) return ''; 94 95 var totalClause = ''; 96 whereClauses.forEach(function (clause) { 97 // eg.: <Where><Eq><FieldRef Name='AKSRegion' /><Value Type='Text'>" + region + "</Value></Eq></Where> 98 var fieldRef = "<FieldRef Name='" + clause.FieldName + "' />"; 99 var valueType = "<Value Type='" + clause.Value.Type + "'>" + clause.Value.Value + "</Value>"; 100 var comparisonStart = "<" + clause.Comparison + ">"; 101 var comparisonEnd = "</" + clause.Comparison + ">"; 102 var singleClause = 103 comparisonStart 104 + fieldRef 105 + valueType 106 + comparisonEnd; 107 108 totalClause = totalClause + singleClause; 109 }); 110 // aktuell alles mit AND verknüpfen (evtl. auch noch generisch implementieren) 111 if (whereClauses.length > 1) { 112 totalClause = '<And>' + totalClause + '</And>' 113 } 114 totalClause = '<Where>' + totalClause + '</Where>'; 115 return totalClause; 116 } 117 118 this.GetJSOMRequestTerms = function (termname) { 119 var deferred = $q.defer(); 120 var clientContext = SP.ClientContext.get_current(); 121 122 var taxSession = SP.Taxonomy.TaxonomySession.getTaxonomySession(clientContext); 123 124 var termStore = taxSession.getDefaultSiteCollectionTermStore(); 125 // Set up Term Query for termStore.getTerms() 126 var termQuery = new SP.Taxonomy.LabelMatchInformation(clientContext); 127 termQuery.set_trimUnavailable(false); 128 termQuery.set_termLabel(termname); 129 var termsStoreTerms = termStore.getTerms(termQuery); 130 clientContext.load(taxSession); 131 clientContext.load(termStore); 132 clientContext.load(termsStoreTerms); 133 134 clientContext.executeQueryAsync( 135 Function.createDelegate(this, function () { 136 deferred.resolve(termsStoreTerms); 137 }), 138 Function.createDelegate(this, function (sender, args) { 139 deferred.reject('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace()); 140 }) 141 ); 142 return deferred.promise; 143 144 }; 145 146 GetJSOMRequestFolder = function (listName, columns, conditions, pagesize, pageposition, folder) { 147 var deferred = $q.defer(); 148 var clientContext = SP.ClientContext.get_current(); 149 var oList = clientContext.get_web().get_lists().getByTitle(listName); 150 151 var query = "<View Scope='RecursiveAll' ><ViewFields>" 152 var columnsArray = columns.split(","); 153 for (var i = 0; i < columnsArray.length; i++) { 154 var fieldRef = "<FieldRef Name='" + columnsArray[i] + "' />"; 155 query += fieldRef; 156 } 157 query += "</ViewFields>"; 158 159 if (conditions != ""); 160 query += conditions; 161 162 if (pagesize != "") 163 query += "<RowLimit>" + pagesize + "</RowLimit>"; 164 165 query += "</View>" 166 167 var camlQuery = new SP.CamlQuery(); 168 if (typeof (folder) != 'undefined' && folder.length > 0) 169 camlQuery.set_folderServerRelativeUrl(folder); 170 171 if (pageposition != "") 172 camlQuery.set_listItemCollectionPosition(pageposition); 173 174 camlQuery.set_viewXml(query); 175 176 177 camlQuery.set_folderServerRelativeUrl(folder); 178 179 var collListItems = oList.getItems(camlQuery); 180 181 clientContext.load(collListItems); 182 183 clientContext.executeQueryAsync( 184 Function.createDelegate(this, function () { 185 deferred.resolve(collListItems); 186 }), 187 Function.createDelegate(this, function (sender, args) { 188 deferred.reject('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace()); 189 }) 190 ); 191 return deferred.promise; 192 }; 193 194 GetJSOMRequestRootWeb = function (listName, columns, conditions, pagesize, pageposition) { 195 var deferred = $q.defer(); 196 var clientContext = SP.ClientContext.get_current(); 197 var oList = clientContext.get_site().get_rootWeb().get_lists().getByTitle(listName); 198 199 var query = "<View Scope='RecursiveAll'><ViewFields>" 200 var columnsArray = columns.split(","); 201 for (var i = 0; i < columnsArray.length; i++) { 202 var fieldRef = "<FieldRef Name='" + columnsArray[i] + "' />"; 203 query += fieldRef; 204 } 205 query += "</ViewFields>"; 206 207 if (conditions != ""); 208 query += conditions; 209 210 if (pagesize != "") 211 query += "<RowLimit>" + pagesize + "</RowLimit>"; 212 213 query += "</View>" 214 215 var camlQuery = new SP.CamlQuery(); 216 217 if (pageposition != "") 218 camlQuery.set_listItemCollectionPosition(pageposition); 219 220 camlQuery.set_viewXml(query); 221 222 var collListItems = oList.getItems(camlQuery); 223 224 clientContext.load(collListItems); 225 226 clientContext.executeQueryAsync( 227 Function.createDelegate(this, function () { 228 deferred.resolve(collListItems); 229 }), 230 Function.createDelegate(this, function (sender, args) { 231 deferred.reject('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace()); 232 }) 233 ); 234 return deferred.promise; 235 }; 236 237 GetJSOMRequest = function (listName, columns, conditions, pagesize, pageposition) { 238 var deferred = $q.defer(); 239 var clientContext = SP.ClientContext.get_current(); 240 var oList = clientContext.get_web().get_lists().getByTitle(listName); 241 242 var query = "<View Scope='RecursiveAll'><ViewFields>" 243 var columnsArray = columns.split(","); 244 for (var i = 0; i < columnsArray.length; i++) { 245 var fieldRef = "<FieldRef Name='" + columnsArray[i] + "' />"; 246 query += fieldRef; 247 } 248 query += "</ViewFields>"; 249 250 if (conditions != ""); 251 query += conditions; 252 253 if (pagesize != "") 254 query += "<RowLimit>" + pagesize + "</RowLimit>"; 255 256 query += "</View>" 257 258 var camlQuery = new SP.CamlQuery(); 259 260 if (pageposition != "") 261 camlQuery.set_listItemCollectionPosition(pageposition); 262 263 camlQuery.set_viewXml(query); 264 265 var collListItems = oList.getItems(camlQuery); 266 267 clientContext.load(collListItems); 268 269 clientContext.executeQueryAsync( 270 Function.createDelegate(this, function () { 271 deferred.resolve(collListItems); 272 }), 273 Function.createDelegate(this, function (sender, args) { 274 deferred.reject('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace()); 275 }) 276 ); 277 return deferred.promise; 278 }; 279
280 this.getStandorte = function () { 281 var deferred = $q.defer(); 282 283 var listname = "AKSStandortList"; 284 var columns = "Title,AKSMainContent1,AKSGLocation"; 285 var conditions = ""; 286 var pageposition = ""; 287 var pagesize = ""; 288 289 GetJSOMRequest(listname, columns, conditions, pagesize, pageposition).then( 290 function (result) { 291 deferred.resolve(result); 292 }, 293 function (exc) { 294 console.log('error while fetching data... (getStandorte):' + exc) 295 } 296 ); 297 return deferred.promise; 298 }; 299 300 this.getStandortEntrys = function (pagesize1, position,state, listname) { 301 var deferred = $q.defer(); 302 303 var listname = listname; 304 var columns = "Title,AKSMainContent1,WorkCountry,AKSCountry,AKSSortId,AKSGLocation"; 305 var pageposition = position; 306 var pagesize = pagesize1; 307 if (state != undefined) 308 var conditions = "<Query><Where><Eq><FieldRef Name='WorkCountry' /><Value Type='Text'>" + state + "</Value></eq></Where><OrderBy><FieldRef Name='AKSSortId' Ascending='TRUE'></FieldRef></OrderBy></Query><RowLimit>" + pagesize + "</RowLimit>"; 309 else 310 var conditions = "<Query><OrderBy><FieldRef Name='AKSSortId' Ascending='TRUE'></FieldRef></OrderBy></Query>"; 311 312 313 314 GetJSOMRequestRootWeb(listname, columns, conditions, pagesize, pageposition).then( 315 function (result) { 316 deferred.resolve(result); 317 }, 318 function (exc) { 319 console.log('error while fetching data... (getStandorte):' + exc) 320 } 321 ); 322 return deferred.promise; 323 }; 324 325 326 this.getContactByName = function (name) { 327 var deferred = $q.defer(); 328 329 var listname = $(".aks-contactListName").text(); 330 var columns = "Title,FirstName,Email,Company,JobTitle,WorkPhone,HomePhone,CellPhone,WorkFax,WorkAddress,WorkCity,WorkState,WorkZip,WorkCountry,AKSContactCategory,AKSContactDepartment"; 331 var conditions = "<Query><Where><Eq><FieldRef Name='Title' /><Value Type='Text'>" + name + "</Value></eq></Where></Query>"; 332 var pageposition = ""; 333 var pagesize = ""; 334 335 GetJSOMRequestRootWeb(listname, columns, conditions, pagesize, pageposition).then( 336 function (result) { 337 deferred.resolve(result); 338 }, 339 function (exc) { 340 console.log('error while fetching data... (getContactByname):' + exc) 341 } 342 ); 343 return deferred.promise; 344 }; 345 346 // method used to get all current pressemeldungen by its active status 347 this.getPressemeldungenByActive = function (pagesize, position, isactive) { 348 var deferred = $q.defer(); 349 350 var listname = $(".aks-pagesListName").text(); 351 var pressnewsfoldername = $(".aks-pressnewsfoldername").text().split('/')[0]; 352 var columns = "AKSHeadline1,AKSDate1,AKSIntroText1,AKSArchive,FileRef"; 353 var conditions = "<Query><Where><And><Eq><FieldRef Name='AKSArchive' /><Value Type='Boolean'>" + isactive + "</Value></Eq><BeginsWith><FieldRef Name='ContentTypeId' /><Value Type='ContentTypeId'>0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF3900D1E283D5DF0E4599BCFD005A73A6F24C007F8091ECF78941E8A453A631D7F0123E</Value></BeginsWith></And></Where><OrderBy><FieldRef Name='AKSDate1' Ascending='False' /></OrderBy></Query>"; 354 var pageposition = position; 355 var foldername = listname + "/" + pressnewsfoldername; 356 357 GetJSOMRequestFolder(listname, columns, conditions, pagesize, pageposition, foldername).then( 358 function (result) { 359 deferred.resolve(result); 360 }, 361 function (exc) { 362 console.log('error while fetching data... (getPressemeldugnsByActive):' + exc) 363 } 364 ); 365 return deferred.promise; 366 }; 367 368 // method used to get all current events by its active status 369 this.getEventsByActive = function (pagesize, position, isactive) { 370 var deferred = $q.defer(); 371 372 var listname = $(".aks-eventListName").text(); 373 var columns = "Title,Location,EventDate,EndDate,AKSIntroText1,AKSArchive"; 374 var conditions = "<Query><OrderBy><FieldRef Name='EventDate' Ascending='True'></FieldRef></OrderBy><Where><Eq><FieldRef Name='AKSArchive' /><Value Type='Boolean'>" + isactive + "</Value></Eq></Where></Query>"; 375 var pageposition = position; 376 377 GetJSOMRequest(listname, columns, conditions, pagesize, pageposition).then( 378 function (result) { 379 deferred.resolve(result); 380 }, 381 function (exc) { 382 console.log('error while fetching data... (getEventsByActive):' + exc) 383 } 384 ); 385 return deferred.promise; 386 }; 387 388 // method used to get all newsletters 389 this.getNewsletters = function (pagesize, position) { 390 var deferred = $q.defer(); 391 392 var listname = $(".aks-newsletterListName").text(); 393 var columns = "AKSMainContent1,AKSDate1,AKSHeadline1"; 394 var conditions = "<Query><OrderBy><FieldRef Name='AKSDate1' Ascending='False' /></OrderBy></Query>"; 395 //var conditions = ""; 396 var pageposition = position; 397 398 GetJSOMRequest(listname, columns, conditions, pagesize, pageposition).then( 399 function (result) { 400 deferred.resolve(result); 401 }, 402 function (exc) { 403 console.log('error while fetching data... (getNewsletters):'
403+ exc) 404 } 405 406 ); 407 return deferred.promise; 408 }; 409 410 // method used to get all glossar entries by its first letter 411 this.getGlossarEntriesByLetter = function (letter, listname) { 412 var deferred = $q.defer(); 413 414 var columns = "AKSHeadline1,AKSMainContent1,AKSGlossarSingleLetter"; 415 if (letter == null) 416 var conditions = ""; 417 else 418 var conditions = "<Query><Where><Eq><FieldRef Name='AKSGlossarSingleLetter' /><Value Type='Text'>" + letter + "</Value></eq></Where></Query>"; 419 420 var pageposition = ""; 421 var pagesize = ""; 422 423 GetJSOMRequest(listname, columns, conditions, pagesize, pageposition).then( 424 function (result) { 425 deferred.resolve(result); 426 }, 427 function (exc) { 428 console.log('error while fetching data... (GetGlossarEntriesByLetter):' + exc) 429 } 430 ); 431 return deferred.promise; 432 }; 433 434 // method used to get all available letters 435 this.getGlossarLetters = function (listname) { 436 var deferred = $q.defer(); 437 438 var columns = "AKSGlossarSingleLetter"; 439 var conditions = ""; 440 var pageposition = ""; 441 var pagesize = ""; 442 443 GetJSOMRequest(listname, columns, conditions, pagesize, pageposition).then( 444 function (result) { 445 deferred.resolve(result); 446 }, 447 function (exc) { 448 console.log('error while fetching data... (GetGlossarLetters):' + exc) 449 } 450 ); 451 return deferred.promise; 452 }; 453 454 // Method used to get all news per page 455 // params: 456 // pageSize : number of elements per page 457 // position: means the current page -> default the first page 458 this.getNews = function (pagesize, position, listname) { 459 var deferred = $q.defer(); 460 461 var columns = "AKSIMG1,AKSDate1,AKSCategory1,AKSHeadline1,AKSMainContent1,AKSIntroText1"; 462 var conditions = "<Query><OrderBy><FieldRef Name='AKSDate1' Ascending='False' /></OrderBy></Query>"; 463 var pageposition = position; 464 465 GetJSOMRequest(listname, columns, conditions, pagesize, pageposition).then( 466 function (result) { 467 deferred.resolve(result); 468 }, 469 function (exc) { 470 console.log('error while fetching data... (getNews):' + exc) 471 } 472 ); 473 return deferred.promise; 474 }; 475 476 // method used to get the all contacts filters by its region 477 this.getContactsByRegion = function (pagesize, position, region, listname, regionTargetColumn) { 478 var deferred = $q.defer(); 479 480 var columns = "Presse_x0020_Kontakt_x0020_Mail_,AKSContactDepartment,AKSContactCategory,AKSGLocation,AKSContactTitlePrefix,AKSContactTitleSuffix,FirstName,FullName,EMail,Company,JobTitle,WorkPhone,HomePhone,CellPhone,WorkFax,WorkAddress,WorkCity,WorkState,WorkZip,AKSRegion,AKSRegionTaxHTField,AKSSortId," + regionTargetColumn; 481 if (region != undefined) 482 var conditions = "<Query><Where><Eq><FieldRef Name='" + regionTargetColumn + "' /><Value Type='Text'>" + region + "</Value></eq></Where><OrderBy><FieldRef Name='AKSSortId' Ascending='TRUE'></FieldRef></OrderBy></Query><RowLimit>" + pagesize + "</RowLimit>"; 483 else 484 var conditions = "<Query><OrderBy><FieldRef Name='AKSSortId' Ascending='TRUE'></FieldRef></OrderBy></Query>"; 485 486 var pageposition = position; 487 488 GetJSOMRequestRootWeb(listname, columns, conditions, pagesize, pageposition).then( 489 function (result) { 490 deferred.resolve(result); 491 }, 492 function (exc) { 493 console.log('error while fetching data... (getContactsByRegion):' + exc) 494 } 495 ); 496 return deferred.promise; 497 }; 498 499 this.getContactsByState = function (pagesize, position, state, listname, stateTargetColumn) { 500 var deferred = $q.defer(); 501 502 var columns = "Presse_x0020_Kontakt_x0020_Mail_,AKSContactDepartment,AKSContactCategory,AKSGLocation,AKSContactTitlePrefix,AKSContactTitleSuffix,FirstName,FullName,EMail,Company,JobTitle,WorkPhone,HomePhone,CellPhone,WorkFax,WorkAddress,WorkCity,WorkState,WorkZip,AKSRegion,AKSRegionTaxHTField,AKSSortId"; 503 if (state != undefined) 504 var conditions = "<Query><Where><Eq><FieldRef Name='" + stateTargetColumn + "' /><Value Type='Text'>" + state + "</Value></eq></Where><OrderBy><FieldRef Name='AKSSortId' Ascending='TRUE'></FieldRef></OrderBy></Query><RowLimit>" + pagesize + "</RowLimit>"; 505 else 506 var conditions = "<Query><OrderBy><FieldRef Name='AKSSortId' Ascending='TRUE'></FieldRef></OrderBy></Query>"; 507 508 var pageposition = position; 509 510 GetJSOMRequestRootWeb(listname, columns, conditions, pagesize, pageposition).then( 511 function (result) { 512 deferred.resolve(result); 513 }, 514 function (exc) { 515 console.log('error while fetching data... (GetContactsByState):' + exc) 516 } 517 ); 518 return deferred.promise; 519 }; 520 521 this.getContactsByStateAndRegion = function (pagesize, position, state, region, listname, stateTargetColumn, regionTargetColumn) { 522 var deferred = $q.defer(); 523 524 var columns = "Presse_x0020_Kontakt_x0020_Mail_,AKSContactDepartment,AKSContactCategory,AKSGLocation,AKSContactTitlePrefix,AKSContactTitleSuffix,FirstName,FullName,EMail,Company,JobTitle,WorkPhone,HomePhone,CellPhone,WorkFax,WorkAddress,WorkCity,WorkState,WorkZip,AKSRegion,AKSRegionTaxHTField,AKSSortId," + regionTargetColumn; 525 if (state == undefined) { 526 if (region == undefined) { 527 var conditions = "<Query><OrderBy><FieldRef Name='AKSSortId' Ascending='TRUE'></FieldRef></OrderBy></Query>"; 528 } else { 529 var conditions = "<Query><Where><Eq><FieldRef Name='" + regionTargetColumn + "' /><Value Type='Text'>" + region + "</Value></Eq></Where><OrderBy><FieldRef Name='AKSSortId' Ascending='TRUE'></FieldRef></OrderBy></Query><RowLimit>" + pagesize + "</RowLimit>"; 530 } 531 } else { 532 if (region == undefined) { 533 var conditions = "<Query><Where><Eq><FieldRef Name='" + stateTargetColumn + "' /><Value Type='Text'>
533" + state + "</Value></Eq></Where><OrderBy><FieldRef Name='AKSSortId' Ascending='TRUE'></FieldRef></OrderBy></Query><RowLimit>" + pagesize + "</RowLimit>"; 534 } else { 535 var conditions = "<Query><Where><And><Eq><FieldRef Name='" + stateTargetColumn + "' /><Value Type='Text'>" + state + "</Value></Eq><Eq><FieldRef Name='" + regionTargetColumn + "' /><Value Type='Text'>" + region + "</Value></Eq></And></Where><OrderBy><FieldRef Name='AKSSortId' Ascending='TRUE'></FieldRef></OrderBy></Query><RowLimit>" + pagesize + "</RowLimit>"; 536 } 537 } 538 539 var pageposition = position; 540 541 GetJSOMRequestRootWeb(listname, columns, conditions, pagesize, pageposition).then( 542 function (result) { 543 deferred.resolve(result); 544 }, 545 function (exc) { 546 console.log('error while fetching data... getContactsByStateAndRegion:' + exc) 547 } 548 ); 549 return deferred.promise; 550 }; 551 552 // method used to get the all contacts filters by its zip code 553 this.getContactsByZip = function (pagesize, position, zip, listname) { 554 555 var deferred = $q.defer(); 556 557 var columns = "Presse_x0020_Kontakt_x0020_Mail_,AKSContactDepartment,AKSContactCategory,AKSGLocation,AKSContactTitlePrefix,AKSContactTitleSuffix,FirstName,FullName,EMail,Company,JobTitle,WorkPhone,HomePhone,CellPhone,WorkFax,WorkAddress,WorkCity,WorkState,WorkZip,AKSRegion,AKSRegionTaxHTField"; 558 var conditions = "<Query><Where><Contains><FieldRef Name='WorkZip' /><Value Type='Text'>" + zip + "</Value></Contains></Where><OrderBy><FieldRef Name='AKSSortId' Ascending='TRUE'></FieldRef></OrderBy></Query><RowLimit>" + pagesize + "</RowLimit>"; 559 var pageposition = position; 560 561 GetJSOMRequestRootWeb(listname, columns, conditions, pagesize, pageposition).then( 562 function (result) { 563 deferred.resolve(result); 564 }, 565 function (exc) { 566 console.log('error while fetching data... (getContactsByZip)'+ exc) 567 } 568 ); 569 return deferred.promise; 570 }; 571 572 // Method used to get all faqs per category 573 // params: 574 // listName : listname of the Sharepoint list 575 // columns : names of columns which should be load e.g.: col1,col2,col3 576 // category : filter creteria 577 this.getFaqsPerCategory = function (category, series, listname, seriesTargetField, seriesIsDate) { 578 var deferred = $q.defer(); 579 580 var columns = "AKSFaqQuestion,AKSFaqAnswer,Attachments"; 581 var categoryCondition = "<Contains><FieldRef Name='AKSFAQCategory' /><Value Type='Text'>" + category + "</Value></Contains>"; 582 var seriesCondition = "<Contains><FieldRef Name='" + seriesTargetField + "' /><Value Type='Text'>" + series + "</Value></Contains>"; 583 var seriesOrder = ""; 584 585 if (seriesIsDate) { 586 seriesCondition = "<And>" + 587 "<Geq><FieldRef Name='" + seriesTargetField + "' /><Value Type='DateTime'>" + series + "-01-01T12:00:00Z</Value></Geq>" + 588 "<Leq><FieldRef Name='" + seriesTargetField + "' /><Value Type='DateTime'>" + series + "-12-31T12:00:00Z</Value></Leq>" + 589 "</And>"; 590 seriesOrder = "<OrderBy><FieldRef Name='" + seriesTargetField + "' Ascending='FALSE' /></OrderBy>"; 591 } 592 593 if (category != null) { 594 if (series != null) 595 var conditions = "<Query><Where><And>" + categoryCondition + seriesCondition + "</And></Where>"+seriesOrder+"</Query>"; 596 else 597 var conditions = "<Query><Where>" + categoryCondition + "</Where>" + seriesOrder + "</Query>"; 598 } else { 599 if (series != null) 600 var conditions = "<Query><Where>" + seriesCondition + "</Where>" + seriesOrder + "</Query>"; 601 else 602 var conditions = "<Query>" + seriesOrder + "</Query>"; 603 } 604 var pagesize = ""; 605 var pageposition = ""; 606 607 GetJSOMRequest(listname, columns, conditions, pagesize, pageposition).then( 608 function (result) { 609 deferred.resolve(result); 610 }, 611 function (exc) { 612 console.log('error while fetching data... (GetJSOMRequest)' + exc) 613 } 614 ); 615 return deferred.promise; 616 }; 617 618 // method used to get all available categories for faqs 619 this.getFAQCategories = function (listname,seriesTargetField) { 620 var deferred = $q.defer(); 621 var columns = "AKSFAQCategory," + seriesTargetField; 622 var conditions = ""; 623 var pageposition = ""; 624 var pagesize = ""; 625 626 GetJSOMRequest(listname, columns, conditions, pagesize, pageposition).then( 627 function (result) { 628 deferred.resolve(result); 629 }, 630 function (exc) { 631 console.log('error while fetching data... (getFAQCategories)' + exc) 632 } 633 ); 634 return deferred.promise; 635 }; 636 637 // mehtod used to get all available regions forcontacts 638 this.getContactRegionsAndStates = function (listname, stateTargetColumn, region, regionTargetColumn) { 639 var deferred = $q.defer(); 640 var columns = regionTargetColumn + "," + stateTargetColumn; 641 var conditions = ""; 642 if (region != "") 643 conditions = "<Query><OrderBy><FieldRef Name='AKSSortId' Ascending='TRUE'></FieldRef></OrderBy><Where><Contains><FieldRef Name='"+regionTargetColumn+"' /><Value Type='Text'>" + region + "</Value></Contains></Where></Query>" 644 else 645 conditions = "<Query><OrderBy><FieldRef Name='AKSSortId' Ascending='TRUE'></FieldRef></OrderBy></Query>"; 646 647 var pageposition = ""; 648 var pagesize = ""; 649 650 GetJSOMRequest(listname, columns, conditions, pagesize, pageposition).then( 651 function (result) { 652 deferred.resolve(result); 653 }, 654 function (exc) { 655 console.log('error while fetching data... (getContactRegionAndStates)' + exc) 656 } 657 ); 658 return deferred.promise; 659 }; 660 661 // method used to get all attached files from list items 662 // params: 663 // data : allFaqs withouts the attached files 664 this.loadFAQFiles = function (data) { 665 666 var deferred = $q.defer(); 667 var clientContext = SP.ClientContext.get_current(); 668 var web = clientContext.get_web(); 669 clientContext.load(web); 670 671 for (var i = 0; i < data.length; i++) { 672 clientContext.load(data[i].SPAttachments); 673 } 674 675 clientContext.executeQueryAsync( 676 Function.createDelegate(this, function () { 677 678 var clientContext = SP.ClientContext.get_current(); 679 680 for (var i = 0; i < data.length; i++) { 681 682 var cspattach = data[i].SPAttachments.getEnumerator(); 683 684 while (cspattach.moveNext()) { 685 var requestfile = web.getFileByServerRelativeUrl(cspattach.get_current().get_serverRelativeUrl()); 686 if (typeof (data[i].SPFiles) == 'undefined') 687 data[i].SPFiles = new Array(); 688 689 data[i].SPFiles.push(requestfile); 690 } 691 692 if (typeof (data[i].SPFiles) != 'undefined' && data[i].SPFiles.length > 0) { 693 data[i].DownloadAvailable = true; 694 for (var sy = 0 ; sy < data[i].SPFiles.length; sy++) { 695 clientContext.load(data[i].SPFiles[sy]); 696 } 697 } 698 else 699 data[i].DownloadAvailable = false; 700 } 701 702 clientContext.executeQueryAsync( 703 Function.createDelegate(this, function () { 704 for (var i = 0; i < data.length; i++) { 705 706 if (typeof (data[i].SPFiles) != 'undefined' && data[i].SPFiles.length > 0) { 707 708 for (var sx = 0 ; sx < data[i].SPFiles.length; sx++) { 709 710 if (typeof (data[i].Files) == 'undefined') 711 data[i].Files = new Array(); 712 713 var fileobj = new Object(); 714 var name = data[i].SPFiles[sx].get_name(); 715 716 fileobj.Name = name.substring(0, name.lastIndexOf('.'));
717 fileobj.Path = data[i].SPFiles[sx].get_serverRelativeUrl() 718 fileobj.Type = name.substring(name.lastIndexOf('.') + 1).toUpperCase(); 719 fileobj.Length = getFileLength(data[i].SPFiles[sx].get_length()); 720 data[i].Files.push(fileobj); 721 } 722 } 723 } 724 deferred.resolve(data); 725 }) 726 , Function.createDelegate(this, function (sender, args) { 727 deferred.reject('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace()); 728 }) 729 ); 730 return deferred.promise; 731 }), 732 Function.createDelegate(this, function (sender, args) { 733 deferred.reject('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace()); 734 }) 735 ); 736 return deferred.promise; 737 }; 738 739 // method used to get specific file length (kb, mb, ...) 740 // params: 741 // bytes : length of the file in bytes 742 function getFileLength(bytes) { 743 var result = bytes; 744 var count = 1; 745 var returnString = ""; 746 747 if (bytes < 1024) 748 return bytes.toFixed(2) + " B"; 749 750 while (result >= 1) { 751 752 result = result / 1024; 753 if (result > 1) { 754 if (count == 1) 755 returnString = result.toFixed(2) + " KB"; 756 if (count == 2) 757 returnString = result.toFixed(2) + " MB"; 758 if (count == 3) 759 returnString = result.toFixed(2) + " GB"; 760 if (count == 4) 761 returnString = result.toFixed(2) + " TB"; 762 } 763 764 count++; 765 } 766 767 return returnString; 768 }; 769 770});
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.