Permalink
Browse files

Merge branch 'release/1.2.12'

  • Loading branch information...
2 parents fb35e1d + 18d750e commit 813a5d4624019e4c26132a77f929d93855ae34ba @Gipetto Gipetto committed Dec 21, 2012
Showing with 321 additions and 2,128 deletions.
  1. +20 −1 CHANGELOG.markdown
  2. +2 −2 INSTALL.markdown
  3. +1 −1 OpenVBX/config/constants.php
  4. +1 −1 OpenVBX/config/version.php
  5. +1 −1 OpenVBX/controllers/flows.php
  6. +1 −1 OpenVBX/controllers/iframe.php
  7. +6 −8 OpenVBX/controllers/settings/site.php
  8. +4 −4 OpenVBX/helpers/applet_helper.php
  9. +2 −2 OpenVBX/helpers/format_helper.php
  10. +3 −2 OpenVBX/libraries/AppletInstance.php
  11. +1 −1 OpenVBX/libraries/AppletUI.php
  12. +1 −1 OpenVBX/libraries/AppletUI/AppletUIWidget.php
  13. +1 −1 OpenVBX/libraries/AppletUI/AudioSpeechPickerWidget.php
  14. +0 −6 OpenVBX/libraries/Caches/Local.php
  15. +0 −49 OpenVBX/libraries/Github/Api.php
  16. +0 −60 OpenVBX/libraries/Github/Api/Commit.php
  17. +0 −230 OpenVBX/libraries/Github/Api/Issue.php
  18. +0 −79 OpenVBX/libraries/Github/Api/Object.php
  19. +0 −119 OpenVBX/libraries/Github/Api/Organization.php
  20. +0 −90 OpenVBX/libraries/Github/Api/PullRequest.php
  21. +0 −400 OpenVBX/libraries/Github/Api/Repo.php
  22. +0 −198 OpenVBX/libraries/Github/Api/User.php
  23. +0 −5 OpenVBX/libraries/Github/ApiInterface.php
  24. +0 −34 OpenVBX/libraries/Github/Autoloader.php
  25. +0 −266 OpenVBX/libraries/Github/Client.php
  26. +0 −162 OpenVBX/libraries/Github/HttpClient.php
  27. +0 −97 OpenVBX/libraries/Github/HttpClient/Curl.php
  28. +0 −73 OpenVBX/libraries/Github/HttpClient/Exception.php
  29. +0 −44 OpenVBX/libraries/Github/HttpClientInterface.php
  30. +4 −1 OpenVBX/libraries/MY_Controller.php
  31. +1 −1 OpenVBX/libraries/Services/Twilio.php
  32. 0 OpenVBX/libraries/Services/Twilio/AutoPagingIterator.php
  33. 0 OpenVBX/libraries/Services/Twilio/Capability.php
  34. 0 OpenVBX/libraries/Services/Twilio/InstanceResource.php
  35. +20 −1 OpenVBX/libraries/Services/Twilio/ListResource.php
  36. 0 OpenVBX/libraries/Services/Twilio/Page.php
  37. 0 OpenVBX/libraries/Services/Twilio/PartialApplicationHelper.php
  38. 0 OpenVBX/libraries/Services/Twilio/RequestValidator.php
  39. +22 −2 OpenVBX/libraries/Services/Twilio/Resource.php
  40. +1 −0 OpenVBX/libraries/Services/Twilio/Rest/Account.php
  41. 0 OpenVBX/libraries/Services/Twilio/Rest/Accounts.php
  42. 0 OpenVBX/libraries/Services/Twilio/Rest/Application.php
  43. 0 OpenVBX/libraries/Services/Twilio/Rest/Applications.php
  44. 0 OpenVBX/libraries/Services/Twilio/Rest/AuthorizedConnectApp.php
  45. 0 OpenVBX/libraries/Services/Twilio/Rest/AuthorizedConnectApps.php
  46. 0 OpenVBX/libraries/Services/Twilio/Rest/AvailablePhoneNumber.php
  47. 0 OpenVBX/libraries/Services/Twilio/Rest/AvailablePhoneNumbers.php
  48. 0 OpenVBX/libraries/Services/Twilio/Rest/Call.php
  49. 0 OpenVBX/libraries/Services/Twilio/Rest/Calls.php
  50. 0 OpenVBX/libraries/Services/Twilio/Rest/Conference.php
  51. 0 OpenVBX/libraries/Services/Twilio/Rest/Conferences.php
  52. 0 OpenVBX/libraries/Services/Twilio/Rest/ConnectApp.php
  53. 0 OpenVBX/libraries/Services/Twilio/Rest/ConnectApps.php
  54. 0 OpenVBX/libraries/Services/Twilio/Rest/IncomingPhoneNumber.php
  55. +23 −2 OpenVBX/libraries/Services/Twilio/Rest/IncomingPhoneNumbers.php
  56. 0 OpenVBX/libraries/Services/Twilio/Rest/Member.php
  57. +6 −0 OpenVBX/libraries/Services/Twilio/Rest/Members.php
  58. 0 OpenVBX/libraries/Services/Twilio/Rest/Notification.php
  59. 0 OpenVBX/libraries/Services/Twilio/Rest/Notifications.php
  60. 0 OpenVBX/libraries/Services/Twilio/Rest/OutgoingCallerId.php
  61. 0 OpenVBX/libraries/Services/Twilio/Rest/OutgoingCallerIds.php
  62. 0 OpenVBX/libraries/Services/Twilio/Rest/Participant.php
  63. 0 OpenVBX/libraries/Services/Twilio/Rest/Participants.php
  64. 0 OpenVBX/libraries/Services/Twilio/Rest/Queue.php
  65. 0 OpenVBX/libraries/Services/Twilio/Rest/Queues.php
  66. 0 OpenVBX/libraries/Services/Twilio/Rest/Recording.php
  67. 0 OpenVBX/libraries/Services/Twilio/Rest/Recordings.php
  68. 0 OpenVBX/libraries/Services/Twilio/Rest/Sandbox.php
  69. 0 OpenVBX/libraries/Services/Twilio/Rest/ShortCode.php
  70. +5 −1 OpenVBX/libraries/Services/Twilio/Rest/ShortCodes.php
  71. 0 OpenVBX/libraries/Services/Twilio/Rest/SmsMessage.php
  72. 0 OpenVBX/libraries/Services/Twilio/Rest/SmsMessages.php
  73. 0 OpenVBX/libraries/Services/Twilio/Rest/Transcription.php
  74. 0 OpenVBX/libraries/Services/Twilio/Rest/Transcriptions.php
  75. 0 OpenVBX/libraries/Services/Twilio/Rest/UsageRecord.php
  76. 0 OpenVBX/libraries/Services/Twilio/Rest/UsageRecords.php
  77. 0 OpenVBX/libraries/Services/Twilio/Rest/UsageTrigger.php
  78. 0 OpenVBX/libraries/Services/Twilio/Rest/UsageTriggers.php
  79. 0 OpenVBX/libraries/Services/Twilio/RestException.php
  80. 0 OpenVBX/libraries/Services/Twilio/TimeRangeResource.php
  81. 0 OpenVBX/libraries/Services/Twilio/TinyHttp.php
  82. +5 −7 OpenVBX/libraries/Services/Twilio/Twiml.php
  83. 0 OpenVBX/libraries/Services/Twilio/UsageResource.php
  84. 0 OpenVBX/libraries/Services/cacert.pem
  85. +1 −1 OpenVBX/libraries/User_Controller.php
  86. +88 −0 OpenVBX/libraries/VBX_Github_Client.php
  87. +1 −1 OpenVBX/libraries/twilio.php
  88. +3 −68 OpenVBX/models/vbx_incoming_numbers.php
  89. +1 −25 OpenVBX/views/settings/site-system-config.php
  90. +2 −2 README.markdown
  91. +72 −72 assets/j/messages.js
  92. +7 −2 assets/j/pickers.js
  93. +6 −0 assets/j/plugins/buttonista.js
  94. +1 −0 assets/j/plugins/call-and-sms-dialogs.js
  95. +1 −1 openvbx.sql
  96. +1 −1 plugins/standard/applets/dial/ui.php
  97. +2 −2 updates/45.php
  98. +1 −0 updates/77.sql
  99. +2 −0 updates/78.sql
  100. +1 −0 updates/79.sql
View
@@ -1,5 +1,24 @@
# OpenVBX Change Log
+## Next
+
+- Fix cache table `value` field to be `mediumblob` instead of `text`. Fixes an issue where large lists of phone numbers (300+) would overflow the value field and corrupt the cached data.
+- Fix exception with latest versions of PHP when a default timezone is not set.
+- Fix Github API request for upgrade version check to use Github API V3.
+- Removing Sandbox number access. Sandbox numbers are no longer supported by Twilio.
+ - Also fixes an issue when loading phone number lists where looking for the pin attribute would cause a series of unecessary api calls.
+- Updating Twilio PHP library to fix issue with special characters in TwiML output.
+- Fix issue with double-encoded entities that manifested in flow editor. Use the `double_encode` flag in `htmlspecialchars` to protect against it happening.
+ - Minimum PHP version bumped to 5.2.3 to accommodate the double encode flag.
+
+
+## OpenVBX 1.2.11
+
+- Fix character counting on message detail page. Props to @walker.
+- Add focus to inputs on certain dialogs and pickers. Props to @walker.
+- Bump Twilio JS to 1.1 for WebRTC support.
+
+
## OpenVBX 1.2.10
- Fix improper exception pass through that would show the wrong error message to a user when updating settings.
@@ -295,4 +314,4 @@
- Fix for Error when changing the phone number on an existing user
- Added restriction for OpenVBX iphone app to 0.90
- Fix for user password reset in OpenVBX
-- For for problem with URLs containing double slashes in url generator
+- For for problem with URLs containing double slashes in url generator
View
@@ -9,7 +9,7 @@ Installing OpenVBX is quick and easy, just follow this five step guide to get up
* Web Server
* MySQL 5+
-* PHP 5.2+
+* PHP 5.2.3+
* [Twilio Account](https://www.twilio.com/try-twilio)
@@ -87,7 +87,7 @@ This page provides detailed information for each step of the OpenVBX install pro
OpenVBX requires the software listed below. It is all available for free and is open source. OpenVBX is supported and should run on all major linux distributions. OpenVBX may run on other platforms (namely Windows) but is currently unsupported.
-1. **PHP version:** We recommend PHP 5.2 or higher
+1. **PHP version:** We recommend PHP 5.2.3 or higher
1. **CURL support:** OpenVBX requires CURL. If you don't meet this requirement, install the CURL module.
1. **Apache version:** We recommend Apache version 2.2+. Earlier versions and other web servers may work, but are currently unsupported.
1. **MySQL support:** We require MySQL version 5+.
@@ -1,6 +1,6 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
-define('MIN_PHP_VERSION', '5.2');
+define('MIN_PHP_VERSION', '5.2.3');
/*
|--------------------------------------------------------------------------
@@ -1,3 +1,3 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
-$config['version'] = '1.2.10';
+$config['version'] = '1.2.12';
@@ -277,7 +277,7 @@ private function flow_editor($id = 0, $type = 'voice')
{
$flow_data = get_object_vars($flow_obj);
}
-
+
// add start instance if it's not there
if(!isset($flow_data['start']))
{
@@ -42,7 +42,7 @@ function index() {
'site_title' => 'OpenVBX',
'iframe_url' => site_url('/messages'),
'users' => $this->get_users(),
- 'twilio_js' => $this->twilio_js_baseurl.'/libs/twiliojs/1.0/'.$this->twilio_js_file,
+ 'twilio_js' => $this->twilio_js_baseurl.'/libs/twiliojs/1.1/'.$this->twilio_js_file,
'client_capability' => null
));
@@ -772,21 +772,19 @@ public function get_latest_tag()
}
try {
- include_once(APPPATH.'libraries/Github/Autoloader.php');
- Github_Autoloader::register();
-
- $gh = new Github_Client;
- $tags = $gh->getRepoApi()->getRepoTags('twilio', 'openvbx');
-
+ include_once(APPPATH . 'libraries/VBX_Github_Client.php');
+ $gh = new VBX_Github_Client;
+ $tags = $gh->getTags();
+
$latest = false;
-
+
if (is_array($tags) && count($tags) > 0)
{
$list = array_keys($tags);
usort($list, array($this, 'version_sort'));
$latest = array_pop($list);
}
-
+
$this->api_cache->set('latest_version', $latest, 'Site', $this->tenant->id);
}
catch (Exception $e) {
@@ -46,17 +46,17 @@ function applet_dropdown($name = '', $options = array(), $selected = array(), $e
{
$key = (string) $key;
- $key = htmlspecialchars($key);
- $val = htmlspecialchars($val);
+ $key = htmlspecialchars($key, ENT_COMPAT, 'UTF-8', false);
+ $val = htmlspecialchars($val, ENT_COMPAT, 'UTF-8', false);
if (is_array($val))
{
$form .= '<optgroup label="'.$key.'">'."\n";
foreach ($val as $optgroup_key => $optgroup_val)
{
- $optgroup_key = htmlspecialchars($optgroup_key);
- $optgroup_val = htmlspecialchars($optgroup_val);
+ $optgroup_key = htmlspecialchars($optgroup_key, ENT_COMPAT, 'UTF-8', false);
+ $optgroup_val = htmlspecialchars($optgroup_val, ENT_COMPAT, 'UTF-8', false);
$sel = (in_array($optgroup_key, $selected)) ? ' selected="selected"' : '';
@@ -233,7 +233,7 @@ function html($data)
{
if(is_string($data))
{
- return htmlspecialchars($data);
+ return htmlspecialchars($data, ENT_COMPAT, 'UTF-8', false);
}
if(is_array($data))
@@ -242,7 +242,7 @@ function html($data)
{
if(is_string($val))
{
- $data[$key] = htmlspecialchars($val);
+ $data[$key] = htmlspecialchars($val, ENT_COMPAT, 'UTF-8', false);
}
else if(is_array($val))
{
@@ -109,11 +109,12 @@ public static function getValue($name, $default = '')
if(is_null($list))
{
- return html($default);
+ return $default;
}
- return html($list);
+ return $list;
}
+
return isset(self::$instance->$name)? self::$instance->$name : $default;
}
public static function getDropZoneValue($name = 'dropZone')
@@ -60,7 +60,7 @@ public static function audioSpeechPicker($name = 'audioSpeechPicker')
else if (!empty($value))
{
$mode = 'say';
- $say = htmlspecialchars($value);
+ $say = $value;
}
$widget = new AudioSpeechPickerWidget($name, $mode, $say, $play);
@@ -55,7 +55,7 @@ private function escape($data)
{
if(is_string($data))
{
- return htmlspecialchars($data);
+ return htmlspecialchars($data, ENT_COMPAT, 'UTF-8', false);
}
else if(is_array($data))
{
@@ -87,7 +87,7 @@ public function render($data = array())
$ci->load->model('vbx_incoming_numbers');
try
{
- $numbers = $ci->vbx_incoming_numbers->get_numbers(false);
+ $numbers = $ci->vbx_incoming_numbers->get_numbers();
foreach ($numbers as $number)
{
// find the first number that has voice enabled
@@ -12,12 +12,6 @@ public function __construct($options) {
}
public function __destruct() {}
-
- public function _keyname($group)
- {
- // mash up the group with the group's generation
-
- }
public function _set($key, $data, $group, $tenant_id, $expires = null)
{
@@ -1,49 +0,0 @@
-<?php
-
-/**
- * Abstract class for Github_Api classes
- *
- * @author Thibault Duplessis <thibault.duplessis at gmail dot com>
- * @license MIT License
- */
-abstract class Github_Api implements Github_ApiInterface
-{
- /**
- * The client
- * @var Github_Client
- */
- private $client;
-
- public function __construct(Github_Client $client)
- {
- $this->client = $client;
- }
-
- /**
- * Call any path, GET method
- * Ex: $api->get('repos/show/my-username/my-repo')
- *
- * @param string $path the GitHub path
- * @param array $parameters GET parameters
- * @param array $requestOptions reconfigure the request
- * @return array data returned
- */
- protected function get($path, array $parameters = array(), $requestOptions = array())
- {
- return $this->client->get($path, $parameters, $requestOptions);
- }
-
- /**
- * Call any path, POST method
- * Ex: $api->post('repos/show/my-username', array('email' => 'my-new-email@provider.org'))
- *
- * @param string $path the GitHub path
- * @param array $parameters POST parameters
- * @param array $requestOptions reconfigure the request
- * @return array data returned
- */
- protected function post($path, array $parameters = array(), $requestOptions = array())
- {
- return $this->client->post($path, $parameters, $requestOptions);
- }
-}
@@ -1,60 +0,0 @@
-<?php
-
-/**
- * Getting information on specific commits,
- * the diffs they introduce, the files they've changed.
- *
- * @link http://develop.github.com/p/commits.html
- * @author Thibault Duplessis <thibault.duplessis at gmail dot com>
- * @license MIT License
- */
-class Github_Api_Commit extends Github_Api
-{
- /**
- * List commits by username, repo and branch
- * http://develop.github.com/p/commits.html#listing_commits_on_a_branch
- *
- * @param string $username the username
- * @param string $repo the repo
- * @param string $branch the branch
- * @return array list of users found
- */
- public function getBranchCommits($username, $repo, $branch)
- {
- $response = $this->get('commits/list/'.urlencode($username).'/'.urlencode($repo).'/'.urlencode($branch));
-
- return $response['commits'];
- }
-
- /**
- * List commits by username, repo, branch and path
- * http://develop.github.com/p/commits.html#listing_commits_for_a_file
- *
- * @param string $username the username
- * @param string $repo the repo
- * @param string $branch the branch
- * @param string $path the path
- * @return array list of users found
- */
- public function getFileCommits($username, $repo, $branch, $path)
- {
- $response = $this->get('commits/list/'.urlencode($username).'/'.urlencode($repo).'/'.urlencode($branch).'/'.urlencode($path));
-
- return $response['commits'];
- }
-
- /**
- * Show a specific commit
- * http://develop.github.com/p/commits.html#showing_a_specific_commit
- *
- * @param string $username the username
- * @param string $repo the repo
- * @param string $sha the commit sha
- */
- public function getCommit($username, $repo, $sha)
- {
- $response = $this->get('commits/show/'.urlencode($username).'/'.urlencode($repo).'/'.urlencode($sha));
-
- return $response['commit'];
- }
-}
Oops, something went wrong.

0 comments on commit 813a5d4

Please sign in to comment.