Loading appinfo/database.xml +60 −0 Original line number Diff line number Diff line Loading @@ -275,6 +275,66 @@ </index> </declaration> </table> <table> <name>*dbprefix*esms_selected_sim</name> <declaration> <field> <name>user_id</name> <type>text</type> <notnull>true</notnull> <length>64</length> </field> <field> <name>address</name> <type>text</type> <notnull>true</notnull> <default></default> <length>15</length> </field> <field> <name>auto</name> <type>integer</type> <notnull>true</notnull> <default>1</default> <length>2</length> </field> <field> <name>card_number</name> <type>text</type> <notnull>true</notnull> <default></default> <length>15</length> </field> <field> <name>card_slot</name> <type>integer</type> <notnull>true</notnull> <default>-1</default> <length>2</length> </field> <field> <name>icc_id</name> <type>text</type> <notnull>true</notnull> <default></default> <length>20</length> </field> <field> <name>device_name</name> <type>text</type> <notnull>true</notnull> <default></default> <length>20</length> </field> <field> <name>carrier_name</name> <type>text</type> <notnull>true</notnull> <default></default> <length>20</length> </field> </declaration> </table> <table> <name>*dbprefix*esms_config</name> <declaration> Loading appinfo/routes.php +4 −0 Original line number Diff line number Diff line Loading @@ -50,5 +50,9 @@ $application->registerRoutes($this, array('routes' => array( // @TODO future calls to sending calls recorded on the phone array('name' => 'api#fetch_messages_to_send', 'url' => '/api/v4/messages/sendqueue', 'verb' => 'GET'), // Android APIv4 array('name' => 'api#delete_message', 'url' => '/api/v4/messages/delete_message', 'verb' => 'DELETE'), // Android APIv4 array('name' => 'sms#set_selected_sim_card', 'url' => '/front-api/v4/messages/selected_sim_card', 'verb' => 'POST'), // Frontend APIv4 array('name' => 'sms#get_selected_sim_card', 'url' => '/front-api/v4/messages/selected_sim_card', 'verb' => 'GET'), // Frontend APIv4 ))); controller/smscontroller.php +23 −0 Original line number Diff line number Diff line Loading @@ -301,6 +301,29 @@ class SmsController extends Controller { return new JSONResponse(array("status" => "ok")); } /** * @NoAdminRequired * @NoCSRFRequired * @param $messageId * @param $phoneNumber * @return JSONResponse */ public function setSelectedSimCard ($phoneNumber, $auto, $cardNumber, $cardSlot, $iccId, $deviceName, $carrierName) { echo isset($cardNumber)?"true":"false"; $this->smsMapper->setSelectedSimCardForConversation($this->userId, $phoneNumber, $auto, $cardNumber, $cardSlot, $iccId, $deviceName, $carrierName); return new JSONResponse(array("status" => "ok")); } /** * @NoAdminRequired * @NoCSRFRequired * @param $messageId * @param $phoneNumber * @return JSONResponse */ public function getSelectedSimCard ($phoneNumber) { return new JSONResponse($this->smsMapper->getSelectedSimCardForConversation($this->userId, $phoneNumber)); } /** * @NoAdminRequired * @NoCSRFRequired Loading css/style.css +10 −0 Original line number Diff line number Diff line Loading @@ -419,3 +419,13 @@ Modal height: 25px; margin-bottom: 5px; } #esms-sim-ok-button{ padding-left:20px; padding-right:20px; float:right; } .esms-button{ cursor: pointer; } No newline at end of file db/smsmapper.php +51 −0 Original line number Diff line number Diff line Loading @@ -145,6 +145,57 @@ class SmsMapper extends Mapper { return array(); } public function getSelectedSimCardForConversation ($userId, $phoneNumber) { $qb = $this->db->getQueryBuilder(); $qb->select('auto','card_number', 'card_slot', 'icc_id', 'device_name', 'carrier_name') ->from('esms_selected_sim') ->where($qb->expr()->andX( $qb->expr()->eq('user_id', $qb->createNamedParameter($userId)), $qb->expr()->eq('address', $qb->createNamedParameter($phoneNumber)), ) ); $result = $qb->execute(); $simCard = array(); while ($row = $result->fetch()) { if($row['auto'] == 1){ return array(); } $simCard = array( "card_number" => $row["card_number"], "card_slot" => $row["card_slot"], "icc_id" => $row["icc_id"], "device_name" => $row["device_name"], "carrier_name" => $row["carrier_name"], ); } return $simCard; } public function setSelectedSimCardForConversation ($userId, $phoneNumber, $auto, $cardNumber, $cardSlot, $iccId, $deviceName, $carrierName) { $qb = $this->db->getQueryBuilder(); $qb->delete('esms_selected_sim') ->where($qb->expr()->andX( $qb->expr()->eq('user_id', $qb->createNamedParameter($userId)), $qb->expr()->eq('address', $qb->createNamedParameter($phoneNumber)), ) )->execute(); $qb->insert('esms_selected_sim') ->values(array( 'user_id' => $qb->createNamedParameter($userId), 'auto' => $qb->createNamedParameter((int) $auto), 'card_number' => $qb->createNamedParameter($cardNumber), 'card_slot' => $qb->createNamedParameter((int) $cardSlot), 'icc_id' => $qb->createNamedParameter($iccId), 'device_name' => $qb->createNamedParameter($deviceName), 'carrier_name' => $qb->createNamedParameter($carrierName), 'address' => $qb->createNamedParameter($phoneNumber), )); $qb->execute(); return $simCard; } public function getAllMessagesForPhoneNumber ($userId, $phoneNumber, $country, $minDate = 0) { $phlst = $this->getAllPhoneNumbersForFPN($userId, $phoneNumber, $country); Loading Loading
appinfo/database.xml +60 −0 Original line number Diff line number Diff line Loading @@ -275,6 +275,66 @@ </index> </declaration> </table> <table> <name>*dbprefix*esms_selected_sim</name> <declaration> <field> <name>user_id</name> <type>text</type> <notnull>true</notnull> <length>64</length> </field> <field> <name>address</name> <type>text</type> <notnull>true</notnull> <default></default> <length>15</length> </field> <field> <name>auto</name> <type>integer</type> <notnull>true</notnull> <default>1</default> <length>2</length> </field> <field> <name>card_number</name> <type>text</type> <notnull>true</notnull> <default></default> <length>15</length> </field> <field> <name>card_slot</name> <type>integer</type> <notnull>true</notnull> <default>-1</default> <length>2</length> </field> <field> <name>icc_id</name> <type>text</type> <notnull>true</notnull> <default></default> <length>20</length> </field> <field> <name>device_name</name> <type>text</type> <notnull>true</notnull> <default></default> <length>20</length> </field> <field> <name>carrier_name</name> <type>text</type> <notnull>true</notnull> <default></default> <length>20</length> </field> </declaration> </table> <table> <name>*dbprefix*esms_config</name> <declaration> Loading
appinfo/routes.php +4 −0 Original line number Diff line number Diff line Loading @@ -50,5 +50,9 @@ $application->registerRoutes($this, array('routes' => array( // @TODO future calls to sending calls recorded on the phone array('name' => 'api#fetch_messages_to_send', 'url' => '/api/v4/messages/sendqueue', 'verb' => 'GET'), // Android APIv4 array('name' => 'api#delete_message', 'url' => '/api/v4/messages/delete_message', 'verb' => 'DELETE'), // Android APIv4 array('name' => 'sms#set_selected_sim_card', 'url' => '/front-api/v4/messages/selected_sim_card', 'verb' => 'POST'), // Frontend APIv4 array('name' => 'sms#get_selected_sim_card', 'url' => '/front-api/v4/messages/selected_sim_card', 'verb' => 'GET'), // Frontend APIv4 )));
controller/smscontroller.php +23 −0 Original line number Diff line number Diff line Loading @@ -301,6 +301,29 @@ class SmsController extends Controller { return new JSONResponse(array("status" => "ok")); } /** * @NoAdminRequired * @NoCSRFRequired * @param $messageId * @param $phoneNumber * @return JSONResponse */ public function setSelectedSimCard ($phoneNumber, $auto, $cardNumber, $cardSlot, $iccId, $deviceName, $carrierName) { echo isset($cardNumber)?"true":"false"; $this->smsMapper->setSelectedSimCardForConversation($this->userId, $phoneNumber, $auto, $cardNumber, $cardSlot, $iccId, $deviceName, $carrierName); return new JSONResponse(array("status" => "ok")); } /** * @NoAdminRequired * @NoCSRFRequired * @param $messageId * @param $phoneNumber * @return JSONResponse */ public function getSelectedSimCard ($phoneNumber) { return new JSONResponse($this->smsMapper->getSelectedSimCardForConversation($this->userId, $phoneNumber)); } /** * @NoAdminRequired * @NoCSRFRequired Loading
css/style.css +10 −0 Original line number Diff line number Diff line Loading @@ -419,3 +419,13 @@ Modal height: 25px; margin-bottom: 5px; } #esms-sim-ok-button{ padding-left:20px; padding-right:20px; float:right; } .esms-button{ cursor: pointer; } No newline at end of file
db/smsmapper.php +51 −0 Original line number Diff line number Diff line Loading @@ -145,6 +145,57 @@ class SmsMapper extends Mapper { return array(); } public function getSelectedSimCardForConversation ($userId, $phoneNumber) { $qb = $this->db->getQueryBuilder(); $qb->select('auto','card_number', 'card_slot', 'icc_id', 'device_name', 'carrier_name') ->from('esms_selected_sim') ->where($qb->expr()->andX( $qb->expr()->eq('user_id', $qb->createNamedParameter($userId)), $qb->expr()->eq('address', $qb->createNamedParameter($phoneNumber)), ) ); $result = $qb->execute(); $simCard = array(); while ($row = $result->fetch()) { if($row['auto'] == 1){ return array(); } $simCard = array( "card_number" => $row["card_number"], "card_slot" => $row["card_slot"], "icc_id" => $row["icc_id"], "device_name" => $row["device_name"], "carrier_name" => $row["carrier_name"], ); } return $simCard; } public function setSelectedSimCardForConversation ($userId, $phoneNumber, $auto, $cardNumber, $cardSlot, $iccId, $deviceName, $carrierName) { $qb = $this->db->getQueryBuilder(); $qb->delete('esms_selected_sim') ->where($qb->expr()->andX( $qb->expr()->eq('user_id', $qb->createNamedParameter($userId)), $qb->expr()->eq('address', $qb->createNamedParameter($phoneNumber)), ) )->execute(); $qb->insert('esms_selected_sim') ->values(array( 'user_id' => $qb->createNamedParameter($userId), 'auto' => $qb->createNamedParameter((int) $auto), 'card_number' => $qb->createNamedParameter($cardNumber), 'card_slot' => $qb->createNamedParameter((int) $cardSlot), 'icc_id' => $qb->createNamedParameter($iccId), 'device_name' => $qb->createNamedParameter($deviceName), 'carrier_name' => $qb->createNamedParameter($carrierName), 'address' => $qb->createNamedParameter($phoneNumber), )); $qb->execute(); return $simCard; } public function getAllMessagesForPhoneNumber ($userId, $phoneNumber, $country, $minDate = 0) { $phlst = $this->getAllPhoneNumbersForFPN($userId, $phoneNumber, $country); Loading