aboutsummaryrefslogtreecommitdiff
path: root/depictions
diff options
context:
space:
mode:
Diffstat (limited to 'depictions')
-rw-r--r--depictions/changelog.html120
-rw-r--r--depictions/com.sukarodo.samplepackage/changelog.xml6
-rw-r--r--depictions/com.sukarodo.samplepackage/info.xml45
-rw-r--r--depictions/com.sukarodo.samplepackage/screenshots/.ignore1
-rw-r--r--depictions/com.sukarodo.samplepackage/screenshots/cydia.jpgbin0 -> 128506 bytes
-rw-r--r--depictions/com.sukarodo.samplepackage/screenshots/shot1-thumb.jpgbin0 -> 18998 bytes
-rw-r--r--depictions/com.sukarodo.samplepackage/screenshots/shot1.jpgbin0 -> 40737 bytes
-rw-r--r--depictions/index.html263
-rw-r--r--depictions/js/data-loader-engine.js78
-rw-r--r--depictions/js/ios_version_check.js126
-rw-r--r--depictions/js/jquery.querystring.js13
-rw-r--r--depictions/screenshots.html135
-rw-r--r--depictions/style.css30
13 files changed, 817 insertions, 0 deletions
diff --git a/depictions/changelog.html b/depictions/changelog.html
new file mode 100644
index 0000000..9fbe709
--- /dev/null
+++ b/depictions/changelog.html
@@ -0,0 +1,120 @@
+ <!DOCTYPE html>
+<html lang="en">
+<head>
+ <title>Changelog</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+ <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
+ <link rel="stylesheet" href="style.css">
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
+
+ <script type="text/javascript" src="js/jquery.querystring.js"></script>
+ <script type="text/javascript" src="js/data-loader-engine.js"></script>
+ <script type="text/javascript" src="js/ios_version_check.js"></script>
+ <style>
+ @media (max-width: 767px) {
+ body{background:#efeff4!important;margin:0;padding:0;border:0;outline:0;box-sizing:border-box}
+ }
+ </style>
+ <script type="text/javascript">
+
+ bundleid = $.QueryString['p'];
+
+ var contentBlocks = {
+ "#changeLogList" :
+ {"type":"articles"
+ ,"source" :"changelog"
+ ,"titleSource" :"version"
+ ,"paragraphSource" :"change"
+ ,"titleElement" : "<h5>"
+ ,"paragraphContainer": "<ul class='list-group'>"
+ ,"paragraphElement" : "<li class='list-group-item'>"
+
+ }
+ }
+ $( document ).ready(function() {
+ $.ajax({
+ type : "GET",
+ dataType: "xml",
+ url : (bundleid+"/changelog.xml"),
+ success : function(xml){
+ data_loader_engine(contentBlocks,xml)
+ },
+ cache : false,
+ error: function() {
+ $("#packageError").show();
+ $("#packageInformation").hide();
+ }
+ }); //ajax
+
+ }); // ready
+ </script>
+</head>
+<body>
+<br />
+
+<div id="packageInformation">
+ <div class="container" id="changeLogList">
+ </div>
+</div>
+<div id="packageError" style="display:none">
+ <div class="container">
+ <div class="alert alert-danger">
+ <strong>Oh snap!</strong> The package you are tying to view is not hosted on this repository.
+ </div>
+ </div>
+</div>
+<!-- REPO FOOTER -->
+<script type="text/javascript">
+ var repoContents = {
+ "#repoFooterLinks" :
+ {"type":"custom"
+ ,"source":"repo>footerlinks>link"
+ ,"render":function(element,source) {
+ $.each(source, function(index,data) {
+ var a = $("<a class='link-item list-group-item'>");
+ a.attr("href",$(data).find('url').text());
+ if ($(data).find('iconclass')) {
+ var i = $("<span>")
+ i.attr("class",$(data).find('iconclass').text());
+ console.log(i);
+ $(a).append(i);
+ }
+ $(a).append($(data).find('name').text());
+ $(element).append(a);
+ }); //each
+ } //render
+ }
+ }
+ $( document ).ready(function() {
+ $.ajax({type: "GET", dataType: "xml",url : ("../repo.xml"),cache: false,
+ success : function(xml){
+ data_loader_engine(repoContents,xml);
+ if (navigator.userAgent.search(/Cydia/) != -1) {
+ $("a").each(function() {
+ console.log($(this).text());
+ $(this).attr("target","_blank");
+ });
+ }
+ },
+
+ error: function() {$("#contactInfo").hide()}
+ }); //ajax
+
+
+ }); // ready
+
+</script>
+
+<div id="contactInfo">
+ <div class="container">
+ <h5>CONTACT</h5>
+ <ul class="list-group" id="repoFooterLinks">
+ </ul>
+ </div>
+</div>
+<!-- REPO FOOTER ENDS -->
+
+</body>
+</html>
diff --git a/depictions/com.sukarodo.samplepackage/changelog.xml b/depictions/com.sukarodo.samplepackage/changelog.xml
new file mode 100644
index 0000000..d736af0
--- /dev/null
+++ b/depictions/com.sukarodo.samplepackage/changelog.xml
@@ -0,0 +1,6 @@
+<changelog>
+ <changes>
+ <version>1.0.0</version>
+ <change>Initial Release</change>
+ </changes>
+</changelog>
diff --git a/depictions/com.sukarodo.samplepackage/info.xml b/depictions/com.sukarodo.samplepackage/info.xml
new file mode 100644
index 0000000..e7bed58
--- /dev/null
+++ b/depictions/com.sukarodo.samplepackage/info.xml
@@ -0,0 +1,45 @@
+<package>
+ <id>com.sukarodo.samplepackage</id>
+ <name>Sample Package</name>
+ <version>1.0</version>
+ <compatibility>
+ <firmware>
+ <miniOS>7.0</miniOS>
+ </firmware>
+ </compatibility>
+ <dependencies>
+ <package>mobilesubstrate</package>
+ </dependencies>
+ <shortDescription>This is a sample new package. Firmware should be greater than 7.0</shortDescription>
+ <descriptionlist>
+ <description>This is an package will full depictions.</description>
+ <description>It has more description lines.</description>
+ <description><![CDATA[
+ You can also have<br/>
+ a multi-line item.
+ ]]>
+ </description>
+ </descriptionlist>
+ <screenshots>
+ <screenshot>
+ <description>This is a description for screenshot 1. It's Cydia!</description>
+ <image>cydia.jpg</image>
+ </screenshot>
+ <screenshot>
+ <description>This is a description for screenshot 2. It's another Cydia!</description>
+ <image>cydia.jpg</image>
+ </screenshot>
+ </screenshots>
+ <changelog>
+ <change>Second release</change>
+ <change>It has feature 1</change>
+ <change>It has feature 2</change>
+ </changelog>
+ <links>
+ <link>
+ <name>/r/jailbreak</name>
+ <url>https://www.reddit.com/r/jailbreak</url>
+ <iconclass>fa fa-reddit</iconclass>
+ </link>
+ </links>
+</package>
diff --git a/depictions/com.sukarodo.samplepackage/screenshots/.ignore b/depictions/com.sukarodo.samplepackage/screenshots/.ignore
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/depictions/com.sukarodo.samplepackage/screenshots/.ignore
@@ -0,0 +1 @@
+
diff --git a/depictions/com.sukarodo.samplepackage/screenshots/cydia.jpg b/depictions/com.sukarodo.samplepackage/screenshots/cydia.jpg
new file mode 100644
index 0000000..29c8801
--- /dev/null
+++ b/depictions/com.sukarodo.samplepackage/screenshots/cydia.jpg
Binary files differ
diff --git a/depictions/com.sukarodo.samplepackage/screenshots/shot1-thumb.jpg b/depictions/com.sukarodo.samplepackage/screenshots/shot1-thumb.jpg
new file mode 100644
index 0000000..da0197b
--- /dev/null
+++ b/depictions/com.sukarodo.samplepackage/screenshots/shot1-thumb.jpg
Binary files differ
diff --git a/depictions/com.sukarodo.samplepackage/screenshots/shot1.jpg b/depictions/com.sukarodo.samplepackage/screenshots/shot1.jpg
new file mode 100644
index 0000000..5c55f6b
--- /dev/null
+++ b/depictions/com.sukarodo.samplepackage/screenshots/shot1.jpg
Binary files differ
diff --git a/depictions/index.html b/depictions/index.html
new file mode 100644
index 0000000..0ea4024
--- /dev/null
+++ b/depictions/index.html
@@ -0,0 +1,263 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <title>PackageName</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+ <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
+ <link rel="stylesheet" href="style.css">
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
+ <script type="text/javascript" src="js/jquery.querystring.js"></script>
+ <script type="text/javascript" src="js/data-loader-engine.js"></script>
+ <script type="text/javascript" src="js/ios_version_check.js"></script>
+ <style>
+ @media (max-width: 767px) {
+ body{background:#efeff4!important;margin:0;padding:0;border:0;outline:0;box-sizing:border-box}
+ }
+ .jumbotron-bg {
+ background: green
+ }
+ </style>
+ <script type="text/javascript">
+
+ bundleid = $.QueryString['p'];
+
+ var contentBlocks = {
+ "#packageName" :
+ {"type":"text","source":"package>name"}
+ ,"#packageHeader" :
+ {"type":"custom"
+ ,"source":"package>name"
+ ,"render":function(element,source){
+ if (navigator.userAgent.search(/Cydia/) == -1) {
+ $(element).show();
+ }
+ }
+ }
+ ,"#packageVersion" :
+ {"type":"text","source":"package>version"}
+ ,"#packageShortDesc" :
+ {"type":"text","source":"package>shortDescription"}
+ ,"#compatibilityCheck" :
+ {"type":"custom"
+ ,"source":"package>compatibility>firmware"
+ ,"render":function(element,source){
+ var res = ios_version_check(
+ $(source).find("miniOS").text(),
+ $(source).find("maxiOS").text(),
+ $(source).find("otherVersions").text(),
+ function(message,isBad) {
+ $(element).html(message)
+ .addClass( (isBad?'alert-danger':'alert-success'));
+ }
+ );
+ if(res==0) {$(element).hide()}
+ }
+ }
+ ,"#descriptionList" :
+ {"type":"list"
+ ,"source" :"package>descriptionlist>description"
+ ,"paragraphElement" : "<li class='list-group-item'>"
+ ,"emptyListCallback":function(e){$("#descriptionPanel").hide()}
+ }
+ ,"#screenshotsLink" :
+ {"type":"custom"
+ ,"source" :"package>screenshots>screenshot"
+ ,"render":function(element, source){
+ $("#screenshotsLink").remove();
+ if ($(source).size() == 0) {
+ return
+ }
+ // create screenshots link
+ $("#descriptionList").append(
+ $("<a class='link-item list-group-item'>")
+ .attr("href","screenshots.html?p="+bundleid)
+ .text("Screenshots")
+ );
+ }
+ }
+ ,"#versionBadge" : {"type":"text","source":"package>version"}
+ ,"#changesList" :
+ {"type":"list"
+ ,"source" :"package>changelog>change"
+ ,"reverseRender" : true
+ ,"paragraphElement" : "<li class='list-group-item'>"
+ ,"emptyListCallback":function(e){$("#changesList").hide()}
+ }
+ ,"#changelogLink" :
+ {"type":"custom"
+ ,"source" :"package>changelog>change"
+ ,"render":function(element, source){
+ $("#changelogLink").remove();
+ if ($(source).size() == 0) {
+ return
+ }
+ // create changelog link
+ $("#changesList").append(
+ $("<a class='link-item list-group-item'>")
+ .attr("href","changelog.html?p="+bundleid)
+ .text("Full Changelog")
+ );
+ }
+ }
+ ,"#dependencyList" :
+ {"type":"list"
+ ,"source" :"package>dependencies>package"
+ ,"paragraphElement" : "<li class='list-group-item'>"
+ ,"emptyListCallback":function(e){$("#dependenciesContainer").remove()}
+ }
+ ,"#externalLinksList" :
+ {"type":"custom"
+ ,"source" :"package>links>link"
+ ,"paragraphElement" : "<li class='list-group-item'>"
+ ,"render":function(element,source){
+ if ($(source).size()==0){
+ $('#externalLinksContainer').remove()
+ }
+
+ $.each(source, function(index,data) {
+ var a = $("<a class='link-item list-group-item'>");
+ a.attr("href",$(data).find('url').text());
+ if ($(data).find('iconclass')) {
+ var i = $("<span>")
+ i.attr("class",$(data).find('iconclass').text());
+ console.log(i);
+ $(a).append(i);
+ }
+ $(a).append($(data).find('name').text());
+ $(element).append(a);
+ }); //each
+
+ }
+
+ }
+ }
+ $( document ).ready(function() {
+ $.ajax({
+ type : "GET",
+ dataType: "xml",
+ url : (bundleid+"/info.xml"),
+ success : function(xml){
+ document.title = $(xml).find("package>name").text();
+ data_loader_engine(contentBlocks,xml)
+
+ },
+ cache : false,
+ error: function() {
+ $("#packageError").show();
+ $("#packageInformation").hide();
+ }
+ }); //ajax
+
+ }); // ready
+ </script>
+</head>
+<body>
+<br />
+
+<div id="packageInformation">
+
+ <div id="packageHeader" class="container" style="display:none">
+ <div class="jumbotron">
+ <h1 id="packageName"></h1>
+ <p id="packageShortDesc">brought to you by Reposi3</p>
+ </div>
+ </div>
+
+ <div class="container">
+ <div id="compatibilityCheck" class="alert"></div>
+ </div>
+
+ <div class="container">
+ <h5>DESCRIPTION</h5>
+ <ul id="descriptionList" class="list-group">
+ <li id="screenshotsLink" />
+ </ul>
+ </div>
+
+ <div class="container">
+ <h5>IN THIS VERSION <span id="versionBadge" class="badge" /></h5>
+ <ul id="changesList" class="list-group">
+ <li id="changelogLink" />
+ </ul>
+ </div>
+ <div class="container" id="dependenciesContainer">
+ <h5>DEPENDENCIES</h5>
+ <ul id="dependencyList" class="list-group">
+ </ul>
+ </div>
+
+ <div class="container" id="externalLinksContainer">
+ <h5>LINKS</h5>
+ <ul id="externalLinksList" class="list-group">
+ </ul>
+ </div>
+
+</div>
+<div id="packageError" style="display:none">
+ <div class="container">
+ <div class="alert alert-danger">
+ <strong>Oh snap!</strong> The package you are tying to view is not hosted on this repository.
+ </div>
+ </div>
+</div>
+
+<script type="text/javascript">
+ function setAnchorTargets() {
+ // if on Cydia, set link targets to _blank
+ if (navigator.userAgent.search(/Cydia/) != -1) {
+ $("a").each(function() {
+ $(this).attr("target","_blank");
+ });
+ }
+ }
+
+ var repoContents = {
+ "#repoFooterLinks" :
+ {"type":"custom"
+ ,"source":"repo>footerlinks>link"
+ ,"render":function(element,source) {
+ $.each(source, function(index,data) {
+ var a = $("<a class='link-item list-group-item'>");
+ a.attr("href",$(data).find('url').text());
+ if ($(data).find('iconclass')) {
+ var i = $("<span>")
+ i.attr("class",$(data).find('iconclass').text());
+ console.log(i);
+ $(a).append(i);
+ }
+ $(a).append($(data).find('name').text());
+ $(element).append(a);
+ }); //each
+ } //render
+ }
+ }
+ $( document ).ready(function() {
+ $.ajax({type: "GET", dataType: "xml",url : ("../repo.xml"),cache: false,
+ success : function(xml){
+ data_loader_engine(repoContents,xml);
+ setAnchorTargets();
+ },
+ error: function() {
+ $("#contactInfo").hide();
+ setAnchorTargets();
+ }
+ }); //ajax
+
+
+ }); // ready
+
+</script>
+
+<div id="contactInfo">
+ <div class="container">
+ <h5>CONTACT</h5>
+ <ul class="list-group" id="repoFooterLinks">
+ </ul>
+ </div>
+</div>
+
+
+</body>
+</html>
diff --git a/depictions/js/data-loader-engine.js b/depictions/js/data-loader-engine.js
new file mode 100644
index 0000000..723b728
--- /dev/null
+++ b/depictions/js/data-loader-engine.js
@@ -0,0 +1,78 @@
+function data_loader_engine(contentBlocks,xml) {
+
+ /* Loop through each if the contentBlocks */
+ $.each(contentBlocks, function (key,contentInfo){
+
+ console.log('Processing '+key);
+ console.log(' type= '+contentInfo.type);
+
+ // go out if key element does not exits
+ if (!($(key).length)) {return}
+
+ switch(contentInfo.type) {
+ case "text":
+ var content = $(xml).find(contentInfo.source).text();
+ $(key).html(content)
+ break;
+ case "link":
+ console.log(' url= '+contentInfo.url);
+ console.log(' text= '+contentInfo.text);
+
+ var url = contentInfo.url;
+ var params = [];
+ if (contentInfo.params) {
+ $.each(contentInfo.params, function(){
+ this[1] = escape(this[1]);
+ params[params.length] = this.join('=');
+ });
+ }
+ url = url+'?'+params.join('&');
+ $(key).append( $("<a></a>")
+ .attr("href",url)
+ .text(contentInfo.text)
+ );
+ break;
+ case "list":
+ var list = $(xml).find(contentInfo.source);
+
+
+ if (list.size()==0) {
+ if (contentInfo.emptyListCallback) {
+ contentInfo.emptyListCallback($(key))
+ }
+ } else {
+ if (!!contentInfo.reverseRender) {
+ list = $(list).get().reverse();
+ }
+ $.each(list, function(index,value){
+ var item = $(value).text()
+
+ if (!!contentInfo.reverseRender) {
+ $(key).prepend( $(contentInfo.paragraphElement).html("<p>"+item+"</p>") )
+ } else {
+ $(key).append( $(contentInfo.paragraphElement).html("<p>"+item+"</p>") )
+ }
+ });
+ }
+ break;
+ case "articles":
+ var articles = $(xml).find(contentInfo.source).children();
+ var titleID = 0;
+ $.each(articles,function(index,article){
+ var articleTitle = $(article).find(contentInfo.titleSource).text()
+ $(key).append( $(contentInfo.titleElement).html(articleTitle));
+ var container = $(contentInfo.paragraphContainer).attr("id",++titleID);
+ $(key).append($(container));
+ $.each( $(article).find(contentInfo.paragraphSource), function(index,paragraph){
+ $(container).append( $(contentInfo.paragraphElement).html("<p>"+$(paragraph).text()+"</p>") )
+ }) //paragraph
+ }) //article
+
+ break;
+ case "custom":
+ if (!key) {return}
+ contentInfo.render( $(key), $(xml).find(contentInfo.source) )
+ break;
+ }//switch
+ }); //each
+}
diff --git a/depictions/js/ios_version_check.js b/depictions/js/ios_version_check.js
new file mode 100644
index 0000000..d6c0d8e
--- /dev/null
+++ b/depictions/js/ios_version_check.js
@@ -0,0 +1,126 @@
+/*
+most of the code here is writen by Timon Olsthoorn
+Follow him on -
+Github - https://github.com/tmnlsthrn
+Twitter - @TimonOlsthoorn
+*/
+
+/* Lotus - iosver.js
+ * Copyright (C) 2014-2015 Timon Olsthoorn (tmnlsthrn)
+ */
+
+/*
+ * Redistribution and use in source and binary
+ * forms, with or without modification, are permitted
+ * provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the
+ * above copyright notice, this list of conditions
+ * and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the
+ * above copyright notice, this list of conditions
+ * and the following disclaimer in the documentation
+ * and/or other materials provided with the
+ * distribution.
+ * 3. The name of the author may not be used to endorse
+ * or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+ * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// Adapted from https://github.com/tmnlsthrn/Lotus/blob/master/js/iosver.js
+
+
+// changed const to var for IE9/10 compatibity.
+var VERSION_CHECK_SUPPORTED = "Your iOS version is supported! &#x1f60a;";
+var VERSION_CHECK_NEEDS_UPGRADE = "Requires at least iOS %s &#x1f615;";
+var VERSION_CHECK_UNCONFIRMED = "Not yet tested on iOS %s &#x1f601;";
+var VERSION_CHECK_UNSUPPORTED = "Only compatible with iOS %s to %s &#x1f61e;";
+
+function ios_version_check(minIOS,maxIOS,otherIOS,callBack) {
+ "use strict";
+
+
+ function parseVersionString(version) {
+ var bits = version.split(".");
+ return [
+ parseInt(bits[0], 10),
+ parseInt(bits[1] ? bits[1] : 0, 10),
+ parseInt(bits[2] ? bits[2] : 0, 10)
+ ];
+ }
+
+ function compareVersions(one, two) {
+ // https://gist.github.com/TheDistantSea/8021359
+ for (var i = 0; i < one.length; ++i) {
+ if (two.length == i) {
+ return 1;
+ }
+
+ if (one[i] == two[i]) {
+ continue;
+ } else if (one[i] > two[i]) {
+ return 1;
+ } else {
+ return -1;
+ }
+ }
+
+ if (one.length != two.length) {
+ return -1;
+ }
+
+ return 0;
+ }
+
+ var version = navigator.appVersion.match(/CPU( iPhone)? OS (\d+)_(\d+)(_(\d+))? like/i);
+ if (!version) {
+ return 0;
+ }
+
+ var osVersion = [
+ parseInt(version[2], 10),
+ parseInt(version[3], 10),
+ parseInt(version[4] ? version[5] : 0, 10)
+ ],
+
+ osString = osVersion[0] + "." + osVersion[1] + (osVersion[2] && osVersion[2] != 0 ? "." + osVersion[2] : ""),
+ minString = minIOS,
+ maxString = maxIOS,
+
+ minVersion = parseVersionString(minString),
+ maxVersion = maxString ? parseVersionString(maxString) : null,
+
+ message = VERSION_CHECK_SUPPORTED,
+ isBad = false;
+
+ if (compareVersions(minVersion, osVersion) == 1) {
+ message = VERSION_CHECK_NEEDS_UPGRADE.replace("%s", minString);
+ isBad = true;
+ } else if (maxVersion && compareVersions(maxVersion, osVersion) == -1) {
+ if ("unsupported" == otherIOS) {
+ message = VERSION_CHECK_UNSUPPORTED.replace("%s", minString).replace("%s", maxString);
+ } else {
+ message = VERSION_CHECK_UNCONFIRMED.replace("%s", osString);
+ }
+
+ isBad = true;
+ }
+ callBack(message,isBad);
+
+ return (isBad?-1:1);
+}
diff --git a/depictions/js/jquery.querystring.js b/depictions/js/jquery.querystring.js
new file mode 100644
index 0000000..507d005
--- /dev/null
+++ b/depictions/js/jquery.querystring.js
@@ -0,0 +1,13 @@
+(function($) {
+ $.QueryString = (function(a) {
+ if (a == "") return {};
+ var b = {};
+ for (var i = 0; i < a.length; ++i)
+ {
+ var p=a[i].split('=');
+ if (p.length != 2) continue;
+ b[p[0]] = decodeURIComponent(p[1].replace(/\+/g, " "));
+ }
+ return b;
+ })(window.location.search.substr(1).split('&'))
+})(jQuery);
diff --git a/depictions/screenshots.html b/depictions/screenshots.html
new file mode 100644
index 0000000..28b9739
--- /dev/null
+++ b/depictions/screenshots.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <title>Screenshots</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+ <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
+ <link rel="stylesheet" href="style.css">
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
+
+ <script type="text/javascript" src="js/jquery.querystring.js"></script>
+ <script type="text/javascript" src="js/data-loader-engine.js"></script>
+ <script type="text/javascript" src="js/ios_version_check.js"></script>
+ <style>
+ @media (max-width: 767px) {
+ body{background:#efeff4!important;margin:0;padding:0;border:0;outline:0;box-sizing:border-box}
+ }
+ </style>
+ <script type="text/javascript">
+
+ bundleid = $.QueryString['p'];
+
+ var contentBlocks = {
+ "#screenshotsList" :
+ {"type":"custom"
+ ,"source" :"package>screenshots>screenshot"
+ ,"render" : function(element,source){
+ console.log($(source).size());
+ if ($(source).size()==0) {
+ $(element).append( $("<div class='alert alert-danger'>The aren't any screenshots for this package</div>") );
+ return;
+ }
+ $.each(source, function(index,data) {
+ var th = $("<div class='thumbnail'>");
+ th.append($("<p>")
+ .text($(data).find('description').text())
+ )
+ th.append($("<img>")
+ .attr("src",bundleid+'/screenshots/'+$(data).find('image').text())
+ )
+ $(element).append(th);
+ });
+
+ }
+ }
+ }
+ $( document ).ready(function() {
+ $.ajax({
+ type : "GET",
+ dataType: "xml",
+ url : (bundleid+"/info.xml"),
+ success : function(xml){
+ document.title = $(xml).find("package>name").text();
+ data_loader_engine(contentBlocks,xml)
+ },
+ cache : false,
+ error: function() {
+ $("#packageError").show();
+ $("#packageInformation").hide();
+ }
+ }); //ajax
+
+ }); // ready
+ </script>
+</head>
+<body>
+<br />
+
+<div id="packageInformation">
+ <div class="container">
+ <h5>SCREENSHOTS</h5>
+ <ul id="screenshotsList" class="list-group">
+ </ul>
+ </div>
+</div>
+<div id="packageError" style="display:none">
+ <div class="container">
+ <div class="alert alert-danger">
+ <strong>Oh snap!</strong> The package you are tying to view is not hosted on this repository.
+ </div>
+ </div>
+</div>
+<!-- REPO FOOTER -->
+<script type="text/javascript">
+ var repoContents = {
+ "#repoFooterLinks" :
+ {"type":"custom"
+ ,"source":"repo>footerlinks>link"
+ ,"render":function(element,source) {
+ $.each(source, function(index,data) {
+ var a = $("<a class='link-item list-group-item'>");
+ a.attr("href",$(data).find('url').text());
+ if ($(data).find('iconclass')) {
+ var i = $("<span>")
+ i.attr("class",$(data).find('iconclass').text());
+ console.log(i);
+ $(a).append(i);
+ }
+ $(a).append($(data).find('name').text());
+ $(element).append(a);
+ }); //each
+ } //render
+ }
+ }
+ $( document ).ready(function() {
+ $.ajax({type: "GET", dataType: "xml",url : ("../repo.xml"),cache: false,
+ success : function(xml){
+ data_loader_engine(repoContents,xml);
+ if (navigator.userAgent.search(/Cydia/) != -1) {
+ $("a").each(function() {
+ console.log($(this).text());
+ $(this).attr("target","_blank");
+ });
+ }
+ },
+ error: function() {$("#contactInfo").hide()}
+ }); //ajax
+
+
+ }); // ready
+
+</script>
+
+<div id="contactInfo">
+ <div class="container">
+ <h5>CONTACT</h5>
+ <ul class="list-group" id="repoFooterLinks">
+ </ul>
+ </div>
+</div>
+<!-- REPO FOOTER ENDS -->
+
+</body>
+</html>
diff --git a/depictions/style.css b/depictions/style.css
new file mode 100644
index 0000000..0bb6513
--- /dev/null
+++ b/depictions/style.css
@@ -0,0 +1,30 @@
+.disable-hover {
+ pointer-events: none;
+}
+
+.link-item {
+ list-style-type: none;
+ padding: 17px 15px;
+ display: block;
+ color: #337ab7 !important;
+ text-align: left;
+}
+
+.link-item:hover {
+ border: 1px solid #ddd;
+ background-color: #f5f5f5;
+}
+
+html.can-touch .link-item:hover{ /* disable hover effect when input is touch */
+ background-color: #fff;
+}
+
+html.can-touch .link-item:active{ /* disable hover effect when input is touch */
+ background-color: #f5f5f5;
+}
+
+.fa {
+ font-size: 16px;
+ margin-left: 5px;
+ margin-right: 10px;
+}