public function testGetRecordIds() { $_GET['Contacts'] = array('firstName' => 't', 'assignedTo' => 'Chris'); $_GET['Contacts_sort'] = 'id.desc'; $contact = new Contacts('search'); $dataProvider = $contact->search(PHP_INT_MAX); $dataProvider->calculateChecksum = true; $data = $dataProvider->getData(); $this->assertNotEquals(0, count($data)); $ids = array(); foreach ($data as $model) { $ids[] = $model->id; } $this->assertEquals($dataProvider->getRecordIds(), $ids); $contact = new Contacts('search'); // lower page size so that record count is incorrect $dataProvider = $contact->search(10); $dataProvider->calculateChecksum = true; $data = $dataProvider->getData(); $this->assertNotEquals(0, count($data)); $ids = array(); foreach ($data as $model) { $ids[] = $model->id; } $this->assertNotEquals($dataProvider->getRecordIds(), $ids); // ensure that default ordering gets applied in both cases (SmartActiveDataProvider applies // default id DESC ordering if /\bid\b/ isn't found in sort order) $_GET['Contacts'] = array('firstName' => 't', 'assignedTo' => 'Chris'); $_GET['Contacts_sort'] = 'dupeCheck.desc'; $contact = new Contacts('search'); $dataProvider = $contact->search(PHP_INT_MAX); $dataProvider->calculateChecksum = true; $data = $dataProvider->getData(); $this->assertNotEquals(0, count($data)); $ids = array(); foreach ($data as $model) { $ids[] = $model->id; } $this->assertEquals($dataProvider->getRecordIds(), $ids); // more filters, different sort order $_GET['Contacts'] = array('firstName' => 't', 'lastName' => '<>t', 'assignedTo' => 'Chloe', 'rating' => '<4'); $_GET['Contacts_sort'] = 'rating.desc'; $contact = new Contacts('search'); $dataProvider = $contact->search(PHP_INT_MAX); $dataProvider->calculateChecksum = true; $data = $dataProvider->getData(); $this->assertNotEquals(0, count($data)); $ids = array(); foreach ($data as $model) { $ids[] = $model->id; } $this->assertEquals($dataProvider->getRecordIds(), $ids); }
public function actionIndex() { $this->pageTitle = Yii::app()->name . '-' . "业务联系人管理"; $model = new Contacts(); if (isset($_GET)) { $model->Name = $_GET['name']; $model->Phone = $_GET['phone']; } $dataProvider = $model->search(); // $pages=$dataProvider->getPagination(); $data = array('dataProvider' => $dataProvider, 'organ' => $organ); $this->render('list', $data); }
<?php /** * ownCloud - ownpad_lite plugin * * @author Victor Dubiniuk * @copyright 2013 Victor Dubiniuk victor.dubiniuk@gmail.com * * This file is licensed under the Affero General Public License version 3 or * later. */ namespace OCA\ownpad_lite; \OCP\JSON::checkLoggedIn(); \OCP\JSON::callCheck(); $search = UrlParam::post(UrlParam::SHARE_SEARCH); \OCP\JSON::success(array('data' => Contacts::search($search))); exit;
/** * Ensure that sort order and filters in GET params get saved to session correctly */ public function testSessionSettings() { $_SESSION = array(); $_GET['Contacts'] = array('firstName' => 'test', 'lastName' => 'test', 'email' => '*****@*****.**'); $_GET["Contacts_sort"] = 'firstName'; $contact = new Contacts('search'); X2_TEST_DEBUG_LEVEL > 1 && print_r($contact->getAttributes()); $dataProvider = $contact->search(); X2_TEST_DEBUG_LEVEL > 1 && print_r($_SESSION); $sort = $contact->asa('ERememberFiltersBehavior')->getSetting('sort'); $filters = $contact->asa('ERememberFiltersBehavior')->getSetting('filters'); $this->assertEquals($filters, $_GET['Contacts']); $this->assertEquals($sort, $_GET['Contacts_sort']); }