Skip to content

Commit

Permalink
Merge branch 'development' into Issue_470_export_resources_bug
Browse files Browse the repository at this point in the history
  • Loading branch information
veggiematts authored Nov 30, 2018
2 parents fce6e66 + f41517c commit 21fec80
Show file tree
Hide file tree
Showing 57 changed files with 2,097 additions and 180 deletions.
5 changes: 3 additions & 2 deletions licensing/admin/classes/domain/License.php
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ public function asArray() {
$exprcount++;
}
}
$doccount++;
$doccount++;
}
return $larray;
}
Expand Down Expand Up @@ -102,7 +102,8 @@ public function getResourceArray() {
$resArray = array();

//first, get the resource name
$query = "SELECT resourceID, titleText FROM " . $dbName . ".Resource WHERE resourceID = " . $row['resourceID'];
$query = "SELECT r.resourceID, r.titleText FROM " . $dbName . ".ResourceAcquisition ra
LEFT JOIN " . $dbName . ".Resource r ON r.resourceID=ra.resourceID WHERE ra.resourceAcquisitionID = " . $row['resourceAcquisitionID'];

$resResult = mysqli_query($this->db->getDatabase(), $query);
while($resRow = mysqli_fetch_assoc($resResult)) {
Expand Down
38 changes: 16 additions & 22 deletions licensing/calendar.php
Original file line number Diff line number Diff line change
Expand Up @@ -49,17 +49,10 @@
echo "<span style='color:red'>"._("There was an error with the CalendarSettings Table please verify the table has been created.")."</span>";
exit;
}
// Check for earlier version of Resource Module. With update of 1.3 the table definition changed.
$query = "Select subscriptionStartDate from `$resource_databaseName`.`Resource`";
$result = mysqli_query($link, $query);
if ($result) {
// Previous tabel definition before Resources version 1.3
$startDateName = "subscriptionStartDate";
$endDateName = "subscriptionEndDate";
} else {
$startDateName = "currentStartDate";
$endDateName = "currentEndDate";
}

$startDateName = "subscriptionStartDate";
$endDateName = "subscriptionEndDate";

foreach($calendarSettingsArray as $display) {
$config_error = TRUE;
if (strtolower($display['shortName']) == strtolower('Days After Subscription End')) {
Expand Down Expand Up @@ -92,27 +85,28 @@
}

$query = "
SELECT DATE_FORMAT(`$resource_databaseName`.`Resource`.`$endDateName`, '%Y') AS `year`,
DATE_FORMAT(`$resource_databaseName`.`Resource`.`$endDateName`, '%M') AS `month`,
DATE_FORMAT(`$resource_databaseName`.`Resource`.`$endDateName`, '%y-%m-%d') AS `sortdate`,
DATE_FORMAT(`$resource_databaseName`.`Resource`.`$endDateName`, '%m/%d/%Y') AS `$endDateName`,
`$resource_databaseName`.`Resource`.`resourceID`, `$resource_databaseName`.`Resource`.`titleText`,
SELECT DATE_FORMAT(`$resource_databaseName`.`ResourceAcquisition`.`$endDateName`, '%Y') AS `year`,
DATE_FORMAT(`$resource_databaseName`.`ResourceAcquisition`.`$endDateName`, '%M') AS `month`,
DATE_FORMAT(`$resource_databaseName`.`ResourceAcquisition`.`$endDateName`, '%y-%m-%d') AS `sortdate`,
DATE_FORMAT(`$resource_databaseName`.`ResourceAcquisition`.`$endDateName`, '%m/%d/%Y') AS `$endDateName`,
`$resource_databaseName`.`ResourceAcquisition`.`resourceID`, `$resource_databaseName`.`Resource`.`titleText`,
`$license_databaseName`.`License`.`shortName`,
`$license_databaseName`.`License`.`licenseID`, `$resource_databaseName`.`ResourceType`.`shortName` AS resourceTypeName, `$resource_databaseName`.`ResourceType`.`resourceTypeID`
FROM `$resource_databaseName`.`Resource`
LEFT JOIN `$resource_databaseName`.`ResourceLicenseLink` ON (`$resource_databaseName`.`Resource`.`resourceID` = `$resource_databaseName`.`ResourceLicenseLink`.`resourceID`)
LEFT JOIN `$resource_databaseName`.`ResourceAcquisition` ON (`$resource_databaseName`.`Resource`.`resourceID` = `$resource_databaseName`.`ResourceAcquisition`.`resourceID`)
LEFT JOIN `$resource_databaseName`.`ResourceLicenseLink` ON (`$resource_databaseName`.`ResourceAcquisition`.`resourceAcquisitionID` = `$resource_databaseName`.`ResourceLicenseLink`.`resourceAcquisitionID`)
LEFT JOIN `$license_databaseName`.`License` ON (`ResourceLicenseLink`.`licenseID` = `$license_databaseName`.`License`.`licenseID`)
INNER JOIN `$resource_databaseName`.`ResourceType` ON (`$resource_databaseName`.`Resource`.`resourceTypeID` = `$resource_databaseName`.`ResourceType`.`resourceTypeID`)
WHERE
`$resource_databaseName`.`Resource`.`archiveDate` IS NULL AND
`$resource_databaseName`.`Resource`.`$endDateName` IS NOT NULL AND
`$resource_databaseName`.`Resource`.`$endDateName` <> '00/00/0000' AND
`$resource_databaseName`.`Resource`.`$endDateName` BETWEEN (CURDATE() - INTERVAL " . $daybefore . " DAY) AND (CURDATE() + INTERVAL " . $dayafter . " DAY) ";
`$resource_databaseName`.`ResourceAcquisition`.`$endDateName` IS NOT NULL AND
`$resource_databaseName`.`ResourceAcquisition`.`$endDateName` <> '00/00/0000' AND
`$resource_databaseName`.`ResourceAcquisition`.`$endDateName` BETWEEN (CURDATE() - INTERVAL " . $daybefore . " DAY) AND (CURDATE() + INTERVAL " . $dayafter . " DAY) ";
if ($resourceType) {
$query = $query . " AND `$resource_databaseName`.`Resource`.`resourceTypeID` IN ( ". $resourceType . " ) ";
}
$query = $query . "ORDER BY `sortdate`, `$resource_databaseName`.`Resource`.`titleText`";
$result = mysqli_query($link, $query) or die(_("Bad Query Failure"));
$result = mysqli_query($link, $query) or die(_("Bad Query Failure: ".mysqli_error($link)));
?>

<div style='text-align:left;'>
Expand Down Expand Up @@ -144,7 +138,7 @@
`$resource_databaseName`.`AuthorizedSite`.`authorizedSiteID`
FROM
`$resource_databaseName`.`Resource`
INNER JOIN `$resource_databaseName`.`ResourceAuthorizedSiteLink` ON (`$resource_databaseName`.`Resource`.`resourceID` = `$resource_databaseName`.`ResourceAuthorizedSiteLink`.`resourceID`)
INNER JOIN `$resource_databaseName`.`ResourceAuthorizedSiteLink` ON (`$resource_databaseName`.`Resource`.`resourceID` = `$resource_databaseName`.`ResourceAuthorizedSiteLink`.`resourceAcquisitionID`)
INNER JOIN `$resource_databaseName`.`AuthorizedSite` ON (`$resource_databaseName`.`ResourceAuthorizedSiteLink`.`authorizedSiteID` = `$resource_databaseName`.`AuthorizedSite`.`authorizedSiteID`)
WHERE
`$resource_databaseName`.`Resource`.`resourceID` = " . $row["resourceID"] .
Expand Down
32 changes: 18 additions & 14 deletions organizations/admin/classes/api_client/KohaClient.php
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ private function authenticate($headers = array()) {
$oauth = new OAuth();
$token = $oauth->getToken();
if ($token) {
$headers['Authorization: Bearer '] = $token;
$headers['Authorization'] = 'Bearer ' . $token->getToken();
}
}
return $headers;
Expand Down Expand Up @@ -73,26 +73,17 @@ function getVendorByName($name) {
return $this->_vendorToCoral((array) $response->body);
}

/**
* Gets a vendor from the ILS
* @param name of the vendor in the ils
* @return key-value array with vendor description
*/
function getVendorByExactName($name) {
$headers = $this->authenticate();
$response = Unirest\Request::get($this->api . "/acquisitions/vendors/?exactname=$name", $headers);
return $this->_vendorToCoral((array) $response->body);
}

/**
* Does a vendor exist in the ILS?
* @param name of the vendor in the ils
* @return boolean
*/
function vendorExists($name) {
$headers = $this->authenticate();
$response = Unirest\Request::get($this->api . "/acquisitions/vendors/?exactname=$name");
return (count((array) $response->body) > 0) ? true : false;
$response = Unirest\Request::get($this->api . "/acquisitions/vendors/?name=$name", $headers);
$error = $this->_checkForError($response);
if ($error) return $error;
return (count((array) $response->body) > 0) ? 1 : 0;
}

/**
Expand All @@ -119,6 +110,19 @@ function getVendorURL() {
return $this->server . "/cgi-bin/koha/acqui/supplier.pl?booksellerid=";
}


/**
* Checks if a response is an error
* @return the error if it exists, or null is there is no error
*/
function _checkForError($response) {
$body = (array) $response->body;
if (array_key_exists("error", $body)) {
return $body['error'];
}
return null;
}

/**
* Changes the keys of a vendor array from Koha keys to Coral keys
*/
Expand Down
35 changes: 24 additions & 11 deletions organizations/admin/classes/api_client/OAuth.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,17 +20,30 @@ function getToken() {
'urlAccessToken' => $this->tokenURL,
'urlResourceOwnerDetails' => ''
]);
try {

// Try to get an access token using the client credentials grant.
$accessToken = $provider->getAccessToken('client_credentials');

} catch (\League\OAuth2\Client\Provider\Exception\IdentityProviderException $e) {

// Failed to get the access token
exit($e->getMessage());

}
if (!array_key_exists("oauthToken", $_SESSION)) {
try {

// Try to get an access token using the client credentials grant.
$accessToken = $provider->getAccessToken('client_credentials');

} catch (\League\OAuth2\Client\Provider\Exception\IdentityProviderException $e) {

// Failed to get the access token
exit($e->getMessage());

}
} else {
$existingAccessToken = unserialize($_SESSION['oauthToken']);
if ($existingAccessToken->hasExpired()) {
$newAccessToken = $provider->getAccessToken('refresh_token', [
'refresh_token' => $existingAccessToken->getRefreshToken()
]);
$accessToken = $newAccessToken;
} else {
$accessToken = $existingAccessToken;
}
}
$_SESSION['oauthToken'] = serialize($accessToken);
return $accessToken;
}

Expand Down
1 change: 0 additions & 1 deletion organizations/admin/interfaces/ILSClient.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ interface ILSClient {
function addVendor($vendor);
function getVendor($id);
function getVendorByName($name);
function getVendorByExactName($name);
function vendorExists($name);
function getILSName();
function getILSURL();
Expand Down
8 changes: 2 additions & 6 deletions organizations/ajax_processing.php
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,6 @@
"companyURL" => $organization->companyURL,
"noteText" => $organization->noteText,
"accountDetailText" => $organization->accountDetailText,
"coralID" => (int) $organization->organizationID,
)
);
if ($ilsID) {
Expand Down Expand Up @@ -573,13 +572,10 @@
$exists = -1;
if ($config->ils->ilsConnector) {
$ilsClient = (new ILSClientSelector())->select();
if ($name && $ilsClient->vendorExists($name)) {
$exists = 1;
} else {
$exists = 0;
if ($name) {
echo $ilsClient->vendorExists($name);
}
}
echo $exists;
break;

default:
Expand Down
4 changes: 3 additions & 1 deletion organizations/js/forms/organizationSubmitForm.js
Original file line number Diff line number Diff line change
Expand Up @@ -72,9 +72,11 @@ $(function(){
$("#ils_span").html(_("This vendor does not exist in the ILS."));
$("#retrieveVendor").hide();
$("#submitOrganizationChanges").removeAttr("disabled");
}else{
} else if (exists == 1) {
$("#ils_span").html(_("This vendor exists in the ILS."));
$("#retrieveVendor").show();
}else {
$("#ils_span").html(_("Something went wrong: ") + exists);
}
}
});
Expand Down
1 change: 1 addition & 0 deletions reports/admin/classes/domain/ParameterFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ public static function makeParam($reportID,$reportParameterID) {
$parm = null;
$db = DBService::getInstance();
$result = $db
->selectDB(Config::$database->name)
->query("SELECT rp.*, rpm.parentReportParameterID
FROM ReportParameter rp, ReportParameterMap rpm
WHERE rp.reportParameterID = '$reportParameterID' LIMIT 1")
Expand Down
1 change: 1 addition & 0 deletions reports/admin/classes/report/Report.php
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ public function applyDateRange(array $dateRange) {
public function __construct($id){
$this->db = DBService::getInstance();
$result = $this->db
->selectDB(Config::$database->name)
->query("SELECT reportName, reportDatabaseName FROM Report WHERE reportID = '$id' LIMIT 1")
->fetchRow(MYSQLI_ASSOC);

Expand Down
22 changes: 22 additions & 0 deletions resources/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
**************************
These Add-ons are meant to be installed by someone who is familiar with CORAL and the database backend. An automated installer is NOT included with these Add-ons. A detailed description for a manual install is included in the README file for each Add-on.


The add-on includes a simple search box that can be embedded on a website as well as a more advanced search. The search results page includes a couple of links at the top right of the screen: HTML Feed and XML Feed. The HTML Feed link will provide you with an HTML version of the results that can then be embedded in a website. The XML Feed also provides a link to the results, only in XML.

More information in the readme_pig.txt


**************************
License / Copyright notices

Copyright (c) 2012 University of Notre Dame
This file is part of CORAL.
CORAL is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
CORAL is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with CORAL. If not, see <http://www.gnu.org/licenses/>.


**************************
To contact the CORAL Developers:
[email protected]
2 changes: 1 addition & 1 deletion resources/admin/classes/domain/AccessMethod.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ protected function overridePrimaryKeyName() {}
//returns number of children for this particular contact role
public function getNumberOfChildren(){

$query = "SELECT count(*) childCount FROM Resource WHERE accessMethodID = '" . $this->accessMethodID . "';";
$query = "SELECT count(*) childCount FROM ResourceAcquisition WHERE accessMethodID = '" . $this->accessMethodID . "';";

$result = $this->db->processQuery($query, 'assoc');

Expand Down
2 changes: 1 addition & 1 deletion resources/admin/classes/domain/AcquisitionType.php
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ public function sortedArray() {
//returns number of children for this particular contact role
public function getNumberOfChildren(){

$query = "SELECT count(*) childCount FROM Resource WHERE acquisitionTypeID = '" . $this->acquisitionTypeID . "';";
$query = "SELECT count(*) childCount FROM ResourceAcquisition WHERE acquisitionTypeID = '" . $this->acquisitionTypeID . "';";

$result = $this->db->processQuery($query, 'assoc');

Expand Down
7 changes: 3 additions & 4 deletions resources/admin/classes/domain/AlertDaysInAdvance.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,9 @@ protected function overridePrimaryKeyName() {}
public function getResourcesToAlert(){


$query = "SELECT DISTINCT resourceID
FROM Resource
WHERE ((DATE_SUB(currentEndDate, INTERVAL " . $this->daysInAdvanceNumber . " DAY) = CURDATE()) OR
(currentEndDate = CURDATE()))
$query = "SELECT DISTINCT R.resourceID from Resource R LEFT JOIN ResourceAcquisition RA ON RA.resourceID = R.resourceID
WHERE ((DATE_SUB(subscriptionEndDate, INTERVAL " . $this->daysInAdvanceNumber . " DAY) = CURDATE()) OR
(subscriptionEndDate = CURDATE()))
AND subscriptionAlertEnabledInd = '1'";


Expand Down
Loading

0 comments on commit 21fec80

Please sign in to comment.