Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
837 changes: 834 additions & 3 deletions components/application/index.css

Large diffs are not rendered by default.

468 changes: 449 additions & 19 deletions components/application/index.js

Large diffs are not rendered by default.

14 changes: 14 additions & 0 deletions components/application/templates/frameremote.html
Original file line number Diff line number Diff line change
Expand Up @@ -76,12 +76,26 @@
<% } %>
</div>
<% if(app.mobileview || app.electronview) {%>
<% if(hasReviewsSupport) { %>
<div class="reviewsBtn iconwrapper filterIcon">
<div class="icon">
<i class="fas fa-star"></i>
</div>
</div>
<% } %>
<div class="settings iconwrapper filterIcon">
<div class="icon">
<i class="fas fa-ellipsis-v"></i>
</div>
</div>
<% } else { %>
<% if(hasReviewsSupport) { %>
<div class="reviewsBtn iconwrapper filterIcon">
<div class="icon">
<i class="fas fa-star"></i>
</div>
</div>
<% } %>
<div class="info iconwrapper filterIcon">
<div class="icon">
<i class="fas fa-cog"></i>
Expand Down
95 changes: 79 additions & 16 deletions components/application/templates/install.html
Original file line number Diff line number Diff line change
Expand Up @@ -16,24 +16,87 @@
<% } %>
</div>
<div class="installwrapper">
<img class="appicon" src="<%-application.icon%>"></>
<div class="appdetails">
<div class="appname"><%-application.name || "Unknown App"%></div>
<div class="appdescription"><%-application.description || "No description available."%></div>
<div class="apptags">
<% if (application.tags && application.tags.length) { %>
<% application.tags.forEach(function(tag) { %>
<span class="tag"><%- tag %></span>
<% }) %>
<div class="installContentWrapper">
<img class="appicon" src="<%-application.icon%>">
<div class="appdetails">
<div class="appname"><%-application.name || "Unknown App"%></div>
<div class="appdescription"><%-application.description || "No description available."%></div>
<div class="apptags">
<% if (application.tags && application.tags.length) { %>
<% application.tags.forEach(function(tag) { %>
<span class="tag"><%- tag %></span>
<% }) %>
<% } else { %>
<span class="tag">No tags available</span>
<% } %>
</div>
</div>

<div class="installButton">
<button class="button">
<%- e('installpplication')%>
</button>
</div>

<% if(hasReviewsSupport) { %>
<div class="ratingsPreviewSection">
<div class="ratingsPreviewHeader">
<h3><%- e('ratingsAndReviews') %></h3>
<button class="viewAllReviews">
<span><%- e('allReviews') %></span>
<i class="fas fa-chevron-right"></i>
</button>
</div>

<% if(ratingsData && ratingsData.totalRatings && ratingsData.totalRatings > 0) { %>
<div class="ratingsPreview">
<div class="ratingPreviewCard">
<div class="overallRatingPreview">
<div class="ratingScorePreview">
<div class="scoreNumberLarge"><%- ratingsData.averageRating || 0 %></div>
<div class="scoreOutOfSmall"><%- e('outOf5') %></div>
</div>
<div class="starsPreview">
<% var avgRating = ratingsData.averageRating || 0; %>
<% for(var i = 1; i <= 5; i++) { %>
<i class="<%= i <= Math.round(avgRating) ? 'fas' : 'far' %> fa-star"></i>
<% } %>
</div>
<div class="ratingsCountPreview"><%- ratingsData.totalRatings || 0 %> <%- e('ratings') %></div>
</div>
</div>

<% if(ratingsData.reviews && ratingsData.reviews.length > 0) { %>
<div class="recentReviewsPreview">
<% ratingsData.reviews.slice(0, 2).forEach(function(review) { %>
<div class="reviewPreviewItem">
<div class="reviewPreviewHeader">
<div class="reviewPreviewDate"><%- review.date || '' %></div>
</div>
<div class="reviewPreviewUser"><%- review.userName || 'Аноним' %></div>
<% if(review.title) { %>
<div class="reviewPreviewTitle"><%- review.title %></div>
<% } %>
<div class="reviewPreviewText"><%- review.text ? review.text.substring(0, 100) : '' %>...</div>
</div>
<% }) %>
</div>
<% } %>
</div>
<% } else { %>
<span class="tag">No tags available</span>
<div class="ratingsPreviewEmpty">
<div class="emptyRatingCard">
<div class="emptyStars">
<% for(var i = 1; i <= 5; i++) { %>
<i class="far fa-star"></i>
<% } %>
</div>
<p><%- e('noRatingsYet') %></p>
<p class="emptySubtext"><%- e('beFirstToRate') %></p>
</div>
</div>
<% } %>
</div>
</div>

<div class="installButton">
<button class="button">
<%- e('installpplication')%>
</button>
<% } %>
</div>
</div>
9 changes: 8 additions & 1 deletion components/application/templates/metmenu.html
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,23 @@
class : 'settings'
},

reviews : {
icon : '<i class="fas fa-star"></i>',
text : e('reviewsAndRatingsMenu'),
class : 'reviews'
},

close : {
icon : '<i class="fas fa-times"></i>',
text : e('application_close'),
class : 'close'
}

}

if(application && application.manifest){
m.push('settings')
m.push('reviews')
}

m.push('close')
Expand Down
38 changes: 38 additions & 0 deletions components/application/templates/ratingform.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
<div class="captionRow">
<div class="back iconwrapper">
<div class="icon">
<i class="fas fa-chevron-left"></i>
</div>
</div>
<div class="caption">
<span><%- e('rateApp') %></span>
</div>
</div>

<div class="ratingFormWrapper">
<div class="ratingFormAppHeader">
<img class="appIconLarge" src="<%-application.icon%>" alt="<%-application.name%>">
<div class="appName"><%-application.name || "Unknown App"%></div>
<div class="ratingPrompt"><%- e('howDoYouRate') %></div>
</div>

<div class="ratingFormStars">
<div class="starRatingInput">
<i class="far fa-star" data-rating="1"></i>
<i class="far fa-star" data-rating="2"></i>
<i class="far fa-star" data-rating="3"></i>
<i class="far fa-star" data-rating="4"></i>
<i class="far fa-star" data-rating="5"></i>
</div>
<div class="ratingLabel"><%- e('clickStarToRate') %></div>
</div>

<div class="ratingFormActions">
<button class="cancelRatingButton button secondary">
<%- e('cancel') %>
</button>
<button class="submitRatingButton button" disabled>
<%- e('submitRating') %>
</button>
</div>
</div>
45 changes: 45 additions & 0 deletions components/application/templates/reviewform.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
<div class="captionRow">
<div class="back iconwrapper">
<div class="icon">
<i class="fas fa-chevron-left"></i>
</div>
</div>
<div class="caption">
<span><%- e('writeComment') %></span>
</div>
</div>

<div class="reviewFormWrapper">
<div class="reviewFormAppHeader">
<img class="appIconSmall" src="<%-application.icon%>" alt="<%-application.name%>">
<div class="appName"><%-application.name || "Unknown App"%></div>
</div>

<div class="reviewFormFields">
<h3><%- e('writeComment') %></h3>

<div class="formGroup">
<label for="reviewText"><%- e('yourComment') %> *</label>
<textarea
id="reviewText"
class="formTextarea"
placeholder="<%- e('tellAboutExperience') %>"
rows="8"
maxlength="500"
required
></textarea>
<div class="characterCount">
<span class="currentCount">0</span>/<span class="maxCount">500</span>
</div>
</div>

<div class="reviewFormActions">
<button class="cancelButton button secondary">
<%- e('cancel') %>
</button>
<button class="submitReviewButton button" disabled>
<%- e('submitReview') %>
</button>
</div>
</div>
</div>
134 changes: 134 additions & 0 deletions components/application/templates/reviews.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
<div class="captionRow">
<div class="back iconwrapper">
<div class="icon">
<i class="fas fa-chevron-left"></i>
</div>
</div>
<div class="caption">
<span><%-application && application.name ? application.name : ""%></span>
</div>
<% if(application) {%>
<div class="settings iconwrapper">
<div class="icon">
<i class="fas fa-ellipsis-v"></i>
</div>
</div>
<% } %>
</div>

<div class="reviewsWrapper">
<div class="reviewsAppHeader">
<img class="appIconSmall" src="<%-application.icon%>" alt="<%-application.name%>">
<div class="appInfo">
<div class="appName"><%-application.name || "Unknown App"%></div>
</div>
</div>

<div class="overallRating">
<div class="ratingScore">
<div class="scoreNumber"><%- ratingsData && ratingsData.averageRating ? ratingsData.averageRating : 0 %></div>
<div class="scoreOutOf"><%- e('outOf5') %></div>
</div>
<div class="ratingDetails">
<div class="starsDisplay">
<% var avgRating = ratingsData && ratingsData.averageRating ? ratingsData.averageRating : 0; %>
<% for(var i = 1; i <= 5; i++) { %>
<i class="<%= i <= Math.round(avgRating) ? 'fas' : 'far' %> fa-star"></i>
<% } %>
</div>
<div class="ratingCount"><%- ratingsData && ratingsData.totalRatings ? ratingsData.totalRatings : 0 %> <%- e('ratings') %></div>
</div>
</div>

<% if(ratingsData && ratingsData.distribution && ratingsData.distribution.length > 0) { %>
<div class="ratingDistribution">
<% ratingsData.distribution.forEach(function(item) { %>
<div class="distributionRow">
<div class="distributionStars">
<% for(var i = 0; i < item.stars; i++) { %>
<i class="fas fa-star"></i>
<% } %>
</div>
<div class="distributionBar">
<div class="distributionBarFill" style="width: <%- item.percentage %>%"></div>
</div>
<div class="distributionPercent"><%- item.percentage %>%</div>
</div>
<% }) %>
</div>
<% } %>

<% if(canWriteReview) { %>
<div class="writeReviewSection">
<% if(hasUserRated) { %>
<div class="userRatingDisplay">
<div class="userRatingInfo">
<span class="userRatingLabel"><%- e('yourRating') %>:</span>
<div class="userRatingStars">
<% for(var i = 1; i <= 5; i++) { %>
<i class="<%= i <= userRating ? 'fas' : 'far' %> fa-star"></i>
<% } %>
</div>
<span class="userRatingValue"><%- userRating %> <%- e('outOf5') %></span>
</div>
<div class="userRatingNote"><%- e('youAlreadyRated') %></div>
</div>
<% } else { %>
<button class="rateAppButton button">
<i class="fas fa-star"></i>
<%- e('rateApp') %>
</button>
<% } %>
<button class="writeReviewButton button secondary">
<i class="fas fa-comment"></i>
<%- e('writeComment') %>
</button>
</div>
<% } %>

<div class="reviewsList">
<div class="reviewsHeader">
<h3><%- e('ratingsAndReviews') %></h3>
</div>

<% if(ratingsData && ratingsData.reviews && ratingsData.reviews.length > 0) { %>
<% ratingsData.reviews.forEach(function(review) { %>
<div class="reviewItem">
<div class="reviewHeader">
<div class="reviewUserInfo">
<div class="reviewUserAvatar">
<% if(!review.userAvatar) { %>
<i class="fas fa-user"></i>
<% } else { %>
<img src="<%= review.userAvatar %>"></img>
<% } %>
</div>
<div class="reviewUserDetails">
<div class="reviewUserName"><%- review.userName %></div>
<div class="reviewDate"><%- review.date %></div>
</div>
</div>
<% if(userAddress && review.address === userAddress) { %>
<div class="reviewActions">
<button class="deleteReviewButton" data-comment-id="<%- review.id %>" title="<%- e('deleteComment') %>">
<i class="fas fa-trash-alt"></i>
</button>
</div>
<% } %>
</div>

<div class="reviewText">
<% if(review.title) { %>
<strong><%- review.title %></strong><br>
<% } %>
<%- review.text %>
</div>
</div>
<% }) %>
<% } else { %>
<div class="noReviews">
<p><%- e('noReviewsYet') %></p>
</div>
<% } %>
</div>
</div>
15 changes: 15 additions & 0 deletions js/kit.js
Original file line number Diff line number Diff line change
Expand Up @@ -2929,6 +2929,21 @@ pMiniapp = function(){
}


self.upvote = function(value, address){

if(self.myVal && self.myVal != '0') return null;

var upvoteShare = new UpvoteShare();

upvoteShare.share.set(self.hash);
upvoteShare.value.set(value);
upvoteShare.address.set(self.address || '')


return upvoteShare;
}



self.type = 'miniapp';
return self;
Expand Down
Loading